欢迎来到天天文库
浏览记录
ID:46419666
大小:70.50 KB
页数:8页
时间:2019-11-23
《基于libnet的网络协议测试系统研究与实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、基于Libnet的网络协议测试系统研究与实现摘要:计算机网络协议测试主要包含测试集自动构造技术与测试执行系统的设计,该文介绍了网络协议测试的基木理论,网络协议测试系统的设计思路与实现方法,基于Libnet与WinPcap函数库实现一个网络协议测试系统,该系统包括测试集管理,测试例构造与测试结果管理等模块,可用于网络协议一致性测试与性能测试,最后対路由器提供的DHCP服务进行测试验证测试系统的冇效性。关键词:Libnet;协议测试;DHCP中图分类号:TP311文献标识码:A文章编号:1009-3044(2013
2、)32-7218-03计算机网络在各行业的广泛应用促使许多新的协议规范被制定,在协议规范被实现后投入应用前需耍进行测试,全面的网络协议测试能够保证I办议实现按照协议规范稳定可靠地运行。协议测试的研究涉及了I办议描述、测试生成、测试集描述法、测试实现等多个环节,在这些方面,国内外研究人员经过多年努力达成了很多共识,例如:网络协议测试类型包括一致性测试,互操作性测试,性能测试和健壮性测试[1]。测试理论的形式化方法主要包括:SDL,LOTOS,Petri网,Estelle等[2-4]。该文研究的重点是测试实现部分,
3、介绍基于Libnet与WinPcap函数库的协议测试系统的实现方法,并结合DIICP协议进行测试从而验证测试系统的有效性。1协议测试技术网络协议测试属于计算机软件测试的一个分支,在测试领域中测试方法分为3种:白盒测试、黑盒测试和灰盒测试。白盒测试通过每条语句至少执行一次来全面检查整个程序代码,而黑盒测试只测试软件外部可以观察到的行为,不涉及程序的内部结构。白盒测试的测试能力非常强,但是过程过于复杂,对被测软件要求也很高。黑盒测试只关心被测软件的输入和输出,测试能力虽然弱了些,但是测试过程本身相对简单,对被测软件
4、要求也无特殊要求。灰盒测试是将白盒测试和黑盒测试结合起来形成的一种测试方法,吸收了两种方法的优点。在通信测试中,协议测试因为协议实现的复杂性往往采用黑盒测试,它并不检查协议代码,而是按照协议标准,通过控制观察被测协议实现或系统的外部行为对其进行评价。协议测试中用來描述特定协议或协议族测试的实体称为测试集,它由多个测试组构成,测试组対应于此协议族的一个标准协议规范,测试例对应于一个标准协议规范的某一项功能描述,完成一个测试例可能需要不同的测试过程,一个测试过程的完成需耍进行初始化、发包、收包、比较以及处理结果等步
5、骤,每一个动作称为一个测试步,它是测试集中最小的单位。在构造用于测试协议实现的输入数据包时采用了Libnet函数库,在捕获协议实现的反馈输出数据包时采用了WinPcap函数库,Libnet与WinPcap都是免费开源的函数库,它们封装了常用繁琐的网络开发过程函数,开放出简单统一的API接口功能函数,方便用户调用,使开发人员能够忽略网络底层细节的实现,从而专注于程序本身具体功能的设计与开发。Libnet与WinPcap都是基于C语言的函数库,具备低层网络数据包操控能力。2测试系统总体结构测试系统包括测试集管理,测
6、试例构造与测试结果管理3个功能模块,系统执行测试时的顺序与测试例构造模块屮构造的测试步顺序一致。在对被测系统开始测试前需耍针对协议规范设计测试例,所有测试例由测试集管理模块维护,最终的测试结果生成依赖测试例的执行结果。测试例山许多测试步组成,测试步包括两种执行逻辑:激励数据包发送和反馈数据包捕获。发送的激励数据包根据被测协议的类型与数据报文的类型设定首部各字段与报文数据,它的作用是激励被测系统内部产牛状态变迁并发送反馈数据包。测试系统能够实时捕获所有数据包,根据filter条件过滤后选出特定报文并与测试步匹配,
7、根据匹配结果系统决定测试步执行状态:丢弃报文继续阻塞,定时器清零继续下一测试步或者测试完成。在测试步执行过程中设置定时器,定时器时间的指定在测试例构造中完成。测试系统的总体结构如图1所示。3测试系统的设计与实现本测试系统与被测实体部署在同一个交换网络中,被测实体是特定协议的一个实现,可以位于计算机或路由器等网络设备中,通过构造特定数据包并且捕获响应报文对协议外部行为进行分析测试。关键模块包括测试例构造,数据包构造与发送,数据包捕获与过滤。3.1测试例构造系统实现时在测试例的构造模块中设置了行为选项来区分发送数据
8、包与捕获数据包,测试步间隔时间选项用于控制相邻测试步执行的时机。对于发送数据包,根据协议的类型构造数据包设置页面,在此页面中设置首部字段与数据包内容,由于libnet提供自动计算校验和功能,此页面中首部校验和字段设置为0。对于捕获数据包,设置了匹配选项与传递选项,匹配选项用于判定数据包特征并触发下一测试步,传递选项用于决定是否需要将捕获数据中特定字段复制到下一测试步发送数据包特定字段中
此文档下载收益归作者所有