5G NR - RLC协议阅读笔记8 - NR和LTE各状态变量/定时器/配置参数对比

LTE RLC这些状态变量(state variables)名极度不具备启发性,几乎无法顾名思义。

NR改进了很多,字面意思基本就能反映变量本身含义,但不经常使用,还是容易忘,因为协议对变量的解释也很拗口,毕竟3GPP协议编辑人来自五湖四海。

列个表格出来,就不用每次(记不牢变量名和含义的情况下)翻开协议去查了:

RLC ModeTypeDirectionLTE5G-NRComments
AMState VariableTransmitVT(A) – Acknowledgement state variable
This state variable holds the value of the SN of the next AMD PDU for which a positive acknowledgment is to be received in-sequence, and it serves as the lower edge of the transmitting window. It is initially set to 0, and is updated whenever the AM RLC entity receives a positive acknowledgment for an AMD PDU with SN = VT(A).
TX_Next_Ack – Acknowledgement state variable
This state variable holds the value of the SN of the next RLC SDU for which a positive acknowledgment is to be received in-sequence, and it serves as the lower edge of the transmitting window. It is initially set to 0, and is updated whenever the AM RLC entity receives a positive acknowledgment for an RLC SDU with SN = TX_Next_Ack.

发送端“期望收到对方肯定反馈(ACK_SN)”的按序接收的下一个PDU序号.

本质就是:TX_Next_Ack之前的PDU都认为已经被对端收到了

VT(S) – Send state variable
This state variable holds the value of the SN to be assigned for the next newly generated AMD PDU. It is initially set to 0, and is updated whenever the AM RLC entity delivers an AMD PDU with SN = VT(S).

 
TX_Next – Send state variable
This state variable holds the value of the SN to be assigned for the next newly generated AMD PDU. It is initially set to 0, and is updated whenever the AM RLC entity constructs an AMD PDU with SN = TX_Next and contains an RLC SDU or the last segment of a RLC SDU.
对于NR, 由于RLC AMD PDU和SDU的SN是一样,因此只有一个SDU完全发送出去了,才会更新,有两种情况:
1.不分段:那么一个AMD PDU就是一个SDU
2.分段:只有最后一个分段发送出去了,整个SDU才算发送出去,只有这个时候才能更新TX_Next
VT(MS) – Maximum send state variable
This state variable equals VT(A) + AM_Window_Size, and it serves as the higher edge of the transmitting window.
NA可以通过TX_Next_Ack + AM_Window_Size计算,所以NR可以省去一个变量
POLL_SN – Poll send state variable
This state variable holds the value of VT(S)-1 upon the most recent transmission of a RLC data PDU with the poll bit set to "1". It is initially set to 0.

The transmitting side of each AM RLC entity shall maintain the following counters:
a)
PDU_WITHOUT_POLL – Counter
This counter is initially set to 0. It counts the number of AMD PDUs sent since the most recent poll bit was transmitted.
b)
BYTE_WITHOUT_POLL – Counter
This counter is initially set to 0. It counts the number of data bytes sent since the most recent poll bit was transmitted.
c)
RETX_COUNT – Counter
This counter counts the number of retransmissions of an AMD PDU (see subclause 5.2.1). There is one RETX_COUNT counter per PDU that needs to be retransmitted.
 POLL_SN – Poll send state variable
This state variable holds the value of the highest SN of the AMD PDU among the AMD PDUs submitted to lower layer when POLL_SN is set according to sub clause 5.3.3.2. It is initially set to 0.

The transmitting side of each AM RLC entity shall maintain the following counters:
a)
PDU_WITHOUT_POLL – Counter
This counter is initially set to 0. It counts the number of AMD PDUs sent since the most recent poll bit was transmitted.
b)
BYTE_WITHOUT_POLL – Counter
This counter is initially set to 0. It counts the number of data bytes sent since the most recent poll bit was transmitted.
c)
RETX_COUNT – Counter
This counter counts the number of retransmissions of an RLC SDU or RLC SDU segment (see clause 5.3.2). There is one RETX_COUNT counter maintained per RLC SDU.
(LTE)POLL_SN本质就是设了poll bit为1的 VT(S)-1
(NR)POLL_SN是发往低层的所有AMD PDU里,SN最大的那个(如果最后一个SDU分成两段,那是要等两个分段都发出去后才设poll bit?还是根据发送窗口的大小,在第一个分段发送完后就设?根据5.3.3.2里的PDU_WITHOUT_POLL是否大于等于pollPDU或或BYTE_WITHOUT_POLL是否大于等于pollByte来决定)

