通信网络测试仪中CAP消息的分析和如何进行解码

发布者:Tiger8最新更新时间:2022-09-06 来源: elecfans关键字:解码 手机看文章 扫描二维码
随时随地手机看文章

1、引 言

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


本文研究的主要内容是CAP消息的分析,一方面描述如何根据协议标准中规定的协议消息结构进行解码,另一方面结合实际情况探讨CAP消息的统计及呼叫数据记录合成等功能。


2、CAP协议概述

智能网是通信技术和计算机技术相融合的经典范例,其基本思想是将业务控制智能从交换网络中分离出来,以No.7信令系统为桥梁,使交换网络的控制信息与大容量分布式数据库联系起来,集中控制,以方便新业务的引入和快速适应不断变化的市场需求,不必像过去那样在大范围多机种的交换机上进行繁杂的修改。


为了在移动通信系统中引入智能网,欧洲电信标准研究所(ETSI)于1997年在GSM Phase 2+上定义了CAM-EL(Customised ApplicaTIons for Mobile network EnhancedLogic,移动网络增强逻辑的客户化应用协议)。CAMEL协议的特征是为用户提供一种网络无关的业务一致性。即使用户不在其所归属的公共陆地移动网络(HPLMN)中CAMEL协议也可以作为一种手段帮助网络运营者向用户提供特定的业务。CAP(CAMEI,ApplicaTIon Part)是CAMEL的应用部分,他基于智能网的INAP协议。CAP协议描述了移动智能网中各个功能实体之间的标准通信规程。


CAP作为应用层协议,与INAP,MAP同属于TCAP的用户,他们在七号信令系统中的位置如图1所示。

通信网络测试仪中CAP消息的分析和如何进行解码

移动智能网系统中的各个设备往往是各个不同的厂家提供的,CAP定义的精确和无二义性就变得非常重要。目前CAP的语法的定义使用ASN.1。


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软件模块系统设计

3.1 CAP软件模块的设计要求

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

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

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

(2)与数据库的配合

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

(3)模块的效率问题

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


3.2 CAP模块的结构分析

系统分析在用户需求的基础上,采用面向对象的思想对CAP模块具体分析,划分系统的各个部分,明确他们之间的层次关系,然后将各个部分作为一个对象进行功能分析,对每一层次的数据进行加工处理,并向上一层提供必要的支持。根据软件总体架构方案协议消息处理流程如图2所示。

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

设计与实现。


3.3 CAP软件模块研究与实现

3.3.1 CAP协议解码分析

在对CAP进行解码分析前,首先要知道BER编码的基本编码格式。BER以8 b为一个基本传送单位。对于每个所传送的值,无论是基本类型还是构造类型,都由TLV三个字段组成。TLV分别指标识类型标识符域(TAG)、数据长度域(LENGTH)和数据域(VALUE)字段。其中,数据域可以多重嵌套其他数据元素的TLV字段。BER编码的具体格式如图3所示。

在CAP协议描述中,以localValue,length,operator-code,errorcode分别对应BER编码中的TLV,组成树状数据结构图[1],具体解码设计将在下面分析。


3.3.2 解码器实现方案

在通信测试仪表中主要是对协议及信令的PDU进行操作,为满足对PDU的公共操作我们制定了CPdu基类,主要实现对PDU的创建、删除、合并、内存管理、长度检查、指针操作等基本功能。在继承CPdu类的基础上,我们派生出CPduCap类,在类CPduCap中设定外部接口函数int Deeode(CString&res),完成详细解码过程,并通过引用传递的方式将解码结果置于CString类型的字符串内,便于主控方调用解码结果。返回值结果定义如下:1:非本层PDU,不操作res;0:成功解码;1:本层PDU,解码出错,错误信息加到结果字符串中。


由于ASN.1语法的特点,Decode(CString&res)函数采用树状遍历嵌套调用的方式进行解码,直至解到BER的基础函数为止。


在基础解码函数中,我们大量使用C++++标准模板库中的模板类:容器std::vector。vector是一个多功能的,能够操作多种数据结构和算法的模板类和函数库,在ASN.1复杂数据机构的环境下,vector的使用方便了对各种数据类型进行读取、存储、转换操作。


详细解码的实现是对通信协议进行深层次分析,以及统计、CDR合成的基础,下面主要关注CAP CDR合成的实现。


3.3.3 呼叫合成器实现方案

呼叫合成器的主要功能就是根据到达的帧信息和呼叫信息,将帧消息按呼叫归类,即把消息ID加入到相应的CDR记录中,并在呼叫结束时通知CDR缓存。CDR(calldata record)在PSTN中表示呼叫数据记录,现在延伸意思为一个完整的流程,CDR合成是上述功能的基础,对网络中消息按信令流程进行归类,并用索引方式把这些消息联系到一起,然后才便于完成诸如呼叫跟踪和呼损统计等高级功能。CDR合成算法主要是根据一些关键参数进行查找、匹配来确定是否属于同一个消息流程,因此在这个过程中,需要一些临时存储方式来保存没有匹配到的消息,在内存分配上比较复杂,涉及动态分配内存。


