网络协议测试技术


在计算机网络的发展历程中,协议一直处于核心地位。从ARPAnet发展到Internet,其关键环节就是形成了国际标准化的协议。协议是计算机网络和分布式系统中各种通信实体之间相互交换信息所必须遵守的一组规则,就像是一种语法规则,是构建网络的基石。

1984年,国际标准化组织ISO提出了开放式系统互连ISO/OSI参考模型。

1983年1月1日,TCP/IP被宣布为Internet上唯一正式的协议,为Internet的发展铺平了道路。

网络通信协议研究最显著的成果是在20世纪80年代,将形式化技术和软件工程方法用于协议研究,形成了一个崭新的学科——协议工程学,它的研究范围包括:协议说明(ProtocolSpecification)、协议证实(ProtocolValidation)、协议验证(ProtocolVerification)、协议综合(ProtocolSynthesis)、协议转换(ProtocolConversion)、协议性能分析(ProtocolPerformanceAnalysis)、协议自动实现(ProtocolAutomaticImplementation)和协议测试(ProtocolTesting)。

下面我们着重讨论协议测试的作用与意义,介绍这个领域已经取得的科研成果,并指出协议测试所面临的挑战。

意义重大

协议测试研究领域的兴起源于对其必不可少的需求。目前的网络协议多是以自然语言描述的文本,实现者对于协议文本的不同理解以及实现过程中的非形式化因素都会导致不同的协议实现,有时甚至是错误的协议实现。即便协议实现正确,也不能保证不同的实现彼此之间能够准确无误地通信,而且同一协议的不同实现其性能也有差别。在这种情况下,需要一种有效的方法对协议实现进行评价,这就是“协议测试”。

伴随着计算机网络的普及和网络需求的增多,计算机网络协议越来越复杂庞大,协议实现不仅仅要求功能正确完善、能够互通,而且要求具有良好的性能,因此协议的实现和开发越来越复杂。为了保证质量,协议测试是一个必需而且十分重要的手段。目前的协议测试已经不仅仅是产品开发研制过程中一个简单的检测支持过程,而是发展成为计算机网络技术的一个重要分支。对协议测试技术的研究将直接影响到计算机网络技术的进步和世界网络市场的竞争与发展。所以很多国家都投入了大量的人力物力从事协议测试的研究工作。例如:英国的国家物理实验室NPL、法国国家通信研究中心、德国国家通信研究局GMD、美国国家标准化研究局、美国新罕布什尔大学互操作研究实验室、中国清华大学计算机科学与技术系的计算机网络与协议测试实验室等单位都在这个领域投入了大量的研究力量。

研究方法

协议测试是在软件测试的基础上发展起来的。根据对被测软件的控制观察方式,软件测试方法分为三种:白盒测试、黑盒测试和灰盒测试。白盒测试通过每条语句至少执行一次来全面检查整个程序代码,而黑盒测试只测试软件外部可以观察到的行为,而不涉及程序的内部结构。白盒测试的测试能力非常强,但是过程过于复杂,对被测软件要求也很高。黑盒测试只关心被测软件的输入和输出,测试能力虽然弱了一些,但是测试过程本身相对简单,对被测软件也无特殊要求。灰盒测试是将白盒测试和黑盒测试结合起来形成的一种测试方法,吸收了两种方法的优点。

协议测试是一种黑盒测试,它按照协议标准,通过控制观察被测协议实现的外部行为对其进行评价。目前协议测试分成三个方面进行研究:一致性测试(ConformanceTesting)、互操作性测试(InteroperabilityTesting)和性能测试(PerformanceTesting)。一致性测试主要测试协议实现是否严格遵循相应的协议描述;互操作性测试关注的是对于同一个协议标准,不同协议实现之间的互连通问题。性能测试是用实验的方法来观测被测协议实现的各种性能参数,如吞吐量和传输延迟等等,其结果往往与输入负载有关。

在上述三个方面,一致性测试开展最早,也形成了很多有价值的成果。1991年国际标准化组织ISO制订的国际标准ISO9646——“OSI协议一致性测试的方法和框架”,用自然语言描述了基于OSI七层参考模型的协议测试过程、概念和方法。但是随着计算机网络技术的不断发展,新的协议越来越复杂,协议一致性测试工作遇到了很多困难。在这个过程中,大量形式化方法被引进到协议测试研究领域。1995年,ISO推出了“一致性测试中的形式化方法”国际标准,对协议一致性测试过程各个阶段使用的形式化方法进行了说明。但由于协议一致性测试本身的复杂性,使得该标准一直停留在草案阶段。对于互操作测试的研究技术基本上是从一致性测试继承过来的。由于对网络应用的需求急剧增长,网络性能已经变得与功能同等重要了。协议实现性能测试的研究工作也正在进行之中。在进行大量的测试实践的同时,理论研究也正在起步。

已经达成的共识

目前,国际协议测试研究领域已经取得了以下两点共识:

第一,理顺了协议一致性测试的过程。

第二,将形式化技术引入了协议测试领域,力图用严格的数学语言清晰、无二义性地研究协议测试的概念和方法。但是也发现这种方法存在着很多不足,其中最明显的就是这些理论研究与实际应用之间还存在着巨大的差距。

成果与展望

清华大学计算机科学与技术系从1989年开始,在吴建平教授的带领下一直坚持在协议测试方面进行深入探索与研究,从“八五”计划开始就得到了国家各部门的资助,承担了研制协议一致性测试系统的任务,并研制成功了可以对OSI七层参考模型中各层协议进行一致性测试的协议一致性测试系统PCTS(ProtocolConformanceTestingSystem)。“九五”期间,在对OSI参考模型的通信协议进行成功测试的基础上,研制开发协议集成测试系统PITS(ProtocolIntegratedTestingSystem),目标是在形式化理论的指导下,研制一个通用的测试平台,任何协议只要是利用统一的测试表示法进行描述,都可以进行测试。

在PITS的研制过程中有很多方面是相当成功的。例如,在PCTS的基础上,稍加优化改进形成PITS,就可以对TCP/IP通信协议和帧中继协议进行一致性测试,同时一些初步的互操作性测试和性能测试也可在这个平台上展开。

PITS所取得的成绩是可喜的,不仅在我国“863”项目——核心路由器的研制过程中发挥了重要作用,而且以论文的形式在重要的国际会议上发表了很多学术成果,得到了国际同行学者专家的认可。

今天,协议测试面临着比以往更严峻的挑战。协议的发展是全方位的,不仅功能增强增多,而且也从单一的通信协议发展到更复杂的路由协议。面对从ISO参考模型各层协议到TCP/IP系列协议,从X.25、帧中继到ATM协议乃至更复杂的路由协议如RIP、OSPF、BGP等),协议测试也必然要从单一的功能测试发展到可以进行多方位的测试,既包括传统有限状态机可以描述的功能,也包括复杂结构的数据。所以目前在协议测试领域中有很多问题是开放的、没有定论的,非常值得深入研究。

编辑推荐】

相关内容