一种数据包生成器和数据包生成方法

文档序号:7688352阅读:151来源:国知局
专利名称:一种数据包生成器和数据包生成方法
技术领域
本发明涉及网络数据处理技术,更具体地说,涉及一种数据包生成器和数 才居包生成方法。
背景技术
在网络设备的研发和生产过程中,经常需要对网络设备的性能(例如数据 包转发速度)进行测试。测试过程需要模拟网络设备的日常工作环境,然后测 试网络设备在模拟环境下的性能表现。由于网络设备的主要任务是接收和转发 数据包,因此,在测试过程中,需要使用一种设备来生成数据包,然后将生成 的数据包发送给需要测试的网络设备。这种用于生成数据包的设备就是数据包 生成器。
目前市场上的数据包生成器大致可分为两类, 一类是基于普通PC (Personal Computer,个人计算机)的数据包生成软件,如Sniffer软件;另一 类是基于FPGA (Field Programmable Gate Array,现场可编程门阵列)的数据 通信测试仪,如Spirent公司生产的Smartbits系列测试仪。
基于PC的数据包生成4允件的性能与PC性能密切相关,由于PC性能往 往不高,因此这类数据包生成软件的性能也较差。此外,目前PC使用的网卡 接口的最高带宽仅为千兆,这也决定此类软件无法担负大型网络设备的测试任 务。
基于FPGA的数据通信测试仪往往价格昂贵,可编程性和可移植性差,这 些缺点都限制了这类数据通信测试仪的普及推广。
因此,需要一种数据包生成方案,能够克服现有基于PC的数据包生成软 件性能差、网络接口带宽低的缺陷,和现有基于FPGA的数据通信测试仪价格 昂贵、可编程性和可移植性差的缺陷。

发明内容
本发明要解决的技术问题在于,针对现有技术基于PC的数据包生成软件
性能差、网络接口带宽低的缺陷,和现有基于FPGA的数据通信测试仪价格昂 贵、可编程性和可移植性差的缺陷,提供一种数据包生成器和数据包生成方法。 本发明解决其技术问题所采用的技术方案是构造一种数据包生成器,包

输入接口 ,用于接收并转发数据包配置信息;
网络处理器,与输入接口相连,用于接收转发来的数据包配置信息,生成 数据包模板,并以多线程方式对数据包模板进行复制,发出复制得到的数据包;
网络输出端口,与网络处理器相连,用于接收并发出由网络处理器发来的 数据包。
在本发明所述的数据包生成器中,所述网络处理器进一步包括 核心处理器,与所述输入接口相连,用于接收所述数据包配置信息,生成
并发出所述数据包模板,并分配发送任务,发出发送任务信息;
多个发送《鼓引擎,与核心处理器相连,用于接收各自的数据包模板和发送
任务信息,并依据发送任务信息对数据包模板进行复制,发出复制得到的数据
包;
输出接口,与所述多个发送微引擎和网络输出端口相连,用于接收多个发 送微引擎发出的数据包并发往网络输出端口 。
在本发明所述的数据包生成器中,所述数据包配置信息包括数据包构成信 息和数据包数量信息,所述核心处理器进一步包括
信息提JM莫块,用于接收数据包配置信息,提取数据包构成信息和数据包 数量信息,发出数据包构成信息,依据数据包数量信息分配发送任务,生成并 发出所述发送任^f言息;
模板生成模块,与信息提取模块相连,用于接收数据包构成信息,生成并 发出所述数据包模板。
在本发明所述的数据包生成器中,还包括任务存储器,其进一步包括
模板存储器,用于接收并存储所述数据包模板;便笺存储器,包括
数量存储区,用于接收并存储所述发送任务信息;
模板地址存储区,用于记录数据包模板在模板存储器中的存储位置。
在本发明所述的数据包生成器中,还包括 控制微引擎,包括
发送控制模块,用于在所述模板地址存储区中读取数据包模板的存储 位置,发往所述多个发送微引擎; 每一发送^f敖引擎进一步包括
数据包生成模块,用于接收数据包模板的存储位置,读取对应的数据 包模板并进行复制,发出复制得到的数据包;其中,
发送控制模块在所述数量存储区中读取发送微引擎的发送任务信息, 按照该发送任务信息控制数据包生成模块对数据包模板进行复制。 本发明还提供了一种数据包生成方法,包括如下步骤
51、 接收数据包配置信息;
52、 依据数据包配置信息生成数据包模板;
53、 以多线程方式并行复制数据包才莫々反,发出复制得到的数据包。 在本发明所述的数据包生成方法中,所述数据包配置信息包括数据包构成
信息和数据包数量信息。
在本发明所述的数据包生成方法中,所述步骤S1还包括
S11 、在所述数据包配置信息中提取数据包构成信息和数据包数量信息。
在本发明所述的数据包生成方法中,所述步骤S2进一步包括
521、 依据所述数据包构成信息生成所述数据包模板;
522、 依据所述数据包数量信息分配发送任务,生成发送任务信息;
523、 将生成的数据包模板和发送任务信息发往多条发送线程。 在本发明所述的数据包生成方法中,所述步骤S3进一步包括
S31 、所述多条发送线程依据发送任务信息并行对数据包模板进行复制, 发出复制得到的数据包。
7实施本发明的技术方案,具有以下有益效果借助网络处理器的强大处理 能力,本发明技术方案提供的数据包发送速率能够充分满足现有各类大、中、 小型网络设备的测试需要;通过采用丰富的接口类型,本发明提供的数据包生 成器可实现与现有各类网络设备的轻松互联;凭借网络处理器出色的通用性和 普及率,本发明提供的数据包生成器具有非常灵活的编程性和移植性,且成本 低廉。


下面将结合附图及实施例对本发明作进一步说明,附图中 图1是依据本发明一实施例的数据包生成器100的结构示意图; 图2^」依据本发明一实施例的网络处理器200的结构示意图; 图3是依据本发明一实施例的网络处理器300的结构示意图; 图5是依据本发明一实施例的数据包生成方法500的流程图; 图4是依据本发明一实施例的数据包生成方法400的流程图; 图6是依据本发明一实施例的数据包生成方法600的流程图。
具体实施例方式
本发明提供了 一种基于网络处理器的数据包生成方案,可借助网络处理器 强大的并行处理能力,提供可充分满足现有各类大中小型网络设备测试需要的 数据包发送速率,且接口更富,可实现与现有各类网络设备的轻松互联,下面 就结合附图和具体实施例来详细描述本发明提供的技术方案。
图1是依据本发明一实施例的数据包生成器100的结构示意图。如图1 所示,数据包生成器100包括顺次相连的输入接口 102、网络处理器104和网 络输出端口 106。
输入接口 102用于^^妄收用户通过配置界面输入的数据包配置信息108,并 将其发往网络处理器104进行处理。数据包配置信息108包括数据包构成信息 和数据包数量信息。数据包构成信息用于构建数据包模板,其可包括用于构建 数据包的各种数据。例如,以OSI ( Open System Interconnection ,开i文系统互联)参考模型为例,数据包构成信息包括应用层 会话层所对应的数据包净荷 信息、传输层对应的传输控制信息、网络层对应的逻辑寻址信息(三层协议信 息)和数据链路层对应的物理寻址信息(二层协议信息)等。由于网络设备所 执行的数据转发操作所使用的寻址信息往往仅为网络层和数据链路层对应的
协议信息,因此可将数据包构成信息简化为仅包含数据包净荷信息、三层协议 信息和二层协议信息。
数据包净荷信息定义了数据包净荷的生成规则,例如可采用全0、全l、
递增(例如依次写0x00至0xff到数据包净荷)、递减(例如写0xff至0x00到 数据包净荷)、A5 (写0xa5到数据包净荷)等方式来构建数据包净荷。
三层协议信息定义了三层协i义类型(如IP (Internet Protocol,网际协议) 协议、IPX (Internetwork Packet Exchange,网际数据包交换)协议等)、版本、 服务类型、三层寻址信息以及计算得到的校-验和等信息,例如以IP协议为例, 该三层协议信息包含源IP地址、目的IP地址等信息。
二层协议信息定义了二层寻址信息、计算得到的校验和等信息,例如以 Ehernet II帧为例,该二层访、议4言息包含源MAC (Media Access Contorl,介质 访问控制)地址、目的MAC地址等信息。
应注意,数据包构成信息的内容可根据具体实现(例如根据所要生成的数 据包的类型)来随意设定,本发明的范围不应理解为仅限于上文的举例描述。
数据包数量信息中记录有需要生成的数据包的数量。
网络处理器104是数据包生成器100的核心部件,其接收输入接口 102 转发的数据包配置信息108,提取其中的数据包构成信息和数据包数量信息。 随后,网络处理器104依据数据包构成信息生成数据包模板,并按照数据包数 量信息以多线程方式对数据包模板进行复制从而并行生成所需的数据包110, 再发往网络输出端口 106。
网络输出端口 106包含支持各种速率(例如但不限于千兆、OC48、 OC192 等)的各种类型的网络接口 (例如以太网),'用于发送生成的数据包110。
网络处理器是本发明数据包生成器的核心部件,其采用多核结构,可通过 多线程方式并行完成数据包的生成及发送,下面就结合图2对其结构进行详细描述。
图2是依据本发明一实施例的网络处理器200的结构示意图。如图2所示, 网络处理器200包括核心处理器202、多个发送樣吏引擎204和输出接口 206。 多个微引擎204分别与核心处理器202和输出接口 206相连。
核心处理器202与输入接口例如但不限于图1中的输入4妄口 102相连,用 于接收输入接口收到并转发的数据包配置信息208。数据包配置信息208与图 1中的数据包配置信息108基本相同,此处不再赘述。核心处理器202从数据 包配置信息208中提取数据包构成信息和数据包数量信息,并依据数据包构成 信息生成数据包模板。同时,核心处理器202依据数据包数量信息分配发送任 务,即确定每个发送微引擎204需要发送的数据包数量。在此之后,核心处理 器202将生成的数据包模板发往参与发送的各个发送微引擎204,同时向各个 发送微引擎204发出发送任务信息。
作为可选的,还可为参与发送的各个发送微引擎204单独设置数据包配置 信息208。在这种情况下,核心处理器202分别/人每一数据包配置信息208中 提取数据包构成信息和数据包数量信息,生成对应的数据包模板,然后将生成 的数据包模板和提取的数据包数量信息一同发往对应的发送微引擎204。
发送微引擎204用于接收核心处理器202发出的数据包才莫板和自身需要发 送的数据包数量,并依据需要发送的数据包数量对收到的数据包模板进行复 制,生成多个数据包210,并发往输出接口 206。由此可见,数据包的生成速 率与发送孩i引擎204的数量密切相关,因此,在具体实现过程中,可根据所需 要的数据包生成速率增加发送微引擎204的数量。
输出接口 206连接网络输出端口,例如但不限于图1中的网络输出端口 110,用于将收到的数据包210发往所连接的网络输出端口。如上文所述,网 络输出端口包含支持各种速率(例如但不限于千兆、OC48、 OC192等)的各 种网络接口,而不同速率的网络输出端口对应不同的数据包格式(例如以太网 包头(如MAC帧头)对应千兆接口 , POS (Packet Over SONET,同步光纤网 接口 )包头对应OC48、 OC192接口等)。输出接口 206用于依据数据包210 的格式,将其发往网络输出端口中对应的端口。在具体实现过程中,可根据具体需要(例如需要实现的发送速率),从现 有的各种网络处理器中选择适当的网络处理器,然后在该网络处理器的^出上 添加对应的模块,来实现本发明的技术方案。例如,可选择英特尔公司制造的
网络处理器IXP2800作为基础来实现本发明的技术方案,以实现最高达10Gbps 的数据包发送速率。IXP2800包含Xscale核心处理器(下文简称核心处理器)、 多级存储器、多个微引擎(标准配置为16个)和SPI接口。其中,多级存储 器包括Scratchpad存储器(下文简称便笺存储器)和DDR (Double Data Rate, 双倍数据率)存储器(下文简称模板存储器)。在运行过程中,核心处理器与 多个微引擎之间通过便笺存储器进行通信,而多个微引擎之间则通过Next Neighbor Ring相互通信。为便于理解,在下面的描述中,将便笺存储器和DDR 存^f诸器统称为任务存储器。下面就以英特尔公司制造的网络处理器IXP2800 为例对本发明的技术方案进行描述。
图3是依据本发明一实施例的网络处理器300的结构示意图。网络处理器 300由英特尔公司制造的网络处理器IXP2800改进而成。如图3所示,网络处 理器300包括核心处理器(Xscale核心处理器)302、任务存储器304、多个 微引擎306/308和输出端口 (SPI接口)310。其中,任务存储器304进一步包 括1更笺存储器(Scratchpad存储器)3042和模板存储器3044,便笺存储器3042 又可进一步细分为数量存储区30422和模板地址存储区30424、多个微引擎 306/308又可进一步定义为控制孩i引擎306、多个发送孩i引擎308。
核心处理器302与输入接口例如但不限于图1中的输入接口 102相连,用 于接收输入接口收到并转发的数据包配置信息312。数据包配置信息312与图 1中描述的数据包配置信息108基本相同,此处不再赘述。为实现本发明的技 术方案,在IXP2800的Xscale核心处理器中添加了信息提取才莫块3022和模板 生成才莫块3024。
信息提取模块3022用于从数据包配置信息312中提取数据包构成信息和 数据包数量信息,然后将数据包构成信息发往模板生成模块3024。随后,信 息提取模块3022依据数据包数量信息分配发送任务,即确定每个发送微引擎 308需要发送的数据包的数量,然后将其写入便笺存储器3042的数量存储区30422中(发出发送任务信息)。数量存储区30422按照发送微引擎308的数 量进一步划分为多个子存储区,每个子存储区存储对应的发送微引擎308所需 发送的数据包数量。在具体实现过程中,在便笺存储器3042中,数量存储区 30422可对应地址范围Ox3e00,并才艮据子存储区的数量进一步确定每个子存储 区的地址范围。对于每个,若其地址上的数据为O则表示不发送数据包,若为 Oxffffffff则表示连续发送数据包,若为其他数字则表示需要发送的数据包数 量。特别的,当用户通过配置界面发出停止发送命令时,可通过在子存储区地 址上写入数据O来实现。
模板生成模块3024与信息提取模块3022相连,用于接收信息提取模块 3022发来的数据包构成信息,依据此信息生成数据包模板,并将其写入模板 存储器3044中(发出数据包模板),并将其在模板存储器3044中的存储位置 写入便笺存储器304的模板地址存储区30424中。模板地址存储区30424按照 发送微引擎308的数量进一步划分为多个子存储区,每个子存储区存储对应的 发送微引擎308所需发送的数据包模板在模板存储器3044中的存储位置。在 具体实现过程中,在便笺存储器3042中,模板地址存储区30424可对应地址 范围0x3el0 ~ 0x3e90 (对应仅使用8个发送微引擎308的情况),其中Ox3el0 对应第一个发送微引擎308所对应的数据包模板在模板存储器3044中的存储 位置(bufferindex),其他地址以此类推。
作为可选的,还可为参与发送的各个发送微引擎308单独设置数据包配置 信息312。在这种情况下,信息提卑^莫块3022分别从每一数据包配置信息312 中提取数据包构成信息和数据包数量信息,并将数据包构成信息依次发往模板 生成模块3024生成数据包模板。同时,信息提取模块3022将提取的各个数据 包数量信息分别写入便笺存储器3042的数量存储区30422中。模板生成模块 3024生成的各个数据包模板将写入模板存储器3044中,并将其在模板存储器 3044中的存储位置写入便奚存储器3042的模板地址存储区30424中。
控制微引擎306通过在IXP2800的微引擎中添加发送控制模块3062改进 而成。发送控制模块3062用于在便笺存储器3042的模板地址存储区30424 中读取各个数据包模板的存储位置,然后通过Next Neighbor Ring将读取的存储位置发送给对应的各个发送微引擎308,以此来通知各个发送微引擎308从 模板存储器3044中读取数据包模板。
此外,发送控制模块3062还用于在便笺存储器3042的数量存储区30422 中读取各个发送微引擎308的发送任务信息,即需要发送的数据包数量。当发 现发送^(鼓引擎308需要发送的数据包数量大于0时,就通知对应的发送微引擎 308对其读取的数据包模板进行复制,然后发出复制得到的数据包。此后,发 送控制模块3062将该发送微引擎308需要发送的数据包数量更新为原数量减 1,然后重复上述过程,直到该发送微引擎308需要发送的数据包数量为0。
发送微引擎308通过IXP2800的微引擎中添加数据包生成模块3082改进 而成。数据包生成模块3082用于接收控制微引擎306发来的数据包模板的存 储位置,在模板存储器3044中读取对应的数据包模板。随后,数据包生成模 块3082接收控制微引擎306发出的复制发送通知,对数据包模板进行复制并 发送。
输出端口 310与图2中描述的输出端口 206基本相同,用于发送各个发送 微引擎308生成的数据包314,此处不再赘述。
在具体实现过程中,便笺存储器可以由Scratchpad存储器来实现。 scratchpad是芯片内置的存储区,访问速度很快,仅次于寄存器。而控制微引 擎和发送微引擎之间的通信接口是邻居寄存器,邻居寄存器因为是寄存器,所 以读写速度非常快。在IXP2800阿络处理器中,每个孩i引擎设有128个邻居 寄存器。邻居寄存器中的内容可以被下一个微引擎读取。例如微引擎0中的 程序将数据写入一个邻居寄存器,微引擎l就可以从邻居寄存器中读取数据。 以此类推,除第一个和最后一个微引擎没有前面的和后面的邻居外,其余的《款 引擎都可以通过邻居寄存器读前一个微引擎的数据,或将数据写入邻居寄存器 来实现与下一个微引擎的通信。当128个邻居寄存器设置为Next Neighbour Ring时,整个128个寄存器成为一个先进先出的队列。以0、 l号微引擎为例, 0号微引擎往Next Neighbour Ring队列中写入一个数据,1号微引擎就能收到 这个数据。入队、出队、队列状态判断等都有相应的内部指令和寄存器来实现。 英特尔公司生产的网络处理器如IXP2800网络处理器的相关内容在《Intel
13Building block ref Manual》中做了详细描述,本文引用其中的全部内容。
应注意,图3中的网络处理器300是由英特尔公司制造的网络处理器 IXP2800改进而成的。改进之处在于添加了一些模块如信息提取模块3022, 以实现本发明的技术方案。在具体实现过程中,添力口的模块可通过硬件方式实 现,也可通过软件方式实现(例如对IXP2800进行编程),还可通过软件和硬 件结合(固件)的方式来实现。此外,凡是采用多核结构并包含适当容量的存 储器的网络处理器,均可用于实现本发明的技术方案,因此本发明技术方案的 范围不受特定网络处理器类型的限制。特别的,当结合使用C语言和microcode (微代码)来实现本发明时,各个模块之间的耦合度低,可以方便灵活的进行 ^修改,扩充新功能。
本发明还提供了 一种基于上述数据包生成器的数据包生成方法,下面就结 合以下附图和具体实施例来进行详细描述。
图4是依据本发明一实施例的数据包生成方法400的流程图。如图4所示, 方法400开始于步骤402。
随后,在下一步骤404,接收数据包配置信息。有关数据包配置信息的内 容已经在前文做了详细描述,此处不再赘述。
随后,在下一步骤406,依据数据包配置信息生成数据包模板。 随后,在下一步骤408,以多线程方式并行生成数据包并发出。在本步骤 中,按照数据包配置信息以多线程方式并行的对数据包模板进行复制(复制的 次数包含在数据包配置信息中),得到多个数据包,然后发出复制得到的数据 包。
最后,方法400结束于步骤410。
本发明的核心思想是首先生成数据包模板,然后同时通过多条线程来并行 完成数据包模板的复制和发送任务,下面就结合图5对这一核心思想进行描 述。
图5是依据本发明一实施例的数据包生成方法500的流程图。如图5所示, 方法500开始于步骤502。
随后,在下一步骤504,接收数据包配置信息。有关数据包配置信息的内容已经在前文做了详细描述,此处不再赘述。
随后,在下一步骤506,从数据包配置信息中提取数据包构成信息和数据
包数量信息。有关数据包构成信息和数据包数量信息的内容已经在前文做了详 细描述,此处不再赘述。
随后,在下一步骤508,依据提取的数据包构成信息生成数据包模板,并 按照数据包数量信息为参与发送的线程分配发送任务,生成发送任务信息。
随后,在下一步骤510,将生成的数据包模板和发送任务信息发往对应的 发送线程。如上文所述,还可为参与发送的各个发送线程单独设置数据包配置 信息。在这种情况下,首先分別从每一数据包配置信息中提取数据包构成信息 和数据包数量信息,生成对应的数据包模板,然后将生成的数据包模板和提取 的数据包数量信息一 同发往对应的发送线程。
随后,在下一步骤512,各线程按照各自的发送任务信息并行的对数据包 模板进行复制,然后发出复制得到的数据包。
最后,方法500结束于步骤514。
上述方法可通过网络处理器来执行,由网络处理器中的多个处理器分担数 据包模板的生成和复制发送任务。下面就参考英特尔公司的IXP2800网络处 理器来描述上述方法的执行过程。
图6是依据本发明一实施例的数据包生成方法600的流程图。方法600 由英特尔公司的IXP2800网络处理器执行。有关该网^^处理器的内容已在前 文^故了详细描述,此处不再赘述。如图6所示,方法600开始于步-骤602。
随后,在下一步骤604,核心处理器接收数据包配置信息,提取数据包构 成信息和数据包数量信息。有关数据包配置信息、数据包构成信息和数据包数 量信息的内容已经在前文做了详细描述,此处不再赘述。
随后,在下一步骤606,核心处理器依据数据包构成信息生成数据包模板, 并依据数据包数量信息分配发送任务,生成发送任务信息。
随后,在下一步骤608,核心处理器将数据包模板存储在模板存储器中, 并将其在模板存储器中的存储位置写入便笺存储器,同时在便笺存储器中写入 发送任^f言息。
15随后,在下一步骤610,控制微引擎读取数据包模板的存储位置,发往多 个发送微引擎。
随后,在下一步骤612,多个发送微引擎依据数据包模板的存储位置读取
数据包模板。
随后,在下一步骤614,控制微引擎按照发送任务信息控制多个发送微引 擎并行复制数据包模板,发送复制得到的数据包。其中发送微引擎即对应上文 所述的发送线程。
最后,方法600结束于步f《616。
权利要求
1、一种数据包生成器,其特征在于,包括输入接口,用于接收并转发数据包配置信息;网络处理器,与输入接口相连,用于接收转发来的数据包配置信息,生成数据包模板,并以多线程方式对数据包模板进行复制,发出复制得到的数据包;网络输出端口,与网络处理器相连,用于接收并发出由网络处理器发来的数据包。
2、 根据权利要求1所述的数据包生成器,其特征在于,所述网络处理器 进一步包括核心处理器,与所述输入接口相连,用于接收所述数据包配置信息,生成 并发出所述数据包模板,并分配发送任务,发出发送任务信息;多个发送微引擎,与核心处理器相连,用于接收各自的数据包模板和发送 任务信息,并依据发送任务信息对数据包模板进行复制,发出复制得到的数据 包;输出接口,与所述多个发送微引擎和网络输出端口相连,用于接收多个发 送微引擎发出的数据包并发往网络输出端口 。
3、 根据权利要求2所述的数据包生成器,其特征在于,所述数据包配置 信息包括数据包构成信息和数据包数量信息,所述核心处理器进一步包括信息提^Mt块,用于接收数据包配置信息,提取数据包构成信息和数据包 数量信息,发出数据包构成信息,依据数据包数量信息分配发送任务,生成并 发出所述发送任务信息;模板生成模块,与信息提取模块相连,用于接收数据包构成信息,生成并 发出所述数据包模板。
4、 根据权利要求3所述的数据包生成器,其特征在于,还包括任务存储 器,其进一步包括模板存储器,用于接收并存储所述数据包模板; 便笺存储器,包括-.数量存储区,用于接收并存储所述发送任务信息;模板地址存储区,用于记录数据包模板在模板存储器中的存储位置。
5、 根据权利要求4所述的数据包生成器,其特征在于,还包括 控制微引擎,包括发送控制模块,用于在所述模板地址存储区中读取数据包模板的存储 位置,发往所述多个发送微引擎; 每一发送微引擎进一步包括数据包生成模块,用于接收数据包模板的存储位置,读取对应的数据 包模板并进行复制,发出复制得到的数据包;其中,发送控制模块在所述数量存储区中读取发送微引擎的发送任务信息, 按照该发送任务信息控制数据包生成模块对数据包模板进行复制。
6、 一种数据包生成方法,其特征在于,包括如下步骤51、 接收数据包配置信息;52、 依据数据包配置信息生成数据包模板;53、 以多线程方式并行复制数据包才莫板,发出复制得到的数据包。
7、 根据权利要求6所述的数据包生成方法,其特征在于,所述数据包配 置信息包括数据包构成信息和数据包数量信息。
8、 根据权利要求7所述的数据包生成方法,其特征在于,所述步骤Sl 还包括S11 、在所述数据包配置信息中提取数据包构成信息和数据包数量信息。
9、 根据权利要求8所述的数据包生成方法,其特征在于,所述步骤S2 进一步包括521、 依据所述数据包构成信息生成所述数据包模板;522、 依据所述数据包数量信息分配发送任务,生成发送任务信息; S23 、将生成的数据包模板和发送任务信息发往多条发送线程。
10、 根据权利要求9所述的数据包生成方法,其特征在于,所述步骤S3 进一步包括S31 、所述多条发送线程依据发送任务信息并行对数据包模板进行复制, 发出复制得到的数据包。
全文摘要
本发明涉及网络数据处理技术,针对现有技术基于PC的数据包生成软件性能差等缺陷,提供一种数据包生成器和数据包生成方法。数据包生成器包括输入接口,用于接收并转发数据包配置信息;网络处理器,与输入接口相连,用于接收转发来的数据包配置信息,生成数据包模板,并以多线程方式对数据包模板进行复制,发出复制得到的数据包;网络输出端口,与网络处理器相连,用于接收并发出由网络处理器发来的数据包。本发明还提供了一种基于上述数据包生成器的数据包生成方法。借助网络处理器的强大处理能力,本发明可满足各种发送速率要求需要,且可与现有各类网络设备轻松互联;同时具有非常灵活的编程性和移植性,且成本低廉。
文档编号H04L12/26GK101562544SQ20081006680
公开日2009年10月21日 申请日期2008年4月17日 优先权日2008年4月17日
发明者张义军, 彭国震, 范世杰 申请人:浩通科技(深圳)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1