计算机网络协议测试传输方法

文档序号:7882518阅读:122来源:国知局
专利名称:计算机网络协议测试传输方法
技术领域
本发明涉及计算机网络协议工程技术领域,特别是一种用于计算机网络协议一致性测试的传输方法,。
背景技术
协议一致性测试是协议工程学的一个重要分支,其目的是通过实验的方法发现被测协议实现(Implementation Under Test,IUT)在功能和逻辑方面的错误。研究协议一致性测试的原因在于协议标准目前基本上是使用自然语言描述的,实现者对于协议标准的不同理解会导致不同的协议实现,有时甚至会是错误的实现,因此需要一种有效的方法来对协议实现进行验证和判别。对于测试人员而言,被测协议实现的内部逻辑结构是不见的,因此一致性测试是一种黑盒测试。
国际标准ISO/IEC 9646定义了一致性测试的方法和框架,用于测试一个声称实现了某一协议的产品与其协议标准的一致性。目前的协议一致性测试一般采用远程测试法进行,即通过观察被测协议实现的输出来判定其是否按照协议标准正确实现了某项功能,对于一个被测协议实现来说,其输出只能在输入满足一定的条件时才能出现。一致性测试需要借助于专用的测试系统才能进行,要测试协议实现的某项功能,需要进行两个相互交错的阶段·测试系统向被测系统发送一系列的数据包,这称为一致性测试的控制阶段;·测试系统监控被测系统返回的数据包,与预期的返回数据进行比较,做出测试判定,这称为一致性测试的观察阶段。
一致性测试就是一个控制和观察交互进行的过程,直到做出测试判定为止,这个过程是由测试集预先规定好的。测试集一般采用一种特定的语言进行描述,测试集中定义了测试所需的数据流、测试行为交互、判定规则等,测试系统执行测试集,给出结果。现在的一致性测试中,由于被测协议实现所在系统的多样性,测试集设计时首先要考虑被测协议实现的下层协议类型和测试系统能够支持的下层协议类型,即测试集设计过多地考虑了测试时的下层传输问题,不能够做到独立、通用,例如为运行于以太网之上的网络层协议(IP)开发的测试集不能对运行于点对点链路PPP之上的协议实现进行测试;另外现有测试系统并发测试能力与其所在系统的配置有很大的关系,测试前需要花费相当的精力去配置与传输有关的东西,比如配置观察控制点(Point of Control and Observation,PCO)、上下层协议类型、地址等。也就是说,为某一协议编写的测试集一般只能专用于对运行于某一种类型下层协议之上的协议实现进行测试,测试系统一般只能够安装在特定的系统上、用于专门协议的测试,也正因为如此,尽管树表结合表示法(the tree and tabular combined notation,TTCN)是ISO/IEC9646推荐的测试集描述语言,目前也不存在通用TTCN编译执行器。

发明内容
本发明的目的在于提供一种计算机网络协议测试传输方法。
发明的技术方案一种用于计算机网络协议一致性测试的传输方法,其特征在于,采用通信实体和网络接口相结合的方式,测试组件中测试数据的发送/接收不再直接与下层协议和实际的网络交互,而是通过与被测协议相关网络接口调用下层通信实体来实现。
协议测试中采用的下层传输方法应该能够对测试集屏蔽被测协议实现的下层协议类型,即测试集设计者不必过多的考虑被测试协议实现所在系统的下层协议类型,测试人员不必被测试系统所在硬件特征干扰。以此为目标,通过对协议测试中传输问题的描述和分析,提出了一种通信实体和网络接口相结合的下层传输方法,用于测试系统的设计和实现·网络接口的概念用于定义逻辑接口的类型和相应的参数,每一个网络接口对象在实际测试时作为一个独立的测试组件使用,相当于一台逻辑测试器;·通信实体的概念用于向逻辑测试器屏蔽下层服务提供者的类型,用于逻辑测试器数据的发送和接收,通信实体都是嵌套在网络接口中的。
应用这种传输方法,测试组件中测试数据的发送/接收不再直接与下层协议和实际的网络交互,而是通过一个网络接口对象来完成。测试组件的功能通过网络接口对象来完成,其对测试组件的接口相当于一个被测协议数据单元(Protocol Data Unit,PDU)类型的输入/输出队列,从而可对测试集的设计者屏蔽被测协议实现的下层协议类型,为特定协议开发的测试集可用于测试运行于任何类型下层协议之上的协议实现。
每一个网络接口对象中都嵌套一个下层协议通信实体对象,数据包的封装/发送和接收/解封装功能都由通信实体对象调用更下层、直到链路层通信实体对象来完成。对于被测协议实现来说,仅仅根据收到相同层次的数据中的相关信息来判定和区别对方的存在。举例来说,即使网络层协议收到同一台机器发出的两个数据包,如果这两个数据包网络层的源地址不相同,接收者也会认为数据包是由不同的机器发出的。同理,传输控制层协议TCP则根据连接请求的源端口来区分连接请求的发起者。由此,需要并发测试时,在构造网络接口对象时可以采用不同的标识信息,这样就能够利用有限的系统资源来模拟所需的测试组件,同时还能够对测试集的设计者屏蔽下层协议类型乃至连接测试系统和被测系统的链路介质类型。这种传输方法用于计算机网络协议一致性测试,可以达到以下目标·测试集与被测协议实现的下层协议类型无关测试集的设计者不必考虑被测协议实现所在系统的下层协议类型,应用同一套测试集和测试系统可以对运行于任何类型下层协议之上的被测协议实现进行测试,而且测试前基本不需要人工的配置工作;·并发测试能力与测试系统所在系统的配置无关并发测试时,测试系统能够支持的并发测试组件的数目与其所在系统的配置无关,能够利用有限的物理接口模拟所有需要的逻辑测试接口(测试组件)。
计算机网络协议测试传输方法还在于,下一层的通信实体对象嵌套在上一层的网络接口对象中,通信实体对象自动检测下层协议类型,对网络接口对象中输出队列的被测协议PDU进行封装发送,并对被测系统返回的数据包进行解封装、初步判断、存放入相应网络接口对象的输入队列中,供测试组件接收并进行测试判定,从而可对测试人员屏蔽测试系统特征,大大减少了测试人员在测试之前的配置工作。
由于被测协议实现仅仅根据收到数据中的相关信息来判定和区别对方的存在,因此在构造网络接口对象时可以采用不同的标识信息,能够使用有限的系统资源模拟并发测试所需的所有测试组件。