移动智能网应用部分(CAP)是在7号信令的SCCP/TCAP之上的,即CAP为TCAP的用户(也称TC用户),直接与TCAP的成分子层相连。CAP使用TCAP所提供的TC请求原语将要发送的CAP消息传送至TCAP成分子层,然后再通过TCAP的事物处理子层、SCCP以及MTP将消息发到对端,或者使用TCAP所提供的指示原语接收对端发来的CAP消息。


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


在呼叫合成实现中,最主要有两个方法:

(1)设定CDR缓存的方法void SetCdrBuffer(CAPCDR BUF*pBuf):其中CAP CDR BUF是包含CCapCDR的CDR缓存模板类,此函数指定了CDR记录缓存的位置。

(2)CDR处理函数:void Handle(const CallInfoCap&CapInfo,const NgnPktInfo& PktInfo)。他是进行呼叫合成的核心,也是设计的关键。他有两个参数,分别是该协议呼叫信息和数据帧信息。其基本流程如图4所示。

其中,判断某CDR是否已缓存,通知CDR缓存该CDR已结束和向缓存中添加新的CDR都需要调用CDR缓存模板类的方法,对于CAP协议的CDR子类:CCapCDR,声明一个CAP CDR缓存类型方法如下:ty-pedef CCallBufCAP CDR BUF。


在缓存操作中的具体实现如下:

(1)查询某CDR是否已缓存,利用CDR缓存的Search方法:

newCdr.nLinkID=nLinkld:

//设定关联属性(根据协议类型增加)

_tcscpy(newCdr.Call ID,Caplnfo.Call ID);

CCapCDR*pFind=m pCdrBuf=-》Search(newCdr);

//查询该CDR是否已存在

(2)向缓存中添加新的CDR:使用InsertNewCDR方法:

CCapCDR*pFind=m pCdrBuf-》InsertNewCDR(newCdr);

(3)通知缓存某CDR已结束:

bool bReturn=m pCdrlBuf-》CallCompleted(*pFind);CDR呼叫其他相关分析在此不再赘述。


4、 软件运行实现结果

在模块的整个开发流程中,每一步都要进行软件的测试工作,以保证整个模块开发工作的正确性。下面是软件实测后进行CDR合成的结果,可以从图5中看到,软件实现了CAP的CDR功能,点击单条消息名称可以看到消息的关键数据,在此不再进行演示。

5、结 语

采用面向对象的思想,通过C++语言,我们实现了CAP软件模块。在模块开发流程结束后,通过现场测试,该软件模块完全符合中国移动《软交换测试仪表测试规范(征求稿)》中对移动智能网测试的要求,目前该软件模块已运用于商用通信测试仪表中。


关键字:解码 引用地址:通信网络测试仪中CAP消息的分析和如何进行解码

上一篇:电缆故障测试仪--高压信号单元的简单说明
下一篇:基于红外遥控的简单灵敏测试仪电路图

推荐阅读最新更新时间:2024-11-09 23:16

