APP下载

软交换网络集中监测系统SIP监测方案

2012-09-28雒江涛

电讯技术 2012年1期
关键词:信令消息流程

李 勇,雒江涛,2,黄 建

(1.重庆邮电大学通信网与测试技术重点试验室,重庆400065;2.重庆中天重邮通信技术有限公司,重庆401121)

1 引 言

随着近几年中国通信业的快速发展,通信网络运维中存在的网络质量、服务质量等问题越来越突出,这为各测试设备厂商提供了新的机遇和挑战。原有的网络监测方法主要是通过测试仪表来实现,这种方法相对落后,一般在网络出现故障后才使用,实现方式被动,接口单一,无法满足运营商对网络监测的需求。在这种情况下,一种能够对全网运行状况进行实时监测并预警,对故障进行定位分析的监测系统概念孕育而生。

以往的信令监测手段实时性及准确率低。采用的红黑树的CDR(Calling Detail Record)索引算法遍历速度慢,执行效率低,访问CDR造成硬盘读写次数过大,速度慢。监测系统要对数据进行实时采集、实时分析,好的信息索引方式对解决CDR合成效率问题至关重要。

为了提高合成效率,我们采用了哈希索引合成的方法,建立以KEY值为索引、CDRID为映射值的数据结构管理模式,解决以往索引效率低下等难题。

SIP作为软交换网络的关键协议,用于创建并控制双方或多方参加的多媒体会话[1]。结合对SIP协议的分析,亦可采用这一高效的合成技术应用于SIP协议的监测中。

2 软交换网络监测系统架构设计

该系统以实时处理为核心,以分布采集、集中分析方式实现对网络的网元及接口的综合监测。由远端的信令采集模块提供实时的信令数据,用户要对某种电信业务行为进行分析、统计时,会读取相关的数据并进行信令处理,然后提供给用户网络性能及业务统计、计费核查数据、监测设备状况和网络优化分析等应用报告,监测网络中的异常情况,自动弹出告警信息,有效地协助用户完成故障的分析与定位,从而对网络的优化和调整提供信息和依据[2]。

为了满足系统集中分析的要求,信令监测平台的架构可分为数据采集部分、信令处理管理模块、信令处理模块、基础应用部分和存储模块等。信令监测平台架构如图1所示。

图1 信令监测平台架构图Fig.1 The structure of signaling monitoring platform

数据采集模块主要负责将网络中的信令数据通过数据采集卡成功提取。

信令处理管理模块内设数据采集服务端与远端的采集设备交互,信令处理服务端等与相应处理进程交互。应用服务器是各设备命令交互中心,负责用户权限管理,是所有客户端访问信令分析平台的总接口。

信令处理模块是整个信令处理部分,包括对采集到的数据进行协议解码、CDR的合成及统计。

基础应用部分基于数据库存储的信令数据,完成实时链路监测、告警监测、拓扑管理、网络统计和业务分析、消息和CDR详细记录查询等应用功能。

存储模块存储信令处理后的工程信息及信令统计信息,并将数据表通过入库系统导入数据库,提供给上层应用平台,用于上层处理。

3 SIP协议栈结构

SIP协议是由IETF于1999年提出的一种实时通信应用信令协议,其最终目标是为所有因特网成功的应用提供无所不在的接入,成为联系因特网和电信、多媒体的媒介。SIP工作在应用层,与其它协议相互合作,例如:RTP(Real-time Transmit Protocol)用于传输实时数据并提供服务质量(QoS)反馈,RTSP(Real-Time Stream Protocol)用于控制实时媒体流的传输,SDP(Session Description Protocol)用于描述多媒体会话。SIP协议网络层协议为IP,传输层协议为TCP或UDP。

SIP协议栈结构如图2所示[3]。

图2 SIP协议栈Fig.2 SIP stack

4 SIP监测模块设计

本文根据相关测试规范的要求[4],创新性地提出了一种对SIP协议的监测设计方案,其实现的功能主要有协议解码、CDR合成、性能统计等。

4.1 SIP解码模块

SIP是一个基于文本的分层协议,类似于HTTP,至顶向下依次为事务用户层(TransactionUser)、事务层(Transaction)、传输层(Transport)以及语法和编码层(Syntax and Encoding)[5]。SIP消息采用UTF-8字符集。根据SIP协议的消息格式,所有的SIP消息均由起始行、头域部分和消息体(可选)组成。由于SIP消息格式层次性及灵活性,如复合行、缩略头域标识、线性空白(Line White Space,LWS)等,因而采用正则表达式匹配解码的手段可有效解析SIP消息内容。

4.2 SIP呼叫合成模块

呼叫合成是指将属于同一次呼叫及信令流程的消息关联起来,并记录与该呼叫流程相关的属性信息。这里关键问题是如何解决在消息处理过程中同一个时刻可能存在成千上万个未完成的呼叫,如何组织这些消息能很快找到其所属的呼叫流程[6]。在设计中,为了完成快速查找的工作,对SIP消息来说,不同的呼叫均可以通过呼叫标识(Call-ID)和源、目的URI标签来区分。考虑到消息的关联我们采用哈希索引的方式,以Call-ID、ToTag、FromTag作为Hash索引的关键KEY值,并通过一定的散列算法,获得一个唯一的散列值,从而完成对同一呼叫流程消息的合成。我们采用了CDRID为映射值的数据结构管理模式,对于每一个流程由CDRID唯一标识,从而完成对不同呼叫流程的索引。SIP呼叫合成设计流程如图3所示。

图3 SIP呼叫合成的总体流程Fig.3 The whole process of SIP CDR synthesis

对于每一条消息,分析的流程都是按照“重发检查※有效性检查※处理※记录”的思路进行。

步骤1:当一条SIP数据消息到来,首先判断消息类型,成功解码后将协议分析时需要的数据存储在SIPCallInfo这个结构体中;

步骤2:当进入协议分析模块后,首先进行超时检测,将根据SIPCallInfo传送过来的关键信息建立该Hash索引的关键KEY值;

步骤3:然后通过该KEY值遍历存储SIP数据流CDR的哈希模板,在合成缓冲区中搜索相关关键字的节点是否存在;

步骤4:如果找到则执行步骤5,如果没有找到,则说明该表中没有相关的记录,判断如果是起始消息,则在Hash表中添加一个CDR节点,并为之指派唯一ID,修改新CDR属性值并保存,否则返回;

步骤5:根据此KEY在SIP CDR缓存中搜索到当前消息属于某条CDR,则根据消息类型(呼叫信息中),调用不同的消息处理函数进行处理;修改CDR属性信息及SIP携带的SDP信息并保存消息ID,然后判断该消息是否是CDR结束消息,若该消息包含结束指示,则从缓存区中移除KEY,然后结束合成,否则修改状态指示并将CDR放回缓存。

在合成中要特别注意INVITE消息的处理。由于INVITE消息是一个事务的起始,它在一个呼叫中可能以多种身份出现,即一开始是呼叫发起,而后续收到的INVITE消息可能是鉴权、重定向,也可能是呼叫保持、修改会话,或者是重发。这些不同的后续流程涉及到CDR中不同的处理方式。所以必须要把这些不同流程区分开,而依据除了某个状态特有的标志外,主要靠CSeq的序号以及INVITE事务结束的标志位,与INVITE事务配合使用的CANCEL、BYE等消息通过CSeq序号一致性相关联。

在合成中记录CDR开始、结束时间,主被叫号码、计费类型、接通、应答、通话时长等信息的流程,通过这些信息就可以掌握每一条呼叫详细记录,从而提供给统计模块进行不同维度的分析处理。

4.3 SIP统计模块

SIP统计模块的设计方案如图4所示。在SIP合成模块设置观察者线程,分析不同消息类别的合成处理,从而设置调用不同的观察者函数。在CDR结束标志标识的消息处,调用pSipCdrChange->On-CDREnd()函数,触发SIP统计观察模块并将CDR相应属性信息入队列存入缓存,并通过统计处理模块将CDR信息出队列,以CDR结束时间为统计开始时间并设置统计粒度(时间),当前时刻超过统计结束时刻,就执行SIP呼叫控制KPI统计函数,并生成统计数据,通过入库系统将数据供上层应用平台分析。

