专栏搜索: 作者 标题

0

支持

文章标题载入中...

作者:博客中国 2007-05-28 12:34:56 发表于:博客中国

点击收拢文章正文

通信网络测试仪表中CAP软件模块的研究
通信网络测试仪中的信令分析,针对的是协议栈一系列的传输层和应用层协议。仪表协议分析的基础,要能够实现对所接收到的网络数据进行译码解析,并在此功能上进行更高级的统计追踪功能。在进行协议分析时,鉴于协议之间消息格式和处理机制的不同,以及软件模块化的实现要求,采取以单个协议进行模块封装的办法是更有效的,其好处在于能够忽略协议问功能和格式的细微差别,对单个协议的分析方法也能在很大程度上推广到其他协议。

本文研究的网络测试仪主要内容是CAP消息的分析,一方面描述如何根据协议标准中规定的协议消息结构进行解码,另一方面结合实际情况探讨CAP消息的统计及呼叫数据记录合成等功能。
移动智能网系统中的各个设备往往是各个不同的厂家提供的,CAP定义的精确和无二义性就变得非常重要。
ASN.1(Abstract Syntax NotationOne)就相当于描述传送语法的一种语言,他定义的编码规则也就是从不同的协议语言到统一的传送语法之间的转换规则。因此,网络测试仪在具体实现时,必须在发送方设置一个ASN.1编码器,将发送方所要传送的符合发送方编程语法的消息格式转换成为符合ASN.1编码规则的格式然后再发送出去,然后在接收方设置一个ASN.1解码器,将接收到的符合ASN.1编码规则的消息格式解码为符合接收方协议语法的消息格式。这样,经ASN.1描述的信息独立于任何应用系统及传送网络,不会因为应用环境的不同而引起二义性的解释。

ISO在制定ASN.1的同时也推出了ASN.1的两种网络测试仪编码规则,一是基本编码规则(Basic Encode Rule,BER),详细内容请见X.690;另一个是数据包编码规则(Packet EncodeRule,PER),详细内容请见X.691。BER和PER实际上都是一种传送语法,他可以把复杂的用抽象语法描述的数据结构表示成简单的数据流,从而便于在通信线路上传送。PER就是在BER的基础上,以减少编码开销为目的而设计的编码规则,相对BER编码更加精简,但目前的通信协议仍以BER编码居多,CAP协议遵循BER编码规则[4]。

3 CAP软件模块系统设计

对于通信网络测试仪器的软件模块,CAP模块需要满足CAP消息的详细解码,信息提取、统计,CDR合成,过滤等功能。其设计主要考虑以下方面:

(1)软件的面向对象及模块化设计

在面向对象思想下采用模块化设计,网络测试仪模块内部的结构清晰易懂,各模块之间相对独立。这样便于检查错误,节省开发时间,提高了软件系统的稳定性、可修改性和重用性。

(2)与数据库的配合

通信测试系统涉及到数量相当大的数据库文件系统,信息提取,消息统计及CDR合成均需要同数据库配合,因此,在软件模块设计期间要考虑模块的数据库实现问题。

(3)网络测试仪模块的效率问题

为满足测试仪表长时间大负荷监控和实时解码统计等功能,模块必须提高运行效率。为了更好地提高软件的性能,在软件设计上,可以考虑采取多线程,流水线技术。

3.2 CAP模块的结构分析

系统分析在用户需求的基础上,网络测试仪采用面向对象的思想对CAP模块具体分析,划分系统的各个部分,明确他们之间的层次关系,然后将各个部分作为一个对象进行功能分析,对每一层次的数据进行加工处理,并向上一层提供必要的支持。

其中,网络测试仪采集卡捕获到的数据首先保存在消息缓存中;解码器从消息缓存中取出消息逐条进行粗略解码,获得每帧数据的帧信息和呼叫信息;这两类信息按照协议类别交给呼叫合成器进行呼叫合成,得到每个协议的CDR集合,保存在CDR缓存中;根据用户需要进行显示和统计。统计功能可以直接面向CDR缓存进行,也可以先将CDR输入数据库,在数据库中进行统计,然后输出统计结果。对于CAP模块,我们主要实现CAP解码器和呼叫合成器的
设计与实现。

