一种测试数据包封装方法及设备的制作方法

文档序号:7761095阅读:415来源:国知局
专利名称:一种测试数据包封装方法及设备的制作方法
技术领域
本发明涉及网络性能测试技术领域,尤其涉及一种测试数据包封装方法及设备。
背景技术
协议是用来描述进程之间信息交换数据时的规则术语。在网络中两个相互通信的实体处在不同的地理位置,其上的两个进程相互通信,需要通过交换信息来协调它们的动作和达到同步,而信息的交换必须按照预先共同约定好的过程进行。协议栈是指网络中各层协议的总和,其形象的反映了一个网络中文件传输的过程由上层协议到底层协议,再由底层协议到上层协议。网络中不同实体具有不同的网络接口,不同的网络接口往往具有不同的协议栈封装格式,向这些网络接口发送的数据包应该符合其协议栈封装格式。在演进的LTE系统中, 每个演进基站eNB具有一系列功能和相应的物理接口,多个eNBs之间通过X2接口相互连接。就外部连接而言,eNB通过Sl-U接口连接到EPC (Evolved Packet Core,演进型分组核心)设备,因此EPC设备通过SGi接口连接PDN (packet Data Network,分组数据网)。以EPC设备的Sl-U接口和SGi接口为例,如图1所示为S1-U接口的协议栈封装格式,具体为按如下顺序依次封装净荷数据DATA ;UDP⑴ser Datagram Protocol,用户数据报协议)或 TCP (Transmission Control Protocol,传输控制协议)首部;IP (Internet Protocol,因特网协议)首部;GTP-U(GPRS Tunnelling Protocol for User Plane,GPRS用户平面隧道协议)数据;UDP^ser Datagram Protocol,用户数据报协议)首部;IP首部; 数据链路层L2和物理层Ll。如图2所示为SGi接口的协议栈封装格式,具体为按如下顺序依次封装净荷DATA ;UDP或TCP首部;IP首部;数据链路层L2和物理层Li。在上述两个接口对应的协议栈封装格式中,各层协议数据满足该协议定义的数据格式。如每层协议都有该协议定义的首部,以IP协议为例,如图3所示,其首部长度为20-60 字节,其中包含有关路由选择和交付的重要信息,如版本VER、生存时间、检验和、源和目的 IP地址等等。对网络中数据传输设备进行测试时,往往需要向被测设备的接口发送对应的协议栈封装格式的测试数据包,针对不同的被测设备接口,其测试数据包的协议栈封装格式也往往不尽相同。现有的发包测试工具如Jperf,实现向网络接口发送该接口对应的协议栈封装格式的测试数据包的方式为利用操作系统提供的协议栈接口直接调用操作系统中已经封装好的协议栈,利用调用的协议栈来完成测试数据包的封装。现有的测试工具只能完成一些协议栈封装格式比较简单的测试数据包封装,如完成TCP或UDP/IP形式的协议封装,通过发送此类测试数据包来测试最大TCP和UDP带宽性能等。利用现有发包测试工具虽然可以方便的完成测试数据包封装,但是往往只能发送针对某一类接口的数据包,对于协议栈封装格式较为复杂的接口如Si-U接口,则无法直接
5调用操作系统协议栈来实现。同时,有时候为了更全面的对被测设备接口进行测试,还需要对被测设备进行异常测试,向被测设备接口发送协议首部参数错误的“非法”数据包,例如携带错误IP首部校验和的测试数据包。现有发包测试工具如Jperf封装的测试数据包中,对于协议首部的封装过程实际是由操作系统的协议栈模块来完成的,导致用户和软件开发人员无法修改协议首部参数,因此难以进行异常测试。

