一种通信协议一致性测试系统的制作方法

文档序号:7595744阅读:172来源:国知局
专利名称:一种通信协议一致性测试系统的制作方法
技术领域
本发明涉及数据通信领域中的协议一致性测试,具体涉及以太网数据通信协议一致性测试,以及测试数据统计和分析测试结果。
背景技术
在通信产品研制、生产和应用的各个过程中,需要用各种软件测试工具对通信器件、设备、系统、网络的特性进行协议一致性测试,使之符合相关规范、标准的要求,以确保网络和业务运行的可靠和畅通。在实际应用这些工具在进行以太网数据通信测试工作中,发现现有以太网协议测试工具存在以下局限1.现有协议测试工具多是针对某一种协议进行测试,无法进行多种协议一致性测试。且对一些新发布的协议不能迅速、及时地提供支持。
2.目前常用的商用协议测试工具往往是和特定的硬件设备捆绑使用,测试工具对特定硬件设备的依赖性很强,限制了测试工具的使用范围。

发明内容
本发明的目的是为了克服现有以太网通信协议一致性测试系统功能扩展性弱、对特定硬件设备依赖性强的弊端,提出一种新的以太网协议一致性测试系统。该系统的协议一致性测试功能扩展性强。只需按照统一接口增加协议处理模块,就可以实现新的协议测试功能。
本发明包括网络适配器驱动模块,测试协议栈处理模块,业务控制模块和测试数据配置管理模块;所述网络适配器驱动模块,完成网络适配器物理层初始化,自动检测各种型号的网络适配器,处理以太网上原始数据报文发送和接收,基于源MAC和目的MAC地址的过滤,对网络上各种数据报文统计和打时间标记;所述业务控制模块负责调度、控制和协调其他各模块的动作;所述测试协议栈处理模块作为测试用例;所述测试数据配置管理模块完成被测协议类型配置和相关的测试配置数据管理,以及最后测试数据汇总统计。
本发明有以下优点系统不需要和特定的硬件设备捆绑使用,仅需一台配置有网卡的PC机即可。实现方便,耗费成本低。系统的业务控制模块实现了系统的集中控制,使测试协议栈处理模块和其他模块之间保持很强的独立性,可以多个测试协议栈构建在业务控制之上,之间相互独立,由业务控制负责管理诸多协议栈,使系统具有很强的功能扩展性和可移植性。丰富的协议测试数据统计,使得测试人员能清楚了解被测试协议的交互过程,从而通过测试数据来分析被测试协议是否达到协议一致性要求。


图1是本发明的组织结构图;图2是网络适配器驱动模块的工作流程图;图3是业务控制模块工作流程图;图4是测试协议栈处理模块工作流程图;图5是测试数据配置管理模块工作流程图。
具体实施例方式如图1所示,本发明包括(1)网络适配器驱动模块,(2)测试协议栈处理模块,(3)业务控制模块,(4)测试数据配置管理模块四个部分组成。
第一部分网络适配器驱动模块该模块为整个协议一致性测试系统的底层核心驱动模块,测试系统要求该模块主要完成(1)网络适配器物理层初始化,能够自动检测到各种型号的网络适配器;(2)能够处理以太网上原始数据报文发送和接收;(3)能够做基于源MAC和目的MAC地址的过滤功能;(4)能够对网络上各种数据报文统计和打时间标记。网络适配器驱动比较依赖于操作系统,本发明的协议一致性测试系统是建立在microsoft windows操作系统上,microsoft公司为保证操作系统与各种厂家的网络适配器兼容,制定了统一的网络设备接口规范(NDIS),并且提供基于NDIS的SDK开发包,也有其他公司提供类似的开发包,如WinPcap和Ntsniff,可以使用这些开放源码的驱动包来开发测试系统的网络适配器驱动模块,从而实现以上几点要求。
第二部分业务控制模块业务控制模块为系统其他各个模块提供数据交互的统一接口,负责调度、控制和协调其他各模块的动作。该模块主要实现(1)线程调度控制和各线程之间同步和互斥;(2)网路数据接收和过滤;(3)协议报文分发;(4)协议定时器处理;(5)协议测试数据统计和上报功能。
第三部分测试协议栈处理模块测试协议栈处理模块是对要测试对象而实现的测试用例。因为被测试协议对象的不同,这个模块在协议一致性测试系统中要求有很好的可扩展性。本模块要考虑(1)确定被测试协议栈(一个或多个被测试对象);(2)查找RFC和IEEE国际、国内标准中协议的规定,简化协议报文处理、协议定时器处理和状态跃迁控制流程。
第四部分测试数据配置管理模块测试数据配置管理模块主要完成被测协议类型配置和相关的测试配置数据管理,以及最后测试数据汇总统计,测试人员可以根据这些测试统计数据,与相关的协议标准比较是否一致,从而检验是否达到被测试协议栈一致性要求。该模块还向用户提供一个操作平台。
图2为网络适配器驱动模块的工作流程图。如图所示,首先对网络适配器做初始化工作,使得软件能识别网卡并将驱动绑定在网卡上面,检查数据接收线程是否运行,该线程由业务控制模块启动,如果线程已经启动则网路适配器驱动开始接收网络协议报文,然后将过滤后的协议报文做测试统计和以消息发送方式将报文发送到业务控制模块中的协议报文分发线程。该模块上层模块是业务控制模块,需为上层提供统一的接收、发送、过滤和网络数据流量统计上报接口。
图3是业务控制模块工作流程图。该模块是整个系统其他模块进行数据交互的枢纽,其他各模块的数据都要经过该模块转发到目的模块,该模块与其他模块通信采用基于消息发送和接收的方式。
1、实现业务控制模块的调度控制部分。需要建立数据接收线程、协议报文分发线程、测试协议栈状态线程、测试协议栈定时器线程和测试数据配置管理线程。各种线程之间数据通信采用同步消息方式,并对全局的数据结构采用互斥信号量保护,与其他各模块的数据通信的消息类型也在此定义。
2、实现业务控制模块中的报文分发部分,由协议报文分发线程完成。一方面将从数据接收线程接收来的数据报文消息进行过滤、并根据测试协议类型分发到相应的测试协议栈处理模块中进行数据处理,另一方面把测试协议栈处理模块处理完成的报文采用统一接口发往网络适配器驱动模块。需测试协议栈处理模块提供协议报文接收接口,需网络适配器驱动模块提供数据发送接口。
3、实现测试协议栈状态跃迁部分,由测试协议栈状态线程完成。该线程依据测试协议状态机的变化,来改变协议运行时候的状态。需由测试协议栈处理模块提供状态机跃迁的接口。
4、实现业务控制模块中的统一协议定时器处理部分,由测试协议栈定时器线程完成。实现在一定的时间间隔下统一对测试协议栈处理模块中的协议计数器定时信号进行处理。需由测试协议栈处理模块提供定时器的接口。
5、实现网路数据报文接收部分,由数据接收线程完成。该线程根据测试协议要求过滤与被测试协议无关的报文,并将接收到的协议报文以消息的方式发送给协议报文分发线程。需网络适配器驱动模块提供数据接收接口。
6、实现测试数据配置管理部分,由测试数据配置管理线程完成。该线程为测试人员提供一个前台控制平台,测试人员通过这个平台下达测试配置数据和显示测试统计结果,监测被测试协议状态变化情况。
7、实现业务控制模块中的数据统计、分析部分。实现数据统计、分析、记录功能,并生成一个日志文件。数据来自于测试协议栈模块提供的接口和网络适配器驱动模块提供的数据统计接口。
该模块对外主要接口是(1)业务控制模块线程初始化接口。
(2)测试协议数据统计接口。
(3)测试配置管理数据接口。
图4为测试协议栈处理模块工作流程图。该模块
1、实现被测试协议报文数据处理,根据被测试协议标准,实现符合该协议报文格式下的响应动作。对外提供协议报文接收和发送接口。
2、实现被测试协议状态机跃迁,根据被测试协议标准,实现在特定状态下的响应动作。对外提供协议状态机跃迁接口。
3、实现被测试协议定时器,可以采用统一的计数器实现,根据被测试协议标准,实现在某一时刻计数器的递增或递减。对外提供协议栈定时器接口。
4、实现协议一致性测试中测试数据统计功能,需要实现以下一些测试数据统计(1)协议栈状态机的跃迁变化数据统计(2)协议栈接收、发送的成功和失败报文数量统计(3)协议栈时间状态跃迁变化(4)协议栈中不同类型报文统计(5)协议栈接收到错误或非法协议报文统计该模块对外主要接口是(1)协议报文接收和发送接口。
(2)协议状态机跃迁接口。
(3)协议栈定时器接口。
(4)协议测试数据统计结果的接口。
图5为测试数据配置管理模块工作流程图。该模块1、实现用户数据的设置、读写,并负责将用户配置的数据初始化到以上各个模块中。
2、测试数据汇总统计以及结果文件保存和显示,便于测试人员分析测试结果。测试数据来源于网络驱动模块的和测试协议栈模块上报数据。
3、测试配置数据文件记录,便于测试用例的可回溯性。
该模块对外主要接口是(1)测试数据配置初始化接口。
(2)测试配置数据文件和统计结果文件保存接口。
(3)用户前台操作界面接口。
本发明可以按以下方式构建首先,编写网络适配器驱动模块。这里有多种实现方法,可以自己利用网络设备接口规范编写驱动,也可以采用开放源码的网络适配器驱动包。一般我们选用开发包完成驱动开发,这样实现网络适配器接收、发送原始报文比较可靠和便利,如采用开放源码的网络适配器驱动包WinPcap,我们在已有的开发包上完成网络适配器驱动的接口,该模块应提供接口(1)初始化网卡接口(2)发送报文接口(3)接收报文接口。
在完成网络适配器驱动模块编写,并实现报文接收、发送后,进行对被测试协议栈编写。首先要对该协议的标准进行理解,协议的标准是对实现该协议全面描述,通信设备在实现这些协议时候,也是基本按照标准实现的,但我们的目的是测试该协议,为达到更理想的测试效果,就需要对协议精简实现,一般来说协议由三部分组成,协议状态机、协议报文处理、和定时器状态机,所以该模块应提供接口(1)协议状态机跃迁处理(2)协议报文处理(3)协议定时器的计数器处理。
接下来完成业务控制模块编写,该模块在整个系统中调度其他各个模块接口,其他模块相互之间数据调用均通过业务控制模块来完成,在此模块中要启动三个线程,(1)报文接收器线程,不断接收来自网络适配器报文,并以消息方式发往协议分发处理线程(2)协议分发处理线程,接收来自报文接收线程报文并做过滤,分发到相应的协议栈中处理,该线程接收来自协议栈发送报文消息,通过调用网络适配器发送接口,将报文发送到适配器处理(3)协议状态机和计数器线程,和定时对协议计数器处理,线程通过调用协议状态机跃迁接口循环检测协议状态机状态,并由协议栈处理状态变迁。
最后,完成用户配置数据模块编写,该模块应完成对配置数据文件访问,初始化相关数据,并提供给用户操作界面。
权利要求
1.一种通信协议一致性测试系统,包括网络适配器驱动模块,测试协议栈处理模块,业务控制模块和测试数据配置管理模块;所述网络适配器驱动模块,完成网络适配器物理层初始化,自动检测各种型号的网络适配器,处理以太网上原始数据报文发送和接收,基于源MAC和目的MAC地址的过滤,对网络上各种数据报文统计和打时间标记;所述业务控制模块负责调度、控制和协调其他各模块的动作;所述测试协议栈处理模块作为测试用例;所述测试数据配置管理模块完成被测协议类型配置和相关的测试配置数据管理,以及最后测试数据汇总统计。
2.权利要求1所述的通信协议一致性测试系统,其特征在于,所述业务控制模块负责调度、控制和协调其他各模块的动作包括线程调度控制和各线程之间同步和互斥;网路数据接收和过滤;协议报文分发;协议定时器处理;协议测试数据统计和上报功能。
3.权利要求1或2所述的通信协议一致性测试系统,其特征在于,在业务控制模块中建立数据接收线程、协议报文分发线程、测试协议栈状态线程、测试协议栈定时器线程和测试数据配置管理线程;所述协议报文分发线程完成报文分发,一方面将从数据接收线程接收来的数据报文消息进行过滤、并根据测试协议类型分发到相应的测试协议栈处理模块中进行数据处理,另一方面把测试协议栈处理模块处理完成的报文采用统一接口发往网络适配器驱动模块;所述测试协议栈状态线程完成测试协议栈状态跃迁,根据测试协议状态机的变化,来改变协议运行时候的状态;所述测试协议栈定时器线程实现在一定的时间间隔下统一对测试协议栈处理模块中的协议计数器定时信号进行处理;所述数据接收线程完成网路数据报文接收,根据测试协议要求过滤与被测试协议无关的报文,并将接收到的协议报文以消息的方式发送给协议报文分发线程;所述测试数据配置管理线程实现测试数据配置管理,为测试人员提供一个前台控制平台,测试人员通过这个平台下达测试配置数据和显示测试统计结果,监测被测试协议状态变化情况。
4.权利要求1所述的通信协议一致性测试系统,其特征在于,所述测试协议栈处理模块对外提供协议报文接收和发送接口,协议状态机跃迁接口,协议栈定时器接口和协议测试数据统计结果的接口;实现被测试协议报文数据处理,测试协议状态机跃迁,被测试协议定时器,以及协议一致性测试中测试数据统计。
5.权利要求1所述的通信协议一致性测试系统,其特征在于,所述测试数据配置管理模块对外提供测试数据配置初始化接口、测试配置数据文件和统计结果文件保存接口和用户前台操作界面接口;实现用户数据的设置、读写,并负责将用户配置的数据初始化到以上各个模块中;测试数据汇总统计以及结果文件保存和显示;测试配置数据文件记录。
全文摘要
一种通信协议一致性测试系统,包括网络适配器驱动模块,测试协议栈处理模块,业务控制模块和测试数据配置管理模块。采用本发明,系统的业务控制模块实现了系统的集中控制,使测试协议栈处理模块和其他模块之间保持很强的独立性,可以多个测试协议栈构建在业务控制之上,之间相互独立,由业务控制负责管理诸多协议栈,使系统具有很强的功能扩展性和可移植性。丰富的协议测试数据统计,使得测试人员能清楚了解被测试协议的交互过程,从而通过测试数据来分析被测试协议是否达到协议一致性要求。
文档编号H04L29/06GK1787460SQ200410066040
公开日2006年6月14日 申请日期2004年12月10日 优先权日2004年12月10日
发明者吴睿, 王红 申请人:中兴通讯股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1