5G终端模拟器中信令分析技术的研究与实现

2020-08-03 10:05曹龙汉张治中高尚蕾
计算机工程与应用 2020年15期
关键词:信令哈希解码

段 浴,曹龙汉 ,张治中,3,高尚蕾

1.重庆邮电大学 通信与信息工程学院,重庆 400065

2.重庆通信学院 控制工程重点实验室,重庆 400035

3.重庆重邮汇测电子技术研究院有限公司,重庆 401121

1 引言

随着移动通信网络的迅速发展,2018年12月,国内三大运营商已获得工信部关于5G试验频率的使用许可批复,标志着全国范围的大规模5G试验即将迅速展开。目前,我国主流厂商华为已经完成5G商用研发的第三阶段测试,中兴通讯、中国信科等也已完成了部分测试。2019年1月,随着全国首个5G地铁站在成都开通,5G试商用加速布局,这意味着5G时代即将来临。

据IMT-2020(5G)推进组于2014年5月面向全球发布的《5G愿景与需求白皮书》描述,5G网络的理论传输速度峰值可达每秒数十Gb,将数百倍于4G网络传输速度[1]。现有的增强型长期演进(Long Term Evolution-Advanced,LTE-A)空口监测分析仪难以处理如此海量的移动数据,难以适应5G的网络结构,不能满足实际应用的需求[2],迫切需要更高性能的测试工具[3]。美国和欧盟正在积极研发用于5G测试的模拟终端[4],日本安立公司与韩国三星正在合作研发支持5G NR全协议栈连接性测试的5G终端模拟设备。目前,我国生产的大部分通信仪器仪表总体还属于中低产品,同世界发达国家还存在着较大的差距,核心技术及相关专利等不足,高端的设备非常少[5]。因此研发具有自主创新知识产权的新型5G终端模拟仪器,可提升国内高端通信仪器设备研发能力,保证5G网络建设和优化,推动我国5G产业链的快速发展。

在5G终端模拟器中,信令分析技术是模拟终端信令分析系统的核心技术,通过对信令流程的分析,得出问题的具体位置,并利用数据特征解决通信中的问题。近年来,也有很多研究人员对此进行研究。张帆在GSM网络信令解码合成过程中,对用户网络信息进行关联回填[6]。杨丰瑞等人在LTE网络信令分析过程中,采用哈希算法完成业务呼叫/事务详细记录(Call/Transaction Detail Record,XDR)合成[7]。李雷等人在 LTEAdvanced网络的Uu接口信令分析中,使用多协议关联技术完成信令流程信息的关联[8]。梁鹏等人在LTEAdvanced网络中,提出一种基于用户行为分析的信令分析算法(User Behavior Analysis Signaling Analysis Algorithm,UBA-SAA)[9]。然而上述方法只通过用户数据信令流程和用户业务数据流程关联,并未考虑同一用户的同一信令流程关联消息,且只适用于传统的LTE-A空口监测仪分析。为此,本文将在5G终端模拟器信令分析过程中,结合传统的LTE-A空口监测仪分析中信令分析技术,提出一种以链地址法与哈希大顶堆相结合处理哈希冲突的改进信令分析算法,并设计了在该算法基础上的新型信令分析系统架构,重点研究信令分析过程中的解码合成与多协议关联,实现信令分析系统中的信令精准监测功能。测试结果表明,该信令分析技术能显著提高信令分析系统模块中信令分析性能,证明了该技术的可靠性。

2 信令分析系统整体结构

传统的LTE-A网络是以演进型UMTS全球地面无线接入网(Evolved Umts Terrestrial Radio Access Network,E-UTRAN)扁平化、演进核心网(Evolved Packet Core,EPC)集中化的结构,固定的网络点到点(Point-to-Point,P2P)通信[10]。用户面设备(User Equipment,UE)承载较多控制功能,控制面设备功能单一,功能模块之间紧耦合,将导致信令监测分析过程中网络侧数据采集效率较低,且解码合成后XDR不能高效存储。

结合LTE-A空口监测分析仪中信令分析技术,通过引入5G网络基于服务化系统结构(Service-Based Architecture,SBA),核心网(Next Generation Core,NGC)通过控制面和转发面分离,简化用户面实现高效转发,无线接入网(New Radio,NR)通过集中单元/分布单元(Centralized Unit/Distribution Unit,CU/DU)分离,实现无线资源集中协作和控制,实现网络功能去紧耦合。根据3GPP及相关行业测试规范要求,5G终端模拟器中信令分析系统分为三个子系统:L1L2子系统、L3解码合成子系统、反查子系统。图1是5G终端模拟器中信令分析系统框架。

图1 5G终端模拟器中信令分析系统框架

