对于UL data packet,我们需要check是否成功发送给网络.
分成LTE 和NR 来讲(主要是因为NR 没有UL HARQ Ack).
LTE:
我们可以在wireshark 中选中某一个tcp session,取消勾选relative sequence number,这样就能在DPL log 中通过绝对序列号找出对应的UL data packet,然后我们下一步需要通过QCAT 0x11EB 通过附近时间点找到对应的包,但是这样子并不太准确,最好的方法是比较0x11EB和wireshark 中的payload.可以用notepad++去掉一些多余部分之后用beyondcompare 比较
然后我们顺利的找到了0x11EB,接着需要去PDCP 层,DPL log(len+ip 头+tcp 头) + PDCP 头(2/3byte),LTE 2个byte,NR 是3byte.
这样我们就找到了UL PDCP 层的packet了.
然后附件时间点找相同 帧-子帧的UL RLC 包,有3种方式去判断这个包有没有成功发送给网络
1.PHICH 信道 [0xB16B] LTE PDCCH-PHICH Indication Report 基站的HARQ Ack,+4子帧后反馈,
2.[0xB172] LTE Uplink PKT Build Indication 看看是否是新传还是重传
3.[0xB082] LTE RLC DL AM All PDU RLC 对应的DL control PDU 是否有回复ack_SN
4.[0xB173] LTE PDSCH Stat Indication NDI 翻转,如果NDI 发生了翻转就说明了是新传,否则是重传,
以上可以用来作为是否ul data packet是否发送出去的依据(当然还有别的方式),不管是data还是mms注册,sip信令注册(TCP),都需要我们去check AS 层.
对于UDP AS层我们需要关注PDCP 层discard time何时丢包
NR 部分,大体上和LTE 一致,可以多看下QCAT 工具 filter
到了NR PDCP 之后经过 RLC [0xB870] NR5G L2 UL Data Pdu 这个在L2里面不再RLC 里面,
因为没有了UL HARQ Ack
[0xB883] NR5G MAC UL Physical Channel Schedule Report 这个就可以看是否是新传还是重传
[0xB84E] NR5G RLC DL Status PDU这个是有DL ack的.
下行部分需要check DCI format 1_x 还是DCI format 0_x format 0_x 是UL, 通过UE 端的C-RNTI 去解调,解调出来之后进行CRC 校验format 0_x 常见可能为UL Grant用来发送UL data PDU,
[0xB885] NR5G MAC DCI Info //NR 侧DCI format
[0xB16C] LTE DCI Information Report //LTE 侧DCI format
[0xB888] NR5G MAC PDSCH Stats //check DL BLER 以及CRC 校验
[0xB173] LTE PDSCH Stat Indication//CRC 校验 ,除此还是很多和吞吐量有关的信息,
对于DL data packet,UE 内部有前向纠错用来内部数据量小的纠错(增量冗余用来让基站发送重复的信息),数据量大了UE 就会让网络侧重传了.