一种数据发送控制方法及网卡的制作方法

文档序号:8322167阅读:263来源:国知局
一种数据发送控制方法及网卡的制作方法
【技术领域】
[0001]本发明涉及数据发送,具体涉及网卡的数据发送控制方法及网卡,属于计算机网络技术领域。
【背景技术】
[0002]在网络通信系统的测试中,产生数据流是构成网络测试环境的重要部分,通常被广泛地应用在模拟网络流量、测试防火墙、测试IDS/IPS以及对多种网络错误进行挑错的主动测试工作中。网卡是一种发送数据流较为常见的硬件,开源驱动程序Winpcap带有数据包生成功能,因而常被用于网卡发送数据流的过程,但是基于Winpcap发送数据流的控制方法却较为简单,通常只为线速发送。图1为线速控制方式示意图。具体来说,其在发送数据流时,一般是按照网卡的最大发送性能(即,最大线速)发送数据流,且无法构成不同条件形态流量的测试数据流。简单来说,若设置发送某固定速率时,通过Winpcap简单地实现速率控制方法是每秒按照间隔=(设置的发送速率/网卡最大速率)循环发送。
[0003]然而,上述利用Winpcap发送数据流的方法适用的测试场景只能较为简单,并且限速发送时每秒钟的流量呈现突发现象,前紧后松;从另一方面来说,不同的网卡同时进行测试时,由于数据流的发送过程由网卡自身控制,而不同网卡的硬件属性存在较大的差异,因此存在不同网卡因硬件性能差异导致的流量控制精确度偏差不一的现象。

【发明内容】

