CN106789426A - 一种针对tcp/ip协议栈的通用测试方法 - Google Patents
一种针对tcp/ip协议栈的通用测试方法 Download PDFInfo
- Publication number
- CN106789426A CN106789426A CN201611198890.7A CN201611198890A CN106789426A CN 106789426 A CN106789426 A CN 106789426A CN 201611198890 A CN201611198890 A CN 201611198890A CN 106789426 A CN106789426 A CN 106789426A
- Authority
- CN
- China
- Prior art keywords
- protocol
- agreement
- protocol stack
- icp
- test
- 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
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/18—Protocol analysers
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L1/00—Arrangements for detecting or preventing errors in the information received
- H04L1/24—Testing correct operation
- H04L1/242—Testing correct operation by comparing a transmitted test signal with a locally generated replica
- H04L1/244—Testing correct operation by comparing a transmitted test signal with a locally generated replica test sequence generators
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明涉及一种针对TCP/IP协议栈的通用测试方法,首先确认整个TCP/IP协议栈需要关注的各种协议,从各个协议的一致性测试、互操作性测试、性能测试和强健性测试四个方面展开对协议的测试;其中,一致性测试,依据一个协议的描述对协议的某个实现进行测试,判别一个协议的实现与所对应的协议标准是否相一致;互操作性测试,将协议实现放在一个实际的通信网络环境中进行测试,主要检测一个协议实现与其他系统之间的交互作用的过程;性能测试,对协议实现的某些性能进行测试,判别一个协议实现的性能特性是否符合协议说明;强健性测试,主要是检测协议实体或系统在各种恶劣环境下运行的能力。
Description
技术领域
本发明涉及一种针对TCP/IP协议栈的通用测试方法。
背景技术
TCP/IP协议栈是互联网的核心协议,也是大多数网络应用的核心协议。TCP/IP协议栈包含了一系列构成互联网基础的网络协议。网络协议为计算机网络中进行数据交换而建立的规则、标准或约定的集合。例如,网络中一个微机用户和一个大型主机的操作员进行通讯,由于这两个数据终端所用字符集不同,因此操作员所输入的命令彼此不认识。为了能进行通讯,规定每个终端都要将各自的字符转换成标准字符集的字符后,才能进入网络传送,到达目的终端之后,再变换为该终端字符集的字符。
为了保障设备网络协议满足互联网协议标准,目前许多的需要网络通讯的设备都会引入开源的轻量级TCP/IP协议栈(如:LwIP协议栈经常被移植与嵌入式系统),从引入开源的协议栈,再对其进行二次开发使用整个过程中,必定产生一些与厂家设备模块的兼容问题、协议通讯异常等问题,此时则需要对整个TCP/IP协议栈进行完整的测试来保证系统网络协议通讯的正常。
目前许多厂家会对TCP/IP协议栈进行简单的一些TCP、UDP等协议进行简单的数据收发测试。虽然该方法能够检测到协议能否正常进行简单的数据收发,但是并不能够保障在复杂的网络中整个协议栈的质量。
TCP/IP协议栈的经常被移植用于各种系统中,鉴于目前测试方法的不完善,迫切需要一种完整的针对整个协议栈的相关测试方法来保障其质量。
发明内容
本发明的目的在于提供一种针对TCP/IP协议栈的通用测试方法,以克服现有技术中存在的缺陷。
为实现上述目的,本发明的技术方案是:一种针对TCP/IP协议栈的通用测试方法,提供一搭载待测试TCP/IP协议栈的测试被测试设备、一安装有抓包工具的监听设备、一用于连接所述被测试设备与所述监听设备的HUB设备、一搭载有标准协议栈的标准TCP/IP协议栈设备以及用于连接所述HUB设备与所述标准TCP/IP协议栈设备的网络通信设备,并按照如下步骤实现:
步骤S1:确定所述待测试TCP/IP协议栈中的待测协议,并确定测试案例描述字段;
步骤S2:确定所述待测协议的协议标准格式;
步骤S3:进行协议一致性测试;通过制造触发条件,使得待测TCP/IP协议栈能够使用所述待测协议发出符合协议通讯标准的报文;通过抓包工具获取相关报文,并按待验证报文中的对应字段进行测试;
步骤S4:进行协议互操作性测试,通过通信网络环境,将所述待测协议与所述标准协议栈进行通信,对该通信过程进行测试;
步骤S5:进行协议性能测试,对所述待测协议的性能进行测试,判别所述待测协议的性能特性是否符合协议说明;
步骤S6:进行协议强健性测试,检测所述待测协议在恶劣网络环境下运行能力;
步骤S7:完成测试。
在本发明一实施例中,在所述步骤S1中,所述TCP/IP协议栈待测协议包括:TCP、UDP、IP、DHCP、DNS以及ICMP。
在本发明一实施例中,在所述步骤S1中,所述案例描述字段包括:序号、测试类、测试项、测试步骤、预期结果以及备注。
在本发明一实施例中,在所述步骤S5中,所述性能包括:在预设时间段内收发预设字节的数据包的通讯速率以及交互流程所需时间。
在本发明一实施例中,在所述步骤S6中,所述恶劣网络环境包括:通讯设备掉电、网络连接断开、异常断电、持续长时间进行协议通讯以及通讯过程中存在干扰报文。
在本发明一实施例中,所述干扰报文包括重复报文、延时报文、丢包以及篡改包。
相较于现有技术,本发明具有以下有益效果:本发明所提出的一种针对TCP/IP协议栈的通用测试方法,基于TCP/IP协议栈的协议标准格式和协议标准通讯方式,形成了完整的通用的协议栈测试用例库,使得整个协议栈的测试更加快捷、更加完整。还达到了如下效果:
(1)便捷性:本发明涵盖了整个TCP/IP协议栈中协议的所有测试点,简单明了,方便测试人员对整个协议栈进行快速测试,便捷性极高;
(2)节约人力成本:本发明使得测试人员无需投入前期的测试案例设计时间,大大节约了人力成本;
(3)减小人为因素:本发明由协议栈用例库来展开协议栈的完整测试,大大减少了人为因素导致的协议测试的漏测现象。
附图说明
图1为本发明针对TCP/IP协议栈的通用测试方法的原理图。
图2为本发明一实施例中测试案例描述字段示意图。
图3为本发明一实施例中TCP协议格式。
图4为本发明一实施例中网络通讯连接示意图。
具体实施方式
下面结合附图,对本发明的技术方案进行具体说明。
本发明提出一种针对TCP/IP协议栈的通用测试方法,如图1以及图4所示,提供一搭载待测试TCP/IP协议栈的测试被测试设备、一安装有抓包工具(如:wireshark)的监听设备、一用于连接所述被测试设备与所述监听设备且具备监听功能的HUB设备、一搭载有其他成熟的标准协议栈的标准TCP/IP协议栈设备以及用于连接所述HUB设备与所述标准TCP/IP协议栈设备的网络通信设备。
进一步的,在本实施例中,通过在实际的网络通讯设备中与其他标准的TCP/IP协议栈设备进行交互,在这个过程中用监听设备捕获相关的通讯数据报文,来测试移植协议栈的协议一致性、互操作等。通过操作实际网络设备,来实现在网络中异常情况的模拟,如:如在网络设备上安装使用clumsy工具,来设置重复报文、延时报文、丢包、篡改包等情况测试;通过拔电、拔网线,来实现异常断电的情况测试。
具体按照如下步骤实现:
步骤S1:测试人员确认TCP/IP协议栈需要测试的各种协议,如TCP、UDP、IP、DHCP、DNS、ICMP等;并设计好案例库中案例描述需要的字段。一个完整的案例建议需要如下字段:序号、测试类、测试项、测试步骤、预期结果、备注栏。
其中,字段如图2所示:
序号:编号,便于案例搜索;
测试类:一致性测试、互操作性测试、性能测试、强健性测试;
测试项:协议的具体测试点,如:验证TCP三次握手交互的正确性;
测试步骤:具体案例执行所需要的步骤描述;
预期结果:具体案例执行所要求达到的结果;
备注:一些附加文字描述或者图片描述。
步骤S2:测试人员确认各个协议的标准格式:在本实施例中,如图3所示的TCP协议格式。
步骤S3:协议一致性测试
协议一致性测试主要是通过制造触发条件使得移植使用TCP/IP协议栈的系统,能够使用各协议发出符合协议通讯标准的报文,使用相关的抓包工具(如:wireshark)来获取相关报文,并按需要验证报文中相应字段的实现。据此展开各个协议一致性测试方面的案例设计。
进一步的,该触发条件根据实际测试点预先确定。如对于TCP报文,只是通过被测试设备与标准协议栈设备进行TCP通讯,则会触发TCP三次握手,和TCP数据报文的发出;对于DHCP报文,则是通过与开启了DHCP功能的路由器进行连接操作来触发DHCP报文的交互过程。
进一步的,对于:TCP协议完整的数据通讯流程测试,在实际网络通讯环境进行TCP数据交换,具体如下:
TCP协议:验证一个完整的TCP数据通讯报文交互顺序的正确性;
1:标准协议栈设备上开启了TCP后台服务器,被测试设备与标准协议栈设备进行TCP连接和数据传输;
2:实用抓包工具捕获通讯数据包,验证一个完整的TCP数据通讯报文交互顺序的正确性。
TCP交互流程为:
a:被测设备与标准协议栈设备进行三次握手(连接);
b:被测设备与标准协议栈设备记性数据通讯;
c:被测设备与标准协议设备进行四次握手(断开)。
步骤S4:协议互操作性测试
在一致性测试中单纯对一个协议的实现进行了测试,并不能确保一个协议实现与另一个协议实现之间的成功通讯,为此我们将移植使用TCP/IP协议栈的设备与其他成熟的标准TCP/IP 协议栈设备进行交互。具体的设备间的交互实现则均是在实际的网络通讯环境中进行,据此展开各个协议互操作性测试方面的案例设计。
如:TCP协议与windows、linux标准协议栈设备的交互测试,在实际的网络通讯环境中,更换不同的标准协议栈设备来进行测试,具体如下:
TCP协议:与Windows系统的标准协议栈设备进行TCP交互测试;
1:将被测设备通过静态IP的方式连接到网络通信设备上,标准协议栈设备与被测试设备连接在同一个网络通信设备上;
2:将被测试设备与Windows系统的标准协议栈设备通过TCP测试工具进行数据收发,查看结果;
测试结果:数据交互正常。
TCP协议:与Linux系统的标准协议栈设备进行TCP交互测试;
1:将被测设备通过动态获取IP的方式连接到开启DHCP功能的网络通信设备上,标准协议栈设备与被测试设备连接在同一个网络通信设备上;
2:将被测试设备与Linux系统的标准协议栈设备通过TCP测试工具进行数据收发,查看结果;
测试结果:数据交互正常。
步骤S5:协议性能测试
为了确保协议实体性能方面的质量,可通过设计案例测试协议在固定时间段内进行指定大小的数据包的循环收发来测试通讯速率、通过设计案例测试协议某个交互流程所需要的时间等。据此展开各个协议性能测试方面的案例设计。
如:DHCP分配地址整个交互流程的性能数据测试,在实际的网络通讯环境中进行DHCP地址的获取动作,具体如下:
DHCP协议:验证整个DHCP交互流程的性能;
将被测设备通过动态获取IP的方式连接到开启DHCP功能的网络通信设备上,通过抓包工具捕获到的数据包的时间栏来统计,从开始发起广播DHCP Discover到获得DHCP ACK位置,一个完整的DHCP交互流程所需的时间,如通过wireshark中Time一栏统计时间。
测试结果:符合需求(例如:与标准协议栈设备性能相当)。
步骤S6:协议强健性测试
为了确保协议实体能够在各种恶劣网络环境下正常运行,可通过设计案例测试通讯异常情况下协议实体的响应,如通讯设备掉电、持续长时间进行协议通讯、通讯过程中存在干扰报文等情况。据此展开各个协议强健性测试方面的案例设计。
如:TCP协议通讯过程中对篡改报文的处理测试,在实际的网络通讯环境中,捕获到移植使用TCP/IP协议栈的系统发出的正常报文,进行篡改后发出来进行干扰测试,具体如下:
验证TCP协议对篡改包的处理;
1:使用标准协议栈设备上安装的clumsy工具,Filtering中输入outbound andip.DstAddr=被测试设备IP,勾选Tamper对标准协议栈设备发给被测试设备的TCP报文进行内容修改后发送(可通过修改chance选项来控制篡改比率,在1%~100%范围内随意输入篡改率chance值,如30%),启动;
2:被测试设备发起对标准协议栈设备的TCP数据传输;
3:查看被测试设备的TCP通讯;
4:停止clumsy工具后,再次进行TCP通讯,查看结果;
测试结果:被测试设备接收到被篡改的数据包(任意篡改率)时,会出现通讯失败;停止clumsy工具后,协议通讯正常。
在本实施例中,通过上述步骤建立完整的协议栈测试案例库,在进行TCP/IP协议栈相关协议测试时,则可直接根据相关案例进行完整测试。
以上是本发明的较佳实施例,凡依本发明技术方案所作的改变,所产生的功能作用未超出本发明技术方案的范围时,均属于本发明的保护范围。
Claims (6)
1.一种针对TCP/IP协议栈的通用测试方法,其特征在于,提供一搭载待测试TCP/IP协议栈的测试被测试设备、一安装有抓包工具的监听设备、一用于连接所述被测试设备与所述监听设备的HUB设备、一搭载有标准协议栈的标准TCP/IP协议栈设备以及用于连接所述HUB设备与所述标准TCP/IP协议栈设备的网络通信设备,并按照如下步骤实现:
步骤S1:确定所述待测试TCP/IP协议栈中的待测协议,并确定测试案例描述字段;
步骤S2:确定所述待测协议的协议标准格式;
步骤S3:进行协议一致性测试;通过制造触发条件,使得待测TCP/IP协议栈能够使用所述待测协议发出符合协议通讯标准的报文;通过抓包工具获取相关报文,并按待验证报文中的对应字段进行测试;
步骤S4:进行协议互操作性测试,通过通信网络环境,将所述待测协议与所述标准协议栈进行通信,对该通信过程进行测试;
步骤S5:进行协议性能测试,对所述待测协议的性能进行测试,判别所述待测协议的性能特性是否符合协议说明;
步骤S6:进行协议强健性测试,检测所述待测协议在恶劣网络环境下运行能力;
步骤S7:完成测试。
2.根据权利要求1所述的一种针对TCP/IP协议栈的通用测试方法,其特征在于,在所述步骤S1中,所述TCP/IP协议栈待测协议包括:TCP、UDP、IP、DHCP、DNS以及ICMP。
3.根据权利要求1所述的一种针对TCP/IP协议栈的通用测试方法,其特征在于,在所述步骤S1中,所述案例描述字段包括:序号、测试类、测试项、测试步骤、预期结果以及备注。
4.根据权利要求1所述的一种针对TCP/IP协议栈的通用测试方法,其特征在于,在所述步骤S5中,所述性能包括:在预设时间段内收发预设字节的数据包的通讯速率以及交互流程所需时间。
5.根据权利要求1所述的一种针对TCP/IP协议栈的通用测试方法,其特征在于,在所述步骤S6中,所述恶劣网络环境包括:通讯设备掉电、网络连接断开、异常断电、持续长时间进行协议通讯以及通讯过程中存在干扰报文。
6.根据权利要求5所述的一种针对TCP/IP协议栈的通用测试方法,其特征在于,所述干扰报文包括重复报文、延时报文、丢包以及篡改包。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611198890.7A CN106789426A (zh) | 2016-12-22 | 2016-12-22 | 一种针对tcp/ip协议栈的通用测试方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201611198890.7A CN106789426A (zh) | 2016-12-22 | 2016-12-22 | 一种针对tcp/ip协议栈的通用测试方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN106789426A true CN106789426A (zh) | 2017-05-31 |
Family
ID=58897724
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201611198890.7A Pending CN106789426A (zh) | 2016-12-22 | 2016-12-22 | 一种针对tcp/ip协议栈的通用测试方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN106789426A (zh) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294807A (zh) * | 2017-07-04 | 2017-10-24 | 中国联合网络通信集团有限公司 | 协议互操作性测试方法及装置 |
CN110417780A (zh) * | 2019-07-30 | 2019-11-05 | 哈尔滨工业大学 | 定制化数据传输协议的多通道高速数据接口转化模块 |
CN111190812A (zh) * | 2019-12-12 | 2020-05-22 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于嵌入式设备的自动化测试框架 |
CN113037587A (zh) * | 2021-02-26 | 2021-06-25 | 清华大学 | 一种tcp/ip协议栈测试方法、装置及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040053836A (ko) * | 2002-12-16 | 2004-06-25 | 엘지전자 주식회사 | 프로토콜 테스트 시스템 및 방법 |
CN1750487A (zh) * | 2005-10-21 | 2006-03-22 | 重庆邮电学院 | Epa协议一致性测试系统与方法 |
CN102131208A (zh) * | 2010-01-12 | 2011-07-20 | 希姆通信息技术(上海)有限公司 | 内嵌tcp/ip协议栈的无线模块数据传输性能的测试系统及方法 |
CN104243114A (zh) * | 2014-09-26 | 2014-12-24 | 浙江中控技术股份有限公司 | 通讯健壮性测试方法和平台 |
CN104518929A (zh) * | 2014-12-26 | 2015-04-15 | 北京航天测控技术有限公司 | 一种IPv6协议综合自动测试系统 |
CN105162645A (zh) * | 2015-07-24 | 2015-12-16 | 国家电网公司 | 一种基于piif架构的互操作测试方法 |
-
2016
- 2016-12-22 CN CN201611198890.7A patent/CN106789426A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20040053836A (ko) * | 2002-12-16 | 2004-06-25 | 엘지전자 주식회사 | 프로토콜 테스트 시스템 및 방법 |
CN1750487A (zh) * | 2005-10-21 | 2006-03-22 | 重庆邮电学院 | Epa协议一致性测试系统与方法 |
CN102131208A (zh) * | 2010-01-12 | 2011-07-20 | 希姆通信息技术(上海)有限公司 | 内嵌tcp/ip协议栈的无线模块数据传输性能的测试系统及方法 |
CN104243114A (zh) * | 2014-09-26 | 2014-12-24 | 浙江中控技术股份有限公司 | 通讯健壮性测试方法和平台 |
CN104518929A (zh) * | 2014-12-26 | 2015-04-15 | 北京航天测控技术有限公司 | 一种IPv6协议综合自动测试系统 |
CN105162645A (zh) * | 2015-07-24 | 2015-12-16 | 国家电网公司 | 一种基于piif架构的互操作测试方法 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107294807A (zh) * | 2017-07-04 | 2017-10-24 | 中国联合网络通信集团有限公司 | 协议互操作性测试方法及装置 |
CN110417780A (zh) * | 2019-07-30 | 2019-11-05 | 哈尔滨工业大学 | 定制化数据传输协议的多通道高速数据接口转化模块 |
CN111190812A (zh) * | 2019-12-12 | 2020-05-22 | 华东计算技术研究所(中国电子科技集团公司第三十二研究所) | 基于嵌入式设备的自动化测试框架 |
CN113037587A (zh) * | 2021-02-26 | 2021-06-25 | 清华大学 | 一种tcp/ip协议栈测试方法、装置及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106789426A (zh) | 一种针对tcp/ip协议栈的通用测试方法 | |
CN101425938B (zh) | 测试网络设备的方法和装置 | |
JP4995310B2 (ja) | 送信先違いパケットの検出装置および検出方法 | |
CN105553943B (zh) | 传屏软件的传输方法、传屏方法、设备及数据传输系统 | |
CN109167798B (zh) | 一种基于机器学习的家用物联网设备DDoS检测方法 | |
US9094339B2 (en) | Computer system communication channel diagnostics | |
US10958616B2 (en) | Methods, systems, and computer readable media for network test configuration using virtual local area network (VLAN) scanning | |
CN103701825A (zh) | 面向移动智能终端IPv6协议及其应用的安全测试系统 | |
CN104539483A (zh) | 网络测试系统 | |
CN107172621A (zh) | 一种适用于电力无线专网基站的安全防护性能测评方法 | |
WO2012062108A1 (zh) | 一种测试系统及测试方法 | |
CN109660558A (zh) | 基于协议状态图遍历的iec104协议漏洞挖掘方法 | |
CN101719692A (zh) | 数字化变电站网络数据获取及网络性能分析方法 | |
CN108683578A (zh) | 一种就地化装置环网通讯测试方法和测试系统 | |
CN102098188A (zh) | Ip连接的检测方法及系统 | |
US10448007B2 (en) | Discovery and identification of layer 2 coax problems in MoCA networks | |
AU2016334122B2 (en) | System and method to reconcile cabling test results with cabling test configurations | |
CN104918042A (zh) | 一种视频信号网络损伤模拟装置、系统及方法 | |
CN104601400B (zh) | 分流设备性能测试方法、测试客户端及测试服务器 | |
CN112910725B (zh) | 一种网络流量检测方法及装置、计算机可读存储介质 | |
CN103490950B (zh) | 一种路由器pptp会话容量模拟方法 | |
He et al. | Intelligent fuzzing algorithm for 5g nas protocol based on predefined rules | |
CN107579862B (zh) | 一种测量设备网络通信能力的方法 | |
CN104539470B (zh) | 测试分流设备是否丢包的方法、测试客户端及系统 | |
CN208890823U (zh) | 支持实现对网络隔离产品性能进行测试控制的装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20170531 |
|
RJ01 | Rejection of invention patent application after publication |