图1是网络接口的概念和应用模型图。
图2是应用于计算机网络协议测试的传输方法中通信实体类体系的实现图。
图3是并发测试数据包的发送和接收模型图。
具体实施例方式
按照互联网协议TCP/IP观点,计算机网络协议分为四个层次应用层、运输层、网络层、链路/物理层。从协议测试的角度来讲,如果测试网络层协议(IPv4、IPv6等),则需要构造网络层网络接口对象,其下层服务提供者为链路层介质;如果需要测试网络层以上协议(如超文本传输协议http、远程登录协议telnet、路由协议OSPF等),则需要构造TCP、OSPF等类型的网络接口对象,其下层服务提供者为网络层协议。测试集设计和测试系统执行应该与下层协议类型无关,比如对于网络层协议测试来说,不管被测协议实现运行于以太网、点对点链路PPP、还是异步传输模式ATM之上,应用同一套测试集和测试系统都应该能够对它进行测试,所不同的只是测试系统中应该安装与被测系统中被测协议以下部分相同的协议和网络接口。采用面向对象技术实现通信实体和网络接口相结合的传输方法,应该对各层次的通信实体类和网络接口类进行定义,并对它们的功能和应用进行模型化。
1.网络接口实现和概念模型网络接口是构造测试组件的基础,测试时需要构造与被测协议相当的网络接口对象。用于计算机网络协议测试,测试系统中需要支持IPv4网络接口类、IPv6网络接口类、TCP网络接口类、UDP网络接口类等。一个属于N层的被测协议P1应该定义如下的网络接口类

并发测试时,为每一个需要的测试组件生成一个相应层次的网络接口对象,它对测试集的设计者屏蔽了被测协议实现的下层服务提供者的信息。对每一个测试组件来说,网络接口被模型化为一个输入队列和一个输出队列,测试集设计者只需要构造被测试协议数据单元PDU放入输出队列,同时从输入队列中取得被测实现返回的被测协议数据单元PDU进行判定即可。
网络接口对象的概念和应用模型见图1,其中对一个队列而言,!表示输入;对一个队列而言,?表示输出;Top表示队列输出的当前位置;2.通信实体实现和模型通信实体作为连接网络接口中输入/输出队列与下层协议的桥梁,完成输出队列中数据的封装/发送和被测系统返回的下层协议数据的接收/解封装功能,用于计算机网络协议一致性测试的通信实体类体系通过两个层次的组合和继承来实现·以协议类型的观点,定义协议类型通信实体类;·以协议层次的观点,定义协议层次通信实体类;N层通信实体类组合了所有属于N层的协议类型通信实体对象;属于N层的协议类型通信实体类则继承了N-1层通信实体类;N层通信实体类为属于N+1层的网络接口屏蔽了所有N层协议类型的信息。N层通信实体类应该如下定义

属于N层的协议类型P1通信实体类定义如下