发明内容
本发明实施例提供一种测试数据包封装方法及设备、网络设备性能测试方法及系统,用以解决现有发包测试工具不能封装面向不同网络性能测试所需要的测试数据包的缺陷。本发明一种测试数据包封装方法,包括利用能够绕开操作系统调用网络设备驱动来独立发送数据的网络访问系统,构建不同协议的协议单元,设置所述协议单元中对用户开放的数据项,每个协议的协议单元采用该协议定义的数据格式;利用所述网络访问系统,根据用户选择的协议单元、对选择的各协议单元的层次设置及对所选择的协议单元中对用户开放的数据项的修改,进行测试数据包的封装。本发明还提供一种网络设备性能测试方法,包括根据预构建的协议栈封装格式选择网络访问系统构建的协议单元,并设置选择的各协议单元的层次;根据预进行性能测试修改所选择的协议单元中对用户开放的数据项;利用所述网络访问系统构建测试数据包并向目标网络设备发送;根据所述目标网络设备对测试数据包的接收请求进行性能测试。本发明还提供一种测试数据包封装设备,包括构建单元,用于利用能够绕开操作系统调用网络设备驱动来独立发送数据的网络访问系统,构建不同协议的协议单元,设置所述协议单元中对用户开放的数据项,每个协议的协议单元采用该协议定义的数据格式;封装单元,用于利用所述网络访问系统,根据用户选择的协议单元、对选择的各协议单元的层次设置及对所选择的协议单元中对用户开放的数据项的修改,进行测试数据包的封装并发送。本发明还提供一种网络设备性能测试系统,包括选择及设置单元,用于根据预构建的协议栈封装格式选择网络访问系统构建的协议单元,并设置选择的各协议单元的层次;参数修改单元,用于根据预进行性能测试修改所选择的协议单元中对用户开放的数据项;数据发送单元,用于利用所述网络访问系统构建测试数据包并向目标网络设备发送;性能测试单元,用于根据所述目标网络设备对测试数据包的接收请求进行性能测
试ο
利用本发明提供的测试数据包封装方法及设备、网络设备性能测试方法及系统, 具有以下有益效果如下可以由用户根据需要自行选择多个协议单元来组成相应接口的协议栈封装格式;同时,可以协议单元将协议首部的所有参数开放给用户,由用户根据需要填写首部信息,极大的方便了异常测试,甚至可以用来模拟网络攻击。


