(计算机应用技术专业论文)基于契约和代码植入的协议测试技术研究.pdf_第1页
(计算机应用技术专业论文)基于契约和代码植入的协议测试技术研究.pdf_第2页
(计算机应用技术专业论文)基于契约和代码植入的协议测试技术研究.pdf_第3页
(计算机应用技术专业论文)基于契约和代码植入的协议测试技术研究.pdf_第4页
(计算机应用技术专业论文)基于契约和代码植入的协议测试技术研究.pdf_第5页
已阅读5页,还剩41页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

摘要 网络技术的快速发展,使得网络协议的应用遍及银行、金融、通信等关键领域, 因此对于协议的可靠性和可信性都提出了很高的要求。协议测试作为保证协议质 量的重要手段,一直是协议工程研究中的重点,并且已经产生了大量的研究成果。 随着互联网规模日益扩大,口地址短缺已经是亟待解决的问题了,口v 6 协议是下 一代互联网协议,提供了更大的地址空间。v 6 取代i p v 4 是必然的事情,对口v 6 协议测试的研究和应用具有十分重要的理论和实用价值。 本文对基于契约和代码植入的协议测试方法进行了比较完整而系统的研究。使 用契约描述可以进一步对各种协议实现进行封装,使测试人员无需去过多关注实 现的内部细节,只需了解契约描述即可完成协议的测试,本论文中使用注释作为 描述契约的方式。本文还对检测代码的自动植入技术做了研究,在试验中完成了 一个自动植入工具,该工具主要完成三个方面的功能:确定源代码中的植入点、 对契约描述进行分析、生成自动检测功能的植入代码。对于使用统一契约描述的 所有协议实现,均可完成检1 坝j 代码的自动生成和植入,或者仅仅需要修改少量代 码即可实现自动植入。 为了更好的支持契约和代码植入的思想,我们采用x m l 做为协议规范的形式 化描述语言。x m l 是一种新型的主流的描述语言,简单易懂且功能强大,正以它 无可比拟的卓越特性征服着越来越多的领域和越来越多的科研开发人员。 关键字:协议测试形式化描述x m l 契约代码植入技术 a b s t r a c t w i t l lt l l er a p i dd e v e l o p m e n to fi n t e m e t t e c l l i l o l o g y ,m ea p p l i c a t i o no fh l t e m e t p r o t o c o l sh 嬲s p r e a dt ob a i l l 【,f l n a l l c e ,c o m m 眦i c a t i o na n dm a i l yo m e rc r i t i c a lf i e i d s ,s o t 1 1 e h i g hr e q u i r e m e n tf o rt t l ed e p e n d a b i l i t y 锄dm ec r e d i t a b i l i t yo ft h ep r o t o c o li s p r o p o s e d p r o t o c o lt e s t i n g ,a ni l p o r t a mp r o t o c o la s s u r a n c em e a s u r e m e n t ,i sa l 、a y st l l e k e yp o i n to ft h es t i l d yo ft l l ep r o t o c o le n g i n e e la l o to fa c l l i e v e m e n th 嬲b e e ng a i n e di n “s 勰a n o wm es c a l eo f i n t e m c ti sm u c hl a r g e r 妇nb c f o r e ,也el a c ko f m ei pa d d r e s s i sa p r o b l e mn e e dt ob es o l v e di m m e d i a t e l y t h ei p v 6p r o t o c o lp r o v i d e sm o r ea d d r c s s , s ot l l es m d yo f t e s t i n go n 口v 6p r o t o c o li sv e r yv a l u a b l e t h i sp a p e re x e c u t e dac o m p l e t e 锄ds y s 把吡i cs t i l d yo nt t l ep r o t o c o l t e s t i n gb 越eo n c o n t r a c ta n dc o d ei n s n l l m e n t a t i o nt e c h n o l o g y u s i n gc o m r a c td e s c r i p t i o nt oe n c a p s u l a t e v a r i o u sp m t o c o l i m p l e m e n t s ,t e s t e r sj l l s tn e e dt ok n o wt h eo u t s i d ei n t e i f k em m e rt k m t l l ei 1 1 s i d ed e t a i lo ft l l ep r o t o c o li m p l e m e n t st oc o m p l e t et e s t i n gt a s k i nt 1 1 i sp a p e rw e 璐e 咖o t a t i o na st l l em e 廿l o do fc o n 仃a c td e s c r i p t i o n w ed i ds o m er e s e a r c ho n a u l d m a t i cp r o g m mi n s t r 呦e m a t i o no fc 1 1 e c kc o d e a np r o t o c o li m p l e m e n t s1 1 s i n g 叫t i v ec o n 仕a c td e s c r i p t i o n ,c a nl l s et i l i sm e m o dt oe x e c u t et l l ea u t o m a t i cc o d e i 王l s 饥皿e n 锄o nt e c t m o l o g y ,o rn e e dm o d i 匆j u s tal i 仕l ec o d e w i 血m u c hr e 辨a r c hi 1 1 也e 肌t o m a t i cp r 0 酽锄i n s t m m e n t a t i o n ,w er e a l i z ea na u t o m a t i ci n s 佃l t i l e mt o o li nt h e e x p e r i m e n t t l i st o o lf u l l c t i o l l s f o l l o w s ,d e t e 珊i n j n gt h ei n s 讯盯n e mp o i n to ft 1 1 e p r o g 珊,a n a l y z i n gt h ec o n 仃a c td e s c r i p t i o n 觚dg e n e r a t i i l gt l l ei l l s 岫e mc o d e 谢t 1 1 c h e c k m ga b i l i 够 f o rs u p p o r t i n gc o i 巾m c ta i l dc o d ei i l s 仃u m e n 诅t ! i o nt e c h n o l o g ym o r ee 髓c t i v e l y ,w e u s e 仉t h ef o n n a l l a l l g u a g et od e s c r i b ep r o t o c o lr e q u e s tf o rc o 蚴e n t s ( r f c ) v i li san e wk i n do fd e s c d b i n gl a n g u a g e ,e a s yt ol e a ma n ds t r o n g6 m c t i o 越,以li s c o n q u e r i n gm o r ea n dm o r ed o m a i l l s a n dd “e l o p e r sw i t hi t su | 1 e x 锄p l e de x c e l l e n t c h m c t e r s k e y w o r d :p r o t o c o l1 e s t i g f o r m a ld e s c r i p t i o nx m l c o n t r a c tc o d ei s t r u m e n t a t i o 独创性声明 本人声明所呈交的论文是我个人在导师指导下进行的研究工作及取得的研 究成果。尽我所知,除了文中特别加以标注和致谢中所罗列的内容以外,论文 中不包含其他人已经发表或撰写过的研究成果:也不包含为获得西安电子科技 大学或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本 研究所做的任何贡献均已在论文中做了明确的说明并表示了谢意。 申请学位论文与资料若有不实之处,本人承担一切相关责任。 本人签名辫日期:z 鲤21 ;: 关于论文使用授权的说明 本人完全了解西安电子科技大学有关保留和使用学位论文的规定,即:研 究生在校攻读学位期间论文工作的知识产权单位属西安电子科技大学。本人保 证毕业离校后,发表论文或只用论文工作成果时署名单位仍然为西安电子科技 大学。学校有权保留送交论文的复印件,允许查阅和借阅论文;学校可以公布 论文的全部或部分内容,可以允许采用影印、缩印或其它复制手段保存论文。 本人签名: 导师签名:,刁缝 日期 日期:曼竺z :叫 日期:型竺z :l 第一章绪论 第一章绪论 1 1 论文工作背景 网络协议即是网络中( 包括互联网) 传递、管理信息的一些规范。正如同人与 人之间的相互交流需要遵循一定的规矩一样,计算机与计算机之间的相互通信也 需要遵守一定的规则,这些规则就称为网络协议。网络协议是网络之间沟通、交 流的桥梁,一台计算机只有在遵守网络协议的前提下,才能在网络中与其他计算 机进行正常的通信,相互交换信息。 随着计算机和通信技术应用的快速发展,网络协议日趋复杂,种类和数量越来 越多,规模也越来越大,在网络环境中,数据通信涉及到越来越多的设备供应商 和服务提供商。这些设备供应商与服务提供商提供了各种各样的通信设备和协议 实现,如果不经过严格的协议测试,各种协议实现与协议规范之间的符合程度( 即 一致性) 得不到保证,不同版本的协议实现之问的互操作性也无法得到保证。 目前,协议规范一般都是采用自然语言来描述的。自然语言便于描述、易懂, 但是具有描述不精确,不严格,有二义性的致命弱点。则不同开发人员对协议规 范的理解的差异会产生多种不同的协议实现版本;由于协议的复杂度日趋增大, 对协议规范进行详尽完备描述的难度也随之渐增,不完备的协议规范描述容易造 成不同协议实现版本之间的不兼容;不同的实现手段也会产生不同的协议实现; 协议的复杂度增大,协议开发人员在开发中容易出现失误。以上这些因素都有可 能导致协议实现与协议规范之间的不一致,或者是不同实现之间的交互异常等。 所以,我们必须根据协议规范,对网络中的每一个协议功能进行测试,以保证在 一个复杂的通信网络中,多种不同的通信实体之间的互联与互操作能够顺利进行。 基于以上原因,展开协议测试研究是非常有必要的。随着网络协议的复杂性不 断增加,协议测试也越来越成为一个研究热点和重点。特别是近年来随着互联网 的飞速发展,连入网络中的用户以指数级增长,造成了i p 地址的极度短缺,现有 的i p v 4 地址已经不能满足日益扩大的网络需求,成为限制网络发展的瓶颈。基于 这种情况,i p v 6 应运而生。如何快速平稳的由i p v 4 向i p v 6 过渡,怎样满足i p v 6 协议实现与协议规范之间的一致性要求,以及保证各协议实现之间的互操作性, 这些都是当前协议测试迫切需要解决的问题,也j 下是基于此,提出了本课题:基 于契约和代码植入的协议测试方法研究。 后面我们所提到的协议测试研究都是针对协议的一致性测试进行的研究。 基于契约干代码植入的协议测试技术研究 1 2i p v 6 协议产生背景 随着计算机通信技术的发展和普及,计算机网络在人类生活中扮演着越来越重 要的角色,互联网在各个领域的应用得到了飞速的发展,人们对信息资源的开发 和利用进入了一个全新的阶段。于是作为网络中数据交换和信息共享基础的网络 协议的设计和开发就受到了越来越多的重视。 现行的i n t e r n e t 标准的网络层协议i p v 4 是一个令人难以置信的成功的协议, 它的设计灵活而强有力,可以把数十个或数百个网络上的数以千计的主机连接在 一起,并已经在全球i n t e r n e t 上成功地连接了数以千万计的主机。实践证明,i p v 4 是健壮的,易于实现,而且具有很好的互操作性,它本身也经受住了互联网从小 型发展到今天这种全球规模的考验。 然而,随着应用范围的不断扩大,网络规模急速发展,i n t e r n e t 用户成指数 级的增加,出现了许多的新问题,如规模问题、安全问题等等,使得i p v 4 已越 来越难以应付各种新的需求。特别是i p 地址紧缺,已成为未来网络发展的一个瓶 颈问题。虽然各方面都在研究一些补救方法,如用地址翻译( n a t ) 来缓解i p 地 址的紧张,用无类域间路由选择( c i d r ) 来改善路由性能等,但是这些方法只是 暂时缓解了问题的紧急性,并不能从根本上彻底的解决问题。并且随着计算机不 断地微型化,形式广泛化,计算机将无处不在,网络将成为我们生活中不可或缺 的部分。在这样的环境下,系统必须支持即插即用、实时通信、低功耗、容易管 理等功能,很明显现行的i p 必须进一步发展且更具灵活性,才能满足不断扩大 的新的需求。正是在这种环境下,i p v 6 应运而生。 i p v 6 的地址长度增加到1 2 8 位,比之i p v 4 的3 2 位地址,i p v 6 能够提供能够 几乎用之不竭的i p 地址,彻底地解决限制未来网络发展的瓶颈问题。除了“一劳 永逸”地解决i p 地址紧缺问题,i p v 6 同时顺应了对无线移动网和网络安全的日益 广泛的应用需求,可以预见,与移动和安全技术结合紧密并拥有更广闫地址空间 的下一代i p 网络一i p v 6 网络是必然的发展方向。 1 3 国内外测试研究现状 协议测试技术可分为一致性测试、互操作性测试、性能测试和鲁棒性测试四种 类型【l 】。其中一致性测试是另外三种测试的基础,是协议测试中的一个重要部分。 一致性测试是通过观察具体实现在不同的环境和条件下的反应行为来验证协议实 现与相应的协议标准是否一致,旨在检验所实现的协议实体( 或系统) 与协议规范的 符合程度【2 l 。要保证不同的协议实现版本在实际网络中能成功的相互通讯,还需要 检测某一协议实现与其它系统实体之间的交互过程是否正常,这是互操作性测试。 另外还要对协议的性能进行测试,检验协议的响应时间、吞吐量性能指标等,是 第一章绪论 否满足系统的要求。鲁棒性也称为健壮性,我们对协议的鲁棒性进行测试,通过 观察协议在系统故障、网络过载、故意攻击等情况下,是否具有自动恢复功能或 者能够保持不崩溃,来确定协议抵抗异常或者危险因素的能力 国外在协议测试方面的研究工作开展的较早,对于协议测试已经进行了长达 3 0 多年的研究,在理论和实践上都处于领先地位,到上个世纪末,已经形成大量标 准的测试生成方法:t ,d ,u ,w 等【3 】f 4 1 1 5 】【6 】。特别是对于协议的一致性测试方法 的研究,已经得到了相当成熟的理论框架。2 0 世纪9 0 年代,国际标准化组织i s o 专门制定了一套国际化标准i s o i i e c9 6 4 6c n 伍( c o n 妇m a i l c et c 娟n g m e t l l o d o l o g ya n df r 锄e w o r k ) ,为协议的一致性测试提供了基本方法和框架。对于 一致性测试的研究目前主要集中于协议建模、测试集生成算法、错误覆盖率分析、 测试执行的体系结构等几个方面。 中国对于协议测试的研究起步较晚,但是中国互联网和通信市场的巨大空间和 前景,都使得中国在协议测试的研究与应用方面得到了快速发展。我国的研究人 员在协议测试领域也做出了巨大贡献,积累了宝贵的经验。由清华大学吴建平教 授领导的网络实验小组己经开发出了基于形式化的协议集成测试系统p i t s 【7 】,取 得了大量的研究成果 8 】【9 】( 1 0 1 【l 】;中国科学院计算技术研究所网络测试实验室在协议 测试方面取得了长足的进展,李忠诚教授以及其他的研究人员发表了一系列具有 创新意义的文章1 2 】【1 2 】【1 4 】1 1 5 】;中国科技大学在协议测试方面也取得了不斐的成果 f 1 6 】f 1 刁f j 盯,蒋凡教授领导的课题组已经完成了基于t 1 n - 3 的测试系统。 1 4 本文的工作 本文针对基于契约和代码植入的i p v 6 协议一致性测试技术做了研究。使用 x m l 作为协议规范的形式化描述语言,实现了检测代码的自动植入技术,完成协 议实现与协议规范之间的自动比较,实现了协议测试的部分自动化,可以减少人 为的误差,提高测试精度和效率,节省人力时间等资源。 本文共分五部分,章节安排如下: 第一章,绪论部分,叙述了开展协议测试研究的意义与重要性;然后简单介绍 了i p v 6 协议产生的背景,以及国内外对于协议测试研究的现状及发展趋势;最后 介绍了本文所完成的工作。 第二章,协议测试技术概述,协议测试属于软件测试的一部分,协议的一致性 测试是一种功能测试,即所谓的“黑盒测试”。本章先介绍了软件测试的基本知识, 然后给出了协议测试的概念和常用的协议测试方法。最后介绍了i p v 6 的相关知识 和定义。 第三章,协议规范的形式化描述,介绍了常用的形式化描述方法和形式化描述 基于契约矛代码植入的协议测试技术研究 语言,及其优缺点。本文使用订l 做为协议规范的形式化描述语言,介绍了v i i 。 语言的特性与优点,最后以i 珂c 1 8 8 3 的报文报头为例,给出了其形式化描述。 第四章,基于契约和代码植入的协议一致性测试,介绍了代码植入的相关知识, 给出了契约的定义和描述方式。使用契约和代码植入技术实现协议的一致性测试, 并总结了使用契约和代码植入的优点。 第五章,试验及结果分析,试验完成了r f c l 8 8 3 中关于报文报头的一致性测 试和隧道协议的一致性测试,本章给出了试验结果,并对结果进行了分析,试验 结果单独保存在一个名为t e s 依e s l l l t 戗t 的文件中,便于进行结果分析及数据统计。 第二章协议测试技术概述 第二章协议测试技术概述 2 1 软件测试的定义 1 9 7 2 年,在美国的北卡罗来纳大学召开了首次软件测试会议,这是软件测试 领域的一个里程碑。1 9 7 5 年,g o o d e n o u g l l 和g e r h a n 提出测试数据选择理论,将 软件测试这一实践性很强的学科,提高到了理论高度。上世纪八,九十年代,软 件测试和软件质量管理成了软件工程领域研究的热点。一些重要的标准也纷纷出 台,包括软件测试的文档标准i e e e a n s is t d 8 9 2 ,软件测试确认与验证计划标 准e e a n s is t d 1 0 1 2 ,软件测试复查和审计标准i e e e ,a n s is t d 1 0 2 8 等。 虽然对于软件测试的研究已经进行了很长时间了,也取得了许多令人欣喜的成 果,但是,直到目前为止,软件测试还没有一个公认的准确定义。1 9 8 3 年i e e e 把 软件测试定义为:使用人工或自动手段来运行或测试某个系统的过程,其目的在 于检验它是否满足规定的需求,或是确定预期结果与实际结果之间的差别。另外, 很多人引用g r e n f o r dj m y e r s 在t h ea r to fs o f t w a r et e s t i n g 一书中的观 点:软件测试是为了发现错误而执行程序的过程;测试是为了证明程序有错,而 不是证明程序无错误。这个观点提醒人们,测试是以查找错误为中心的,要尽可 能多的查找出软件中的错误,而不是来演示软件的正确功能。 2 2 软件测试的常用技术 软件测试的技术和方法多种多样,根据不同的角度,可以对软件测试技术进行 不同的分类: 根据是否执行被测软件的角度,可以分为静态分析测试和动态分析测试。静态 测试就是静态分析,对模块的源代码进行研读,查找错误或收集一些度量数据, 并不需要对代码进行编译和运行。静态测试通过人工检测或是借助专用的软件测 试工具来评审软件文档或程序,度量程序的静态复杂度,检查错误出现的概率。 它只是对代码进行扫描分析,检测语法规则复杂度是否符合要求,为软件的质量 保证提供依据,以提高软件的可靠性和易维护性。动态测试则通过运行软件来检 验软件的动态行为和运行结果的正确性,提供执行跟踪,时间分析,以及测试覆 盖度方面的信息。动态测试通过真正运行程序发现错误,通过有效的测试用例, 对应的输入输出关系来分析被测程序的运行情况。所以动态测试包括两个基本要 素:一是运行被测程序,二是选择用以运行软件的数据。 从测试是针对系统的内部结构还是针对具体实现算法的角度,可以分为白盒测 试和黑盒测试。白盒测试又叫结构测试或逻辑驱动测试,也就是已知程序的内部 基于契约和代码植入的协议测试技术研究 工作过程,按照程序的内部结构测试程序的变量状态,逻辑结构,运行路径等, 以检查程序中的每条分支是否都能按预定要求正确工作,而不验证程序是否完成 了指定的功能。黑盒测试也称为功能测试或数据驱动测试,它较少考虑程序的内 部实现过程,而是从软件需求出发,根据需求规范设计测试用例,并按照测试用 例的要求运行被测程序,根据执行结构来验证软件功能和性能的正确性。 2 3 协议测试概述 协议作为一种特殊的通信软件,对它的测试一直是协议工程学中研究的热点。 以往对协议测试的研究已经形成了大量这方面的结果,提出了许多种协议测试方 法p 5 1 。其中影响较大的是o s i 提出的四种抽象测试方法:本地测试方法,分布式 测试方法,协同测试方法,远程测试方法p 6 1 。一般常用的基于f s m 模型的测试生 成方法有t ,u 。d s ,w p ,u i o 掣3 l 【4 】,早在1 9 8 6 年h u r a l 等人就已经在基于f s m 模型的测试序列生成中引入了优化方法【2 7 】,9 0 年代初a v a h o 等人又将优化算法 引入到测试用例生成的u 方法中【2 s j 。 对协议的测试一般可以分为四种: 一致性测试( c o n f o 肌a n c et c s t i l l g ) :检验和确认协议实现系统与协议设计 规范的符合程度。 性能测试( p e r f 0 肌a 1 1 c et e s t i n g ) :检验协议实现系统的性能指标是否达到 设计要求,如数据传输率,连接时间,执行速度,吞吐量等。 互操作性测试( i m e r o p e r a b i l 时t e s t i n g ) :检测同一协议的不同实现版本之 间互通能力和互连操作能力。 鲁棒性测试( r o b u s t n e s st c s t j n g ) :检测协议实现系统在各种恶劣环境下运 行的能力。 其中,一致性测试是其他三种测试的基础,也是目前唯一能够给出理论框架 的一种协议测试。目前对于一致性测试主要采用的是基于黑盒的测试方法,该方 法的主要输入就是描述协议规范的模型。因此采用什么样的规范描述方法对于协 议测试具有很大影响。由于多数通信协议都具有反应性质,所以那些能够精确描 述反应系统时序特性的规范语言很自然成为了描述协议的首选。常用的通信协议 的形式化描述方式有有限状态杌模型( f s m ) 1 2 0 】【2 ”,p e 砸网模型,时序逻辑( t l ) ,通 信进程演算( c s s ) 等模型技术【2 2 】【2 3 l 。i s o 组织公布的两种标准形式化描述语言 ( f d t ) :e s t e l l e 和l o t o s 是分别基于扩展有限状态机( e f s m ) 和通信进程演算;i t u 2 t 组织发布的f d t :s d l 也是基于扩展有限状态机的【2 5 】【2 6 】 第二章协议测试技术概述 2 4i p v 6 协议的相关知识 2 4 1i p v 6 协议研究发展现状 目前美国和欧洲国家对于毋v 6 的发展以研究和试验为主体,日本韩国等亚洲 国家则在商用和业务开展方面处于领先地位。中国对于i p v 6 的研究和应用晚于日 韩等国,但是中国互联网和通信市场的巨大空间和前景,都使中国在未来v 6 产 业化进程中起着举足轻重的作用。 美国是i p v 4 的发源地,地址资源和商业应用占有先天优势,目前没有地址短 缺的顾虑,也不愿意改动重金构建的口v 4 商业网络体系,所以美国主要以叶6 的 研究,协调为主体工作。欧洲的移动通信事业非常的发达,他们在v 6 的研究和 商业化应用中更注重其在移动通信领域的扩展,采取的是“先移动,后固定”的 基本策略,在第三代移动网中率先引入了肌6 。f 本是互联网的后起国家,但是 高度发达的电子设备和家电信息产业,造成了口地址的极度短缺。对i p 地址的迫 切需求,使日本加快了对i p v 6 研究和应用的速度,在全球v 6 商用服务。产品及 应用开发方面,日本目前处于领先地位。 中国从2 0 世纪9 0 年代末起,在相关部委科技计划的支持下,展开了对于脚6 的研究,一批i p v 6 关键技术研究课题作为国家重大专项立项,并陆续取得了突破 性成果,为我国开展以口v 6 为基础核心协议的下一代网络研究奠定了基础。与此 同时,我国的一些相关研究机构,高校,厂商及运营商也陆续开始关注v 6 技术 发展,展开i p v 6 的研发,并相继建成了口v 6 试验床和试验网络,在口v 6 核心技 术研发,协议标准制定,组网,过渡策略,测试,应用示范和商业化探讨等方面 积累了宝贵的知识与经验。 自9o 年代中期起,世界各地的研究机构和各大公司在叭6 领域开展了广泛深 入的研究工作。t f 构建了一个口v 6 主干网6 b o n e 作为i p v 6 发展的试验床。目 前6 b o n e 的站点已遍及亚洲、欧洲、北美、澳洲的多个国家。在许多不同的主机 和路由器操作系统上都已有了口v 6 的实现,其中许多己是正式发行的产品。很多 应用程序己支持m v 6 ,同时网上有很多支持i p v 6 的应用程序的补丁库。口v 6 已逐 步走向实用阶段,在这个过程当中,各个厂家所推出的不同的i p v 6 实现版本是否 与i p v 6 协议标准一致及它们之间是否能够安全、可靠地相互通讯,决定了口v 6 网 络是否能顺利地得到推广和普及直至最终取代v 4 网络。而协议一致性测试的目 的就是测试一个协议标准和它的多种不同实现之问的一致性以保证这些不同实现 之间能够互操作。因此开展i p v 6 协议一致性测试研究对于p v 6 的发展具有重要的 现实意义。同时i p v 6 协议作为一种新的协议,对它的一致性测试的研究也将对协 议一致性测试的理论和实践的丰富及发展做出贡献。 s 基于契约和代码植入的协议测试技术研究 2 4 2 从i p v 4 到i p v 6 在设计新的i p 版本( i p v 6 ) 时。为解决i p v 4 的局限性以及其他相关问题,不 仅吸纳了许多用于更新i p v 4 协议的新思想,而且力图对上下层协议造成最小的影 响,并尽量避免了随意引入新特性。下面简单介绍i p v 6 相对于i p v 4 的一些改进【1 4 】。 一扩展了路由和寻址能力 i p v 6 把i p 地址增加到1 2 8 位,比之以前的3 2 位,能够支持更大的地址空间, 可连入i n t e r n e t 的设备可以不受限制地增长。 i p v 6 地址的编码采用类似于c i d r 的分层分级结构,简化了路由,加快了路由 速度。在多播地址中增加了一个“范围”域,从而使多播不仅仅局限在子网内, 还可以横跨不同的子网,不同局域网。 二重建了端对端通信 在i p v 6 中,由于充足的地址资源,我们不再需要n a t 来节约共用地址空间, 因而对于应用程序和网关的开发者来说,地址和端口的映射带来的问题也随之消 失了。更重要的是,使用了不会在中途改变的地址,故而i n t e r n e t 上主机到主机 的端对端通信得以重建。 三i p v 6 对格式的简化 i p v 4 格式中的一些冗余的域或者被丢弃,或者被列为可选的扩展,从而降低 了包处理和带宽的开销。 四对可选项更大的支持 i p v 6 的可选项不放入,而是放在一个个独立的扩展报头。如果不指定路由器, 则不会打开处理扩展报头,这大大改变了路由性能。i p v 6 放宽了对可选项长度的 严格要求( i p v 4 的可选项总长最多4 0 字节) ,并可根据需要随时引入新的选项。 i p v 6 的很多新特点就是由选项来提供的。 五q o s 功能 在i p v 6 的报头,有两个相应的优先权和流标识字段,允许把数据报指定为某 一信息流的组成部分,并可对这些数据报进行流量控制。i p v 6 指定这两个字段是 每一i p v 6 节点都必须实现的,保证了更有效的转发。 六身份验证和保密 在i p v 6 中加入了身份验证,数据一致性和保密性的内容。在i p v 4 中,这些内 容是可选的,而在i p v 6 中是必需的。把这些特性内置于协议中,比将它们作为附 加的可选的特性更有效地保证了安全性。 第二章协议测试技术概述 2 4 3i p v 6 的地址类型及表示方式 按照寻址方式和功能的不同,i p v 6 地址可以分为三种基本类型: 1 单播地址( u f l i c a s ta d d r c s s ) :它是单个网络接口的标识,以单播地址为目 的地址的报文将送往其标识的唯一的网络接口上。i p v 6 单播地址包括可聚合全球 单播地址、未指定地址、本地回送地址、嵌有口v 4 地址的r p v 6 地址、本地单播地 址等类型。 i p v 6 中定义了两神本地单播地址:链路本地单播地址和站点本地单播地址。前 者定义了在单个网络链路上用以完成自动地址配置和邻居发现等功能;后者用于 站点内的寻址,不能直接选选路到i n t e m e t 上。 2 任播地址( a n y c a s t a d d r e s s ) :是同时分配给多个网络接口( 通常分布在不 同的节点上) 的一类口v 6 地址。发往以任播地址为目的地址的m v 6 报文将会送往 拥有该任播地址的接口之中路由协议认为距离报文源节点最近的一个,亦即只有 一个接口能收到该报文。 目前,对于p v 6 任播地址的用途和实现机制还在不断的研究和尝试之中。现 在已经确定的任播地址用途有一下三种: 标识一个提供因特网服务的组织中的路由器集合。这时,任播地址可以作 为报文源路径选择扩展报头中的中间路由器地址,使得报文经过指定网络 服务接入组织的任意一个路由器进行传播。 标识连接因特网的路由器集合。 标识提供到某一个网络区域路由器集合。 m t f 从安全角度考虑,在r f c 2 4 6 0 中对口v 6 任播地址的使用做了一些限制: 任播地址不能作为源地址在口v 6 报文中出现。 任播地址目前只能分配给路由器,而不能分配给普通的i p 、,6 主机节点。 3 多播地址( m u l t i c a s ta d d r e s s ) :是一个网络接口集合的标识,集合中的不 同成员一般分属于不同的节点。以多播地址为目的地址的报文将同时送往集合 中的所有成员,这种发送过程称为组播。拥有同一多播地址的网络接口的集合 称为一个组播组。在因特网上,这种“一对多“的实例有网上新闻消息的发布、 实时股票信息的网上发布等。 使用多播地址时要注意,多播地址不能作为i p v 6 报文的源地址,也不能在 路由扩展报头中出现,否则,接收方无法确定报文的来源。 i p v 6 的1 2 8 位地址长度提供了巨大的地址空间,但是用二进制直接记录如此 长的地址很不方便。为了能像i p v 4 中使用的“点分十进制”址表示法那样方便, i p v 6 制定了“冒号十六进制”表示法。这种方法将1 2 8 位分成8 个1 6 位的十六进 1 0 基于契约和代码植入的协议测试技术研究 制数加上分隔它们的冒号来表示,表示形式为“x :x :x :x :x :x :x :x ”,每一个x 代 表地址的一个1 6 位的部分,并使用十六进制表示。例如 f e 8 0 :1 2 3 4 :5 6 7 8 :2 0 0 2 :1 2 3 4 :3 4 9 2 :c 2 d 3 :6 b a 0 。 在地址表示中,每个十六进制数靠左边的多个连续的零可以省略,全零的十六 进制数要用一个零来代表,还可以将地址中连续的全零域用一对冒号“:”来代 表,例如,地址f e 8 0 :0 0 0 0 :0 0 0 0 :0 0 0 0 :o 0 0 0 :o 0 0 2 :c 2 d 3 :0 6 b a ,可以表示成 f e 8 0 :0 :0 :0 :0 :2 :c 2 d 3 :6 b a ,还可以进一步简化为f e 8 0 :2 :c 2 d 3 :6 b a 。 2 4 4i p v 6 的数据报文格式 口v 6 数据报文的基本报头格式 和脚4 一样,i p v 6 的报文同样是封装在一个网络物理帧中。下面两个图 分别是脚4 和i p v 6 的报头格式。 版本号报头长服务类型报文总长 标识标志分片偏移 生存时间 协议 报文报头校验和 源i p 地址 目的i p 地址 可选项十填充字节 图2 1 m v 4 报头格式 版本号传输类别流标记 有效负载长度下一报头跳数限制 源地址( 1 2 8 位) 目的地址( 1 2 8 位) 图2 2 i p v 6 报头格式 第二章协议测试技术概述 从上面两个图i p v 4 与i p v 6 报文报头的比较中,可以看出,i p y 6 对报文报头做 了较大的改变。i p v 6 的报文报头长度固定为4 0 个字节,去掉了报文报头校验及报 头长等不必要的字段,只保留报文传送过程中必需的控制信息。i p v 6 报文报头的 这一特点使得报文在传输途中各个节点里的处理速度大大提高。 口v 6 报文报头中各域的长度与含义在r f c l 8 8 3 中给出,定义如下; 1 版本号( v e r s i o n ) :4 位,标识报文所使用的i p 协议版本。口v 6 协议的报 文中,该域的值固定为6 。 2 优先级( p r i o r i t y ) :4 位,确定传输报文的类别或优先级。 3 ,流标记( f 1 0 wl a b l e ) :2 4 位,用于标记源于同一节点,并需要路由器提 供特别处理的报文序列。 4 有效负载长度( p a y l o a dl e n g t h ) :1 6 位无符号整数,以字节为单位说明 了报头之后的数据长度( 包括各个扩展报头和数据区) 。 5 下一报头( n e x th e a d e r ) :8 位选择器,标识紧接着i p v 6 报头的后面的报 头类型。 6 下一跳限制( n e x th o pl i m i t ) :8 位无符号数,在报文传输途中,转发此 分组的每个中继节点都要对该域中的数值做减l 操作,当该值为0 时,则 此分组被抛弃并向源节点报告。 7 源地址( s o u r c ea d d r e s s ) :标识生成报文的源节点的1 2 8 位i p v 6 地址。 8 , 目的地址( d e s t i n a t i o na d d r e s s ) ;标识接收报文的目的节点的1 2 8 位i p y 6 地址。如果存在路由扩展报头的话,该地址可能不是最终接收地址。 i p v 6 数掘报文的扩展报头 在i p v 6 中,任选的网络层特殊控制信息被编码在分隔的里,这个可能位于i p v 6 报头和上一层协议报头之间的各个扩展报头中,路由器和最终目的节点根据扩展 报头中的控制信息对所传送的报文作特殊处理。扩展报头取代了i p v 4 中的可选项 并提供了更为强大的功能。扩展报头根据报文的不同需要选择使用,其中携带的 信息也不一定需要在报文传输中的每个节点上进行处理。目前,i p v 6 协议设计的 扩展报头有六种: 1 逐跳选项报头( h o p 七y h o po p t i o n sh e a d e r ) 2 路由报头( r o u t i n gh e a d e r ) 3 分片报头( f r a g m e n th e a d e r ) 4 目的选项报头( d e s t i n a t i o n0 p t i o nh e a d e r ) 5 授权报头( a u t h e n t i c a t i o nh e a d e r ) 6 封装安全有效载荷报头( e n c a p s u l a t i o ns e c u r i t yp a y l o a dh e a d e r ) 各种不同作用的扩展报头和上层协议的报头都有对应的数字标识,这些标识定 义在r f c l 7 0 0 中,每个i p v 6 报头可以有零、一、或更多扩展报头,每个扩展报头 2 基于契约和代码植入的协议测试技术研究 都被前一个报头的“下一报头域”所标识。 有一种例外,除非分组抵达一个标识在i p v 6 报头目的地址域里的节点( 或一 组节点中的每一个,以多播的形式传递) ,否则扩展报头不会被传输路径上的任何 节点检查或处理。这个特例就是指h o p b y h o p 选项报头,它携带了包的传送路径 中的每个节点都必须检测和处理的信息,包括源节点和目的节点。h o p - b y h o p 选 项报头如果存在,就必须紧跟在i p v 6 报头后面。 扩展报头在i p v 6 报文中出现的顺序是有严格要求的,依次为:h o p - b y h o p 选项报头,目的地址选项报头,路由报头,分片报头,授权报头,封装安全有效 载荷报头,目的地址选项报头其中,除了目的地址选项报头最多出现两次( 一次 在路由报头前,它是由1 p v6 目的地址字段及路由报头列出的后续地址中第一个 出现的目的地址处理的选项:另一次在上层协议报头前,它是只由包的最终目的地 址处理的选项) 以外,其它扩展报头最多出现一次。 2 5 本章小结 协议是一种特殊的通信软件,所以协议测试也属于软件测试的一部分。协议的 一致性测试属于功能测试,即所谓的黑盒测试。除了具有软件测试的共性外,协 议测试还有其特殊性。 本章首先介绍了软件测试的定义和常用方法分类,使读者对于软件测试有一个 基本的了解。然后简单叙述了协议测试的基本概念和定义,以及常用测试方法。 在本章最后,介绍了口v 6 的地址和报文格式的相关知识,这些知识是在本文相关 的实验中所要用到的。 第二章协议规范的形式化描述 第三章协议规范的形式化描述 3 ,1 对协议规范进行形式化描述的重要性 协议可以用自然语言、程序设计语言或形式描述语言来描述。由于自然语言方 便、易懂、可读性好,故国际标准化组织( i s 0 ) 采用自然语言描述并颁布协议规 范。 然而,自然语言描述具有不准确、不严密、二义性等缺点,对于同一个协议规 范,不同的人往往有不同的理解,从而导致不同的实现。并且,从自然语言描述 的协议到协议的实现是一个复杂而低效、必须手工完成的过程,这给协议开发者 带来了很大的不便,费时费力,工作效率极为低下。 用经典的程序设计语言( 如p a s c a l ,c 等) 描述协议规范瑞然便于协议的实现, 但是可读性差,表述协议的并发性、不确定性以及其它协议性质和协议元素性质的 能力较差,并且过多地描述了协议的实现细节,因此,它只能用于协议的实现, 而不宜作为协议规范公布。 形式化描述语言采用的是符号语言,它是基于一种或者几种数学模型,有良好 的数学基础,克服了自然语言和程序设计语言的缺点。用它来描述协议规范可以 做到在语义上准确无二义性,避免了同一个协议规范因用非形式化语言做描述造 成的理解上的差异。而且,用形式化语言描述的协议规范抽象于具体的协议实现 环境。所以,采用形式化描述语言作为协议规范的描述语言是非常有必要的。 3 2 形式化描述的常用方法 目前对于协议一致性测试主要采用的是基于黑盒的测试方法,该方法主要的输 入就是描述协议的规范模型。因此,采用什么样的规范描述方法对于协议测试具 有很大的影响。由于多数通信协议都具有反应性质,所以那些能够精确描述反应 系统时序特性的形式化描述语言很自然就成为了描述协议的首选。 常用的通信协议形式化描述方法有有限状态机( f s m ) 模型【2 0 l 【2 1 】,p e t r i 网模 型,时序逻辑( t l ) ,通信进程演算( c c s ) 等模型技术【2 2 1 。在此基础上,人们 也提出了多种基于不同数学模型的形式描述语言1 2 “,其中国际标准化组织i s o 组 织公布的两种标准形式化描述语言( f d t ) :e s t e l l e 及l o t o s 是分别基于扩展有限 状态机( e f s m ) 【2 9 】和通信进程演算;c c i t t 组织颁布的f d t :s d l 也是基于扩展有 限状态机的。下面我们给出几种形式化模型和形式化描述语言的简单介绍。 1 4 基于契约和代码植入的协议测试技术研究 3 2 1 有限状态机模型 有限状态机( f i n i t es t a t em a c h i n e ) :n i s t ( 美国国家标准与信息技术研究 院) 对有限状态机( f s m ) 的定义如下,有限状态机m 是一个五元组,可以表示为 如下形式: m = ( q , 6 ,q o ,f ) 其中, q :状态的非空有限集合。 :输入字母表( i n p u ta l 曲b e t ) 。输入字符串都是上的字符串。 6 :状态转移函数( t r a n s i t i

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论