L1、L2子系统功能主要是完成数据采集及解码解密重组、L3解码合成子系统功能是完成信令面与业务面解码和合成出表、反查子系统功能是完成从客户端获取当前页面需要显示的消息解码结果。

3 信令分析系统模块设计

5G终端模拟器信令分析系统借鉴互联网技术(Internet Technology,IT)领域微服务风格(Micro Service Style,MSS)的设计理念,在信令交流中引入“服务调用”,依据模块化的设计思想,将网络功能定义为多个可以相对独立,可被灵活调用的服务模块。信令分析具体步骤如下:

步骤1主要是基带板从天线采集实时数据,作为同相正交(In-phase Quadrature,IQ)数据存储到本地,并将L1的数据发送到层二板。

步骤2层二板将L1数据进行存储,为关键性解密解码做准备,在完成对MAC协议、RLC协议、PDCP协议的解析之后,输出L2的数据到层三板。

步骤3层三板将L2数据进行存储,完成RRC和NAS层的解码合成及IP、应用用户名协议解析。

步骤4将解码结果按照信令消息的关键Key值进行多协议关联,合成XDR并存放到数据库中。

信令分析系统按功能可分为信令采集模块、解码合成模块、多协议关联模块和合成出表与数据反查模块四大模块。

3.1 信令采集模块

该模块的功能主要是利用采集卡获取无线端口用户的信令数据,实现原始信令数据的采集。采用从信令链路上采集的信令消息,且将采集到的信令消息进行协议分析,并根据消息类型分为信令面数据和业务面数据,分别对应空口的控制平面和用户平面。信令面数据主要包括承载在PDCP上的RRC和NAS协议以及系统信息块(System Information Block,SIB)、主信息块(Master Information Block,MIB)等UE与gNB之间用于维护控制消息传输的信令数据,业务面数据包括PDCP及其承载的IP协议等用户数据,如表1所示。

表1 信令面与业务面数据

3.2 解码合成模块

信令采集模块从层二板获取L2数据,并根据消息类型将数据识别为信令面与业务面,分别对应空口的控制平面和用户平面,分别发送到信令面无锁队列与业务面无锁队列的尾部,相应的解码合成模块从队列头部获取数据,分别进行解码合成。首先判断L2数据是否为空,如果不为空就按协议类型解码,若为空就结束解码。根据不同类型的协议,调用不同的解码器,调用对应解码函数进行解码。

信令面解码主要包括对NAS及RRC协议的解码,采用抽象语法标记(Abstract Syntax Notation One,ASN.1)标准定义格式,将协议以特定的格式存放在描述文本中,再用相应的编译器把文件生成C++代码,循环解码至顶层数据。业务面解码主要是对包括IP、TCP、HTTP、UDP、DNS、FTP等协议的用户数据的解码。各层协议都有对应的端口号指向上层协议,对各层协议进行循环解码,直至解至顶层数据。具体解码流程如图2(a)所示。

协议合成是对各层协议按照协议类型,根据不同的合成信息去获取用户和信令具有相互关联的信息,并将其组合形成完整的信令流程。协议合成包括Diameter、NAS、RRC等协议的合成信息。

首先,需要初始化合成模块,获取解码数据,解码的结果为L3数据,其中包含MsgId与CDR ID对应消息的字段,协议的流量统计信息以及存储协议栈数据。此外,需要为每层协议定义各自的协议合成器,通过消息的关键信息Key值在哈希表中查找对应信令流程消息并判断其是否存在,若存在则更新统计信息,若不存在则创建新的XDR。与此同时,进行超时检查,若未超时则将相应Key值添加进去,当收到结束消息时,调用合成出表模块将合成XDR和统计表发送到多协议关联模块进行关联。具体合成流程如图2(b)所示。

图2 解码合成流程

3.3 多协议关联模块

多协议关联是指为了进行实时的关联回填而去进行网络用户信息的自动关联,通过查询临时的关键关联信息Key值,然后借助监测系得到真实的关键值合成完整的信令流程,并填入到XDR中[11]。

本系统是以小区无线网络临时标识(Cell Radio Network Temporary Identifier,C-RNTI)作为用户标识,将同一用户的同一信令流程中相关联的消息组合在一起,形成完整的信令流程。按照协议类型合成协议事务详细记录,并提取协议类型、关联主键及取值,UE标识(userID)、国际移动用户识别码(International Mobile Subscriber Identification Number,IMSIN)、用户IP地址(UserIP)、事务开始时间(Runtime)、事务结束时间(Endtime)等用于关联分析的关键信息,如表2所示。最后将相同用户的信令面和业务面数据进行匹配关联,打上多协议关联标签,进一步合成综合XDR。多协议关联流程如图3所示。

表2 实验中使用的UCI数据集

图3 多协议关联

3.4 合成出表与数据反查模块

