OSPF协议的一致性测试
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%。
通过实践证明,在协议软件的设计和开发过程中,一致性测试是用来检测定位错误,同时又能提供修正建议的好方法
评论