一、引言

随着计算机网络和通信技术的发展,特别是开放型异构网络的互联,协议的设计和实现越来越复杂,协议测 试的理论和技术得到了相应的发展。协议测试包括 4种测试:一致性测试、互操作性测试、性能测试和坚固性测试。其中协议一致性测试主要是验证网络产品的协议实现的准确性,判断网络产品的协议实现是否符合 协议的国际标准,以保证协议的各种实现版本之间能够互通并进行可靠的通信。因此,一致性测试是协议测试的最基本内容,是其它3种测试的基础。

如今,基于TCP/IP协议的Internet网已成为全球信息发展和交流的基础,它以路由器作为基本交换节点,以各种局域/广域网作为传媒。其中 广域网的域内路由协议大多数使用OSPF协议转发路由信息,且OSPF协议主要位于域内的路由器上,它是现有TCP/IP网络中继系统的核心协议。本文介 绍协议一致性测试原理和抽象测试方法,重点研究OSPF协议的一致性测试技术,并对OSPF协议测试集的设计进行讨论。

二、协议一致性测试

1.一致性测试原理

ISO/IEC9646提供了协议一致性的基本方法和框架,为测试集制定了设计步骤及描述方法,并对测试系统的实现提供了指导。

协议一致性测试实质上是利用一组测试序列,在一定的网络环境下,对被测实现(IUT)进行黑盒测试,通过比较IUT的实际输出与预期输出的异同,判 定IUT在多大程度上与协议描述相一致,确立通过一致性测试的IUT在互联时成功率的高低。一致性测试的过程和原理参见图1。图1 中,PICS(Protocol Implementation Conformance Statement)为协议实现一致性说明,说明实施的要求、能力及选项实现的情况;PIXIT(Protocol Implementation Extra Information for Testing)为协议实现附加信息,提供测试时必须标明的协议参数。其具体步骤如下:

(1)IUT的PICS分析,对IUT进行IUT的静态一致性要求SCR检查,分析该PICS与有关标准指定的SCR是否一致。

(2)根据规范定义测试目的,使用PIXIT提供的信息和一致性测试组合量化测试例,写出抽象测试集ATS,然后将ATS参数化生成可执行测试集 ETS。

(3)使用ETS自动对IUT进行一致性测试,形成详细的测试报告。

(4)IUT的最终一致性考查,将已知的PICS和PIXIT分析与测试结果相综合,获得IUT关于标准要求的一致性结论,记录于一致性测试报告 中。

2.一致性测试的抽象测试方法

一致性测试模型是一致性测试器利用服务原语ASP和协议数据单元PDU,在控制和观察点PCO对来自被测实现的输出和输入进行控制和观察。一般来 说,被测实现所处的系统分为端系统和中继系统两大类,在ISO/IEC9646中对这两类系统的一致性测试定义了不同的抽象测试方法。

根据一致性测试器中的上测试器UT和下测试器LT所处的位置与功能,对于端系统的一致性抽象测试方法分为4种类型:本地测试法、分布测试法、协调测 试法和远程测试法。本地测试法可以在被测系统中IUT的上下界面直接进行观察和控制,另外3种属于外部测试法。其中分布测试法要求有一个上测试器UT提供 该界面的ASP。协调测试法不需要上层外接口,使用标准的测试管理协议TMP和下测试器之间进行测试管理和协调。远程测试法中没有专门的上测试器,部分测 试器功能由被测系统实现。而这3种测试方法的下测试器LT都是通过通信链路上传送的协议数据单元PDU对IUT进行控制和观察。

对2个子网间的中继系统进行一致性测试的抽象测试法有2种:环回式测试法和横断式测试法。环回式测试法在中继系统的端口上进行环接,这种环接可以在 中继系统内完成,也可以在第二个子网内完成。而在中继系统的业务接入点SAP处的另一个子网上有2个观察与控制点,所以只需一个测试器。环回测试法的测试 功能过于简单,因而不够实用。横断测试法在业务接入的2个子网上各有一个观察与控制点,需要2个测试器,这样使得2个测试器的同步成为困难。

三、OSPF协议

1.OSPF协议特点

OSPF协议是一种基于Djkstra算法的链路状态协议,用于自治系统内的路由选择。OSPF协议具有如下特点:

● 当网络拓外改变后迅速收敛,协议带来的网络开销很小;

● 支持负载均衡,可以保留同一目的地的多个路由;

● 不易产生环路;

● 对路由更新信息进行认证以确保其有效性;

● 支持区域的划分,能够支持大规模的网络,扩展性很强。

OSPF协议支持3种网络的连接:

● 2个路由器之间的点对点连接;

● 具有广播功能的局域网;

● 无广播功能的广域网。

2.OSPF协议原理

OSPF路由协议的内容可分为交换扩散协议、网络拓扑结构数据库内容的维护以及路由表的计算3部分。交换协议使相邻的路由器建立邻接关系,然后网络 拓扑数据库中的每一条内容通过扩散协议与相邻的节点达到同步,从而使整个网络中每个节点维持的网络拓扑数据库同步。每个节点当得知网络拓扑结构图发生变化 时,重新计算整个或部分路由表以达到路由的迅速更新,使网络拓扑的变化及时地反映在相应的路由表中。

3.OSPF共有5种报文类型

● Hello报文:用来发现和维持邻站的可达性;

● Database Description报文:向邻站给出自己的链路状态的摘要信息;

● Link State Request报文:向对方请求发送某些链路状态的详细信息;

● Link State Update报文:用扩散法向全网更新链路状态;

● Link State Acknowledgment报文:对链路更新报文的确认。

四、OSPF协议一致性测试的方法

OSPF协议是域内使用的路由选择协议,所以对于OSPF协议一致性测试采用中继测试法使用的横断式测试法。在横断式测试法中,为了使2个子网的2 个PCO容易达到同步,一般将PCO1和PCO2集成在一个测试器中。

编辑器可以采用ISO9646推荐的TTCN编辑器,也可以是其它语言编辑器。首先在编辑器上编制抽象测试集ATS,ATS以固定文法的文本文件 MP格式输出,类似于汇编语言或高级语言源程序。然后,MP文件由编辑器编译成可执行文件ETS。处理器是测试执行的关键引擎,对经过PICS和 PIXIT选择的测试集ETS进行解释执行,并对PCO1或PCO2传送来的协议数据单元PDU进行处理,同时根据测试集的内容控制测试过程。最后生成测 试报告所需要的全部信息。在该测试结构中,IUT的2个端口分别对应于PCO,当处理器从PCO1向SUT发送一个OSPF报文时,经过OSPF模块的路 由,OSPF报文就从子网1转发到子网2中,处理器就从子网2中的PCO2获得数据报文。由于PCO1和PCO2都被集成在测试器中,便可容易地控制2个 LT的协调过程。

五、OSPF协议测试集的设计

测试集是协议一致性测试的基础,它是以最基本的测试事件序列的形式,详细定义了测试系统和协议实体的行为,从而作出测试“通过”或“失败”的判决, 测试集有如下的层次结构:测试集→测试组→测试例→测试步→测试事件。采用TTCN形式化语言可以描述出测试集。

OSPF协议与OSI协议相比较,OSPF协议行为较简单,在对等实体之间没有用于建链或流控的数据包交换。我们按照ISO/IEC9646的建 议,根据协议描述分析及条件合成,生成测试目的,设计和产生出OSPF协议测试集,编写出OSPF协议测试规范。产生的OSPF测试集包括5个测试组,共 69个测试例(见表1)。

表1 OSPF测试集

这些测试组(例)涵盖了OSPF协议描述中的主要功能,具有较好的完备性。

六、测试应用

按照本文讨论的测试方法和结构,测试工具使用Agilent公司的QA Robot测试仪来进行OSPF协议一致性测试。也可使用清华大学研制开发的基于TTCN的PITS测试系统。QARobot测试仪使用QBOL语言生成 ETS,通过QBOL编辑器进行编译,内部使用UNIX操作系统,有着可视化的界面操作。

我们参加了国家“863”宽带信息示范网核心路由器的测试工作。采用QARobot测试仪,分别对中兴公司、巨龙公司和大唐公司研制的核心路由器进 行了OSPF协议的一致性测试。各路由器经过OSPF协议一致性测试后,其中的OSPF模块的功能和性能有了明显的改善,测试例通过率从50%提高到将近 90%。

通过实践证明,在协议软件的设计和开发过程中,一致性测试是用来检测定位错误,同时又能提供修正建议的好方法。