信令监控系统中数据存储检索功能的设计
2020-06-29刘皎曹荣荣武立
刘皎 曹荣荣 武立
摘 要:针对信令数据自身的特殊性,在考虑了计算机配置、网络速度等硬件因素的情况下,通过建立多级索引结构,并借鉴数据库分区的概念,使用多线程查询等方式,为信令数据存储和检索提供一种有效解决方案,可以对监控系统的海量信令信息进行组织、存储,并实现对海量数据的快速便捷检索。此外,它还具有极高的耦合度,易于扩展,能够与其他系统快速兼容。
关键词: 信令监控; 封包数据; 数据存储; 数据检索
中图分类号: TP302
文献标志码: A
Abstract: For the particularity of the signaling data itself, in consideration of hardware factors such as computer configuration and network speed, by establishing a multi-level index structure, and drawing on the concept of database partitioning, using multi-thread query, an effective solution for signaling data storage and retrieval is presented. The scheme can organize and store the massive signaling information of the monitoring system, and realize fast and convenient retrieval of massive data. In addition, it has a very high degree of coupling, is easy to expand, and is quickly compatible with other systems.
Key words: signaling monitoring; packet data; data storage; data retrieval
0 引言
信令监控是实时采集,数据在线处理,远程测试,实时监控,数据分析以及通信网络中信令流程的实时重组和分析的过程[1-2]。信令监控系统所要采集和分析的数据包括:信令和媒体两部分[3]。信令监控系统可以评估和监控信令网络的运行状态,定位和分析故障,并监控运营商的服务质量[4-5]。由于网络通信过程中将产生海量的信令封包数据,这些数据除了大容量、高速率、高实时性外,它还具有一些特殊性[6-7]。这些特殊性使得简单的数据库存储方式[8]不可行。因此,要检索信令封包数据,往往需要关联出一个完整的信令流程[9-10],而如何在检索时准确并快速地关联一次信令会话中的所有封包,是一个非常关键的问题。本文主要针对网络通信时产生的大量信令封包,结合数据的特点,为其存储和检索提供一种解决方案。
2 信令监控系统
信令监控系统主要用于IP承载协议的信令收集,协议分析,数据存储和数据关联分析。在不影响生产效率的情况下,通过将业务流程中产生的所有信令码流采集,提取出各协议各呼叫相关信令、相应存储、并对同一呼叫中各协议的关联进行分析,以便更好的监控相应业务系统的运行。采用松耦合的方式[11]对业务平台进行跟踪和分析,更有利于以独立的第三方的视点观测。
信令监控系统的部署与总体结构图,如图1所示。
信令监控系统部署在IP承载网边界,跟踪业务系统与IP承载网之间的数据包,可实现对业务系统与其他网元交互的数据跟踪。该系统主要包括以下几个模块:核心控制模块、协议解析模块、实时监控模块、数据存储模块和数据检索模块。
信令监控系统核心控制模块收到采集点传入的信令封包数据后,首先传给协议解析模块,对封包进行多层次的协议解析,将协议类型以及其他信息返回给核心控制模块;如果封包在系统监控的协议范围内,则接收该封包。接收封包后,如果控制模块开启了该协议的实时监控功能,则将封包的关键信息以及原始封包传入实时监控模块,由监控模块负责实时写入文件,用户使用呈现工具打开该文件即可看到封包信息;如果开启了该协议的非实时监控功能,则将封包的关键信息以及原始封包传入数据存储模块,由该模块组织封包的存储。用户使用非实时查询功能时,从前台輸入要查询的信息,数据检索模块检索封包数据并返回查询结果。
3 数据存储功能
数据存储模块包括了信令数据存储和异常信令数据处理。考虑到索引是提高检索效率的最基本和最有效的方法,通过建立和管理索引数据来加速检索。为了提高索引生成的效率并避免重复遍历原始数据文件,在数据存储的同时,还生成并存储了索引数据。
数据存储功能模块包含两个功能,一是信令封包存储功能:对信令封包进行存储,保存原始的封包数据,用于查询结果的呈现;二是索引数据存储功能:负责存储封包的索引数据,以便快速检索原始数据。
3.1 信令封包存储功能
由于现有网络信令包的数据量非常大,为了加快文件查询定位速度,需要对信令数据包进行分类存储,如图2所示。
这样做不仅使存储结构清晰,也有利于文件的清理操作,由于系统只存储一定时间内的文件,过期的文件夹下的数据被系统定时清理,以释放存储空间。
还可以根据不同的用户需求以及容量等综合条件对数据保留时间进行配置,此外,系统的分区占用率也可以作为一个限制条件,当分区占用率超过一个临界值时,最旧的文件,不论其是否超过了规定的存储时间,都会被清除。
3.2 索引数据存储功能
考虑到现网信令数据的流量为每秒百兆的级别,程序借鉴非聚簇索引的方式组织存储和索引结构,即对原始数据的顺序不进行变动,而是在索引中保存封包所在的位置信息和长度,通过查询较小的索引文件就可以方便的定位到原始数据。数据存储模块的设计流程图,如图3所示。
描述了数据存储以及数据索引存储的过程,其中原始数据文件中实时记录了系统收到的封包数据,索引文件记录了一级索引,以便于后续二级索引的生成以及检索时的定位,写入的周期为系统可配。
模块收到一个核心模块传入的信令封包后,将未经处理过的封包数据实时地写入相应原始数据文件中,同时记录下封包中的关键信息,保存在索引结点中,索引结点暂存在内存cache中。以BICC封包為例的索引处理流程图,如图4所示。
当达到系统设置的检查周期,即索引文件的写入时间时,模块检查当前内存中的所有节点。对于所有脏数据,如果信令过程完成,即接收到结束封包RLC消息,则将节点信息存储在主索引文件中,并删除内存中的节点;如果信令过程没有完成,则将节点的现有信息存储在索引文件中,删除位置信息,并更新节点状态为干净数据。
对于异常的封包数据,如接收信令结束消息RLC超时的呼叫流程节点,如果超出容纳的错误节点个数范围,则写入临时文件,后续检索时如果查不到信息则可以从临时文件中查找。
4 数据检索功能及实现
数据检索主要是指根据索引信息进行封包数据检索,即用户通过输入可能的过滤条件,如号码、时间、信令协议等信息,查询已经捕获到的信令封包数据。模块通过索引检索到相关封包后,将其重新组织成网络包分析工具wireshark[12-13]可识别的文件形式,以便于用户直观的了解封包信息,确定信令通讯过程是否存在问题,如图5所示。
用户可以查看封包数据的时间、主被叫以及码流等详细信息。为了加快响应速度,模块采用多线程的方式,可同时接收多个用户的查询请求,通过启动不同的线程为用户提供统一的检索服务。
为了测试本方案的检测效率,实验模拟了一个信令监测数据检索系统,对其检测性能进行了测试比较,如图6所示。
橫轴为用户输入的查询时间跨度,纵轴为单次检索所需时间,P为分文件粒度。从图中可以看出,分文件粒度越大,单次检索时间就越短、效率就越高。
5 总结
本文给出了一种对信令监控数据进行存储及快速检索的方案。该方案在数据存储的同时,生成并存储了索引数据,通过建立和管理索引数据来加快检索进度,解决了如何对信令监控过程中产生的海量数据进行高效存储与快速查询的问题。
参考文献
[1] 汪保友,姚健,张正卿.基于FKS的信令采集与监控技术[J].电信科学,2018,34(3):145-155.
[2] 基于软交换网络的移动信令监测系统设计与实现[D]. 成都:电子科技大学, 2014:10-23.
[3] 蔡家鹏, 计宁, 王逊. VoLTE信令和媒体流路径优化方法研究[J]. 电信工程技术与标准化, 2015, 28(7):58-61.
[4] 邓飞. LTE网络信令采集数据的分析及探讨[J]. 互联网天地, 2016(2):4-10.
[5] 胡忠顺,王进,朱亮.基于手机信令数据的大客流监控应用研究[J].电信技术,2017(4):21-25.
[6] 葛强.基于LTE信令软采的高铁性能监控及质量评估[J].电信工程技术与标准化,2016,29(10):13-17.
[7] 胡为艳, 艾民, 周光彬,等. 基于大数据的信令监测系统的设计与实现[J]. 电视技术, 2016, 40(1):95-101.
[8] 韩翔宇. 数据库存储过程的探讨及应用[J]. 信息系统工程, 2015(12):48.
[9] 何丽华. LTE信令监测系统建设分析[J]. 互联网天地, 2015(2):46-49.
[10] 孙万飞, 马秀荣, 单云龙,等. TD-LTE系统信令流程仿真平台设计[J]. 电子测量技术, 2018,41(9):109-115.
[11] 卢罡,徐勤良,许南山,等.复杂网络松耦合分布式计算框架的设计与实现[J].计算机工程,2015,41(11):73-76.
[12] 朱逸坤,朱威,李永芳.基于抓包软件的MPLS故障分析研究[J].信息通信,2018(9):85-86.
[13] 赵怡.利用Wireshark实现数据包分析的应用案例[J].电脑编程技巧与维护,2018(5):106-108.
(收稿日期: 2019.08.18)