本文将从UE角度对LTE网络RLC层的polling机制进行详细阐述。
前言
在LTE网络中,RLC层提供了两种服务模式,一种是保证数据无损传输(lossless)的AM模式
(acknowledged mode),另一种是不保证数据可靠传输的UM模式
(unacknowledged mode)。在AM模式
下,RLC层要保证数据可靠传输,因此,此时的RLC协议是一种可靠性数据传输协议
(reliable data transmission protocol, RDP)。
RDP是网络协议中常用的一种协议,TCP协议就是其中之一。与TCP协议相比,RLC位于无线通信协议栈的更底层,对时延的要求更高。因此,为了更快地实现数据的无损传输,RLC层引入了polling
(问询)机制。
Polling的目的
UE1在向网络发送数据的过程中,由于物理层存在一定的误码率(BLER),有一些包(packet, 即RLC PDU)有时候可能会在传输过程中发送失败或者丢失。但是,哪一些包发送失败了,从UE侧是无法知道的。因此,为了实现数据的可靠传输,UE需要网络侧的反馈,告诉UE在网络侧哪一些包已经收到,哪一些还没有收到,从而让UE能够重传那些网络还没收到的包,这个反馈就是状态报告
(status report)。
但是网络侧怎么能够知道什么时候给UE发送状态报告
呢?如果网络侧频繁不停地给UE发送状态报告
,那么虽然UE能够很及时地知道网络侧接收情况,但是这样就浪费了很多下行资源;而如果网络侧周期性地给UE发送状态报告
,那么UE侧又无法及时得知网络侧的接收情况。引入Polling
就是为了这个目的。UE需要向网络询问,哪一些包收到了,哪一些还没收到,这样网络就会回复状态报告
,UE就能及时地重传那些没被网络收到(acknowledged)的包。
Polling的触发条件
在每个RLC data PDU的header部分,有一个P位的标志位,这个标志位就代表polling
。当P位为1时,表示UE向网络侧发送polling
,期望对方回复状态报告
,反之亦然。在以下任一条件满足的情况下,UE都会触发polling
:
- PDU_WITHOUT_POLL >= pollPDU
- BYTE_WITHOUT_POLL >= pollByte
- 在发送完当前的RLC data PDU后,buffer里不再剩余任何待发送的RLC data PDU
- t-PollRetransmit 定时器超时
UE每发送一个新的RLC data PDU时,PDU_WITHOUT_POLL会加1;BYTE_WITHOUT_POLL也会增加sizeof(RLC PDU payload)。在更新了PDU_WITHOUT_POLL和BYTE_WITHOUT_POLL后,假如PDU_WITHOUT_POLL
⩾
\geqslant
⩾pollPDU,或者BYTE_WITHOUT_POLL
⩾
\geqslant
⩾pollByte,那么UE需要将该RLC PDU header的P位置1,向网络发送polling
。这两个条件保证了UE每向网络发送一部分数据后,都能及时地知道这些数据在网络侧的接收情况。pollPDU 和 pollByte 由网络配置,通过RRC层向RLC层下发。
当UE发送buffer里最后一个新传RLC data PDU时,也应该置P位为1。这也是符合直觉的。因为在发送完最后一个新传RLC data PDU后,UE有可能很长时间都不会发送新的数据了,这时候前两个条件就无法触发了。因此,这时候需要向网络发送polling
,获取网络的接收状态报告,然后及时地将前面还没发送成功的包给发送出去。
假如在上面的polling
触发,并且重传RLC PDU后,网络侧还是有一些包没收到,而此时UE不再有新的包发送了,那么网络侧岂不是再也收不到这些没收到的包了?针对这个问题,RLC层提供了最后一个polling触发条件,保证了在这种场景下,UE还能向网络发送这些丢失的包。UE在RLC层有一个 t-PollRetransmit 定时器,每当UE发送了polling
后,都会启动 t-PollRetransmit 定时器(或者重启,假如此时定时器还在运行)。当 t-PollRetransmit 定时器超时时,假如
- buffer(包括RLC data PDU新传队列和重传队列)为空
- 或者无法发送新传RLC PDU(比如此时因为收不到给VT(A)的ACK,导致window stall了)
那么UE需要向网络重传一包RLC data PDU,并将该RLC data PDU的P位置1,向网络发送polling
,这样就保证了在无法发送新传的数据时,UE还能收到网络的状态报告
,从而重传之前丢失的包,补齐网络侧的接收窗口,而不至于让网络侧长时间无法完全收到这些包。UE在这种场景下向网络侧重传的RLC data PDU,可以选择以下两种之一:
- SN2为VT(S) – 1的RLC data PDU,即发送窗口最右侧的那个RLC data PDU
- 发送窗口中任何一个还没被网络侧确认已经收到的RLC data PDU
总结
本文从UE侧角度介绍了LTE网络RLC层的一个基本功能——polling
机制。polling
机制只在AM模式
下才会生效,其目的是为了能及时得知网络侧的接收情况,从而及时地向网络重传丢失的数据包,保证数据的低时延可靠传输。最后介绍了polling
的触发条件。
参考文献
[1] 3GPP协议 36322 section 5.2.2
[2] Radio Protocols for LTE and LTE-Advanced (2012) by SeungJune Yi, SungDuck Chun, etl. section 5.4.4
[3] 深入理解LTE-A. 温金辉著. section 36.3.3.2