CN104079435A - 一种以太网流量再生方法 - Google Patents
一种以太网流量再生方法 Download PDFInfo
- Publication number
- CN104079435A CN104079435A CN201410327556.1A CN201410327556A CN104079435A CN 104079435 A CN104079435 A CN 104079435A CN 201410327556 A CN201410327556 A CN 201410327556A CN 104079435 A CN104079435 A CN 104079435A
- Authority
- CN
- China
- Prior art keywords
- packet
- queue
- winpcap
- sending
- send
- 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.)
- Pending
Links
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明提供一种以太网流量再生方法,所述方法需提供winpcap驱动、网卡、文件管理器和数据包发送控制模块;所述文件管理器用于将待发送的数据包载入缓冲区;所述数据包发送控制模块用于控制数据包的发送速率、修改MAC地址、控制循环发送和控制流量波动;所述方法包括如下步骤:检查winpcap驱动,初始化网卡列表;创建发送列表;设置发送参数;选择发送数据包的网卡;点击发送,创建缓冲队列并把数据包载入缓冲队列。本发明通过再现以太网流量提供网络的历史数据,回放网络的历史事件,并采用修改目的MAC地址的方式实现定位,对问题进行实时追踪和处理。
Description
技术领域
本发明涉及一种通信网络,特别是涉及一种以太网流量再生方法。
背景技术
以太网流量在以前只是实时解析或者事后排查,无法在解决问题时再现一些实际的问题。只能根据分析存储的数据包,根据存储的数据包做出应对方案。而有些问题,例如特殊数据包并非一下子就出现,无法定位解决问题和对问题实现跟踪处理。
发明内容
本发明要解决的技术问题,在于提供一种能够再现流量数据包的以太网流量再生方法,对问题进行实时追踪和处理。
本发明是这样实现的:一种以太网流量再生方法,该方法通过将数据包存储和定位的方式对问题进行实时追踪和处理,所述方法需提供winpcap驱动、网卡、文件管理器和数据包发送控制模块;
所述文件管理器用于将待发送的数据包载入缓冲区;
所述数据包发送控制模块用于控制数据包的发送速率、修改MAC地址、控制循环发送和控制流量波动;
该方法包括如下步骤:
步骤1、检查winpcap驱动,初始化网卡列表;
步骤2、创建发送队列,添加/删除数据包文件到发送队列;
步骤3、数据包发送控制模块设置发送参数;
步骤4、选择发送数据包的网卡;
步骤5、点击发送,文件管理器将待发送的数据包文件载入到缓冲队列准备发送;
步骤6、发送成功。
进一步的,所述步骤1具体为:检查winpcap驱动是否正常,若winpcap驱动正常,则初始化驱动网卡列表,若winpcap驱动异常,则需要人为对驱动进行异常处理后再重新进行检查。
进一步的,所述步骤3中的参数包括发送速率、流量大小、循环发送和是否改变目的MAC。
进一步的,所述步骤5的缓冲队列在内存中被创建,当不再需要缓冲队列时,释放缓冲队列所占用的内存。
进一步的,所述步骤6具体为:发送成功,根据步骤3中设置的循环发送参数会自动停止或者循环发送。
本发明具有如下优点:以太网流量再生方法通过再现以太网流量提供网络的历史数据,回放网络的历史事件,并采用修改目的MAC地址的方式实现定位,对问题进行实时追踪和处理。本发明通过对网卡丢包率的统计测试网卡硬件的性能,在网络压力测试中通过瞬间提高网络流量来测试网络的承载能力,以及通过统计网络中的攻击数据来测试网络的安全防护能力,大大提高了软件测试的准确性和针对性。
附图说明
下面参照附图结合实施例对本发明作进一步的说明。
图1为本发明逻辑结构图。
图2为本发明方法执行流程图。
具体实施方式
如图1和图2所示,一种以太网流量再生方法,所述方法通过将数据包存储和定位的方式对问题进行实时追踪和处理,所述方法包括winpcap驱动、网卡、文件管理器和数据包发送控制模块,该方法把数据包存储下来并发送给供分析的系统进行分析和改进;
所述文件管理器用于将待发送的数据包载入缓冲区;
所述数据包发送控制模块用于控制数据包的发送速率、修改MAC地址、控制循环发送和控制流量波动;
该方法包括如下步骤:
步骤1、检查winpcap驱动是否正常,若winpcap驱动正常,则初始化驱动网卡列表,若winpcap驱动异常,则需要人为对驱动进行异常处理后再重新进行检查;
步骤2、创建发送队列,添加/删除数据包文件到发送队列;
步骤3、数据包发送控制模块设置发送参数,该发送参数包括发送速率、流量大小、循环发送和是否改变目的MAC;
步骤4、选择发送数据包的网卡;
步骤5、点击发送,在内存中建立缓冲队列,文件管理器将待发送的数据包文件载入到缓冲队列准备发送,当不再需要缓冲队列时,释放缓冲队列所占用的内存;
步骤6、发送成功,根据步骤3中设置的循环发送参数会自动停止或者循环发送。
其中,设置发送流量大小,在模拟现场网络流量,若实验中没有3Gbps的流量做研究,就可以通过多台发生不同流量到研究的设备进行现场模拟;循环发送控制一个发送队列发送的次数;在分析需要发送数据时改变MAC地址便于定位。
另外,Winpcap提供了一种高级的,强大的,结构更优的方法来发送一组数据包。发送队列是一个容器,它能容纳不同数量的数据包,这些数据包将被发送到网络上。发送队列的大小代表了它能存储的数据包的最大数量。发送队列通过调用pcap_sendqueue_alloc()函数(pcap_send_queue*pcap_sendqueue_alloc(u_int memsize))创建,并且需要指定队列的大小。一旦发送队列被创建,pcap_sendqueue_queue()函数就可以将数据包添加到发送队列中。pcap_sendqueue_queue()函数:
int pcap_sendqueue_queue(pcap_send_queue*queue,
const struct pcap_pkthdr*pkt_header,
const u_char*pkt_data);
pcap_sendqueue_queue()函数的参数包含一个pcap_pkthdr的结构体,它包含三个参数:时间戳、长度和一个指向数据包数据的缓冲。这些参数和那些被pcap_next_ex()和pcap_handler()接收到的数据相同,因此,为那些刚刚捕获到的或是从文件读取出来的数据包排队,就相当于把这三个参数传递给pcap_sendqueue_queue()。
为一个发送队列分配空间,即创建一个用来存储一组原始数据包(rawpacket)的缓冲区,这些数据包将用pcap_sendqueue_transmit()提交到网络上。memsize是队列容纳的字节数,它决定了队列所能容纳的最大数据量。使用pcap_sendqueue_queue()可以在发送队列中插入数据包。
添加一个数据包到发送队列中。queue指向发送队列的尾部;pkt_header指向一个pcap_pkthdr结构体,该结构体包含时间戳和数据包的长度;pkt_data指向存放数据包数据部分的缓冲区。
WinPcap提供了pcap_sendqueue_transmit()函数来发送一个队列。
pcap_sendqueue_transmit()函数:
u_int pcap_sendqueue_transmit(pcap_t*p,
pcap_send_queue*queue,
int sync);
该函数将队列里的内容提交到线路上。p是一个指向适配器的指针,数据包将在这个适配器上被发送;queue指向pcap_send_queue结构体,它包含着要发送的所有数据包;sync决定了发送操作是否被同步,如果非零,则发送数据包关系到时间戳,否则,他们将以最快的速度发送(即不考虑时间戳)。返回值是发送的字节数,如果它小于size参数,将发生一个错误。该错误可能是由于驱动/适配器(driver/adapter)问题或发送队列的不一致/伪造(inconsistent/bogus)引起。
使用pcap_sendqueue_transmit()函数的效率比使用pcap_sendpacket()发送一系列数据包的效率高,因为数据包在核心态(kernel-level)被缓冲,所以降低了上下文的交换次数。因此,使用pcap_sendqueue_transmit()更好。
当sync被设置为TRUE时,随着一个高精度的时间戳,数据包将在内核伴被同步。这就要求CPU的数量是不可忽略的,通常允许以一个微秒级的精度发送数据包(这依赖于机器性能计数器的准确度)。然而,用pcap_sendpacket()发送数据包不能达到这样一个精确度。
虽然以上描述了本发明的具体实施方式,但是熟悉本技术领域的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
Claims (5)
1.一种以太网流量再生方法,其特征在于:所述方法通过将数据包存储和定位的方式对问题进行实时追踪和处理,所述方法需提供winpcap驱动、网卡、文件管理器和数据包发送控制模块;
所述文件管理器用于将待发送的数据包载入缓冲区;
所述数据包发送控制模块用于控制数据包的发送速率、修改MAC地址、控制循环发送和控制流量波动;
该方法包括如下步骤:
步骤1、检查winpcap驱动,初始化网卡列表;
步骤2、创建发送队列,添加/删除数据包文件到发送队列;
步骤3、数据包发送控制模块设置发送参数;
步骤4、选择发送数据包的网卡;
步骤5、点击发送,文件管理器将待发送的数据包文件载入到缓冲队列准备发送;
步骤6、发送成功。
2.根据权利要求1所述的一种以太网流量再生方法,其特征在于:所述步骤1具体为:检查winpcap驱动是否正常,若winpcap驱动正常,则初始化驱动网卡列表,若winpcap驱动异常,则需要人为对驱动进行异常处理后再重新进行检查。
3.根据权利要求1所述的一种以太网流量再生方法,其特征在于:所述步骤3中的参数包括发送速率、流量大小、循环发送和是否改变目的MAC。
4.根据权利要求1所述的一种以太网流量再生方法,其特征在于:所述步骤5的缓冲队列在内存中被创建,当不再需要缓冲队列时,释放缓冲队列所占用的内存。
5.根据权利要求1所述的一种以太网流量再生方法,其特征在于:所述步骤6具体为:发送成功,根据步骤3中设置的循环发送参数会自动停止或者循环发送。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410327556.1A CN104079435A (zh) | 2014-07-10 | 2014-07-10 | 一种以太网流量再生方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410327556.1A CN104079435A (zh) | 2014-07-10 | 2014-07-10 | 一种以太网流量再生方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN104079435A true CN104079435A (zh) | 2014-10-01 |
Family
ID=51600491
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410327556.1A Pending CN104079435A (zh) | 2014-07-10 | 2014-07-10 | 一种以太网流量再生方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104079435A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704375A (zh) * | 2016-08-09 | 2018-02-16 | 厦门雅迅网络股份有限公司 | 一种录制和回放网络端口上行数据的系统和方法 |
CN107995066A (zh) * | 2017-12-19 | 2018-05-04 | 曙光信息产业股份有限公司 | 一种自动化测试网卡的方法和装置 |
CN108600034A (zh) * | 2018-05-28 | 2018-09-28 | 腾讯科技(深圳)有限公司 | 业务压力管理方法、装置、设备、系统及存储介质 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1434382A (zh) * | 2002-04-01 | 2003-08-06 | 北京港湾网络有限公司 | IEEE802.1x网络接入设备的测试方法及系统 |
CN101753375A (zh) * | 2009-12-11 | 2010-06-23 | 中国航空无线电电子研究所 | 航电仿真环境udp网络数据包调试装置及其方法 |
CN101841441A (zh) * | 2010-05-05 | 2010-09-22 | 北京星网锐捷网络技术有限公司 | 流量控制设备的测试方法、系统及数据流回放装置 |
CN102469088A (zh) * | 2010-11-17 | 2012-05-23 | 郑州威科姆科技股份有限公司 | 基于udp协议的大量数据传输方法 |
CN102565585A (zh) * | 2012-01-10 | 2012-07-11 | 上海电力学院 | 一种智能变电站继电保护协同仿真测试系统建立方法 |
CN102624577A (zh) * | 2011-01-30 | 2012-08-01 | 深圳市恒扬科技有限公司 | 一种流量再现方法及系统 |
-
2014
- 2014-07-10 CN CN201410327556.1A patent/CN104079435A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1434382A (zh) * | 2002-04-01 | 2003-08-06 | 北京港湾网络有限公司 | IEEE802.1x网络接入设备的测试方法及系统 |
CN101753375A (zh) * | 2009-12-11 | 2010-06-23 | 中国航空无线电电子研究所 | 航电仿真环境udp网络数据包调试装置及其方法 |
CN101841441A (zh) * | 2010-05-05 | 2010-09-22 | 北京星网锐捷网络技术有限公司 | 流量控制设备的测试方法、系统及数据流回放装置 |
CN102469088A (zh) * | 2010-11-17 | 2012-05-23 | 郑州威科姆科技股份有限公司 | 基于udp协议的大量数据传输方法 |
CN102624577A (zh) * | 2011-01-30 | 2012-08-01 | 深圳市恒扬科技有限公司 | 一种流量再现方法及系统 |
CN102565585A (zh) * | 2012-01-10 | 2012-07-11 | 上海电力学院 | 一种智能变电站继电保护协同仿真测试系统建立方法 |
Non-Patent Citations (3)
Title |
---|
HTTP://WENKU.BAIDU.COM/VIEW/90FB7FF47C1CFAD6195FA713.HTML?FROM=S: ""循序渐进学习使用WINPCAP(八)"", 《百度文库》 * |
HTTP://WENKU.BAIDU.COM/VIEW/AB5F79030740BE1E650E9A65.HTML?FROM=S: ""SharpPcap开发全攻略( 中文版)"", 《百度文库》 * |
杨云江 等: ""基于数据包缓存的伪IP地址实时追踪技术的研究"", 《贵州大学学报(自然科学版)》 * |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107704375A (zh) * | 2016-08-09 | 2018-02-16 | 厦门雅迅网络股份有限公司 | 一种录制和回放网络端口上行数据的系统和方法 |
CN107995066A (zh) * | 2017-12-19 | 2018-05-04 | 曙光信息产业股份有限公司 | 一种自动化测试网卡的方法和装置 |
CN108600034A (zh) * | 2018-05-28 | 2018-09-28 | 腾讯科技(深圳)有限公司 | 业务压力管理方法、装置、设备、系统及存储介质 |
CN108600034B (zh) * | 2018-05-28 | 2020-07-03 | 腾讯科技(深圳)有限公司 | 业务压力管理方法、装置、设备、系统及存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9570124B2 (en) | High speed logging system | |
Emmerich et al. | FlowScope: Efficient packet capture and storage in 100 Gbit/s networks | |
CN103927305B (zh) | 一种对内存溢出进行控制的方法和设备 | |
CN101090295A (zh) | 一种ason网络的测试系统及方法 | |
CN103312566A (zh) | 检测报文端口拥塞的方法及装置 | |
US11677769B2 (en) | Counting SYN packets | |
CN103188116A (zh) | 一种刀片服务器的网络性能检测方法和系统 | |
CN104079435A (zh) | 一种以太网流量再生方法 | |
CN106301987A (zh) | 一种报文丢失检测方法、装置及系统 | |
US20140201354A1 (en) | Network traffic debugger | |
CN111181800A (zh) | 测试数据处理方法、装置、电子设备及存储介质 | |
CN103986585A (zh) | 报文预处理方法及其装置 | |
CN103036721A (zh) | 云计算环境下的流量统计方法 | |
CN108062235A (zh) | 数据处理方法及装置 | |
CN106373616A (zh) | 一种检测随机存储器故障的方法、装置和网络处理器 | |
CN104573135B (zh) | 基于反射内存网与中间件技术的实时数据采集方法及装置 | |
CN110825533B (zh) | 一种数据发射方法及装置 | |
CN105099942B (zh) | 一种数据包处理方法及设备 | |
CN107193839A (zh) | 数据聚合方法及装置 | |
CN107436904A (zh) | 数据获取方法及其设备 | |
CN106557530B (zh) | 业务系统、数据修复方法及装置 | |
Julián-Moreno et al. | On the feasibility of 40 gbps network data capture and retention with general purpose hardware | |
CN110830385A (zh) | 一种捕包处理方法、网络设备、服务器及存储介质 | |
CN107967172B (zh) | 一种面向异构存储的Spark任务动态迁移方法和系统 | |
CN102004761B (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 | ||
WD01 | Invention patent application deemed withdrawn after publication |
Application publication date: 20141001 |
|
WD01 | Invention patent application deemed withdrawn after publication |