>
首页 » 技术文章 » IS-ISv6协议一致性测试系统设计与实现

IS-ISv6协议一致性测试系统设计与实现

作者:罗晓慧,赵达观,谢高岗,谢冬青  时间:2007-02-05 01:55  来源:

摘 要: IPv6 协议作为下一代互联网最有竞争力的核心协议已经成为研究热点,它主要解决路由器之间通信的问题。如何保证各网络设备协议实现的一致性,是保证各设备互联,互操作的关键。本文在介绍IS-ISv6 协议和协议一致性测试的基础上,设计并实现了IS-ISv6 的协议一致性测试系统,并对一基于Linux平台的IS-ISv6 一致性测试实现的结果进行了分析。

关键词: IS-ISv6 协议;协议一致性测试;测试方法;一致性测试系统

 引言

随着Internet 规模的不断扩大, IPv4 在地址空间、安全、性能等方面存在越来越多的问题, IPv6 被认为是替代IPv4协议的最佳协议。当前IPv6 的路由协议有RIPngOSPFv3 BGP4 IS - ISv6 。随着支持IPv6 的网络产品的日渐增多,IPv6 设备必须实现与协议标准相一致的路由协议才能保证各设备顺利地转发数据包,因此IPv6 路由协议实现与协议标准的一致性问题也越来越重要。IS - ISv6 协议是Internet的基础协议,它是链路状态协议,路由器向其所在区域的其他路由器扩散与之相连的链路状态,从而传递拓扑信息,每个路由器会对接收到的其他路由器发来的链路状态数据包进行处理,运用最短路径优先算法(SPF 算法) 找到网络里每个目的地的最短路径。IS - ISv6 协议是下一代Internet 核心协议IPv6 协议的重要组成部分,IS - ISv6 协议的IPv6 版本。目前,适用于IPv4 的最新IS - ISv6 协议标准是RFC1195 ISO10589 , IS - ISv6 还未正式形成RFC 标准,只有draf t - ietf- isis - ipv6. txt 标准草案, 标准草案主要描述了对IS - ISv6所作的修改,扩展了两个TLV ,使之支持IPv6

IS - ISv6 协议可划分为3 个子协议: hello 协议,交换协议和扩散协议。Hello 协议主要用来确认邻接路由器的发现与邻接关系的维持;交换协议主要用于邻居路由器之间的数据库同步;扩散协议用来共享链路状态信息,使得所有路由器都拥有一致的网络拓扑信息,从而可计算通往网络中目标地址的无环路由。

目前日本TA HI 工程,美国新罕布什尔大学等从事协议一致性测试的机构已公布的IS - ISv6 协议测试系统在进行IS - ISv6 这种以数据行为为主的协议测试时,会产生大量的空表项,使产生的测试文件非常庞大,测试执行时间长,动态测试效率低。他们的测试系统只能在IPv4 网络上运行。本论文的创新之处在于设计改进了IS - ISv6 一致性测系统,使它能在IPv6 上顺利运行,采用改进的远程测试法,通过虚拟测试,利用测试序列包中的地址字段和其他特征字段,仅用一台测试器就搭建了一种逻辑测试结构,实现了多台虚拟测试 器的测试拓扑。

 

协议一致性测试介绍

 

协议一致性测试

网络设备通过协议测试保证其一致性,互操作性及性能等。协议测试是一种黑盒测试,它依据协议标准来控制观察被测试协议实现的外部行为,对被测协议实现进行测试。协议测试中的一致性测试是一种“功能测试”,它依据一个协议的描述对协议的某个实现进行测试,判别一个协议的实现与所对应的协议标准是否相一致。在一致性测试中,只对协议实现的外部可观察行为进行测试,而不涉及协议实现的内部结构。协议一致性测试一直是国内外研究的重点之一。20世纪90 年代,国际化标准组织ISO 专门制定了一套标准-ISO/ IEC 9646 (协议的一致性测试方法和框架) ,它为协议的一致性测试提供了基本方法和框架,为测试集制定了设计步骤和描述方法,并为测试系统的实现提供了指导。

