1

WCDMA系统移动核心网络协议栈的测试

来源:网络 作者:微雨花间 0

WCDMA系统移动核心网络协议栈的测试

在WCDMA系统中,为了使得来自不同厂家的设备能够成功地进行通信,必须有标准化的协议,但是实现者对于协议的理解不同,导致了不同厂家的设备的协议实现是不一致的。所以解决设备协议非一致性问题将成为整个系统演进过程中一个不可忽略的因素。为了解决这个问题,协议一致性测试应运而生。下面首先简单介绍协议一致性测试原理,WCDMA系统核心网络协议,然后对我们在WCDMA系统核心网络协议测试中采用的测试方法和测试系统结构、得到的测试结果进行分析。一、协议一致性测试原理 测试是为了发现错误而执行程序的过程。测试方法可以分为黑盒测试和白盒测试。基于产品的功能来规划测试,检查程序各功能是否实现,并检查其中的错误,这种测试称为黑盒测试或者功能测试。基于产品的内部结构来规划测试,检查内部操作是否按规定执行,各部分是否被充分利用,这种测试称为白盒测试。协议是各设备之间进行通信时应遵守的规则,而这些规则基本上是以自然语言来描述,由于实现者对于协议的理解可能不同,这就轻易导致不同的协议实现,有时甚至会是错误协议的实现。因此,我们需要一种有效方法对协议实现进行判别,这种方法便是“协议测试”(ProtocolTesting)。协议测试是从软件测试的基础上发展来的,是一种功能测试,即黑盒测试。协议测试有三种类型的测试:一致性测试、互操作性测试和性能测试。一致性测试是基础,是通过观察具体实现在不同的环境和条件下的反应行为来验证协议实现与相应的协议标准是否一致,一致性测试只关心协议实现呈现于外部的性能。要保证不同的协议实现在实际网络中能成功的通讯,还需要检测某一协议实现与其它系统之间的交互过程是否正常,这是互操作性测试。另外还要对协议的性能进行测试,如健壮性、吞吐量等。在本文中,我们只介绍协议的一致性测试。协议一致性测试实质上是利用一组测试序列,在一定的网络环境下,对被测协议实现(IUT)进行黑盒测试,通过比较IUT的实际输出与预期输出的异同,判定IUT在多大程度上与协议描述相一致,确立通过一致性测试的IUT在互联时成功率的高低。协议的一致性测试过程包括以下几个阶段:根据协议的标准文本勾画出对协议进行测试的测试集;在一个确定的测试环境下的某一种具体实现上执行测试集;对测试的结果进行分析。二、WCDMA系统中核心网络协议介绍 为了第二代移动通信技术向第三代的平滑过渡和演进,目前WCDMA系统核心网包括三个域:CS(电路交换)域、PS(分组交换)域和BC(广播)域,分别处理电路交换业务、分组交换业务和广播组播业务。在PS域中SGSN是移动核心网的控制中心。它具有网络接入控制、路由选择和转发、移动性治理、会话治理、计费信息的收集等功能。在分组域附着时,SGSN建立移动治理(MM)上下文,包含与MS的移动性和安全性有关的信息。在PDP(分组数据协议)上下文激活时,SGSN与用户使用的GGSN建立一条PDP上下文,用于路由目的地址的选择。核心网SGSN设备的研究开发项目定位在提供基于R4架构的R99功能的WCDMA核心网中SGSN功能节点的解决方案之上,依据这种项目定位,SGSN功能节点可以分解为四种功能实体,它们分别是SGSN-Server(即SGSN-ServerApplication),SignalingServer(SS)、分组交换媒体网关(PS-MGW)和信令网关(SGW)。MGW可以作为终结点处理来自电路交换网的承载信道或分组网的数据流。SGW完成基于SS7网络的信令传输和基于IP网络的信令传输之间的传输层信令转换。SGSN项目开发过程中定义了需要测试的两个子系统,分别是SS子系统、SGSN Server子系统。SS子系统测试就是验证Trillium协议栈是否与协议一致。在SS子系统测试中,SGSN-Server采用的是我们开发的测试工具,在后面我们将具体介绍这个测试工具。SS采用Trillium公司的协议栈,其中SS 的协议栈结构如图1所示。测试工具和SS分别是两个独立的进程,运行在不同的服务器上 图1SignalingServer 的协议栈结构图TUCL(TCP/UDP Convergence Layer)是TCP/UDP汇聚层,它屏蔽了不同TCP/IP协议Socket接口(如Winsock和Berkely Socket)的差异,提供了一个统一的API接口,从而使Signaling Server 协议栈运行于各种操作系统的TCP/IP协议上。WCDMA/UMTS网络为了兼容过去GSM/GPRS所投资的电信设备,沿用了NO.7信令作为3G网络用来传输控制信号的通信协议。在SignalingServer协议栈中,M2UA、MTP3、SCCP、TCAP都是NO.7信令协议中支持高层信令消息和应用部分信息传送的部分。MAP?MobileApplicationPart?是NO.7信令系统的应用层协议。MAP的主要功能是在MSC和HLR、VLR、EIR等网络数据库之间交换与电路无关的数据和指令,从而支持移动用户漫游、频道切换和用户鉴权等网络功能。GMM/SM(GPRSMobilityManagementand Session Management)是GPRS移动治理和会话治理,GMM支持附着、分离、安全治理及路由区更新、位置更新等移动治理功能,用于漫游、鉴权和加密算法的选择。SM支持PDP上下文的激活和禁用。RANAP?RadioAccessNetworkApplication Protocol?是无线接入网络应用协议,它应用在UTRAN与核心网络之间的Iu接口上?包含电路域和分组域?,是传送控制信号时所采用的通信协议。RANAP主要实现以下的功能:(1)封装高层信令消息;(2)治理RNC和3G SGSN间的信令和GTP连接;(3)治理RNC和 3G MSC间的信令和电路交换连接。三、测试方法和测试系统结构 WCDMA移动核心网络协议一致性测试采用远端测试法,其测试系统设计如图2所示,图中UT和LT分别为上测试仪和下测试仪,SUT为被测系统,IUT为被测协议实现体,ASP为抽象服务原语,PDU为协议数据单元,即活动于不同层之间和同层之间的信息单元。远端测试法是将整个测试体放于被测系统之外的远端,利用抽象服务原语(ASP)和协议数据单元(PDU),在控制和观察点(PCO)对来自被测实现的输出和输入进行控制和观察。 图2远端测试方法在测试过程中,测试系统采用的是泰克公司的协议测试仪表K1297。K1297是便携式多协议/多接口测试仪,非凡适用于网络网关测试,支持多种测试模式,如监测、模拟/仿真和一致性测试(接收,性能检验和兼容性)。被测系统SS通过信令网关与测试系统相连,被测协议实现体就是我们前面提到的SS中集成的Trillium协议栈。我们主要对GMM/SM,MAP和RANAP三个协议进行测试,目的是检验Trillium公司的协议实现是否与协议标准一致。测试组网图如图3所示。在测试时,我们可以用K1297来模拟HLR,RNC或者GGSN,被测系统位于核心网中SGSN侧。在SS协议栈一致性测试阶段,SGSNServerApplication采用我们自行开发的测试工具,这个测试工具就相当于SGSN上层应用仿真。这个测试工具由ProcessControl和Message Handler两大部分组成,Process Control部分是用Per语言编写的脚本程序,测试人员通过编写、修改部分内容可以控制测试流程;Message Handler部分与所测试的协议栈关系密切,处理协议消息。Process Control部分通过有名管道与Message Handler部分相互交换信息。在测试过程中,我们一共设计了三个测试集,分别是GMM/SM功能测试集,MAP功能测试集和RANAP功能测试集。每个测试集又包括若干个测试组,测试组覆盖了每个协议的所有功能过程。其中,每个测试组中又包含若干个测试用例,测试用例覆盖了每个过程的各种情况,也就是说测试用例不仅包含了每个过程成功情况下的用例,还包括了每个过程各种错误情况下的用例以及各种异常情况下的用例。 图3协议栈测试组网图四、测试结果及分析 在协议栈一致性测试过程中,必须保证测试用例设计的完备性和准确性以及脚本程序编写无误,也就是说,测试用例不仅要覆盖协议栈功能的各个方面,而且还要符合协议的规定,程序的设计也要符合协议规范的要求。前文中提到我们一共设计了三个测试集,这三个测试集包含了GMM/SM、MAP和RANAP三个协议的一致性测试,其中在进行GMM/SM,MAP协议测试时,没有发现协议不一致性的问题。但是在测试RANAP协议时,我们发现了被测的协议栈与标准协议不一致的地方。在测试RAB建立过程时,根据用例,我们的预期结果是K1297端收到SGSN侧发送的RABAssignmentRequest 消息,并向SGSN侧回送一个RAB Assignment Response 消息,完成RAB的建立过程。实际的测试结果是当SGSN侧向K1297端发送RAB Assignment Request 消息时,K1297在接收这个消息时报“解析消息错误:缺少了必选的字段值”。这种错误的发生是由于双方(协议栈和测试仪表)对消息的编码格式不一致造成的。在确定了K1297测试仪表的消息编码格式与协议标准相一致后,我们将错误准确定位在所测的SS协议栈。而SS协议栈由许多层协议组成,所以我们仍需进一步确定错误发生在哪层协议。从协议栈运行结果的屏幕提示信息中,我们发现错误发生在RANAP协议。RANAP用于RNC与核心网络的连接,是Iu接口协议。RANAP协议消息传输语法采用ASN.1语法格式。在RANAP层所有的消息都要以ASN.1语法格式进行编码,然后将编码后的消息从RANAP层传送到其它层。ASN.1(AbstractSyntaxNotationOne)是一种用于描述结构化客体结构和内容的语言,ASN.1类似于高级程序设计语言的数据描述部分,它提供若干语言构件用以定义类型和值,类型对应结构,值对应内容。经过具体地分析Trillium协议栈的具体实现,我们发现协议栈中消息的