王鹏 李海 宋起柱 陈国成
【摘 要】主要提出了一种基于TTCN-3测试语言和外部设备接口(PEI)的TETRA系统分组数据互操作性测试方案。首先介绍测试系统框架,然后对PEI链路的建立流程进行分析,最后阐述了基于TTCN-3的TETRA系统分组数据互操作性测试的具体实现,并给出基于TTworkbench测试平台的测试例的测试结果。
【关键词】TETRA 分组数据 互操作性 TTCN-3
中图分类号:TN929.52 文献标识码:A 文章编号:1006-1010(2014)-02-
1 引言
TETRA系统是目前国内外应用最普遍的数字集群通信系统,市场上已经有众多厂商生产开发的各类TETRA终端和网络设备。为了确保这些设备都完全符合ETSI制定的TETRA标准[1],就需要对不同厂商生产的TETRA终端和网络设备进行互操作性测试。目前,国际上的TETRA产业联盟(TETRA MoU)所进行的TETRA互操作性测试仍然是手工完成的,工作效率低、测试时间长,测试后需要耗费大量人力和时间对待测设备采集的日志文件进行分析,往往数月后才能获得最终测试结果。因此,迫切需要建立一套可以快速、便捷地自动完成TETRA互操作性测试的系统。
在TETRA系统测试中,分组数据的测试较复杂。本文针对分组数据测试的PPP协议处理、TTCN-3测试例的编写、系统适配器(SA,System Under Test Adapter)和编解码器(CD,Codec)的开发等关键问题进行了分析,并给出了相应的解决方案。
2 测试系统框架
被测系统由移动台(MS,Mobile Station)和交换与管理基础设施(SwMI,Switching and Management Infrastructure)共同构成,测试系统组成如图1所示。
图1 测试系统组成
移动台和SwMI之间通过TETRA空中接口协议标准进行信令和数据的传输。TETRA产业联盟针对TETRA系统分组数据业务的互操作性测试制定了测试标准(TTR001-05[3])和测试计划(IOP001-05[4])。测试系统使用TTCN-3测试语言进行开发。TTCN-3是由ETSI维护的全球适用的标准测试语言,适用于描述在多种通信端口上的各种响应系统测试,已经被广泛应用于协议测试领域[5-7]。测试系统模拟数据终端的功能,通过PEI(Peripheral Equipment Interface,外部设备接口)接口控制移动台发送和接收分组数据,并将接收到的数据和测试标准进行对比,从而实现互操作性自动测试。
测试系统、移动台和SwMI之间的分组数据测试协议栈如图2所示。进行分组数据测试时,测试系统通过PEI链路与移动台相连接。测试系统的数据经过移动台的PEI控制实体处理后,再传至移动台的SNDCP实体,进而触发移动台与SwMI进行相应的空中接口协议交互。
图2 测试系统、移动台和SwMI之间的分组数据测试协议栈
3 PEI协议过程分析
测试系统通过PEI链路和被测系统进行通信,而PEI链路的建立需要遵从PPP(Point to Point Protocol)协议[8-9]。测试系统与移动台连接后,先向移动台发送“ATD*99#”命令,随后两者之间开始进行建链协商。
PEI链路的建立分为三个阶段进行:
第一阶段是链路控制协议(LCP,Link Control Protocol)协商,主要进行与链路控制相关的参数的配置,包括最大帧长、异步控制字符映射、是否使用鉴权协议和头部压缩等。
第二阶段是鉴权,本阶段是否执行取决于在LCP阶段协商中是否使用鉴权协议。如果使用鉴权协议,在本阶段就需要进行相应的鉴权处理,目前系统支持的鉴权协议是PAP鉴权[10]和CHAP鉴权[11];否则,跳过本阶段直接进入下一阶段。
第三阶段是网络控制协议(NCP,Network Control Protocol)协商,主要进行网络层相关参数的配置,包括IP地址的分配、TCP/IP头部压缩等。本测试系统中具体执行IP控制协议(IPCP,IP Control Protocol)。
测试系统可以以静态IP地址或动态IP地址进行PDP上下文激活,其通过PEI链路与移动台的交互过程和移动台通过空中接口与SwMI的交互过程具有对应关系。
NCP阶段完成后,链路进入可进行数据通信的“链路打开”状态,即分组数据PDP上下文激活成功。此后,链路两端可以随时向对方发送分组数据。
测试过程中,测试系统向被测系统发送承载ICMP报文的IP数据包进行数据传输测试。当发送IP数据包时,IP数据包会被封装在PPP帧中进行传输,协议域为0x0021(若LCP阶段进行了协议域压缩协商,则协议域为0x21)。
4 测试系统的设计与实现
与C、C++等语言相比较,TTCN-3语言用于开发测试集具有简洁便利、层次分明的特点。测试集的开发与编解码器、系统适配器等模块的开发可以独立进行,以提高开发效率。测试系统选用Testing Tech公司的TTworkbench测试平台,该平台支持使用Java、ASN.1和XML等语言编写插件,大大提高了测试系统的扩展性和灵活性。
借助TTworkbench提供的开发环境,本文主要进行了以下四个模块的开发工作:测试例(TE,TTCN-3 Executable)、编解码器(CD)模块、系统适配器(SA)模块以及平台适配器(PA,Platform Adapter)模块。
4.1 测试例(TE)开发
依据IOP测试标准,结合前面的PEI接口协议分析,测试例的基本处理流程设计如图3所示。其中的后续操作取决于不同测试例所测试的具体内容,可能包括PDP上下文去激活模块、数据传输模块等。endprint
整个处理流程中,最重要的是实现PPP协议的两个模块:LCP模块和IPCP模块,按照RFC 1661规定的配置选项进行协商建链。
为了提高测试系统的兼容性,使其能够同时支持各主流厂商的移动台,并且尽量减少SA、CD等其他模块的开发难度,在测试例开发中重点解决了以下几个问题:
(1)进行“ATD*99#”拨号后,各厂商移动台的响应是不同的。SEPURA移动台完全符合TETRA协议,拨号后测试系统收到移动台发出的CONNECT命令,然后开始LCP阶段;MOTOROLA移动台拨号后,测试系统先收到一系列字符串,之后才收到CONNECT命令,然后还要再收到OK命令后才能开始LCP阶段;EADS移动台拨号后先收到CONNECT命令,然后收到OK命令后才开始LCP阶段。为了使测试例能够同时支持三个厂商的移动台,笔者专门设计了一个altstep函数,在拨号之后自动调用该函数以解决此问题。
(2)按照协议规定,测试系统和移动台分别向对方发出LCP协商请求,是相互独立的过程,没有先后顺序。若测试系统先发送LCP配置请求帧,则会收到移动台对此LCP请求的响应帧以及移动台的LCP配置请求帧。在使用SEPURA移动台测试时,发现其两个连续的LCP数据帧之间会省略一个帧界定符(0x7E),导致CD模块解码时崩溃。为了不增加CD模块的设计难度,测试例中采用的方案是:测试系统等待收到移动台发出的LCP配置请求帧后,再发送LCP配置请求。
(3)按照TTCN-3标准,CD模块并不具有记忆功能,如果在LCP阶段进行了协议域压缩(PFC)的协商,则需要编写支持压缩和不支持压缩两个不同的CD模块来支持,这会增加CD的开发难度。因此,测试例中在LCP阶段不进行此项协商,以简化CD模块的开发。
(4)如果在LCP阶段进行了异步控制字符映射(ACCM)协商,由于不同移动台的ACCM协商结果可能不同,因此需要编写不同的CD模块才能实现相应处理。为了简化CD模块开发,采取的方案是测试系统不主动发起ACCM协商,而对于移动台主动发起的ACCM协商总是确认。这样,无论移动台是否进行了ACCM协商,仅需要开发一个CD模块,按照RFC 1662的规定进行转义操作,就可以完成数据的正常发送与接收。
(5)为了简化设计,在IPCP阶段,只接受IP地址的协商配置,而忽略其他选项的协商。具体设计是测试系统收到移动台IPCP配置请求时,判断其中是否有IP协商之外的选项,若存在,对其回复拒绝帧;当只存在IP配置选项时,才回复确认帧。这样的设计能够降低CD模块的开发难度和工作量。
4.2 编解码器(CD)模块开发
编解码模块主要是对测试系统和被测系统之间传输的测试数据进行编码与解码转换。TTCN-3测试例中定义的数据类型都需要开发相应的CD模块实现编解码功能。分组数据互操作性测试中所涉及的数据类型有AT指令、PPP协议中的各种数据结构、IPv4协议数据包以及ICMP协议数据包等。
4.3 系统适配器(SA)模块开发
系统适配器模块用来实现测试系统与被测系统之间的通信过程,在SA中可以调用TRI接口所提供的API函数。测试中的PEI接口采用的是RS232串口形式,所以使用了TTworkbench提供的RS232插件。TTworkbench支持在SA模块中加入用户开发的端口过滤器(Port Filter),可以在标准的RS232插件处理之前对输入输出数据进行相应的过滤操作,具有很强的灵活性与便利性。本测试系统中,发送数据时端口过滤器完成对数据的封装处理,包括使用CRC算法计算FCS、添加地址和控制域及添加帧定界符等。接收数据时完成对数据的提取处理,包括以上封装处理的逆处理。
例如,在LCP协商阶段,测试例中使用TTCN-3语言编写的数据结构首先经过CD编码后成为二进制数据流:C0 21 01 01 00 14 02 06 00 00 00 00 05 06 2F 5A 60 7C 07 02 08 02,然后传送至SA的端口过滤器中进行处理,具体步骤如下:
(1)加上地址和控制域:FF 03 C0 21 01 01 00 14 02 06 00 00 00 00 05 06 2F 5A 60 7C 07 02 08 02
(2)计算FCS并添加到数据末尾,FCS的低字节在前,高字节在后:FF 03 C0 21 01 01 00 14 02 06 00 00 00 00 05 06 2F 5A 60 7C 07 02 08 02 87 68
(3)扫描整个序列,进行转义处理:FF 7D 23 C0 21 7D 21 7D 21 7D 20 7D 34 7D 22 7D 26 7D 20 7D 20 7D 20 7D 20 7D 25 7D 26 2F 5A 60 7C 7D 27 7D 22 7D 28 7D 22 87 68
(4)在数据首尾添加帧界定符7E组成PPP帧,发送:7E FF 7D 23 C0 21 7D 21 7D 21 7D 20 7D 34 7D 22 7D 26 7D 20 7D 20 7D 20 7D 20 7D 25 7D 26 2F 5A 60 7C 7D 27 7D 22 7D 28 7D 22 87 68 7E
4.4 平台适配器(PA)模块开发
TTCN-3语言的优势在于对系统测试的描述与交互,但是使用其来编写涉及数学运算的程序会比较困难。因此,笔者在平台适配器模块中编写了外部函数,专门实现各种算法,然后在测试例中调用这些外部函数来实现所需要的功能。
分组数据互操作性测试中所涉及的外部函数主要包括PPP帧长度的计算、CHAP鉴权所需要的MD5算法、IPv4包中的首部校验和计算以及ICMP中的校验和计算等。endprint
5 测试结果
根据测试标准TTR001-05和IOP001-05,笔者开发了全部27个测试例。由于目前的移动台和网络设备不支持标准中的部分功能,因此对其中的19个测试例进行了实际测试验证。
测试中使用的移动台包括MOTOROLA、SEPURA和EADS三家厂商的移动台,网络设备采用北京理工大学和北京交通大学联合研制的TETRA基站和交换机系统。测试系统运行平台为Windows XP系统和TTworkbench v14。
图4是按照IOP 001-05标准中测试例1.3.1的要求设计的测试例的运行结果(LCP协商部分)。该测试例包括拨号、LCP协商、IPCP协商、数据传输和去激活的完整过程,具有很强的代表性。整个测试过程都是TTCN-3程序自动完成的,无需人工操作,测试完成后立刻得到测试是否通过的结果,完全达到了预期目的。
6 结束语
本文提出了一种基于TTCN-3语言的TETRA协议互操作性测试的设计方案,按照此方案设计的测试系统已经投入实际使用。文中所提出的PPP协议处理方法不仅可以用于TETRA系统,也可以应用于其他移动通信系统的分组数据测试。本测试系统既可以用于协议一致性或者互操作性的测试,也可以加以扩展用于系统的压力测试、性能测试和生产测试等诸多领域。
参考文献:
[1] ETSI EN 300 392-2 V3.4.0. Terrestrial Trunked Radio(TETRA); Voice plus Data(V+D); Part 2: Air Interface(AI)[S]. ETSI. 2010.
[2] ETSI ES 201 873-1 V4.2.1. Methods for Testing and Specification(MTS); The Testing and Test Control Notation version 3; Part 1: TTCN-3 Core Language[S]. ETSI. 2010.
[3] TTR 001-05 V3.0.0. TETRA Association; TETRA Interoperability Profile(TIP) Part 5: Packet Data[R]. TETRA Association Technical Forum. 2008.
[4] IOP 001-05 V3.0.5. TETRA Association TETRA V+D TIP Compliance Test Plan IOP 001-05 for testing of V+D TIP Part 05 Packet Data(TTR 001-05)[R]. TETRA Association Technical Forum. 2010.
[5] 陈元,尹霞,王之梁. 基于TTCN-3的LDP一致性测试研究[J]. 计算机应用研究, 2009,26(1): 286-288.
[6] 詹宝容,庾锡昌. 基于TTCN-3的移动业务测试平台的设计[J]. 计算机工程与设计, 2011,32(16): 1893-1897.
[7] 文霄,高阜乡,赖旻. 基于TTCN-3同步扩展的协议一致性测试研究[J]. 电脑知识与技术, 2011,7(1): 63-65.
[8] RFC 1661. The Point-to-Point Protocol(PPP)[S]. Network Working Group. 1994.
[9] RFC 1662. PPP in HDLC-like Framing[S]. Network Working Group. 1994.
[10] RFC 1334. PPP Authentication Protocols[S]. Network Working Group. 1992.
[11] RFC 1994. PPP Challenge Handshake Authentication Protocol(CHAP)[S]. Network Working Group. 1996.★endprint
5 测试结果
根据测试标准TTR001-05和IOP001-05,笔者开发了全部27个测试例。由于目前的移动台和网络设备不支持标准中的部分功能,因此对其中的19个测试例进行了实际测试验证。
测试中使用的移动台包括MOTOROLA、SEPURA和EADS三家厂商的移动台,网络设备采用北京理工大学和北京交通大学联合研制的TETRA基站和交换机系统。测试系统运行平台为Windows XP系统和TTworkbench v14。
图4是按照IOP 001-05标准中测试例1.3.1的要求设计的测试例的运行结果(LCP协商部分)。该测试例包括拨号、LCP协商、IPCP协商、数据传输和去激活的完整过程,具有很强的代表性。整个测试过程都是TTCN-3程序自动完成的,无需人工操作,测试完成后立刻得到测试是否通过的结果,完全达到了预期目的。
6 结束语
本文提出了一种基于TTCN-3语言的TETRA协议互操作性测试的设计方案,按照此方案设计的测试系统已经投入实际使用。文中所提出的PPP协议处理方法不仅可以用于TETRA系统,也可以应用于其他移动通信系统的分组数据测试。本测试系统既可以用于协议一致性或者互操作性的测试,也可以加以扩展用于系统的压力测试、性能测试和生产测试等诸多领域。
参考文献:
[1] ETSI EN 300 392-2 V3.4.0. Terrestrial Trunked Radio(TETRA); Voice plus Data(V+D); Part 2: Air Interface(AI)[S]. ETSI. 2010.
[2] ETSI ES 201 873-1 V4.2.1. Methods for Testing and Specification(MTS); The Testing and Test Control Notation version 3; Part 1: TTCN-3 Core Language[S]. ETSI. 2010.
[3] TTR 001-05 V3.0.0. TETRA Association; TETRA Interoperability Profile(TIP) Part 5: Packet Data[R]. TETRA Association Technical Forum. 2008.
[4] IOP 001-05 V3.0.5. TETRA Association TETRA V+D TIP Compliance Test Plan IOP 001-05 for testing of V+D TIP Part 05 Packet Data(TTR 001-05)[R]. TETRA Association Technical Forum. 2010.
[5] 陈元,尹霞,王之梁. 基于TTCN-3的LDP一致性测试研究[J]. 计算机应用研究, 2009,26(1): 286-288.
[6] 詹宝容,庾锡昌. 基于TTCN-3的移动业务测试平台的设计[J]. 计算机工程与设计, 2011,32(16): 1893-1897.
[7] 文霄,高阜乡,赖旻. 基于TTCN-3同步扩展的协议一致性测试研究[J]. 电脑知识与技术, 2011,7(1): 63-65.
[8] RFC 1661. The Point-to-Point Protocol(PPP)[S]. Network Working Group. 1994.
[9] RFC 1662. PPP in HDLC-like Framing[S]. Network Working Group. 1994.
[10] RFC 1334. PPP Authentication Protocols[S]. Network Working Group. 1992.
[11] RFC 1994. PPP Challenge Handshake Authentication Protocol(CHAP)[S]. Network Working Group. 1996.★endprint
5 测试结果
根据测试标准TTR001-05和IOP001-05,笔者开发了全部27个测试例。由于目前的移动台和网络设备不支持标准中的部分功能,因此对其中的19个测试例进行了实际测试验证。
测试中使用的移动台包括MOTOROLA、SEPURA和EADS三家厂商的移动台,网络设备采用北京理工大学和北京交通大学联合研制的TETRA基站和交换机系统。测试系统运行平台为Windows XP系统和TTworkbench v14。
图4是按照IOP 001-05标准中测试例1.3.1的要求设计的测试例的运行结果(LCP协商部分)。该测试例包括拨号、LCP协商、IPCP协商、数据传输和去激活的完整过程,具有很强的代表性。整个测试过程都是TTCN-3程序自动完成的,无需人工操作,测试完成后立刻得到测试是否通过的结果,完全达到了预期目的。
6 结束语
本文提出了一种基于TTCN-3语言的TETRA协议互操作性测试的设计方案,按照此方案设计的测试系统已经投入实际使用。文中所提出的PPP协议处理方法不仅可以用于TETRA系统,也可以应用于其他移动通信系统的分组数据测试。本测试系统既可以用于协议一致性或者互操作性的测试,也可以加以扩展用于系统的压力测试、性能测试和生产测试等诸多领域。
参考文献:
[1] ETSI EN 300 392-2 V3.4.0. Terrestrial Trunked Radio(TETRA); Voice plus Data(V+D); Part 2: Air Interface(AI)[S]. ETSI. 2010.
[2] ETSI ES 201 873-1 V4.2.1. Methods for Testing and Specification(MTS); The Testing and Test Control Notation version 3; Part 1: TTCN-3 Core Language[S]. ETSI. 2010.
[3] TTR 001-05 V3.0.0. TETRA Association; TETRA Interoperability Profile(TIP) Part 5: Packet Data[R]. TETRA Association Technical Forum. 2008.
[4] IOP 001-05 V3.0.5. TETRA Association TETRA V+D TIP Compliance Test Plan IOP 001-05 for testing of V+D TIP Part 05 Packet Data(TTR 001-05)[R]. TETRA Association Technical Forum. 2010.
[5] 陈元,尹霞,王之梁. 基于TTCN-3的LDP一致性测试研究[J]. 计算机应用研究, 2009,26(1): 286-288.
[6] 詹宝容,庾锡昌. 基于TTCN-3的移动业务测试平台的设计[J]. 计算机工程与设计, 2011,32(16): 1893-1897.
[7] 文霄,高阜乡,赖旻. 基于TTCN-3同步扩展的协议一致性测试研究[J]. 电脑知识与技术, 2011,7(1): 63-65.
[8] RFC 1661. The Point-to-Point Protocol(PPP)[S]. Network Working Group. 1994.
[9] RFC 1662. PPP in HDLC-like Framing[S]. Network Working Group. 1994.
[10] RFC 1334. PPP Authentication Protocols[S]. Network Working Group. 1992.
[11] RFC 1994. PPP Challenge Handshake Authentication Protocol(CHAP)[S]. Network Working Group. 1996.★endprint