该KPI信息中有呼叫信息的基本属性(如主叫号码等),还有接通时长、网络接通次数、网络呼损次数等。

图4 SIP统计模块的设计流程Fig.4The design flow chart of SIP statistics module

5 监测方案结果验证

此监测技术已经应用到软交换网络信令监测系统中,图5为软交换网络信令监测系统对现网数据的监测结果,这是一条详细呼叫记录的分析。该方案不同于信令监测仪表对数据的回放,它支持通过Web界面的在线流程图查询,并可查看多段关联的信令流程。

图5 SIP CDR合成Fig.5 SIP CDR synthesis

通过Hash算法对节点进行插入和删除的操作,其时间复杂度的理论值最好为O(1),最差为O(n)。如果选取的表项(m)足够多,且Hash函数足够好的话,当 m≤n时,其时间复杂度为O(n/m);当 m>n/lg(n)时,Hash表的平均表现就比二叉树要好;当m≥n时,其时间复杂度趋近于O(1),相对于红黑树有很大的提高。实测表明,采用Hash技术大大提高了合成的时效性和准确性。

在实际现网测试的时候会出现大量的“合成中”的CDR,这是由于采集到的数据不完整造成的,如果不及时终止合成,会造成系统资源的严重浪费。本方案在设计中加入了超时机制的判断,实测中该问题得到了有效解决。

6 结束语

通过对软交换网络集中监测系统的架构及模块分析,笔者提出了一种符合测试规范要求的SIP协议监测子模块的设计方案。该方法的创新点在于:采用了一种新的合成算法,并且利用高效Hash索引有效解决了合成的难题;设计观察者为统计模块和多段关联提供接口。该方案已通过测试,效果良好,对其它协议的监测具有良好的借鉴意义。但是由于系统对数据采集及实时分析的要求比较高,如何有效保证高的处理速率和准确率仍有待研究与解决。

[1]Schlzrinne H,Rosenberg J.The Session initiation protocol:Internet Centric signaling[J].IEEE Communications Magazine,2008(1):134-141.

[2]胡晓娟,周立岩.软交换信令监测系统的研究[J].电信科学,2007,23(1):34-37.HU Xiao-juan,ZHOU Li-yan.Research on the Soft-switching Monitoring System[J].Telecommunications Science,2007,23(1):34-37.(in Chinese)

[3]司端凤,韩心慧,龙勤.SIP标准中的核心技术与研究进展[J].软件学报,2005,16(2):239-250.SI Duan-feng,HAN Xin-hui,LONG Qin.A Survey on the Core T echnique and Research Development in SIP Standard[J].Journal of Software,2005,16(2):239-250.(in Chinese)

[4]中国电信DC1软交换信令监测系统项目测试功能规范书[S].The functional specification book of China T elecom DC1softswitch signaling monitoringsystem project testing[S].(in Chinese)

[5]Internet RFC 3428,Campbell B,Rosenberg J.Session initiation protocol(SIP)extension for the instant messaging[S].

[6]夏鞑,雒江涛,张治中.TD-SCDMA测试仪中 Iub接口CDR的合成方案[J].重庆邮电大学学报(自然科学版),2007,19(1):35-38.XIA Da,LUO Jiang-tao,ZHANG Zhi-zhong.Scheme of CDR synthesis on Iub interface in TD-SCD MA network analyzer[J].Journal of Chongqing University of Posts and Telecommunications(Natural Science Edition),2007,19(1):35-38.(in Chinese)

猜你喜欢

信令消息流程
吃水果有套“清洗流程”
一张图看5G消息
SLS字段在七号信令中的运用
移动信令在交通大数据分析中的应用探索
违反流程 致命误判
基于信令分析的TD-LTE无线网络应用研究
本刊审稿流程
析OGSA-DAI工作流程
LTE网络信令采集数据的分析及探讨
消息