摘 要 介绍了OSPF协议一致性的测试原理和抽象测试方法,重点对OSPF协议的一致性测试技术进行研究,并对OSPF协议测试集的设计进行讨论。
关键词 OSPF协议 协议一致性测试 ATS ETS 横断式测试法
一、引言
随着计算机网络和通信技术的发展,特别是开放型异构网络的互联,协议的设计和实现越来越复杂,协议测试的理论和技术得到了相应的发展。协议测试包括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-2areas | 域边界路由器功能 | 3 |
Ospf-2qars | 交换扩散协议功能 | 36 |
Ospf-3qars | 数据包的路径类型,AS外部LSA和AS汇总LSA功能 | 23 |
Ospf-stress | 强度能力测试 | 6 |
Ospf-stub | 末稍网络功能 | 1 |
这些测试组(例)涵盖了OSPF协议描述中的主要功能,具有较好的完备性。
六、测试应用
按照本文讨论的测试方法和结构,测试工具使用Agilent公司的QA Robot测试仪来进行OSPF协议一致性测试。也可使用清华大学研制开发的基于TTCN的PITS测试系统。QARobot测试仪使用QBOL语言生成ETS,通过QBOL编辑器进行编译,内部使用UNIX操作系统,有着可视化的界面操作。
我们参加了国家“863”宽带信息示范网核心路由器的测试工作。采用QARobot测试仪,分别对中兴公司、巨龙公司和大唐公司研制的核心路由器进行了OSPF协议的一致性测试。各路由器经过OSPF协议一致性测试后,其中的OSPF模块的功能和性能有了明显的改善,测试例通过率从50%提高到将近90%。
通过实践证明,在协议软件的设计和开发过程中,一致性测试是用来检测定位错误,同时又能提供修正建议的好方法。
摘自《电信网技术》