作 者:尚楠 张治中 杨抗 余银凤
1引言
通信网络测试仪中的信令分析,针对的是协议栈一系列的传输层和应用层协议。仪表协议分析的基础,要能够实现对所接收到的网络数据进行译码解析,并在此功能上进行更高级的统计追踪功能。在进行协议分析时,鉴于协议之间消息格式和处理机制的不同,以及软件模块化的实现要求,采取以单个协议进行模块封装的办法是更有效的,其好处在于能够忽略协议问功能和格式的细微差别,对单个协议的分析方法也能在很大程度上推广到其他协议。
本文研究的主要内容是CAP消息的分析,一方面描述如何根据协议标准中规定的协议消息结构进行解码,另一方面结合实际情况探讨CAP消息的统计及呼叫数据记录合成等功能。
2CAP协议概述
智能网是通信技术和计算机技术相融合的经典范例,其基本思想是将业务控制智能从交换网络中分离出来,以No.7信令系统为桥梁,使交换网络的控制信息与大容量分布式数据库联系起来,集中控制,以方便新业务的引入和快速适应不断变化的市场需求,不必像过去那样在大范围多机种的交换机上进行繁杂的修改。
为了在移动通信系统中引入智能网,欧洲电信标准研究所(ETSI)于1997年在GSMPhase2+上定义了CAM-EL(CustomisedApplications for Mobile network EnhancedLogic,移动网络增强逻辑的客户化应用协议)。CAMEL协议的特征是为用户提供一种网络无关的业务一致性。即使用户不在其所归属的公共陆地移动网络(HPLMN)中CAMEL协议也可以作为一种手段帮助网络运营者向用户提供特定的业务。CAP(CAMEI,Application Part)是CAMEL的应用部分,他基于智能网的INAP协议。CAP协议描述了移动智能网中各个功能实体之间的标准通信规程[1,2]。
CAP作为应用层协议,与INAP,MAP同属于TCAP的用户[3],他们在七号信令系统中的位置如图1所示。
移动智能网系统中的各个设备往往是各个不同的厂家提供的,CAP定义的精确和无二义性就变得非常重要。目前CAP的语法的定义使用ASN.1。
ASN.1(AbstractSyntaxNotationOne)就相当于描述传送语法的一种语言,他定义的编码规则也就是从不同的协议语言到统一的传送语法之间的转换规则。因此,在具体实现时,必须在发送方设置一个ASN.1编码器,将发送方所要传送的符合发送方编程语法的消息格式转换成为符合ASN.1编码规则的格式然后再发送出去,然后在接收方设置一个ASN.1解码器,将接收到的符合ASN.1编码规则的消息格式解码为符合接收方协议语法的消息格式。这样,经ASN.1描述的信息独立于任何应用系统及传送网络,不会因为应用环境的不同而引起二义性的解释。
ISO在制定ASN.1的同时也推出了ASN.1的两种编码规则,一是基本编码规则(BasicEncodeRule,BER),详细内容请见X.690;另一个是数据包编码规则(PacketEncodeRule,PER),详细内容请见X.691。BER和PER实际上都是一种传送语法,他可以把复杂的用抽象语法描述的数据结构表示成简单的数据流,从而便于在通信线路上传送。PER就是在BER的基础上,以减少编码开销为目的而设计的编码规则,相对BER编码更加精简,但目前的通信协议仍以BER编码居多,CAP协议遵循BER编码规则[4]。
3CAP软件模块系统设计
3.1CAP软件模块的设计要求
对于通信网络测试仪器的软件模块,CAP模块需要满足CAP消息的详细解码,信息提取、统计,CDR合成,过滤等功能。其设计主要考虑以下方面:
(1)软件的面向对象及模块化设计
在面向对象思想下采用模块化设计,模块内部的结构清晰易懂,各模块之间相对独立。这样便于检查错误,节省开发时间,提高了软件系统的稳定性、可修改性和重用性。
(2)与数据库的配合
通信测试系统涉及到数量相当大的数据库文件系统,信息提取,消息统计及CDR合成均需要同数据库配合,因此,在软件模块设计期间要考虑模块的数据库实现问题。
(3)模块的效率问题
为满足测试仪表长时间大负荷监控和实时解码统计等功能,模块必须提高运行效率。为了更好地提高软件的性能,在软件设计上,可以考虑采取多线程,流水线技术。
3.2CAP模块的结构分析
系统分析在用户需求的基础上,采用面向对象的思想对CAP模块具体分析,划分系统的各个部分,明确他们之间的层次关系,然后将各个部分作为一个对象进行功能分析,对每一层次的数据进行加工处理,并向上一层提供必要的支持。根据软件总体架构方案协议消息处理流程如图2所示。
其中,采集卡捕获到的数据首先保存在消息缓存中;解码器从消息缓存中取出消息逐条进行粗略解码,获得每帧数据的帧信息和呼叫信息;这两类信息按照协议类别交给呼叫合成器进行呼叫合成,得到每个协议的CDR集合,保存在CDR缓存中;根据用户需要进行显示和统计。统计功能可以直接面向CDR缓存进行,也可以先将CDR输入数据库,在数据库中进行统计,然后输出统计结果。对于CAP模块,我们主要实现CAP解码器和呼叫合成器的设计与实现。
3.3CAP软件模块研究与实现
3.3.1CAP协议解码分析
在对CAP进行解码分析前,首先要知道BER编码的基本编码格式。BER以8b为一个基本传送单位。对于每个所传送的值,无论是基本类型还是构造类型,都由TLV三个字段组成。TLV分别指标识类型标识符域(TAG)、数据长度域(LENGTH)和数据域(VALUE)字段。其中,数据域可以多重嵌套其他数据元素的TLV字段。BER编码的具体格式如图3所示。