图1为EPC设备的Sl-U接口对应的协议栈封装格式示意图;图2为EPC设备的SGi接口对应的协议栈封装格式示意图;图3为现有IP协议的首部的格式示意图;图4为本发明提供的测试数据包封装方法流程图;图5为依照本发明实施例中测试数据包封装方法流程图;图6为采用获取界面获取用户选择的协议单元及输入参数示意图;图7为依照本发明实施例Sl-U接口的测试数据包封装流程图;图8为依照本发明实施例中采用分片处理时Sl-U接口的测试数据包封装流程图;图9为依照本发明实施例中网络设备性能测试方法流程图;图10为依照本发明实施例中测试数据包封装设备结构图;图11为依照本发明实施例中网络设备性能测试系统结构图。
具体实施例方式下面结合附图和实施例对本发明提供的测试数据包封装方法及设备、网络设备性能测试方法及系统,进行更详细地说明。本发明针对现有发包测试工具调用操作系统中已经封装好的协议栈完成测试数据包的封装的缺陷,为了使发送的数据包满足不同网络接口的协议栈封装格式,同时,为了能够设置各层协议首部的参数,提供了一种测试数据包封装方法,能够灵活的自定义协议栈封装格式和进行参数修改,如图4所示,该方法包括步骤S401,利用能够绕开操作系统调用网络设备驱动来独立发送数据的网络访问系统,设置所述协议单元中对用户开放的数据项,构建不同协议的协议单元,每个协议的协议单元采用该协议定义的数据格式;为了绕开计算机操作系统的协议栈模块将原始数据包发送至网络,需要具有访问网络底层能力并调用网络设备驱动的网络访问系统,利用这种系统,可以向目的接口发送任意协议栈封装格式的数据包。而无论是Windows平台还是Linux平台都提供这样的网络访问系统,它可以绕开计算机操作系统的协议栈模块,直接调用网络设备驱动程序,将原始数据包发送至网络。为了使测试数据包的协议栈封装格式满足被测接口的协议栈封装格式的要求,本发明利用网络访问系统构建了多个常用协议的协议单元。并设置所述协议单元中对用户开放的数据项,从而用户可以对这些数据项进行修改。步骤S402,利用所述网络访问系统,根据用户选择的协议单元、对选择的各协议单元的层次设置及对所选择的协议单元中对用户开放的数据项的修改,进行测试数据包的封
7装。可见,本发明提供的测试数据包封装方法,使用户能够种灵活的自定义协议栈封装格式和协议单元中对用户开放的参数如协议首部参数,具体地,本发明通过构建一系列常用协议的协议单元,由用户根据需要自行选择多个协议单元来组成相应接口的协议栈封装格式;同时,协议单元将协议首部的所有参数开放给用户,由用户根据需要填写首部信息,极大的方便了异常测试,甚至可以用来模拟网络攻击。优选地,本实施例中上述网络访问系统为Winpcap系统,Winpcap系统具有访问网络底层的能力,能够独立于本机操作系统的协议栈模块发送原始数据包,利用Winpcap系统的这种能力,通过定义常用协议的协议单元及开放一些参数,可以向目的接口发送任意封装模式的测试数据包。为了使数据的封装模式满足被测接口协议栈封装格式的要求,本实施例中利用网络访问系统构建的不同协议的协议单元可以包括IP协议的协议单元、UDP协议的协议单元、TCP协议的协议单元、GTP-U协议的协议单元、ARP (Address Resolution Protocol地址角军析协议)的协议单元、ICMPdnternet Control Message Protocol, Internet 控制 艮文协议)的协议单元等。每个协议的协议单元采用该协议定义的数据格式,具体开放的数据项可以灵活设置。优选地,本实施例中利用所述网络访问系统设置的各协议的协议单元中对用户开放的数据项,具体为各协议定义的首部的参数项。依照本发明的实施例中,测试数据包的封装方法如图5所示,包括步骤S501,利用能够绕开操作系统调用网络设备驱动来独立发送数据的网络访问系统,构建不同协议的协议单元,设置所述协议单元中对用户开放的数据项,每个协议的协议单元采用该协议定义的数据格式,初始化每个协议的协议单元中各数据项的默认值;各协议的协议单元中数据项可能既包括对用户开放的数据项也可能包未对用户开放的数据项,本发明实施例都初始化有默认值。步骤S502,根据用户选择的协议单元及对选择的各协议单元的层次设置构建测试数据包的协议栈封装格式;因此,用户可以根据接收测试数据包设备的接口对应的协议栈封装格式,选择相应的协议单元构建被测接口的协议栈封装格式。步骤S503,根据构建的协议栈封装格式、用户对所选择的协议单元中对用户开放的数据项的修改及未修改的数据项默认值,构建协议栈封装格式对应的数据结构;协议单元包含了本协议首部信息,本实施例将协议首部的所有参数默认值内嵌在协议单元的结构中,并且将这些参数开放给用户,由用户根据需要填写相应的值。图6给出了 IP协议的协议单元、UDP协议的协议单元内嵌的协议首部参数,这两个协议单元构建了 UDP/IP协议栈。可见通过本发明实施例,用户需要按照一定顺序选择协议单元来构造协议栈封装格式,同时用户还可以设置协议单元中协议首部参数。步骤S504,按照数据结构对净荷数据进行封装,封装后生成测试数据包。本发明实施例网络访问系统具体通过界面(如图6)或者脚本文件等方式获取用户选择的协议单元、对选择的各协议单元的层次设置及对所选择的协议单元中对用户开放的数据项(如首部参数)的修改,然后构造出与此相对应的数据结构,此数据结构可以是链
8表,也可以是数组或者其它方式。按照此数据结构对净荷数据进行封装,即可获得待发送的测试数据包,最后调用网络访问系统如Winpcap底层发送数据的接口将测试数据包发送至目的接口。具体地,所述预构建的协议栈封装格式具体为连接演进型分组核心EPC设备和演进基站eNB的Sl-U接口对应的协议栈封装格式,或为连接EPC设备和分组数据网PDN的 SGi接口对应的协议栈封装格式。下面以LTE移动通信网络EPC设备的Sl-U接口为例,其协议栈封装格式如图1所示,按照图1所示协议栈封装格式,步骤S502中获取的用户选择的协议单元具体包括UDP 或TCP协议的协议单元、IP协议的协议单元B、GTP-U协议的协议单元、UDP协议的协议单元、IP协议的协议单元A,各协议单元的层次设置为Sl-U接口的协议栈封装格式中层次。 步骤S503中,用户根据需要定义各层协议单元对用户开放的数据项如协议单元的首部参数,例如IP协议单元的源IP地址和目的IP地址、UDP协议单元的源端口号和目的端口号等等,对于用户未修改的数据项将根据协议要求取默认值,生成Sl-U接口对应的协议栈封装格式的数据结构;步骤S504中,获取了用户定义的协议栈封装格式和协议单元的参数之后会构建出与此协议栈封装格式相对应的数据结构,如图7所示,按照此数据结构对净荷数据依次按照UDP或TCP协议的协议单元、IP协议的协议单元B、GTP-U协议的协议单元、 UDP协议的协议单元、IP协议的协议单元A的顺序进行封装,最后再加上数据链路层(Li和 L2)首部,得到相应的测试数据包,将此数据包通过Winpcap提供的接口发送至目的接口即完成了此次发包。关于SGi接口对应的协议栈封装格式的测试数据包的封装过程同Sl-U封装过程类似,只是具体封装格式发生了变化,这里不再详述。另外,由于数据链路层所能传输的最长数据不能超过其MTU(Maximum Transmission Unit,最大传输单元),因此当各层协议单元和数据净荷的总长度大于MTU 时数据的封装过程有所改变,本实施例中步骤S504中按照所述数据结构对净荷数据依次封装各个协议的协议单元,执行到IP协议的协议单元封装时,确定要封装的净荷数据长度和IP协议的协议单元长度之和是否小于最大传输单元MTU;若小于,将要封装的净荷数据封装到IP协议的协议单元,对封装后的IP协议的协议单元进行下一层协议单元封装;若不小于,则将要封装的净荷数据分片,使每一分片长度和协议的协议单元长度之和小于MTU, 将每一分片封装到对各分片对应的IP协议的协议单元,设置各分片对应的IP协议的协议单元中与分片有关的标志位,对所有分片封装后的IP协议的协议单元分别进行下一层协议单元封装;再执行到IP协议的协议单元封装时重复上述IP协议的协议单元封装过程,至封装到数据结构中最后一层协议单元。仍以上述Sl-U接口为例,如图8所示,具体为1)在执行到IP协议的协议单元B的封装时,发现要封装的净荷数据(即完成上一层封装得到的数据,即完成UDP/IP协议的协议单元封装后得到的数据)长度和IP协议的协议单元B的长度Lengh < MTU,则执行IP协议的协议单元B的封装;对封装后的IP协议的协议单元进行下一层协议单元封装,即GTP-U协议的协议单元封装;2) Lengh ^ MTU,则对要封装的净荷数据进行分片,每个分片后的净荷数据长度不得大于(MTU-协议单元B长度),将每一分片封装到对各分片对应的IP协议的协议单元(协
9议单元B、协议单元Bi、协议单元B2...),设置各分片对应的IP协议的协议单元中与分片有关的标志位,对所有分片封装后的IP协议的协议单元分别进行下一层协议单元封装,即执行GTP-U协议的协议单元封装。优选地,本实施例中根据RFC760号协议关于IP分片的描述对要封装的净荷数据进行分片,根据RFC760号协议设置IP协议单元中与分片有关的标志位。可见进行了分片处理后,实际得到多个未完成封装的测试数据包。3)在执行完UDP协议的协议单元封装后再次执行到IP协议的协议单元A的封装时,按上述1)和幻的方法进行封装,不同的此时要封装的净荷数据为完成UDP协议的协议单元封装后得到的数据。图8示出了再次分片的情况。这样,完成最终的封装时测试数据包的数量是第二次分片的数量。 本发明实施例提供的上述测试数据包封装方法由于具有自定义协议栈功能,本可以灵活的对多种IP网络设备接口进行测试;由于具有自定义协议参数功能,能够方便的进行多种异常测试,甚至模拟多种网络攻击。依照本发明实施例中,还提供一种网络设备性能测试方法,如图9所示,包括步骤S901,根据预构建的协议栈封装格式选择网络访问系统构建的协议单元,并设置选择的各协议单元的层次;如构建连接演进型分组核心EPC设备和演进基站eNB的Sl-U接口对应的协议栈封装格式,或连接EPC设备和分组数据网PDN的SGi接口对应的协议栈封装格式,实现对具有Sl-U接口和SGi接口的EPC设备性能测试。步骤S902,根据预进行性能测试修改所选择的协议单元中对用户开放的数据项, 如修改协议首部参数等;步骤S903,利用网络访问系统构建测试数据包并向目标网络设备发送;步骤S904,根据目标网络设备对测试数据包的接收请求进行性能测试。下面给出上述网络设备性能测试方法具体实现的性能测试1)ARP泛洪攻击预构建的协议栈封装格式为ARP协议栈封装格式,预进行性能测试为ARP泛洪攻击,修改的数据项包括重新填写的目标网络设备地址,这样可以连续向目标网络设备发送 ARP协议栈封装格式的测试数据包,模拟ARP泛洪攻击,测试目标网络的承受ARP泛洪攻击的能力。2) IP碎片攻击预构建的协议栈封装格式为IP协议栈封装格式;所述预进行性能测试为IP碎片攻击,所述修改的数据项包括重新填写的填写目标网络设备地址及标识碎片的标志位,具体地,将IP协议单元标志位中的第二位DF位置0,第三位MF位置1,这样网络设备接收到此类数据包认为是IP碎片会将其缓存在内存中,因此通过向目标网络设备连续发送此类数据包可以模拟IP碎片攻击。本发明实施例在进行IP协议的协议单元封装时,在要封装的净荷数据和IP协议的协议单元长度之和大于MTU时,按上述实施例方法进行分片处理。3) TCP服务器泛洪攻击此时目标网络设备为服务器,所述预构建的协议栈封装格式为TCP/IP协议栈封装格式;用户选择TCP协议的协议单元和IP协议的协议单元;所述预进行性能测试为TCP/ IP连接请求泛洪攻击,修改的数据项包括标识建立TCP/IP连接请求的标识位、重新填写的目标网络设备地址。具体地,设置TCP协议的协议单元控制字段中的SYN位为1,其它位置0,这样目标服务器接收到此类数据包认为是请求建立TCP/IP连接,因此为其分配建立 TCP/IP连接的资源;网络访问系统构建的为不携带数据净荷的TCP/IP协议栈封装格式数据包,向目标服务器连续发送此数据包,即可进行TCP/IP连接请求泛洪攻击。4)网络设备异常性能测试此时用户修改所选择的协议单元中对用户开放的数据项,具体为将所选择的协议单元中首部的校验和默认值修改为错误校验和值,因此能够测试网络设备对错误数据包的处理性能。依照本发明实施例中,还提供一种测试数据包封装设备,如图10所示,包括构建单元10,用于利用能够绕开操作系统调用网络设备驱动来独立发送数据的网络访问系统, 设置所述协议单元中对用户开放的数据项,构建不同协议的协议单元,每个协议的协议单元采用该协议定义的数据格式;封装单元20,用于利用所述网络访问系统,根据用户选择的协议单元、对选择的各协议单元的层次设置及对所选择的协议单元中对用户开放的数据项的修改,进行测试数据包的封装并发送。优选地,所述构建单元10用网络访问系统构建每个协议的协议单元时,初始化每个协议的协议单元中各数据项的默认值;所述封装单元20,具体包括协议栈封装格式构建单元201,用于根据用户选择的协议单元及对选择的各协议单元的层次设置构建测试数据包的协议栈封装格式;数据结构生成单元202,用于根据构建的协议栈封装格式、用户对所选择的协议单元中对用户开放的数据项的修改及未修改的数据项默认值,构建协议栈封装格式对应的数据结构;测试数据包生成单元203,用于按照所述数据结构对净荷数据进行封装,封装后生成测试数据包。优选地,测试数据包生成单元具体包括长度确定单元,用于按照所述数据结构对净荷数据依次封装各个协议的协议单元,执行到IP协议的协议单元封装时,确定要封装的净荷数据长度和IP协议的协议单元长度之和是否小于最大传输单元MTU ;第一封装单元, 用于在确定所述长度之和小于MTU时,将要封装的净荷数据封装到IP协议的协议单元,对封装后的IP协议的协议单元进行下一层协议单元封装;第二封装单元,用于在确定所述长度之和不小于MTU时,将要封装的净荷数据分片,将每一分片封装到对各分片对应的IP协议的协议单元,设置各分片对应的IP协议的协议单元中与分片有关的标志位,对所有分片封装后的IP协议的协议单元分别进行下一层协议单元封装;第三封装单元,用于再执行到 IP协议的协议单元封装时重复上述IP协议的协议单元封装过程,至封装到数据结构中最后一层协议单元。依照本发明实施例中还提供一种网络设备性能测试系统,如图11所示,包括选择及设置单元101,用于根据预构建的协议栈封装格式选择网络访问系统构建的协议单元, 并设置选择的各协议单元的层次;参数修改单元102,用于根据预进行性能测试修改所选择的协议单元中对用户开放的数据项;数据发送单元103,用于利用所述网络访问系统构建测试数据包并向目标网络设备发送;性能测试单元104,用于根据所述目标网络设备对测试数据包的接收请求进行性能测试。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种测试数据包封装方法,其特征在于,包括利用能够绕开操作系统调用网络设备驱动来独立发送数据的网络访问系统,构建不同协议的协议单元,设置所述协议单元中对用户开放的数据项,每个协议的协议单元采用该协议定义的数据格式;利用所述网络访问系统,根据用户选择的协议单元、对选择的各协议单元的层次设置及对所选择的协议单元中对用户开放的数据项的修改,进行测试数据包的封装。
2.如权利要求1所述的方法,其特征在于,所述网络访问系统为Winpcap系统。
3.如权利要求1所述的方法,其特征在于,利用网络访问系统构建每个协议的协议单元时,还包括初始化每个协议的协议单元中各数据项的默认值;利用所述网络访问系统进行测试数据包的封装,具体包括根据用户选择的协议单元及对选择的各协议单元的层次设置构建测试数据包的协议栈封装格式;根据构建的协议栈封装格式、用户对所选择的协议单元中对用户开放的数据项的修改及未修改的数据项默认值,构建协议栈封装格式对应的数据结构;按照所述数据结构对净荷数据进行封装,封装后生成测试数据包。
4 如权利要求3所述的方法,其特征在于,利用网络访问系统按照所述数据结构对净荷数据进行封装,具体包括按照所述数据结构对净荷数据依次封装各个协议的协议单元,执行到IP协议的协议单元封装时,确定要封装的净荷数据长度和IP协议的协议单元长度之和是否小于最大传输单元MTU ;若小于,将要封装的净荷数据封装到IP协议的协议单元,对封装后的IP协议的协议单元进行下一层协议单元封装;若不小于,则将要封装的净荷数据分片,将每一分片封装到对各分片对应的IP协议的协议单元,设置各分片对应的IP协议的协议单元中与分片有关的标志位,对所有分片封装后的IP协议的协议单元分别进行下一层协议单元封装;再执行到IP协议的协议单元封装时重复上述IP协议的协议单元封装过程,至封装到数据结构中最后一层协议单元。
5.如权利要求1 4任一所述的方法,其特征在于,利用所述网络访问系统设置的各协议的协议单元中对用户开放的数据项,具体为各协议定义的首部的参数项。
6.一种网络设备性能测试方法,其特征在于,包括根据预构建的协议栈封装格式选择网络访问系统构建的协议单元,并设置选择的各协议单元的层次;根据预进行性能测试修改所选择的协议单元中对用户开放的数据项;利用所述网络访问系统构建测试数据包并向目标网络设备发送;根据所述目标网络设备对测试数据包的接收请求进行性能测试。
7.如权利要求6所述的方法,其特征在于,所述预构建的协议栈封装格式为ARP协议栈封装格式;所述预进行性能测试为ARP泛洪攻击,所述修改的数据项包括重新填写的目标网络设备地址;或所述预构建的协议栈封装格式为IP协议栈封装格式;所述预进行性能测试为IP碎片攻击,所述修改的数据项包括重新填写的填写目标网络设备地址及标识碎片的标志位。
8.如权利要求6所述的方法,其特征在于,所述目标网络设备为服务器,所述预构建的协议栈封装格式为TCP/IP协议栈封装格式;所述预进行性能测试为TCP/IP连接请求泛洪攻击,所述修改的数据项包括标识建立TCP/IP连接请求的标识位、重新填写的目标网络设备地址。
9.如权利要求6所述的方法,其特征在于,所述根据预进行性能测试修改所选择的协议单元中对用户开放的数据项,具体为将所选择的协议单元中首部的校验和默认值修改为错误校验和值。
10.如权利要求6所述的方法,其特征在于,所述预构建的协议栈封装格式具体为连接演进型分组核心EPC设备和演进基站eNB的Sl-U接口对应的协议栈封装格式,或为连接 EPC设备和分组数据网PDN的SGi接口对应的协议栈封装格式。
11.一种测试数据包封装设备,其特征在于,包括构建单元,用于利用能够绕开操作系统调用网络设备驱动来独立发送数据的网络访问系统,构建不同协议的协议单元,设置所述协议单元中对用户开放的数据项,每个协议的协议单元采用该协议定义的数据格式;封装单元,用于利用所述网络访问系统,根据用户选择的协议单元、对选择的各协议单元的层次设置及对所选择的协议单元中对用户开放的数据项的修改,进行测试数据包的封装并发送。
12.如权利要求11所述的设备,其特征在于,所述构建单元用网络访问系统构建每个协议的协议单元时,初始化每个协议的协议单元中各数据项的默认值;所述封装单元,具体包括协议栈封装格式构建单元,用于根据用户选择的协议单元及对选择的各协议单元的层次设置构建测试数据包的协议栈封装格式;数据结构生成单元,用于根据构建的协议栈封装格式、用户对所选择的协议单元中对用户开放的数据项的修改及未修改的数据项默认值,构建协议栈封装格式对应的数据结构;测试数据包生成单元,用于按照所述数据结构对净荷数据进行封装,封装后生成测试数据包。
13.如权利要求12所述的设备,其特征在于,测试数据包生成单元具体包括长度确定单元,用于按照所述数据结构对净荷数据依次封装各个协议的协议单元,执行到IP协议的协议单元封装时,确定要封装的净荷数据长度和IP协议的协议单元长度之和是否小于最大传输单元MTU ;第一封装单元,用于在确定所述长度之和小于MTU时,将要封装的净荷数据封装到IP 协议的协议单元,对封装后的IP协议的协议单元进行下一层协议单元封装;第二封装单元,用于在确定所述长度之和不小于MTU时,将要封装的净荷数据分片,将每一分片封装到对各分片对应的IP协议的协议单元,设置各分片对应的IP协议的协议单元中与分片有关的标志位,对所有分片封装后的IP协议的协议单元分别进行下一层协议单元封装;第三封装单元,用于再执行到IP协议的协议单元封装时重复上述IP协议的协议单元封装过程,至封装到数据结构中最后一层协议单元。
14. 一种网络设备性能测试系统,其特征在于,包括选择及设置单元,用于根据预构建的协议栈封装格式选择网络访问系统构建的协议单元,并设置选择的各协议单元的层次;参数修改单元,用于根据预进行性能测试修改所选择的协议单元中对用户开放的数据项;数据发送单元,用于利用所述网络访问系统构建测试数据包并向目标网络设备发送; 性能测试单元,用于根据所述目标网络设备对测试数据包的接收请求进行性能测试。
全文摘要
本发明涉及网络性能测试领域,公开了一种测试数据包封装方法,包括利用能够绕开操作系统调用网络设备驱动来独立发送数据的网络访问系统,构建不同协议的协议单元,设置所述协议单元中对用户开放的数据项,每个协议的协议单元采用该协议定义的数据格式;利用所述网络访问系统,根据用户选择的协议单元、对选择的各协议单元的层次设置及对所选择的协议单元中对用户开放的数据项的修改,进行测试数据包的封装。本发明可以由用户自定义测试数据包的协议栈封装格式及修改相应参数,可以满足各类网络设备性能测试,且极大的方便了异常测试,甚至可以用来模拟网络攻击。
文档编号H04L1/00GK102420713SQ20101029654
公开日2012年4月18日 申请日期2010年9月28日 优先权日2010年9月28日
发明者刘文斌, 战照鹏, 矫恒浩, 郑勇 申请人:大唐移动通信设备有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1