随着支持IPv6 产品的增多,国内外有关IPv6 的协议测试研究小组也越来越多,目前著名的IPv6 协议一致性测试研究项目组有日本由东京大学, Yokogawa 计算机公司及电气公司组织的TA HI、德国的国家科教部及电信局的JOIN、美国新罕布什尔大学(University of New Hamp shire) IOL 实验室等。由于路由协议的复杂性,特别是IS - ISv6 协议的复杂性,这些项目目前都没有涉及IS - ISv6 路由协议的一致性测试。作为最基本和重要的域内路由协议,测试IS - ISv6 协议实现的一致性具有重要的现实意义。

目前一致性测试系统的实现方法为:测试设备和被测实现IUT ( Implementation Under Test ) 通过接口相连,测试设备发送和接收数据包,利用测试序列包中的地址字段和其他特征字段来判断协议实现的一致性。为了避免环路的出现,路由协议不会把路由信息转发到发送消息的端口,所以单端口不能满足路由器协议一致性测试的需求。另外,路由协议本身的复杂性使得它难以用一般的形式化语言,TTCN ,进行描述。并且在用TTCN 来实现协议的形式化描述并编译执行的时候需要额外的编译器,一旦修改了测试数据,就需要对整个测试集重新编译处理,增加了测试的时间。因此计算所网络室参考TTCN 的结构框架和思路,改进了一种类形式化语言( TSS) 描述IS - ISv6 一致性测试系统。

 测试方法

ISO9646 定义了四种抽象测试法:本地测试法、分布式测试法、协调测试法和远程测试法, IS - ISv6 一致性测试一般采用远程测试法。如图1 所示,下测试器和被测协议实现是对等实体,它们之间通过提供N-1层服务的底层协议实现连接。不要求能访问被测协议实现的上边界,不定义上测试器,也不需要显式的测试协调过程。这种方法依赖于被测协议来实现和下测试器间的同步,远程测试法所采用的一个假设是被测协议实现的状态可由下测试器通过(N-1) 层服务与之交换N PDU 确定,测试判决则是由基于下测试器对被测协议实现提供的激励及下测试器所观察到的被测协议实现的响应作出的。

本文在试验中采用了改进的穿越测试法。把原有远程测试方法的多个下测试器集成在一起,实现远程测试,克服了原有测试方法中两个系统的同步和协调问题。

 IS - ISv6 一致性测试的过程和测试系统的设计

 

IS - ISv6 一致性测试的过程

IS - ISv6 一致性测试过程如图3 所示。首先根据被测协议的说明确定测试目标,将测试目标抽象为被测协议实现的一组可见外部行为描述,形成测试体。测试体的测试序列引发这些外部行为,形成“激励—响应”的互动过程。然后设计前测试例和后测试例。IS - ISv6 协议一致性测试过程包括三个阶段:第一阶段是对于某个特定协议的抽象测试套的描述,这个阶段叫测试生成,测试生成是与具体的协议实现无关;第二阶段是测试执行的方法的具体实现,称作测试实现,在此过程中抽象测试套被转换成可执行测试例,这些测试例可以在测试仪或测试系统直接执行或解释执行。在这个阶段中,测试环境和被测实现的特殊性被考虑;最后一个阶段叫测试执行,测试实现将在某个特定的被测实现上执行,被测实现的行为被纪录,最后作出判决。

 

 

  IS - ISv6 测试系统的设计

IS - ISv6 系统结构如图4 所示,包括图形用户接口、系统控制模块以及控制观察点模块。

