CN102014046B - 一种实现模拟多流以太网数据报文发送的方法及系统 - Google Patents
一种实现模拟多流以太网数据报文发送的方法及系统 Download PDFInfo
- Publication number
- CN102014046B CN102014046B CN2010100026696A CN201010002669A CN102014046B CN 102014046 B CN102014046 B CN 102014046B CN 2010100026696 A CN2010100026696 A CN 2010100026696A CN 201010002669 A CN201010002669 A CN 201010002669A CN 102014046 B CN102014046 B CN 102014046B
- Authority
- CN
- China
- Prior art keywords
- parameter
- data message
- parameters
- address
- ethernet data
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Landscapes
- Small-Scale Networks (AREA)
Abstract
本发明提供了一种实现模拟多流以太网数据报文发送的方法,包括:步骤1,由CPU向FPGA内部的存储器RAM写入各条数据流的参数;步骤2,产生第一支流的参数地址,从存储器RAM中读取第一支流的参数;步骤3,根据步骤2读取的参数产生相应的数据报文并输出;步骤4,对输出的数据报文进行流量统计,当统计到要发送第二支流的时候,产生第二支流的参数地址,根据参数地址读取第二支流的参数根据读取的第二支流的参数产生相应的数据报文并输出,依此类推向下循环产生其它支流的数据报文并输出;本发明还公开了一种基于上述方法的系统,包括CPU,FPGA,数据报文封装模块,切换报文参数状态机模块。通过本发明实现模拟真实网络环境。
Description
技术领域
本发明涉及通信技术领域,尤其涉及一种实现模拟多流以太网数据报文发送的方法及系统。
背景技术
在以太网网络的测试中,经常需要模拟多种以太网数据报文的发送,来模拟真实的网络环境。但目前的以太网测试设备,大多仅能实现通过使用递增或递减发送的以太网数据报文中的MAC地址或IP地址来模拟多流以太网数据报文的发送。这样的设计仅能简单的模拟不同的硬件设备在网络中的通信模型,而不能模拟不同的硬件设备在不同的通信协议下进行数据通信的模型。
发明内容
本发明的目的在于提供一种实现不同的硬件设备在不同的通信协议下进行数据通信的多种格式以太网数据报文发送的方法及系统。
一种实现模拟多流以太网数据报文发送的方法,通过CPU、FPGA实现,包括:
步骤1,由CPU通过ISA总线向FPGA内部的参数RAM写入各条数据流对应的参数;
步骤2,产生第一支流的参数地址,根据参数地址从参数RAM中读取第一支流的参数;
步骤3,根据读取的第一支流的参数产生相应的以太网数据报文并输出;
步骤4,对输出的以太网数据报文进行流量统计,当统计到达要发送第二支流的时候,产生第二支流的参数地址,根据参数地址从从参数RAM中读取第二支流的参数,然后根据读取的第二支流的参数产生相应的以太网数据报文并输出,依此类推向下循环产生其它支流的以太网数据报文并输出;
进一步的,步骤1中所述的参数RAM包括两个参数RAM,其中一个参数RAM的输出数据位宽为128位,用于对后端的以太网数据报文的封装提供打包参数;另一个参数RAM的输出数据位宽为32位,接入到CPU的三态数据总线,便于CPU灵活的读取和修改已写入参数RAM的以太网数据报文参数。
所述的参数RAM接入到CPU的三态数据总线为32位,地址总线为7位,共128个地址。
进一步的,每条支流对应的参数包括:目的MAC地址、源MAC地址、MAC帧类型选择、MAC广播帧类型、是否包含VLAN标记、VLAN的ID值、VLAN的优先级、是否包含QinQ标记、QinQ的ID值、QinQ优先级、目的IP地址、源IP地址、IP封装协议、IP生存时间、IP服务类型、TCP/UDP源端口号和TCP/UDP目的端口号。
一种实现模拟多流以太网数据报文发送的系统,包括CPU,FPGA,所述的CPU通过ISA总线向所述的FPGA内部的参数RAM写入各条数据流对应的参数;
还包括:以太网数据报文封装模块,负责根据输入的参数产生相应的以太网数据报文并发送出去;
切换报文参数状态机模块,包括数据流量统计模块和切换地址状态机模块,所述的数据流量统计模块负责统计已发送的支流以太网数据报文,如果该支流报文数量达到设置的流量时,通知切换地址状态机模块进行参数地址的切换。
进一步的,所述的以太网数据报文封装模块含有参数输入端口,所述的参数输入端口包括目的MAC地址、源MAC地址、目的IP地址、源IP地址、目的TCP/UDP端口号、源TCP/UDP端口号和以太网数据报文长度参数。
进一步的,所述的参数RAM包括两个参数RAM,其中一个参数RAM用于对后端的以太网数据报文的封装提供打包参数;另一个参数RAM接入到CPU的三态数据总线,便于CPU读取和修改已写入参数RAM的以太网数据报文参数。
本发明的有益效果:
1、实现任意长度以太网数据包的发送,包括超长帧超短帧。真实的模拟网络以太网数据报文长度的随机性。
2、带VLAN、QinQ以太网数据报文的产生,可以模拟虚拟局域网网络环境。
3、三层IP报文支持多种协议数据的报文的输出,测试三层通信设备。
4、最多8条模拟不同格式的以太网数据报文输出,既可模拟真实网络环境,又可同时测试多种网络设备。
附图说明
图1为本发明的原理流程图;
图2为CPU通过异步总线向FPGA内部的参数RAM写入各支流的参数的流程示意图;
图3为各支流参数在参数RAM中的分布示意图;
图4为以太网数据报文封装模块的多种参数输入端口示意图。
具体实施方式
本发明的一个具体实施例如下:
一种实现模拟多流以太网数据报文发送的方法,通过CPU、FPGA实现,包括:
步骤1,由CPU通过ISA总线向FPGA内部的参数RAM写入各条数据流对应的参数;
CPU通过异步总线向FPGA内部的参数RAM写入各支流的参数。如附图2所示,写入参数RAM的数据总线为32位,地址总线为7位,共128个地址。对于8个支流的参数,则每个支流占用的地址空间为128/8=16。
CPU同时将参数写入FPGA内部的两个参数RAM,其中一个参数RAM的输出数据位宽为128位,用于给后端的以太网数据报文封装模块提供打包参数,另一个参数RAM的输出数据位宽为32位与写入的位宽相同,接入到CPU的三态数据总线,便于CPU灵活的读取和修改已写入参数RAM的以太网数据报文参数。所述的参数RAM接入到CPU的三态数据总线为32位,地址总线为7位,共128个地址。
步骤2,产生第一支流的地址,从参数RAM中读取第一支流的参数;
各支流参数在参数RAM中的分布如附图3所示,每条支流各对应着64字节的参数,其中包括目的MAC地址、源MAC地址、目的IP地址、源IP地址、目的TCP/UDP端口号、源TCP/UDP端口号、IP封装协议和VLAN标记等参数。以太网数据报文封装模块需要的参数采用128位位宽(128/8=16字节)的读取方式,即从附图2所示的参数RAM1中读取。每条支流共有64字节的参数,每次读取16字节,则需要连续读取4次才能将本支流对应的所有参数读取出来。
采用128位位宽读取参数是为保证支流报文参数能够及时的从参数RAM中读出。因为后端以太网数据报文封装模块采用32位(4字节)处理方式,其产生并发送一个以太网数据报文最小需要16个时钟周期(按以太网最小以太网数据报文64字节计算),在采用统一的系统时钟处理情况下,如果参数RAM也按照32位读取,则读取一条支流的所有参数就需要16个时钟周期,这样会导致在以太网数据报文封装模块产生以太网数据报文时,支流的以太网数据报文参数未全部产生从而发生错误。
每条支流具体的参数包括:
Length[15:0]:15位;以太网数据报文长度
MAC_Destination_ADDR[47:0]:48位;目的MAC地址
MAC_Source_ADDR[47:0]:48位;源MAC地址
MAC_Frame-Type[1:0]:2位;MAC帧类型选择,包括DIX、SNAP等
MAC_Broadcast_Type[1:0]:2位;MAC广播帧类型,包括单播、多播、组播等
VLAN_EN[0:0]:1位;是否包含VLAN标记
VLAN_ID[11:0]:12位;VLAN的ID值
VLAN_PRI[2:0]:3位;VLAN的优先级
QinQ_EN[0:0]:1位;是否包含QinQ标记
QinQ_ID[11:0]:12位;QinQ的ID值
QinQ_PRI[2:0]:3位;QinQ优先级
IP_Destination_ADDR[31:0]:32位;目的IP地址
IP_Source_ADDR[31:0]:32位;源IP地址
IP_Protocol[7:0]:8位;IP封装协议
IP_TTL[7:0]:8位;IP生存时间
IP_TOS[7:0]:8位;IP服务类型
TCP_DES_Port[15:0]:16位;TCP/UDP目的端口号
TCP_SRC_Port[15:0]:16位;TCP/UDP目的端口号。
步骤3,根据读取的第一支流的参数产生相应的以太网数据报文并输出;
根据输入的参数产生相应的以太网数据报文并发送出去。它对输入参数的要求就是在其封装一个以太网数据报文的过程中支流所有参数必须完整且不会改变。
首先根据以太网数据报文长度参数产生其相应长度的以太网数据报文,然后根据是否含有VLAN标记参数,决定是否在相应的位置插入VLAN的标记包括VLAN_ID和VLAN优先级,对QinQ参数的处理和VLAN处理一致。之后在相应的以太网数据报文位置填入各种参数,包括目的MAC地址、IP地址和TCP/UDP端口号等参数。以太网数据报文的格式如表1所示:
表1
步骤4,对输出的以太网数据报文进行流量统计,当统计到达要发送第二支流的时候,重复步骤2-4。具体如下:产生第二支流的参数地址给参数RAM,再读出第二支流的参数,此后以太网数据报文封装模块再发送第二支流数据格式的报文,依次向下循环产生其他支流的以太网数据报文。
一种实现模拟多流以太网数据报文发送的系统,包括CPU,FPGA,所述的CPU通过ISA总线向所述的FPGA内部的参数RAM写入各条数据流对应的参数;
CPU通过异步总线向FPGA内部的参数RAM写入各支流的参数。如附图2所示,写入参数RAM的数据总线为32位,地址总线为7位,共128个地址。对于8个支流的参数,则每个支流占用的地址空间为128/8=16。
CPU同时将参数写入FPGA内部的两个参数RAM,其中一个参数RAM的输出数据位宽为128位,用于给后端的以太网数据报文封装模块提供打包参数,另一个参数RAM的输出数据位宽为32位与写入的位宽相同,接入到CPU的三态数据总线,便于CPU灵活的读取和修改已写入参数RAM的以太网数据报文参数。
所述的参数RAM包括两个参数RAM,其中一个参数RAM用于对后端的以太网数据报文的封装提供打包参数;另一个参数RAM接入到CPU的三态数据总线,便于CPU读取和修改已写入参数RAM的以太网数据报文参数。
以太网数据报文封装模块,负责根据输入的参数产生相应的以太网数据报文并发送出去;
如附图4所示,以太网数据报文封装模块有多种参数输入端口,包括目的MAC地址、IP地址、TCP/UDP端口号、以太网数据报文长度等参数。该模块负责根据输入的参数产生相应的以太网数据报文并发送出去。它对输入参数的要求就是在其封装一个以太网数据报文的过程中支流所有参数必须完整且不会改变。
切换报文参数状态机模块,包括数据流量统计模块和切换地址状态机模块,所述的数据流量统计模块负责统计已发送的支流以太网数据报文,如果该支流报文数量达到设置的流量时,通知切换地址状态机模块进行参数地址的切换。
切换报文参数状态机模块中主要包含数据流量统计模块和切换地址状态模块。数据流量统计模块的作用为统计已发送的支流以太网数据报文,如果该支流报文数量达到设置的流量时,通知切换地址状态机进行参数地址的切换,通过产生不同支流的读取参数RAM地址来获取另外一条支流的以太网数据报文参数,从而实现真正意义的多流以太网数据报文的发送。
Claims (4)
1.一种实现模拟多流以太网数据报文发送的方法,通过CPU、FPGA实现,其特征在于包括:
步骤1,由CPU通过ISA总线向FPGA内部的参数RAM写入各条数据流对应的参数;
步骤2,产生第一支流的参数地址,根据参数地址从参数RAM中读取第一支流的参数;
步骤3,根据读取的第一支流的参数产生相应的以太网数据报文并输出;
步骤4,对输出的以太网数据报文进行流量统计,当统计到达要发送第二支流的时候,产生第二支流的参数地址,根据参数地址从参数RAM中读取第二支流的参数,然后根据读取的第二支流的参数产生相应的以太网数据报文并输出,依此类推向下循环产生其它支流的以太网数据报文并输出;
其中,步骤1中所述的参数RAM包括两个参数RAM,其中一个参数RAM的输出数据位宽为128位,用于对后端的以太网数据报文的封装提供打包参数;另一个参数RAM的输出数据位宽为32位,接入到CPU的三态数据总线,便于CPU灵活的读取和修改已写入参数RAM的以太网数据报文参数;所述的参数RAM接入到CPU的三态数据总线为32位,地址总线为7位,共128个地址。
2.根据权利要求1所述的实现模拟多流以太网数据报文发送的方法,其特征在于:每条支流对应的参数包括:目的MAC地址、源MAC地址、MAC帧类型选择、MAC广播帧类型、是否包含VLAN标记、VLAN的ID值、VLAN的优先级、是否包含QinQ标记、QinQ的ID值、QinQ优先级、目的IP地址、源IP地址、IP封装协议、IP生存时间、IP服务类型、TCP/UDP源端口号和TCP/UDP目的端口号。
3.一种实现模拟多流以太网数据报文发送的系统,包括CPU,FPGA,其特征在于:所述的CPU通过ISA总线向所述的FPGA内部的参数RAM写入各条数据流对应的参数;所述的参数RAM包括两个参数RAM,其中一个参数RAM的输出数据位宽为128位,用于对后端的以太网数据报文的封装提供打包参数;另一个参数RAM的输出数据位宽为32位,接入到CPU的三态数据总线,便于CPU灵活的读取和修改已写入参数RAM的以太网数据报文参数;所述的参数RAM接入到CPU的三态数据总线为32位,地址总线为7位,共128个地址;
还包括:以太网数据报文封装模块,负责根据输入的参数产生相应的以太网数据报文并发送出去;
切换报文参数状态机模块,包括数据流量统计模块和切换地址状态机模块,所述的数据流量统计模块负责统计已发送的支流以太网数据报文,如果该支流报文数量达到设置的流量时,通知切换地址状态机模块进行参数地址的切换,通过产生不同支流的读取参数RAM地址来获取另外一条支流的以太网数据报文参数。
4.根据权利要求3所述的实现模拟多流以太网数据报文发送的系统,其特征在于:所述的以太网数据报文封装模块含有参数输入端口,所述的参数输入端口包括源目的MAC地址、IP地址、TCP/UDP端口号和以太网数据报文长度参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010100026696A CN102014046B (zh) | 2010-01-21 | 2010-01-21 | 一种实现模拟多流以太网数据报文发送的方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN2010100026696A CN102014046B (zh) | 2010-01-21 | 2010-01-21 | 一种实现模拟多流以太网数据报文发送的方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102014046A CN102014046A (zh) | 2011-04-13 |
CN102014046B true CN102014046B (zh) | 2013-01-23 |
Family
ID=43844069
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN2010100026696A Active CN102014046B (zh) | 2010-01-21 | 2010-01-21 | 一种实现模拟多流以太网数据报文发送的方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102014046B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110505137B (zh) * | 2018-05-16 | 2021-12-07 | 瑞昱半导体股份有限公司 | 功能扩展式有线网络装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1945547A (zh) * | 2006-10-31 | 2007-04-11 | 哈尔滨工业大学 | 一种嵌入式故障注入系统及其方法 |
JP2007180810A (ja) * | 2005-12-27 | 2007-07-12 | Fuji Xerox Co Ltd | 電子回路及びプログラマブル論理デバイスの使用方法 |
CN101009041A (zh) * | 2006-12-19 | 2007-08-01 | 北京航空航天大学 | 一种基于fpga的红外地球敏感器的测试数据通信接口装置 |
-
2010
- 2010-01-21 CN CN2010100026696A patent/CN102014046B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007180810A (ja) * | 2005-12-27 | 2007-07-12 | Fuji Xerox Co Ltd | 電子回路及びプログラマブル論理デバイスの使用方法 |
CN1945547A (zh) * | 2006-10-31 | 2007-04-11 | 哈尔滨工业大学 | 一种嵌入式故障注入系统及其方法 |
CN101009041A (zh) * | 2006-12-19 | 2007-08-01 | 北京航空航天大学 | 一种基于fpga的红外地球敏感器的测试数据通信接口装置 |
Also Published As
Publication number | Publication date |
---|---|
CN102014046A (zh) | 2011-04-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100589421C (zh) | 一种产生网络流量的方法及其装置 | |
CN104660460A (zh) | 一种测试以太网性能的系统及方法 | |
Carneiro | NS-3: Network simulator 3 | |
US8072992B2 (en) | Interfacing real and virtual networks in hardware-in-the-loop (HITL) simulations | |
Covington et al. | A packet generator on the NetFPGA platform | |
CN102096405B (zh) | 基于S-Link和VLAN技术的远程工业网络监控的方法及系统 | |
CN103490961B (zh) | 一种网络设备 | |
CN108964943A (zh) | 一种实现ioam封装的方法及装置 | |
HK1067821A1 (en) | Method, apparatus and computer program for the decapsulation and encapsulation of packets with multiple headers | |
CN107079017A (zh) | 一种报文转换方法及装置 | |
CN103209103B (zh) | 网络设备的测试方法及装置 | |
CN104702464A (zh) | 基于fpga的100g以太网测试报文的生成系统及方法 | |
CN202331135U (zh) | 基于S-Link和VLAN技术的远程工业网络监控的系统 | |
US8654654B2 (en) | Traffic distribution control | |
CN105323115A (zh) | 一种网管测试事件的数据包模拟方法和装置 | |
CN107222458A (zh) | 一种兼容Modbus协议的BACnet协议栈的数据处理方法及系统 | |
CN105356991A (zh) | 一种驱动器实时同步通信装置 | |
CN104734994A (zh) | 一种基于sdn框架的流标签控制方法 | |
CN102014046B (zh) | 一种实现模拟多流以太网数据报文发送的方法及系统 | |
CN103152254A (zh) | 通用路由封装隧道报文转发方法及系统 | |
CN107517130B (zh) | 基于opnet的无缝冗余协议网络性能等效仿真方法 | |
CN105141538A (zh) | 一种跨网络堆叠系统及其对报文的处理方法 | |
CN102710463A (zh) | 一种电力数据网络的动态仿真系统及仿真方法 | |
CN105763347B (zh) | 用于获取参数的方法、网络设备及系统 | |
CN102497319B (zh) | 一种利用自动机实现单包匹配的系统和方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
C56 | Change in the name or address of the patentee | ||
CP03 | Change of name, title or address |
Address after: 545006 the Guangxi Zhuang Autonomous Region Avenue in the City District of Liuzhou city in Guangxi, No. 17, science and Technology Park Patentee after: Liuzhou Dadi telecommunication technology Limited by Share Ltd Address before: 100083 Beijing city Haidian District Wudaokou Dongsheng Park Huaqingjiayuan No. 7 Building 1601 room Patentee before: Liuzhou Dadi Telecommunication Equipment Co., Ltd. |