在计算机网络协议体系结构中,一致性测试的对象可能包括网络层协议IPv4、IPv6等,其协议实现可能运行于以太网、异步传输模式ATM、点对点链路PPP或者其它类型的链路层之上;应用层协议,包括基于TCP的应用、基于UDP的应用、ospf等其它的网络层以上协议,其协议实现可能运行于IPv4、IPv6之上。应用于计算机网络协议测试的传输方法中通信实体类体系的实现步骤如下(见图2)·定义链路层协议类型通信实体类,包括以太网通信实体类FethEntity、异步传输模式通信实体类ATMEntity、点对点链路通信实体类PPPEntity等,它们都能够根据测试系统所在的硬件平台特征自动选择或者由测试人员指定用于与被测系统通信的网络接口、并完成最终的数据包发送/接收工作;·在已经定义链路层协议类型通信实体类的基础上,经过步骤S1,通过组合定义链路层通信实体类;
·经过步骤S2,通过继承定义网络层协议类型通信实体类,包括IPv4通信实体类和IPv6通信实体类;·经过步骤S3,在网络层协议类型通信实体类的基础上,通过组合定义网络层通信实体类;实际测试中,每一个测试组件需要获取被测实现返回给它的数据包进行测试判定,为了使测试组件能够从与它相关的网络接口对象的输入队列中有效获取被测实现返回的数据包,通信实体可以对接收到的下层数据包进行初选后再存放入上层网络接口的输入队列中,最终,每一个网络接口输入队列中仅包括了发送给相应测试组件的数据包,这加快了返回数据的获取和测试结果的判定等工作。通信实体对下层数据进行接收、判断、存储的步骤包括·N层通信实体从它的下层数据缓冲区获取数据包,去掉N层首部,得到N+1层协议数据单元PDU;·通信实体根据创建时由N+1层网络接口对象获得的标识N+1层测试组件的标识信息,对得到的N+1层协议数据单元PDU进行检查,若此协议数据单元PDU属于该测试组件,则把此协议数据单元PDU存放入N+1层网络接口的输入队列中;否则丢弃此数据包,从下层数据缓冲区获取下一个数据包,重复这个过程。
假设被测协议属于N层协议,一个并发测试例的执行需要n个测试组件,需要构造n个网络接口对象,共包含n个N-1层通信实体对象,其数据包的发送/接收模型如图3所示,其中每一个N层网络接口相当于一个测试组件;与N层网络接口对应的通信实体为测试组件实现测试数据的发送和接收;本发明的方法可广泛应用于计算机网络协议测试之中。
权利要求
1.一种用于计算机网络协议测试的传输方法,其特征在于,采用通信实体和网络接口相结合的方式,测试组件中测试数据的发送/接收不再直接与下层协议和实际的网络交互,而是通过与被测协议相关网络接口调用下层通信实体来实现。
2.根据权利要求1所述的用于计算机网络协议测试的传输方法,其特征在于,测试组件的功能通过网络接口对象来完成,其对测试组件的接口相当于一个被测协议PDU类型的输入/输出队列,从而可对测试集的设计者屏蔽被测协议实现的下层协议类型,为特定协议开发的测试集可用于测试运行于任何类型下层协议之上的协议实现。
3.根据权利要求1所述的用于计算机网络协议测试的传输方法,其特征在于,下一层的通信实体对象嵌套在上一层的网络接口对象中,通信实体对象自动检测下层协议类型,对网络接口对象中输出队列的被测协议PDU进行封装发送,并对被测系统返回的数据包进行解封装、初步判断、存放入相应网络接口对象的输入队列中,供测试组件接收并进行测试判定,从而可对测试人员屏蔽测试系统特征,大大减少了测试人员在测试之前的配置工作。
4.根据权利要求1所述的用于计算机网络协议测试的传输方法,其特征在于,由于被测协议实现仅仅根据收到数据中的相关信息来判定和区别对方的存在,因此在构造网络接口对象时可以采用不同的标识信息,能够使用有限的系统资源模拟并发测试所需的所有测试组件。
5.一种应用于计算机网络协议测试的传输方法中通信实体类体系的实现方法,其步骤如下定义链路层协议类型通信实体类,包括以太网通信实体类、异步传输模式通信实体类、点对点链路通信实体类,由测试系统根据所在的硬件平台特征自动选择或者由测试人员指定用于与被测系统通信的网络接口、并完成最终的数据包发送/接收工作。
6.根据权利要求5的应用于计算机网络协议测试的传输方法中通信实体类体系的实现方法,其步骤如下—在已经定义链路层协议类型通信实体类的基础上,经过步骤S1,通过组合定义链路层通信实体类;—经过步骤S2,通过继承定义网络层协议类型通信实体类,包括IPv4通信实体类和IPv6通信实体类;—经过步骤S3,在网络层协议类型通信实体类的基础上,通过组合定义网络层通信实体类。
全文摘要
一种用于计算机网络协议测试的传输方法,采用通信实体和网络接口相结合的方式,测试组件中测试数据的发送/接收不再直接与下层协议和实际的网络交互,而是通过与被测协议相关网络接口调用下层通信实体来实现。对测试集的设计者屏蔽了被测协议实现的下层协议类型,对测试人员屏蔽了测试系统特征,使测试集和测试系统能够通用。测试组件的功能通过网络接口对象来完成,其对测试组件的接口相当于一个被测协议PDU类型的输入/输出队列。每一个网络接口对象中都嵌套一个下层协议通信实体对象,完成测试数据的封装/发送和返回数据的接收/解封装功能。通过在网络接口中定义适当的标识信息,可以用有限的系统资源模拟并发测试所需的所有测试组件。
文档编号H04L29/02GK1540892SQ20031010479
公开日2004年10月27日 申请日期2003年11月3日 优先权日2003年11月3日
发明者张玉军, 李忠诚, 郑红霞, 田野 申请人:中国科学院计算技术研究所
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1