[0004]本发明所要解决的技术问题是提供一种数据发送控制方法,以解决现有技术中流量发送控制精确度较低的现象。
[0005]为了解决上述技术问题,本申请提供了一种数据发送控制方法,应用于网卡,所述方法包括:
[0006]根据预先配置的发送模式生成空白的数据文件;
[0007]在所述空白的数据文件中写入根据预配置速率所确定的时间戳及该时间戳对应的报文内容;
[0008]触发所述数据文件,并按照其中的时间戳发送对应报文。
[0009]优选地,
[0010]所述生成空白的数据文件为:利用开源驱动程序Winpcap生成空白的pcap文件。
[0011]优选地,
[0012]所述发送模式为:以一个数据流发送一个数据文件的单流发送模式或者以多个数据流同时发送多个数据文件且一个数据流发送一个数据文件的多流发送模式;
[0013]所述根据预先配置的发送模式生成空白的数据文件包括:
[0014]当所述发送模式为单流发送模式时,生成一个空白的数据文件;
[0015]当所述发送模式为多流发送模式时,生成与待发送数据流个数相同个数的空白的数据文件。
[0016]优选地,
[0017]所述在空白的数据文件中写入根据预配置速率所确定的时间戳及该时间戳对应的报文内容包括:
[0018]确定待写入一个数据文件的多种条件形态的数据及其发送顺序;
[0019]按照各条件形态分别确定每个数据的发送速率,并基于所确定的速率分别确定时间戳;
[0020]在所述空白的数据文件中按照发送顺序写入所确定的时间戳及该时间戳对应的报文内容。
[0021]优选地,
[0022]在所述空白的数据文件中写入根据预配置速率所确定的时间戳及该时间戳对应的报文内容之前,所述根据预先配置的发送模式生成空白的数据文件之后还包括:
[0023]对所述报文内容的速率进行合法性判断,当单流发送模式时预设的各数据流的发送速率的最大值小于或等于所述网卡的最大物理速率时进行写操作,或者当多流发送模式时预设的各数据流的发送速率总和小于或等于所述网卡的最大物理速率时写入操作。
[0024]优选地,
[0025]所述触发所述数据文件,并按照其中的时间戳发送对应报文进一步地包括:
[0026]触发所述数据文件时从CPU中获取到当前时钟记为测试报文发送的相对时间起占.V,
[0027]以所述数据文件中记录的时间戳为累计时间计算确定所述报文发送时间并发送该报文。
[0028]优选地,
[0029]该方法还包括:所述按照时间戳发送对应报文的持续时间不少于设定时长。
[0030]本发明提供一种基于数据发送控制方法的网卡,所述网卡包括:
[0031]初始化模块,用于根据预先配置的发送模式生成空白的数据文件;
[0032]配置模块,用于在所述空白的数据文件中写入根据预配置速率所确定的时间戳及该时间戳对应的报文内容;
[0033]发送模块,用于触发所述数据文件,并按照其中的时间戳发送对应报文。
[0034]优选地,
[0035]所述初始化模块生成的空白的数据文件为:利用开源驱动程序Winpcap生成空白的pcap文件。
[0036]优选地,
[0037]所述发送模式为:以一个数据流发送一个数据文件的单流发送模式或者以多个数据流同时发送多个数据文件且一个数据流发送一个数据文件的多流发送模式;
[0038]所述初始化模块用于根据预先配置的发送模式生成空白的数据文件是指:
[0039]当所述发送模式为单流发送模式时,生成一个空白的数据文件;
[0040]当所述发送模式为多流发送模式时,生成与待发送数据流个数相同个数的空白的数据文件。
[0041]优选地,
[0042]所述配置模块用于在空白的数据文件中写入根据预配置速率所确定的时间戳及该时间戳对应的报文内容是指:
[0043]确定待写入一个数据文件的多种条件形态的数据及其发送顺序;
[0044]按照各条件形态分别确定每个数据的发送速率,并基于所确定的速率分别确定时间戳;
[0045]在所述空白的数据文件中按照发送顺序写入所确定的时间戳及该时间戳对应的报文内容。
[0046]优选地,
[0047]该网卡还包括:
[0048]判断模块,用于在所述空白的数据文件中写入报文内容之前,对所述报文内容的速率进行合法性判断,当单流发送模式时预设的各数据流的发送速率的最大值小于或等于所述网卡的最大物理速率时进行写操作,或者当多流发送模式时预设的各数据流的发送速率总和小于或等于所述网卡的最大物理速率时写入操作。
[0049]优选地,
[0050]所述发送模块用于触发所述数据文件,并按照其中的时间戳发送对应报文是指:
[0051]触发所述数据文件时从CPU中获取到当前时钟记为测试报文发送的相对时间起占.V,
[0052]以所述数据文件中记录的时间戳为累计时间计算确定所述报文发送时间并发送该报文。
[0053]优选地,
[0054]所述发送模块还用于按照时间戳发送对应报文的持续时间不少于设定时长。
[0055]上述方案使用以太网帧结构中时间戳字段作为网卡发送报文的时间依据,通过设置各报文的时间戳来实现控制数据流发送速率,提高了网卡发送数据的精度,同时也避免了由于硬件差异所带来的流量效果偏差,该方案可以结合winpcap程序实现。
【附图说明】
[0056]图1是线速控制方式示意图;
[0057]图2是本发明实施例一中的数据发送控制方法流程图;
[0058]图3是本发明实施例一中的数据发送控制方法又一流程图;
[0059]图4是本发明实施例一中的爬坡稳定型流量模型的示意图;
[0060]图5是本发明实施例一中的抖动型流量模型的示意图;
[0061]图6是本发明实施例一中的突发型流量模型的示意图;
[0062]图7是本发明实施例一中增加时间戳后的数据发送控制方式示意图;
[0063]图8是本发明实施例中的基于数据发送控制方法的网卡结构示意图。
【具体实施方式】
[0064]为使本申请的目的、技术方案和优点更加清楚明白,下文中将结合附图对本申请的实施例进行详细说明。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。
[0065]本申请实施例提出的数据发送方法和网卡借助于Winpcap,而非完全依靠Winpcap来产生数据流,形成可构成不同条件形态的测试数据的数据流发送,并且进一步地,在本申请的实施例中使用CPU时钟作为各网卡发包的统一时间依据,通过设置各报文的发包时间,来实现控制发包速率的目的。
[0066]实施例一
[0067]在本发明的实施例中,为了实现网卡按需发送报文,需要预先设置允许的数据流发送模式,以及可能的数据流报文内容,报文发送速率信息;此处,数据流的发送模式可选地为:单流发送模式或多流发送模式,其中,单流发送模式指网卡在某一时间点只发送一种条件形态的数据流,但是不同时间点可以发送不同条件形态的数据流;多流发送模式指可同时发送多种不同条件形态的数据流,每个数据流可单独控制发送速率,以满足构造复杂测试或根据不同协议类型构造不同数据流同时测试。上述的预先设置可以存储在网卡上的相关模块中,也可以存储在网卡发送数据包时可直接调用的其它地方,此处不做限定。
[0068]如图2所示,本实施例提供一种数据发送控制方法,应用于网卡,所述方法包括:
[0069]步骤SlOl:根据预先配置的发送模式生成空白的数据文件;
[0070]步骤S103:在所述空白的数据文件中写入根据预配置速率所确定的
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1