将同一用户的关联字段进行合成,合成后的XDR通过Socket接口发送到入库程序,出表到数据库中。客户端要查看结果时,先向服务器请求消息统计信息,统计信息返回到客户端。客户端通过对服务发起请求,服务进程通过查找L2关键数据获取概要信息,并返回给客户端,用户通过信令反查可查看多协议关联后的合成信令流程。

4 算法设计

4.1 哈希信令分析算法

在传统哈希信令分析算法(Hash Signaling Analysis Algorithm,HSAA)中,对信令的合成与多协议关联会将信令的关键信息Key值映射到哈希表中。哈希函数又名散列函数(Hash Function)[12],哈希表由于在数据查询中查询速度快且插入、删除操作方便而被广泛应用[13]。信令流程信息关联合成XDR时,选取源IP、源端口号、目的IP、目的端口号作为Key值构建哈希函数,采用哈希算法利用信令消息关键Key值在哈希表中查找对应信令流程,完成相关信令流程关联[14]。

用Hash索引的方式,索引值采用特定的Key值,不同的信令流程都有与其相对应Key值,综合信令XDR合成过程中,用户的Key值可能对应不同Value[15]。此时具有相同哈希地址的Key值就会产生冲突[16],其哈希地址为p=H(Key),当出现冲突时,就为产生冲突的地址H(Key)求一个地址序列:

其中,H(Key)为哈希函数,m为表长,di称为增量序列。

HSAA算法在处理哈希冲突时一般用开放地址法,但是开放地址法容易产生数据堆积问题,当结点规模很大时会浪费很多空间,消耗内存较大,不适于大规模的数据存储[17];在插入时可能会出现多次冲突的现象[18],且当删除的元素是多个冲突元素中的一个时,需要再处理后面的元素,实现较复杂。

HSAA算法中,对信令关键消息Key值的Value出现概率是按直接插入法进行排序,但是直接插入法比较次数较多,时间复杂度较大,效率较低。

4.2 哈希大顶堆信令分析算法

在信令综合流程中,HSAA算法在处理哈希冲突时效率不高,因此在改进信令分析算法中,用链地址法处理哈希表冲突。根据哈希Key值查找哈希表中Value,得到存在冲突的哈希表项指向链表的地址,将所有具有同一哈希地址的关键Key值,放在同一个同义词链表中,用数组存放各个链表的头指针。

在信令分析中,假设m为5的哈希函数关键值序列XK{K1,K2,K4,K5,K6,K9,K10,K11,…,Kn},链地址法处理冲突时的哈希表如图4所示。

图4 链地址法处理冲突时的哈希表

在信令分析建立哈希表的过程中,在哈希表链地址法的基础上,对信令消息的关键Key值进行排序,本文提出一种哈希大顶堆信令分析算法(Big Top Heapsort Hash Signaling Analysis Algorithm,BTH-HSAA)。将同一用户信令消息具有相同Value的关键Key值,采用大顶堆排序的方法将关键字按Value出现的概率排序,按概率大小去决定处理冲突时链表中的位置,提高哈希地址冲突时的查找效率。

在信令分析中,假设信令消息关键字序列X(k,v){(k1,v1),(k2,v2),(k3,v3),(k4,v4),(k5,v5),(k6,v6),(k7,v7),(k8,v8)},信令消息关键Key值哈希大顶堆如图5所示。

图5 信令消息关键Key值哈希大顶堆

采用链地址法与大顶堆排序结合处理哈希冲突的BTH-HSAA算法流程如图6,具体步骤如下:

步骤1初始化合成模块,获取解码数据信令消息关键Key值。

步骤2选取用户动态标识C-RNTI作为Key值构建哈希函数,根据哈希函数构建哈希表,将关键Key值映射到哈希表。

步骤3对信令关键消息Key值按其Value出现的概率利用大顶堆方法从大到小进行排序。

步骤4按Value值出现概率的大小去决定处理冲突时链表中Key值的位置,将概率较大的Key值放在哈希表中冲突较小的位置。

步骤5在哈希表中用链地址法去处理冲突,访问哈希表记录,通过消息的关键信息Key值在哈希表中查找对应信令流程消息,并判断其是否存在。

步骤6若存在则更新统计信息,将同一用户同一信令流程信息关联合成,若不存在则创建新的XDR。

图6 BTH-HSAA算法流程

4.3 算法分析

在信令分析的信令流程合成中,通过查找消息的关键信息Key值,判断其在哈希表中对应信令流程消息去创建XDR,主要的操作就是对关键Key值的比较查询,把查找过程中查找关键Key值查找成功时的平均比较次数称作平均查找长度(Average Search Length,ASL),对n个元素的查找表,平均查找长度定义为:

其中,Pi为查找表中第i个数据元素的概率,Ci为查找到第i个数据元素时已经比较过的次数。

在信令消息合成中,在查找信令消息关键值的Value概率基础上,将关键Key值映射到哈希表中一个位置来访问记录。见表3所示,HSAA算法处理哈希冲突时使用的是直接插入法排序,关键消息Key值比较次数较多,时间复杂度为O(n2)。而BTH-HSAA算法,处理哈希冲突时使用大顶堆排序,查找过程中比较次数大大减少,在最坏的情况下时间复杂度才为O(nlbn)。因此,查找耗时显著减少,而且在BTH-HSAA算法中,处理哈希冲突时使用链地址法,链表中的结点是动态申请的,处理冲突简单,且无堆积现象,平均查找长度较短,较开放地址法更加节省空间,且在链表首部插入结点,删除结点也比较方便,只需调整指针而不需要对其他冲突元素作调整。因此对于BTH-HSAA算法,数据量越大相对耗时越少,从而提高数据处理的高效性和准确性,同时也提高了动态内存资源的重复利用。

图7 测试过程及结果

表3 信令分析算法对比

5 测试结果与分析

5.1 测试结果

测试环境:Windows10操作系统,处理器为Inter®Core™ i5-4460 CPU@3.20 GHz,安装内存8.00 GB的平台。

本文以Visual Studio 2017编译器运行环境,测试程序使用C++语言编写。测试过程中,以5G中TS38.331协议为基础,利用信令消息中基站分配给UE的一个动态标识C-RNTI作为关键消息Key值。由于C-RNTI的取值范围为003D~FFF3,因此在其范围内随机生成模拟数据源,通过赋值得到5 000个测试用例。部分数据测试如图7所示,通过改进BTH-HSAA算法,例如在哈希表中查找信令流程消息的关键信息Key值“0x4d6”的对应Value,查找结果为“0x29a”,并判断其存在,则更新统计信息,将同一用户同一信令流程信息关联合成。

5.2 性能分析

通过对以上测试用例进行测试,5 000个测试用例均成功测试通过。在测试过程中,通过Visual Studio 2017编译器的诊断工具,如图8所示,可以实时查看算法程序所用内存资源及耗时。

图8 测试过程诊断

本文将BTH-HSAA算法测试结果与HSAA算法与UBA-SAA算法进行比较。如图9所示,相对于HSAA与UBA-SAA,改进BTH-HSAA使用链地址法处理哈希冲突,无内存堆积,消耗内存平均降低61.83%和58.53%,实现了内存资源的动态重复利用,更加节省内存资源。

图9 测试信令分析消耗内存对比

在测试结果中,如表4所示,测试数据500个、2 500个、5 000个时,HSAA 算法耗时 167.4 ms、393.1 ms、751.2 ms,UBA-SAA耗时163.7 ms、376.5 ms、616.5 ms,改进BTH-HSAA算法耗时154.9 ms、251.8 ms、333.5 ms,相对耗时平均降低45.85%和39.57%。相对于HSAA和UBA-SAA算法,新型架构下改进的BTH-HSAA算法所需时间显著减少。如图10所示,HSAA算法信令数据分析速率较低,而且当数据量逐渐增大时,信令数据分析速率还会略微下降;UBA-SAA算法速率有一定提升,但提升幅度不大;而改进BTH-HSAA算法的信令数据分析速率随着数据量逐渐增大,能保持逐渐增高的信令分析速率。由此表明,在信令分析中该改进算法非常有效。

图10 信令数据分析速率对比

6 结束语

针对5G终端模拟器中信令分析系统,本文设计了一种新型的信令分析系统架构,相对于传统扁平化的LTE-A网络,引入5G网络服务化系统结构,依据模块化设计思想,实现无线资源集中协作和控制,以及网络功能去紧耦合。同时,在信令分析过程中,在对信令关联合成XDR时,选取用户动态标识C-RNTI作为信令消息关键Key值构建哈希函数,结合链地址法与哈希大顶堆排序的优点,提出一种改进信令分析算法。测试结果表明,相对于传统信令分析系统,新型架构下的改进算法耗时与消耗内存显著减少,而且当数据量越大时,效果越明显。表明该系统是有效的、可行的,对即将试商用的5G网络的优化、测试具有重要意义。

表4 信令分析算法耗时 ms

猜你喜欢
信令哈希解码
《解码万吨站》
基于特征选择的局部敏感哈希位选择算法
哈希值处理 功能全面更易用
文件哈希值处理一条龙
解码eUCP2.0
SLS字段在七号信令中的运用
移动信令在交通大数据分析中的应用探索
NAD C368解码/放大器一体机
Quad(国都)Vena解码/放大器一体机
基于信令分析的TD-LTE无线网络应用研究