3.3 CAP软件模块研究与实现

3.3.1 CAP协议解码分析

在对CAP进行解码分析前网络测试仪,首先要知道BER编码的基本编码格式。BER以8 b为一个基本传送单位。对于每个所传送的值,无论是基本类型还是构造类型,都由TLV三个字段组成。TLV分别指标识类型标识符域(TAG)、数据长度域(LENGTH)和数据域(VALUE)字段。

3.3.2 解码器实现方案

网络测试仪表中主要是对协议及信令的PDU进行操作,为满足对PDU的公共操作我们制定了CPdu基类,主要实现对PDU的创建、删除、合并、内存管理、长度检查、指针操作等基本功能。在继承CPdu类的基础上,我们派生出CPduCap类,在类CPduCap中设定外部接口函数int Deeode(CString&res),完成详细解码过程,并通过引用传递的方式将解码结果置于CString类型的字符串内,便于主控方调用解码结果。
在基础解码函数中,网络测试仪大量使用C++标准模板库中的模板类:容器std::vector。vector是一个多功能的,能够操作多种数据结构和算法的模板类和函数库,在ASN.1复杂数据机构的环境下,vector的使用方便了对各种数据类型进行读取、存储、转换操作。

3.3.3 呼叫合成器实现方案

呼叫合成器的主要功能就是根据到达的帧信息和呼叫信息,将帧消息按呼叫归类,即把消息ID加入到相应的CDR记录中,并在呼叫结束时通知CDR缓存。网络测试仪CDR合成算法主要是根据一些关键参数进行查找、匹配来确定是否属于同一个消息流程,因此在这个过程中,需要一些临时存储方式来保存没有匹配到的消息,在内存分配上比较复杂,涉及动态分配内存[5]。

TCAP有两个重要概念:对话和操作。在网络中一对节点之间使用TCAP进行的所有通信都被结构化为对话。例如,为处理一个智能呼叫而在SSP和SCP之间进行的所有通信可构成一个对话。在对话过程中交换的信息元素称为操作,CAP协议的消息即存放在这些信息元素中传输。操作由源TC用户调用,请求目的地TC用户执行该操作指定的动作。在这个网络测试仪过程中,每个成份处理TC原语均带有一个事务ID(也称对话ID),成份子层收到此原语后,就将收到的对话ID与其相同的所有成份分配给这一对话。因此,我们在CAP的CDR过程中,以Transac-tionID作为关键字CDR ID在数据结构中进行查找,匹配,确定惟一的CDR流程。TransactionID又分源事务ID和目的事务ID,分别存在于不同的TC原语中。

了解更多网络测试仪信息,请登陆http://www.permlink.cn

  • 上一篇:

  • 下一篇:

发表评论

称  呼:   要留下称呼请注册(或者登录)博客中国帐号

主  页:

内  容:

[刷新评论] [更多评论]文章评论


  • 载入中,请稍后...

看看有谁浏览了我的博客(想留下脚印,请先登录)


载入中,请稍后...
[郑重声明] 博客中国刊载此文不代表同意其说法或描述,仅为提供更多信息,也不构成任何投资或其他建议。转载需经博客网同意并注明出处。本网站有部分文章是由网友自由上传。对于此类文章本站仅提供交流平台,不为其版权负责。
[本文网址] http://vip.bokee.com/ [复制]

Google提供的广告

我的导航


载入中,请稍后...

载入中,请稍后...

反病毒中心

博客中国48小时文章排行

48小时点击排行
48小时热评排行
48小时支持排行

博客中国精彩互动图文

博客中国最新文章列表

签发留言

  • 姓名:
  • 联系方式:
  • 公开留言
  • 内容:
  • 验证码: 看不清楚


载入中,请稍后...

载入中,请稍后...
主编信箱| 关于本站| 广告服务| 联系我们| 服务条款| 隐私保护| 客服中心| 人员招聘| 友情链接| 导航| 注册
Copyright 2002 - 2005 Bokee.com, All Rights Reserved