2024年2月20日发(作者:)
一种可关联QXDM与Wireshark的方法研究
马传项
【摘 要】Wireshark与QXDM是分析定位LTE网络问题的利器,但是由于各自支持的协议栈不同,导致无法进行联合分析,影响问题分析的效率.本文提供了一种通过IP层数据包大小比对,使QXDM和Wireshark可精确关联的方法,对日常网络测试问题分析能够提供一定帮助,提高问题定位效率.
【期刊名称】《江苏通信》
【年(卷),期】2019(035)003
【总页数】8页(P29-36)
【关键词】网络测试;LTE网络;wireshark;QXDM;IP层
【作 者】马传项
【作者单位】中邮建技术有限公司
【正文语种】中 文
0 引言
Wireshark是分析定位互联网问题的重要工具之一,QXDM是分析定位移动通信网络(GSM/WCDMA/LTE)的重要工具之一。Wireshark主要分析用户上网行为,比如访问了哪些网站、下载了哪些图片、TCP/IP报文传送是否正常等。QXDM主要分析空口(手机与基站之间)信息的发送和接收是否正常,控制信令是否完善,数据包有没有重传、丢包等。LTE网络已经是全IP化网络,可以理解为移动的互
联网。Wireshark和QXDM都可以在LTE终端侧进行抓包,并分析定位问题。由于它们分属不同协议栈,且时间同步方式和精度不同,导致两个软件关联性较差,紧密联合分析的难度较大。基于以上需求,需要研究两个软件的关联性,找到准确的关联方法,进而更全面准确地定位分析问题。
1 Wireshark与QXDM介绍
1.1 关于Wireshark
Wireshark是一个网络封包分析软件,功能是抓取TCP/IP协议报文,并尽可能呈现最为详细的网络封包信息,是定位分析网络问题的重要工具,是目前全世界最广泛的网络封包分析软件之一。
Wireshark是分析TCP/IP报文的主流工具,可抓取到应用层、传输层、网络层和数据链路层的数据包,工程师可对网络运行情况进行监控和分析。Wireshark的功能可看作“电工技师使用电表来量测电流、电压、电阻”的工作,只是将场景移植到网络上,并将电线替换成网络线。
4G网络已经发展为全IP的网络,可看作移动的互联网,可通过Wireshark在手机侧抓取数据包,分析用户的上网行为,进而定位问题。
1.2 关于QXDM
QXDM是对手机终端收发数据进行信息采集的一套软件,通过对采集信息的分析可以诊断信令流程、数据包正确与否等,可以为解决问题提供便捷的定位手段。QXDM软件包由4个软件组成:QMICM、QPST、QCAT与QXDM。其中QMICM是拨号软件,QPST用于修改手机配置文件,QCAT用于离线信令分析,QXDM用于实时监控、保存log等功能。
QXDM可以做到毫秒级信息抓取,可以详细分析各种信令和资源调度情况,可分析到空口信息传输的底层工作机制。常规测试优化软件只能做到层3信令的抓取,尽管可以满足日常网络优化的需求,但是分析内容相对较少,只能呈现问题的表面
现象,遇到疑难杂症的时候,无法深入分析这种现象是什么原因导致的。
2 协议栈介绍
协议是网络协议的简称,网络协议是通信计算机双方必须共同遵从的一组约定,比如怎么样建立连接、怎么样互相识别等。只有遵守这个约定,计算机之间才能相互通信交流。它的三要素是:语法、语义、时序。为了使数据在网络上从源传递到目的地,网络通信的参与方必须遵循相同的规则,这套规则称为协议(protocol),它最终体现为在网络上传输的数据包的格式。
协议往往分成几个层次进行定义,分层定义是为了使某一层协议的改变不影响其他层的协议。
2.1 LTE协议栈介绍
图1 用户面协议栈
图2 下行信道映射
下行:Wireshark只能抓取到IP层数据包,PBCH、PCFICH、PHICH与PDCCH等物理信道传输的信息都无法抓取到,只能抓取到部分PDSCH信道的数据,见红色虚线框。主要的控制信息由PDCCH发送,不会映射到PDCP层和RLC层,与IP层无关。
上行:Wireshark只能抓取到IP层数据包,PRACH、PUCCH与PUSCH等物理信道传输的信息都无法抓取到,只能抓取到部分PUSCH信道的数据,见红色虚线框。
可以把4G网络简单地看作是传输网络,可以类比为快递公司邮寄包裹(IP数据根文),包裹里是什么东西由寄件人决定。快递公司负责将包裹封装、分拣,然后通过各种运输方式将包裹投送出去,并且需要保障包裹的完好性和准确性,最终投送到收件人手中。但是收件人和寄件人并不需要知道快递的投送方式,只要在规定的时间内完好无缺地将包裹投送到就行了。同样的,快递公司也不管包裹里是什么,
只是负责送出去。
本文研究主要与PDCP层和RLC层相关,下面重点介绍PDCP层和RLC层头部的组成。
图3 上行信道映射
(1)PDCP层
PDCP PDU是一个长度按字节排列的比特串(8位的整数倍),比特串由表格来描述,其中最高位是表格第一行最左边的位,最低位是最后一行最右边的位,更简单地说,比特串是从左到右逐行读取的。PDCP PDU中每个参数字段的比特顺序都是以最左位为最高位,以最右位为最低位。
PDCP SDU也是长度按字节排列的比特串,从第一位开始,PDCP PDU中包括一个压缩的SDU或未压缩的SDU。
具有长PDCP SN值(12bit)的用户平面PDCP Data PDU,图4所示为使用12bit SN值的PDCP Data PDU的格式。此格式适用于携带映射到RLC AM或RLC UM的DRB的数据的PDCP Data PDU。
图4 DRB使用12bit SN值的PDCP Data PDU的格式
具有短PDCP SN值(7bit)的用户平面PDCP Data PDU,图5所示为使用7bit
SN值的PDCP Data PDU的格式。此格式适用于携带映射到RLC UM的DRB的数据的PDCP Data PDU。
图5 DRB使用7bit SN值的PDCP Data PDU的格式
PDCP层的PDU共有5种格式,头部的长度是不固定的,只需对比DRB的PDU格式,PDCP头长度有2bytes和1bytes两种情况。
图6 现网SN长度配置
现网DRB使用12bit SN值,也即图4的情况,PDCP头长度为2bytes。
(2)RLC层
RLC有三种模式:TM、UM与AM。TM模式的数据不会经过IP层,只有UM和AM模式的数据才会经过IP层。
RLC PDU是一个比特串,比特串用表格表示,其中第一位和最高有效位为该表格第一行最左边的比特,最后一位和最低有效位为该表格的最后一行最右边的比特,并且多数情况下,比特串从左到右读取,之后再按行的顺序读取。
RLC SDU为按字节对齐的比特串(即为8比特的倍数),一个RLC SDU从前面的首个比特开始被包含于一个RLC PDU。手机平时上网使用AM模式,Vo语音业务使用UM模式,寻呼消息等使用TM模式,下面重点介绍一下AM模式。
AMD PDU包含一个数据域和一个AMD PDU头,AMD PDU头包含一个固定部分(在每个AMD PDU存在的域)和一个扩展部分(一个AMD PDU必要时才存在的域)。AMD PDU头的固定部分自身按字节对齐,且包含一个D/C、一个RF、一个P、一个FI、一个E和一个SN。AMD PDU头自身按字节对齐,包含E(s)和LI(s)。仅当AMD PDU中存在多于一个的数据域元时,每个数据域元均存在一个E和一个LI,除了最后一个。此外,当一个AMD PDU头包含奇数个LI(s)时,在最后的LI后面填充4个填充位。
图7 AMD PDU(无LI)
图9 AMD PDU(偶数个LI,即K=2,4,6,…)
AMD PDU不分段的情况下,头部长度为1byte或者2bytes。如果分段,根据分段的多少,头部长度有所不同,分段越多,头部越长。
2.2 TCP/IP协议栈介绍
TCP/IP协议栈是一系列网络协议的总和,是构成网络通信的核心骨架,它定义了电子设备如何连入因特网,以及数据如何在它们之间进行传输。TCP/IP协议采用4层结构,分别是应用层、传输层、网络层和链路层,每一层都需要它的下一层所
提供的协议来完成自己的需求。
网络通信就好比送快递,商品外面的一层层包裹就是各种协议,协议包含了商品信息、收货地址、收件人、联系方式等,然后还需要配送车、配送站、快递员,商品才能最终到达用户手中。
一般情况下,快递是不能直达的,需要先转发到对应的配送站,然后由配送站再进行派件。配送车就是物理介质,配送站就是网关,快递员就是路由器,收货地址就是IP地址,联系方式就是MAC地址。快递员负责把包裹转发到各个配送站,配送站根据收获地址里的省市区,确认是否需要继续转发到其他配送站,当包裹到达了目标配送站以后,配送站再根据联系方式找到收件人进行派件。
IP地址目前有两个版本,分别是IPv4和IPv6。IPv4是一个32位的地址,常采用4个十进制数字表示。IP协议将这个32位的地址分为两部分,前面部分代表网络地址,后面部分表示该主机在局域网中的地址。
在网络层被包装的数据包就叫IP数据包,IPv4数据包的结构如图10所示。
图10 IP协议封装结构
IP报文头固定部分20个字节,还有可选部分,所以IP报文头总长度是不固定的。数据部分的最大长度为65515字节,理论上一个IP数据包的总长度可以达到65535个字节,而以太网数据包的最大长度是1500个字符,如果超过这个大小,就需要对IP数据包进行分割,分成多帧发送。
3 关联方法探索
3.1 时间关联方式
Wireshark抓取的同一数据流中的数据包,相邻两条信令之间的时间差大多在几十毫秒之间,数据包是在手机上完成采集,显示的时间也就是手机的时间。QXDM抓取的信息是毫秒级的,控制面和用户面信令都可以抓取到,1秒钟就能抓到几百条甚至上千条信令。
4G网络同步分为时间同步和频率同步,终端与基站时间同步就是帧的对齐过程,分两个步骤:第一步检测出PSS(主同步信号),获得5毫秒timing,之后根据PSS和SSS之间的固定关系,检测出SSS(辅同步信号),获得1ms同步。终端什么时候可以发送信息,什么时候可以接收信息由基站控制。
Wireshark和QXDM在同一个手机上同时进行信息抓取,可以确保采集时间同步。
3.2 数据包关联方式
4G网络的移动通信协议并未严格参照OSI七层模型,而且TCP/IP协议为四结构,底层的L2数据链路层和L1物理层并没有定义,因此需要借助其他相关协议才能实现最终的通信。
智能手机可同时支持LTE协议栈和TCP/IP协议栈,两个协议栈都可以进行信令的抓取分析。QXDM支持LTE协议栈解析,Wireshark支持TCP/IP协议栈解析。在分析定位LTE网络问题时,Wireshark与QXDM是隔离分析的,不能进行关联分析,这主要是由于两个协议栈没有紧密的关联,QXDM是抓取RRC/PDCP/RLC/MAC等数据包,Wireshark是抓取HTTP/TCP/IP/UDP/SSL等数据包,分属两个不同的协议栈。
4G是全IP化的移动通信网络,即手机也可以看作一个小型电脑,通过4G网络来获取互联网服务。通过前面的描述可知,TCP/IP协议栈包含IP层,LTE协议栈也包含IP层。TCP/IP协议栈IP层与4G协议栈IP层是同一概念,即在同一个手机上同时使用QXDM和Wireshark抓包,抓到的IP层数据包应该大小相同,因为都是同一个应用层丢下来的数据包。
4 关联实践
Wireshark和QXDM在同一个手机上同时进行抓包,确保采集时间同步。
4.1 下行数据包关联
图11 wireshark与qxdm的下行IP层数据包关联
由前面分析可知,PDCP头的长度是2bytes,也即IP数据包=PDCP
PDU+2bytes。连续21个数据包的大小能够一一对应起来,说明完全可以对应起来。
下面我们再通过RLC层进一步验证,以89(87)bytes的数据包为例。
图12 下行PDCP层数据包大小
PDCP PDU(协议数据单元)在340无线帧的5子帧传输,在RLC层找到该子帧。
图13 下行RLC层数据包大小
FI=01表示这是第一个RLC PDU,FI=10表示这是最后一个RLC PDU。可能是空口资源不足或者参数配置不合理,89bytes的PDCP PDU,也即RLC SDU(服务数据单元),被分为两段RLC PDU传输,75bytes+18bytes。
层间数据包关联方式如图14所示。
图14 PDCP层与RLC数据包分段关联
由于被分为2段RLC PDU,所以存在LI,且K=1。
4.2 上行数据包关联
上行比下行要复杂一些,手机除发送业务数据给基站外,还会上报一些网络需要的控制信息,比如CQI、PMI、HARQACK等,这些信息,Wireshark是抓取不到的,但是QXDM都能抓取到。而且本次测试是访问网页,也即属于下载业务居多,上传业务较少,上行主要是发送资源请求和反馈控制信息等。
上行SR、CQI、HARQ-ACK与PMI等参数是在PUCCH信道上报给基站的,根据图3可知,PUCCH是没有映射到IP层的,所以QXDM可以抓取到,Wireshark抓取不到。上行只有在PUSCH传输的信息才可能到映射到IP层,而且PUSCH也可以承载控制信息,控制信息不能映射到IP层。所以上行Wireshark的IP层数据包与QXDM的PDCP PDU数据包无法准确对齐,但是一些特殊大小的数据包很明显就可以对应到。
图15 wireshark与qxdm的上行IP层数据包关联
由图15可知,Wireshark中557、156与1395三个数据包可以在QXDM中对应起来,557bytes与156bytes之间有3个40bytes,QXDM中PDU size 559与PDU size 158之间有6个PDU数据包,其中4个42bytes,多于3个。说明QXDM传输的数据包多于Wireshark,验证了前面的推测。
5 结论
综合以上阐述,我们找到了一种QXDM与Wireshark关联的方法,通过IP层数据包的大小可以做到准确关联。下行数据包的关联准确性高,基本可以达到100%。上行虽然比下行要复杂很多,但是一些特殊大小的数据包还是可以关联到。


发布评论