IS - ISv6 系统采用两进程实现,图形用户接口和下面两层分开,避免两进程相互影响,保证了测试的高效执行。本系统实现使用了tcl C 相结合的方式。图形界面采用tcl 实现,系统控制和执行用C 语言来实现。该系统非常灵活,它提供了丰富的库函数,易于实现控制循环,可以比较准确的控制复杂路由协议的各种状态的变迁。图形用户接口模块的主要功能有: ①参数配置,其中包括接口的选择、被测路由器的相关参数及某一具体协议实现的PICS PIXIT 的编辑与存储; ②测试例选择,可以根据测试需要选择不同测试例; ③测试结果的显示,其中包括数据包交互显示,简单的解包功能及测试结果的显示。④另外一个最主要的功能就是,给下层模块传递必要参数和控制信息。

其他两个模块为系统控制模块和控制观察点模块,其主要功能: ①从图形用户模块获得测试例执行的必要信息,完成测试例中数据单元的编码和解码工作; ②根据不同的接口选择,对数据单元进行相应的封装和解封装; ③对( IUT) 被测实现的响应做出判断,给出测试结果; ④记录每个测试例的全部过程并把相关的数据传给图形界面显示。

测试系统运行时,首先启动图形用户进程,并由该进程启动系统控制和执行进程。要执行测试例,首先要进行相应的参数配置以及测试例的选择,系统依次自动执行每个测试例。当运行测试例的时候,图形用户模块首先会把相应的参数,MAC 地址,路由参数等传给系统控制模块。系统控制模块根据不同的测试例产生相应的测试步骤,并把相应的消息传给消息处理子模块。消息处理子模块则根据不同的消息负责调度相应的子模块实现相应的功能,如数据包的产生、数据包的发送和接收等等。控制观察点模块主要根据不同的接口类型对数据包进行相应的封装和解封装,并负责和底层的通信。

  测试实验与测试结果分析

测试实验的运行环境为CPU ( Intel Pentium 4) ,Memory(128M) , Hard Disk ( 80G) , NIC ( 3COM 3c905b - TX FastEtherLinkXL) ;OS. : FreeBSD 4. 5 ;路由软件:zebra - 0. 92a -3 ;路由器:Cisco Router

根据IS - ISv6 协议及相关的草案,用本文提到的测试集描述语言设计了6 个测试组: IS - ISv6 路由广播测试组, IS -ISv6 点到链路测试组, IS - ISv6 点到点测试组, IS - ISv6IP 认证测试组, IS - ISv6 OSI 认证测试组和IS - ISv6 广播测试组,一共有90 个测试例. 通过测试,发现IS - ISv6 基本实现了协议。在linux 上测试了上述90 个测试例,所有测试例发送包的过程完全正确. 其中有18 个测试例未通过(测试判决为失败) ,按照协议规定,当条件不满足时,测试例不应该通过,测试判决应该为失败。由于篇幅有限,选一个未通过的测试例分析如下:

Test Case No. : TC_18_4_5

Test Case Name : receiving Binding Update ( invalid IPfield)

Test Result : fail

Failure Analysis : TheIP field is invalid , the node MUSTdiscard the message and SHOULD send ICMP ParameterProblem , Code 0 message.

 

相关的结论

协议是互联网络非常重要的组成部分,路由协议是数据包在网络顺利转发的基础。随着下一代互联网技术的发展,支持IPv6 的不同路由设备的研发和需求也越来越多。本文介绍了支持IS - ISv6 的路由协议一致性测试系统的设计与实现,改进了远程测试法,并用所实现的测试系统对开放源码的IS - ISv6 路由协议确进行了一致性测试。测试结果表明该软件包在IS - ISv6 实现上与协议基本一致。

路由协议非常复杂,路由协议性能测试和互操作性测试也是非常重要的。进一步的工作包括继续完善IS - ISv6 的协议一致性测试,增加有关性能方面的测试,建立完整的IS - ISv6 路由器测试系统。

相关推荐

卫星通信系统中上变频器测试方法的探讨

IS-ISv6协议一致性测试系统设计与实现

在线研讨会
焦点