NR举例,建立IMS PDU时,在RRCReconfiguration里会设置这两个值:
RRCReconfiguration
                      rlc-Config am :
                        {
                          ul-AM-RLC
                          {
                            sn-FieldLength size18,
                            t-PollRetransmit ms10,
                            pollPDU p16,
                            pollByte kB25,

                            maxRetxThreshold t32
                           },
                          dl-AM-RLC
                          {
                            sn-FieldLength size18,
                            t-Reassembly ms5,
                            t-StatusProhibit ms5
ReceiveVR(R) – Receive state variable
This state variable holds the value of the SN following the last in-sequence completely received AMD PDU, and it serves as the lower edge of the receiving window. It is initially set to 0, and is updated whenever the AM RLC entity receives an AMD PDU with SN = VR(R).
RX_Next – Receive state variable
This state variable holds the value of the SN following the last in-sequence completely received RLC SDU, and it serves as the lower edge of the receiving window. It is initially set to 0, and is updated whenever the AM RLC entity receives an RLC SDU with SN = RX_Next.
 对应于最后一个按序完全接收的AMD PDU 的 SN 值的下一个 SN
VR(X) – t-Reordering state variable
This state variable holds the value of the SN following the SN of the RLC data PDU which triggered t-Reordering.
RX_Next_Status_Trigger – t-Reassembly state variable
This state variable holds the value of the SN following the SN of the RLC SDU which triggered t-Reassembly.
比方说,收到了SN=1,然后收到了SN=3,说明SN=2没有收到,那么收到SN=3这个事情会触发t=Reordering/t-Reassembly,这个时候变量设为 SN = 3 + 1
VR(MS) – Maximum STATUS transmit state variable
This state variable holds the highest possible value of the SN which can be indicated by "ACK_SN" when a STATUS PDU needs to be constructed. It is initially set to 0.
RX_Highest_Status – Maximum STATUS transmit state variable
This state variable holds the highest possible value of the SN which can be indicated by "ACK_SN" when a STATUS PDU needs to be constructed. It is initially set to 0.
该变量保存的是:
当需要生成一个STATUS PDU时,ACK_SN字段可以设置的最高值,也就是,此时该ACK_SN之前的所有PDU状态都已确定了:要么丢失,要么已收到(那么仍在T-Reordering/Reassembly控制下的那些AMD PDU自然不在此列,因为它们状态还未确定,仍然处于等待状态)
VR(H) – Highest received state variable
This state variable holds the value of the SN following the SN of the RLC data PDU with the highest SN among received RLC data PDUs. It is initially set to 0.
RX_Next_Highest – Highest received state variable
This state variable holds the value of the SN following the SN of the RLC SDU with the highest SN among received RLC SDUs. It is initially set to 0.
 
VR(MR) – Maximum acceptable receive state variable
This state variable equals VR(R) + AM_Window_Size, and it holds the value of the SN of the first AMD PDU that is beyond the receiving window and serves as the higher edge of the receiving window.
NA 
TimersTransmitt-PollRetransmit
This timer is used by the transmitting side of an AM RLC entity in order to retransmit a poll (see sub clause 5.2.2).
t-PollRetransmit
This timer is used by the transmitting side of an AM RLC entity in order to retransmit a poll (see sub clause 5.3.3).
为了判断对端是否收到了 polling 请求, AM 实体定义了一个定时器 t-PollRetransmit。如果 tPollRetransmit 超时,说明对端没有收到该 polling 请求,此时发送端会在接下来的一个传输机会
里,重发 polling 请求。
Receivet-Reordering
This timer is used by the receiving side of an AM RLC entity and receiving UM RLC entity in order to detect loss of RLC PDUs at lower layer (see sub clauses 5.1.2.2 and 5.1.3.2). If t-Reordering is running, t-Reordering shall not be started additionally, i.e. only one t-Reordering per RLC entity is running at a given time.
t-Reassembly
This timer is used by the receiving side of an AM RLC entity and receiving UM RLC entity in order to detect loss of RLC PDUs at lower layer (see sub clauses 5.2.2.2 and 5.2.3.2). If t-Reassembly is running, t-Reassembly shall not be started additionally, i.e. only one t-Reassembly per RLC entity is running at a given time.
 
t-StatusProhibit
This timer is used by the receiving side of an AM RLC entity in order to prohibit transmission of a STATUS PDU (see sub clause 5.2.3).
t-StatusProhibit
This timer is used by the receiving side of an AM RLC entity in order to prohibit transmission of a STATUS PDU (see sub clause 5.3.4).
When a STATUS PDU has been submitted to lower layer, the receiving side of an AM RLC entity shall:
- start t-StatusProhibit.
如果一个 STATUS report 发送时, 接收端还未收到前一个 STATUS report 触发的重传, 则可能导致同一个 AMD PDU 或 AMD PDU 分段被要求重传 2 次,从而导致了不必要的重传,并浪费了无线资源。在 AM 模式下,这也是可能导致收到重复 PDU 的第二个原因。为了避免这种情况的发生, AM 模式中定义了一个 status prohibit 的功能,即禁止在定时器 t-StatusProhibit 运行期间发送STATUS report。 t-StatusProhibit 通常设置成稍大于 RLC round trip time 的值。可以看出, tStatusProhibit 同时避免了接收端过多地发送 STATUS report。
Configurable parametersTransmitmaxRetxThreshold
This parameter is used by the transmitting side of each AM RLC entity to limit the number of retransmissions of an AMD PDU (see subclause 5.2.1).
maxRetxThreshold
This parameter is used by the transmitting side of each AM RLC entity to limit the number of retransmissions corresponding to an RLC SDU, including its segments (see clause 5.3.2).
 
pollPDU
This parameter is used by the transmitting side of each AM RLC entity to trigger a poll for every pollPDU PDUs (see subclause 5.2.2).
pollPDU
This parameter is used by the transmitting side of each AM RLC entity to trigger a poll for every pollPDU PDUs (see clause 5.3.3).
 
pollByte
This parameter is used by the transmitting side of each AM RLC entity to trigger a poll for every pollByte bytes (see subclause 5.2.2).
pollByte
This parameter is used by the transmitting side of each AM RLC entity to trigger a poll for every pollByte bytes (see clause 5.3.3).
 
UM 
sn-FieldLength
This parameter gives the UM SN field size in bits (see subclause 7.1).
  

 


笔者在公众号“协议工程师笔记”定期发布5G/LTE/IMS...学习笔记, 敬请关注、订阅和分享,谢谢!

                                                               图片

                                                                      一起努力,蒸蒸日上

  • 2
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值