Overview
虽然AM RLC实体发送端涉及到重传/分段/重分段/Polling等复杂操作,但对我来说,接收端的处理更难以理解一点。一是接收端多一个状态变量,且状态变量值的维护更复杂,比如RX_Next_Status_Trigger跟定时器t-Reassembly相共相生,其值的更新在RLC SDU接收完整和不完整时(而不完整又分几种情形)也不同,RX_Highest_Status值的更新也受诸多因素(间接上也包括t-Reassembly的状态)的影响,并且这两个状态变量都包含“Status”字眼,初时总容易搞混,即使现在我每次试图去厘清这些状态变量的含义时,仍然会有一种莫名的恐惧,我觉得这种恐惧会一直伴随我的协议工程师生涯;二是状态报告生成条件的判断以及Status PDU那些字段的计算都非常复杂,虽然发送状态报告是发送端来执行,但发送之前的这些复杂处理依赖于接收到的PDU的情况以及当前接收端状态变量的值和定时器状态。
AM RLC实体接收的包是AMD PDU,来自于发送端RLC实体,中间会经过两端协议栈及空口:
【发送端 RLC->MAC->PHY】
=空口=
【PHY->MAC ->RLC 接收端】
那么对于接收端来说,其上一个环节就是本端的下层 – MAC, 协议讲RLC的接收操作也是从自MAC接收到AMD PDU开始。从接收到AMD PDU的那一刻起,就要开始做各种判断了 – 此时PDU还没有放到接收缓存(Reception Buffer)里。
AM RLC接收操作在协议5.2.3.2节,下面按照小节顺序详细解读协议内容。
(这一篇在
最初的这篇
和
这篇
的基础上做了一些小的改动及添加了一些文字描述)
5.
2.3.2 Receive operations
5.2.3.2.1 – General
类似于发送端根据TX_Next_Ack维护一个发送窗口,接收端也会根据状态变量RX_Next来维护一个接收窗口:
– 如果RX_Next <= SN < RX_Next+ AM_Window_Size, 那么SN落在接收窗口内
– 否则SN落在窗口之外
5.3.2.3.2的讲解里有窗口滑动例子。
从下层接收到一个AMD PDU之后,接收端实体要么丢弃该PDU(比如SN落在接收窗口外),要么将其放到接收缓存里(具体细节在后面的5.2.3.2.2解析)。
如果收到的AMD PDU被放进了接收缓存,RLC实体更新各个状态变量、重组(reassembly) RLC SDU并将其发送到上层,同时根据需要启动或停止t-Reassembly(具体细节在后面5.2.3.2.3解析)。
如果t-Reassembly超时,RLC接收端实体将更新相应的状态变量并在有必要的情况下启动t-Reassembly.
5.2.3.2.2 RLC如何接收包 – 丢弃或放到缓存
5.2.3.2.3 RLC如何接收包 – 放入缓存后的包如何处理
1. AMD PDU放入缓存之后
2. 如果t-Reassembly正在运行
3. 如果t-Reassembly没有运行(包括因上图中的行为而导致的定时器停止):
5.2.3.2.4 t-Reassembly超时时如何处理
一个具体log例子
这份log恰好包含了分段和不分段的情形, UE接收到5个SDU,对应6个PDU:
– 第1个SDU的最后1个分段
– 中间3个SDU未分段
– 第5个SDU分成2段
因此正好把PDU结构各字段 –
D/C
(Data/Control),
P
(Polling Bit),
SI
(Segmentation Info),
SO
(Segment Offset) – 也包含了,可以对照
这篇
加深理解。
从图片右上角“RLC PDU按序收到过程”根据SN往下看:
References
[1] 3GPP TS38.322(RLC)
[2] 5G无线系统设计与国际标准(刘晓峰、孙韶辉、杜忠达、沈祖康、徐晓东、宋兴华)
[3] 5G New Radio In Bullets(Chris Johnson)
[4] 5G NR The Next Generation Wireless Access Technology(Erik Dahlman, Stefan Parkvall, Johan Sko¨ld)
[5] LTE – The UMTS Long Term Evolution FROM THEORY TO PRACTICE(2nd Edition Stefania Sesia ST-Ericsson, France; Issam Toufik ETSI, France; Matthew Baker Alcatel-Lucent, UK)
[6] 5G Technology 3GPP New Radio(Editted by Harri Holma and Antti Toskala Nokia Bell Labs Finland; Takehiro Nakamura 5G Laboratories NTT DOCOMO, Inc.Japan)
[7] 4G: LTE/LTE-Advanced for Mobile Broadband[Second Edition](Erik Dahlman Stefan Parkvall Johan Sko¨ld)
笔者在公众号“
协议工程师笔记
”定期发布5G/LTE/IMS…学习笔记, 敬请关注、订阅和分享,谢谢!
一起努力,蒸蒸日上