ZDS2022解码波形教您如何解决问题
案例分析 南京某公司在使用我们的M287-128WIArm9™核心板研发一款车载设备产品,需要使用M287-128WI核心板的串口与客户外购的车载设备对接通讯。这款外购车载设备给的串口设置参数为:波特率9600;数据位8位;停止位0;校验位无。于是客户把M287-128WI的串口配置按照以上参数进行配置,并进行通讯。但是整个通讯过程中,M287-128WI接收外购车载设备的串口数据一直出现数据丢包的情况,并多次质疑M287-128WI串口驱动存在BUG。我公司软件工程师对软件驱动进行逐一排查,但一直未找到问题的根源,于是决定上门进行支持! 解码不正确 到了现场,我们在假设软件没有BUG的情况下,那么寻找问题思路就转到外购的车载
[测试测量]
ZDS2022<font color='red'>解码</font>波形教您如何解决问题
ZDS2022示波器中UART协议解码可否适用于RS485/422?
RS485/422 虽然是差分传输,但单条传输线的数据是符合UART协议的,可以当作 UART 协议进行解码。因此,测试时,只需测量RS485/422 差分信号中的其中一路信号,并注意电平正反相的问题,就可以采用 UART 协议解码。 注:RS 485上层的 modbus 协议不支持。 使用UART协议解析测试DEMO板上的RS232信号,解析数据正常。但是,测试从电脑发出来的RS232数据时,有时无法正常解析出数据。这又是为什么呢? UART协议解码时,识别模式是被测信号空闲时是高电平,起始位是一个低电平。而电脑上的RS232收发器发送的数据电平是反相的,也就是说在空闲状态时是保持低电平的,所以导致无法正常解码。此时
[测试测量]
ZDS2022示波器中UART协议<font color='red'>解码</font>可否适用于RS485/422?
红外解码程序换种写法
#include reg52.h #define uint unsigned int #define uchar unsigned char sbit IR=P3^2; //红外接口标志 sbit RS = P1^0; sbit RW = P1^1; sbit E = P1^2; sbit beep = P1^7; uint hour,minute,second,count; char code Tab ={'0','1','2','3','4','5', '6','7','8','
[单片机]
Diodes解码器集成电路与高通QC 2.0协议兼容实现手机快速充电
Diodes推出解码器集成电路AP4370,应用于配备了Quick Charge (简称QC) 技术的高通 (Qualcomm) 系统单芯片的手机、平板电脑及同类型消费性产品实现快速充电。 AP4370通过与高通的高压专用充电端口QC 2.0协议相互兼容,提供高度集成及低成本的解决方案,帮助设计人员设计出支持QC充电功能的充电器和适配器。新解码器借由为便携式设备所产生的不同D+/D-信号组合解码提供能够改变控制器电压参考或电压反馈式分压电阻的V1/V2输出,从而实现所需的恒压或恒流控制。 AP4370具有过压放电功能,当QC 2.0连线设备要求较低的输出电压时,器件会在电压转换过程中加快输出电压降以保护设备。若连线设备
[手机便携]
STM32F407开发板红外线解码功能应用案例
【1】NEC红外线协议介绍 NEC红外线协议是一种常用的红外线通信协议,广泛应用于消费电子产品中,如电视、DVD播放器、空调遥控器等。该协议定义了红外线通信的物理层和数据链路层规范,以实现可靠的红外线数据传输。 下面是NEC红外线协议的详细介绍: (1)载波频率:NEC红外线协议使用的载波频率为38kHz。发送方通过以38kHz频率调制红外线光信号,接收方则通过解调来接收数据。 (2)数据编码:NEC红外线协议使用脉冲宽度编码(Pulse Width Encoding)来表示二进制数据。每个数据位由一系列的脉冲组成,逻辑0和逻辑1分别由不同的脉冲宽度表示。 逻辑0:发送方发射一个530μs的载波后,延迟时间为530μs。
[单片机]
STM32F407开发板红外线<font color='red'>解码</font>功能应用案例
利用电机控制中PLU模块与CTIMER计数器解码电机
在电机控制中,实时获取电机转子位置是非常重要的。通过监测电机轴或机械设备运动的位置可以计算电机转速。当电机转动时,编码盘传感器(Encoder)会发出类似于正交PWM波的高低电平信号,对此信号进行解码,可以得到电机转动角度及方向。 DSC系列MCU的Quad Timer(TMR)外设可以对正交编码信号解码,有些客户使用LPC55XX系列也需要解码,本文用PLU模块对Encoder的信号解码,用计数器计数解码信号,进而得到转子位置及速度。 1. 标准推拉输出 DSP系列MCU的Quad Timer(TMR)外设可以对正交编码信号进行解码,如下: 在进行解码时,其实是两个信号发生电平翻转时进行计数,那么可以理解为对这两个
[嵌入式]
利用电机控制中PLU模块与CTIMER计数器<font color='red'>解码</font>电机
爱立信将Fraunhofer MPEG-H集成到旗下传输分配编/解码器方案
2018年4月10日,德国埃朗根市/美国内华达州拉斯维加斯市——全球领先的专业广播媒体解决方案提供商爱立信率先将MPEG-H电视音频系统集成到旗下传输分配应用程序中。 在NAB展会上,爱立信带来了最新开发的AVP 2000传输分配编码器及其配套的MediaFirst 内容处理(MFCP)解码器,这是业内首个完全支持MPEG-H电视音频系统的传输分配编码/解码解决方案。MPEG-H电视音频系统由Fraunhofer IIS主要研发,是目前世界上唯一投入实际运行的下一代广播音频系统,于2017年5月在韩国地面超高清数字服务中正式商用。 爱立信的全新解决方案能够实时生成具备必要元数据 的MPEG-H 码流,并将其传输回演播室作
[网络通信]
ZDS2022示波器百集实操视频之45:Wiegand协议的解码
Wiegand协议广泛应用于门禁控制系统的读卡器领域,很多客户在研发工作中需经常对其进行解码分析,ZDS2022示波器为了解决用户需求,免费开放了21种协议解码,其中就包含Wiegand协议! 按下【Decode】键,将解码类型设为Wiegand协议,打开协议触发,在示波器前面板上的触发控制区内,按下【Auto/Normal】键,将触发方式设为普通,使波形稳定显示。在“协议参数”中,检查DATA0和DATA1的通道设置是否与信号实际输入通道相符,ZDS2022示波器中Wiegand协议类型可设置为26位、39位、44位和自定义,我们选择26位。 图1 Wiegand协议解码 位最大间隔是输入两个数据之间允许的最大间隔,设置
[测试测量]
小广播
最新测试测量文章
换一换 更多 相关热搜器件
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved