一种以太网流量再生方法

文档序号:7808613阅读:309来源:国知局
一种以太网流量再生方法
【专利摘要】本发明提供一种以太网流量再生方法,所述方法需提供winpcap驱动、网卡、文件管理器和数据包发送控制模块;所述文件管理器用于将待发送的数据包载入缓冲区;所述数据包发送控制模块用于控制数据包的发送速率、修改MAC地址、控制循环发送和控制流量波动;所述方法包括如下步骤:检查winpcap驱动,初始化网卡列表;创建发送列表;设置发送参数;选择发送数据包的网卡;点击发送,创建缓冲队列并把数据包载入缓冲队列。本发明通过再现以太网流量提供网络的历史数据,回放网络的历史事件,并采用修改目的MAC地址的方式实现定位,对问题进行实时追踪和处理。
【专利说明】一种以太网流量再生方法

【技术领域】
[0001]本发明涉及一种通信网络,特别是涉及一种以太网流量再生方法。

【背景技术】
[0002]以太网流量在以前只是实时解析或者事后排查,无法在解决问题时再现一些实际的问题。只能根据分析存储的数据包,根据存储的数据包做出应对方案。而有些问题,例如特殊数据包并非一下子就出现,无法定位解决问题和对问题实现跟踪处理。


【发明内容】

[0003]本发明要解决的技术问题,在于提供一种能够再现流量数据包的以太网流量再生方法,对问题进行实时追踪和处理。
[0004]本发明是这样实现的:一种以太网流量再生方法,该方法通过将数据包存储和定位的方式对问题进行实时追踪和处理,所述方法需提供winpcap驱动、网卡、文件管理器和数据包发送控制模块;
[0005]所述文件管理器用于将待发送的数据包载入缓冲区;
[0006]所述数据包发送控制模块用于控制数据包的发送速率、修改MAC地址、控制循环发送和控制流量波动;
[0007]该方法包括如下步骤:
[0008]步骤1、检查winpcap驱动,初始化网卡列表;
[0009]步骤2、创建发送队列,添加/删除数据包文件到发送队列;
[0010]步骤3、数据包发送控制模块设置发送参数;
[0011]步骤4、选择发送数据包的网卡;
[0012]步骤5、点击发送,文件管理器将待发送的数据包文件载入到缓冲队列准备发送;
[0013]步骤6、发送成功。
[0014]进一步的,所述步骤I具体为:检查winpcap驱动是否正常,若winpcap驱动正常,则初始化驱动网卡列表,若winpcap驱动异常,则需要人为对驱动进行异常处理后再重新进行检查。
[0015]进一步的,所述步骤3中的参数包括发送速率、流量大小、循环发送和是否改变目的 MAC。
[0016]进一步的,所述步骤5的缓冲队列在内存中被创建,当不再需要缓冲队列时,释放缓冲队列所占用的内存。
[0017]进一步的,所述步骤6具体为:发送成功,根据步骤3中设置的循环发送参数会自动停止或者循环发送。
[0018]本发明具有如下优点:以太网流量再生方法通过再现以太网流量提供网络的历史数据,回放网络的历史事件,并采用修改目的MAC地址的方式实现定位,对问题进行实时追踪和处理。本发明通过对网卡丢包率的统计测试网卡硬件的性能,在网络压力测试中通过瞬间提高网络流量来测试网络的承载能力,以及通过统计网络中的攻击数据来测试网络的安全防护能力,大大提高了软件测试的准确性和针对性。

【专利附图】

【附图说明】
[0019]下面参照附图结合实施例对本发明作进一步的说明。
[0020]图1为本发明逻辑结构图。
[0021]图2为本发明方法执行流程图。

【具体实施方式】
[0022]如图1和图2所示,一种以太网流量再生方法,所述方法通过将数据包存储和定位的方式对问题进行实时追踪和处理,所述方法包括winpcap驱动、网卡、文件管理器和数据包发送控制模块,该方法把数据包存储下来并发送给供分析的系统进行分析和改进;
[0023]所述文件管理器用于将待发送的数据包载入缓冲区;
[0024]所述数据包发送控制模块用于控制数据包的发送速率、修改MAC地址、控制循环发送和控制流量波动;
[0025]该方法包括如下步骤:
[0026]步骤1、检查winpcap驱动是否正常,若winpcap驱动正常,则初始化驱动网卡列表,若winpcap驱动异常,则需要人为对驱动进行异常处理后再重新进行检查;
[0027]步骤2、创建发送队列,添加/删除数据包文件到发送队列;
[0028]步骤3、数据包发送控制模块设置发送参数,该发送参数包括发送速率、流量大小、循环发送和是否改变目的MAC ;
[0029]步骤4、选择发送数据包的网卡;
[0030]步骤5、点击发送,在内存中建立缓冲队列,文件管理器将待发送的数据包文件载入到缓冲队列准备发送,当不再需要缓冲队列时,释放缓冲队列所占用的内存;
[0031]步骤6、发送成功,根据步骤3中设置的循环发送参数会自动停止或者循环发送。
[0032]其中,设置发送流量大小,在模拟现场网络流量,若实验中没有3Gbps的流量做研究,就可以通过多台发生不同流量到研究的设备进行现场模拟;循环发送控制一个发送队列发送的次数;在分析需要发送数据时改变MAC地址便于定位。
[0033]另外,Winpcap提供了一种高级的,强大的,结构更优的方法来发送一组数据包。发送队列是一个容器,它能容纳不同数量的数据包,这些数据包将被发送到网络上。发送队列的大小代表了它能存储的数据包的最大数量。发送队列通过调用pcap_sendqueue_alloc O函数(pcap_send_queue*pcap_sendqueue_alloc (u_int memsize))创建,并且需要指定队列的大小。一旦发送队列被创建,pcap_sendqueue_queue O函数就可以将数据包添加到发送队列中。pcap_sendqueue_queue O 函数:
[0034]int pcap_sendqueue_queue(pcap_send_queue氺queue,
[0035]const struct pcap_pkthdr氺pkt_header,
[0036]const u_char*pkt_data);
[0037]pcap_sendqueue_queue ()函数的参数包含一个pcap_pkthdr的结构体,它包含三个参数:时间戳、长度和一个指向数据包数据的缓冲。这些参数和那些被pCap_neXt_eX()和pcap_handler()接收到的数据相同,因此,为那些刚刚捕获到的或是从文件读取出来的数据包排队,就相当于把这三个参数传递给pcap_sendqueue_queue O。
[0038]为一个发送队列分配空间,即创建一个用来存储一组原始数据包(raw packet)的缓冲区,这些数据包将用pcap_sendqueue_transmit O提交到网络上。memsize是队列容纳的字节数,它决定了队列所能容纳的最大数据量。使用pcap_sendqueue_queue O可以在发送队列中插入数据包。
[0039]添加一个数据包到发送队列中。queue指向发送队列的尾部;pkt_header指向一个pcap_pkthdr结构体,该结构体包含时间戳和数据包的长度;pkt_data指向存放数据包数据部分的缓冲区。
[0040]WinPcap 提供了 pcap_sendqueue_transmit O 函数来发送一个队列。
[0041]pcap_sendqueue_transmit ()函数:
[0042]u_int pcap_sendqueue_transmit(pcap_t*p,
[0043]pcap_send_queue氺queue,
[0044]int sync);
[0045]该函数将队列里的内容提交到线路上。p是一个指向适配器的指针,数据包将在这个适配器上被发送;queue指向pcap_send_queue结构体,它包含着要发送的所有数据包;sync决定了发送操作是否被同步,如果非零,则发送数据包关系到时间戳,否则,他们将以最快的速度发送(即不考虑时间戳)。返回值是发送的字节数,如果它小于size参数,将发生一个错误。该错误可能是由于驱动/适配器(driver/adapter)问题或发送队列的不一致 / 伪造(inconsistent/bogus)弓I起。
[0046]使用pcap_sendqueue_transmit O 函数的效率比使用 pcap_sendpacket O 发送一系列数据包的效率高,因为数据包在核心态(kernel-level)被缓冲,所以降低了上下文的交换次数。因此,使用pcap_sendqueue_transmit O更好。
[0047]当sync被设置为TRUE时,随着一个高精度的时间戳,数据包将在内核伴被同步。这就要求CPU的数量是不可忽略的,通常允许以一个微秒级的精度发送数据包(这依赖于机器性能计数器的准确度)。然而,用pcap_sendpacket O发送数据包不能达到这样一个精确度。
[0048]虽然以上描述了本发明的【具体实施方式】,但是熟悉本【技术领域】的技术人员应当理解,我们所描述的具体的实施例只是说明性的,而不是用于对本发明的范围的限定,熟悉本领域的技术人员在依照本发明的精神所作的等效的修饰以及变化,都应当涵盖在本发明的权利要求所保护的范围内。
【权利要求】
1.一种以太网流量再生方法,其特征在于:所述方法通过将数据包存储和定位的方式对问题进行实时追踪和处理,所述方法需提供Winpcap驱动、网卡、文件管理器和数据包发送控制模块; 所述文件管理器用于将待发送的数据包载入缓冲区; 所述数据包发送控制模块用于控制数据包的发送速率、修改MAC地址、控制循环发送和控制流量波动; 该方法包括如下步骤: 步骤1、检查winpcap驱动,初始化网卡列表; 步骤2、创建发送队列,添加/删除数据包文件到发送队列; 步骤3、数据包发送控制模块设置发送参数; 步骤4、选择发送数据包的网卡; 步骤5、点击发送,文件管理器将待发送的数据包文件载入到缓冲队列准备发送; 步骤6、发送成功。
2.根据权利要求1所述的一种以太网流量再生方法,其特征在于:所述步骤I具体为:检查winpcap驱动是否正常,若winpcap驱动正常,则初始化驱动网卡列表,若winpcap驱动异常,则需要人为对驱动进行异常处理后再重新进行检查。
3.根据权利要求1所述的一种以太网流量再生方法,其特征在于:所述步骤3中的参数包括发送速率、流量大小、循环发送和是否改变目的MAC。
4.根据权利要求1所述的一种以太网流量再生方法,其特征在于:所述步骤5的缓冲队列在内存中被创建,当不再需要缓冲队列时,释放缓冲队列所占用的内存。
5.根据权利要求1所述的一种以太网流量再生方法,其特征在于:所述步骤6具体为:发送成功,根据步骤3中设置的循环发送参数会自动停止或者循环发送。
【文档编号】H04L12/24GK104079435SQ201410327556
【公开日】2014年10月1日 申请日期:2014年7月10日 优先权日:2014年7月10日
【发明者】黄文峰, 刘少军, 许辉奇 申请人:南威软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1