美文网首页5G NR RLC协议
NR RLC Variables, constants and

NR RLC Variables, constants and

作者: SnC_ | 来源:发表于2019-07-08 18:26 被阅读0次

    State Variables

    该部分描述了用于具体描述RLC协议的AM和UM实体中用到的状态变量。
    所有以下定义的变量都是规范的。
    所有以下定义的变量以及counter都是非负整数。

    文中的一些值在超出其范围时需要进行取模运算。比如
    SN长为12 bit的AM数据传输的相关变量取值范围为[0 , 4095]
    SN长为18 bit的AM数据传输的相关变量取值范围为[0 , 262144]

    AM RLC实体的发送端应该维护下列几个状态变量:

    • TX_Next_Ack:确认状态变量
      该变量的值为下一个等待确认接收消息的SDU的SN值。它作为发送窗口的下边界。初始值为0 。
      当一SN=TX_Next_Ack的SDU被确认接收时,该变量更新。
    • TX_Next:发送状态变量
      该状态变量的值为下一个新建的AMD PDU要被赋予的SN值。初始值为0。
      当AM RLC实体构建一个包含SDU或SDU最后一段的SN = TX_Next的PDU时,该变量更新。
    • POLL_SN:轮询发送状态变量
      该变量的值为当前已发送到下层的AMD PDU中SN值最高的那个。
      当发送的PDU中polling字段为1时,该变量更新。

    AM RLC实体的发送端应该维护以下几个counter;

    • PDU_WITHOUT_POLL
      它计数从最近一次轮询字段发送以来,又有多少个AMD PDU被发送出去。
    • BYTE_WITHOUT_POLL
      它计数从最近一次轮询字段发送以来,又有多少个数据段byte被发送出去。
    • RETX_COUNT
      它计数一个SDU或SDU段总共被重传了几次。每一个RLC SDU中有一个这样的RETX_COUNT

    AM RLC实体的接收端应该维护下列几个状态变量:

    • RX_Next:接收状态变量
      该变量的值为 已经被按序完整接收的SDU的SN值+1。它作为接收窗口的下边界。初始值为0.
      当SN=RX_Next的RLC SDU被接收时,更新该值。
    • RX_Next_Status_Trigger:t-Reassembly状态变量
      该变量保存 触发了t-Reassembly的RLC SDU的SN+1的值。
      只在一种情况下会更新:刚启动t-Reassembly时。
    • RX_Highest_Status:最大STATUS发送状态变量
      该变量保存 当STATUS PDU需要被建立时,会被“ACK_SN”标识的最高可能SN值
      它更新的情况有:
      1. (个人认为不重要)当完整接收一个SN值与它相同的SDU时,更新为大于当前值,但还未接收所有字节的SDU中SN最小的值。
      2. 当t-Reassembly超时时,更新为大于RX_Next_Status_Trigger,但还未接收所有字节的SDU中最小的SN值。
    • RX_Next_Highest:最高接收状态变量
      该变量保存 接收到的RLC SDU中,SN最高的值+1

    RX_Next:下一个等待确认消息的SDU的SN值。SN值小于它的SDU都是已经被确认接收了的。
    RX_Next_Highest:目前接收到的PDU中最大的SN值+1。若该值之前,RX_Next之后,还有SDU未确认接收,则需要启动t-Reassembly
    t-Reassembly:等待之前未被完整接收的SDU的计时器。它被停止并重置,说明这段时间内之前的SDU都被成功接收了。 它超时,说明之前有SDU无法完整接收,因此会导致接收端主动向发送端发送STATUS report。
    RX_Next_Status_Trigger:启动t-Reassembly时会被更新,表示要完整接收到哪一个SN的SDU为止才算完成该段t-Reassembly时间内的任务。
    RX_Highest_Status:当t-Reassembly超时时被更新。用于说明哪些SDU需要被重传。

    每一个UM RLC实体的传输端应该维护下列状态变量:

    • TX_Next:
      该变量保存 下一个将被生成的带有段的UMD PDU将被分配的SN值。初始值为0 。
      每当UM RLC实体发送一个带有RLC SDU最后一段的UMD PDU到下层时,该变量更新。

    每一个UM RLC实体的接收端应该维护下列状态变量和常数:

    • RX_Next_Reassembly:UM接收状态变量
      该变量保存 仍在被考虑重组的最早一个SN的值。
    • RX_Timer_Trigger:UM t-Reassembly状态变量
      该变量保存 触发了t-Reassembly的SN值+1
    • RX_Next_Highest:UM接收状态变量
      该变量保存 已接收的UMD PDU中最高的SN+1。它作为重组窗口的上边界。初始值为0

    常数

    • AM_Window_Size
      该常数在AM RLC实体的发送端和接收端都用到。
      当SN长12 bit时,AM_Window_Size=2048;
      当SN长18 bit时,AM_Window_Size=131072。

    • UM_Window_Size
      该常数被UM RLC实体的接收端用来定义 被接收且不会造成接收窗口前移的那些UMD SDU的SN值。
      当SN长6 bit时,UM_Window_Size=32;
      当SN长12 bit时,UM_Window_Size=2048。

    Timers

    以下timers在TS 38.331[5]中被设定。

    • t-PollRetransmit
      该计数器被AM RLC实体的发送端用来重传轮询。
    • t-Reassembly
      该计数器被AM RLC实体和UM RLC实体的接收端用来发现在下层传输中RLC PDU的丢失。(详见UM/AM data transfer的receive operation)
      对于一个RLC实体来说,特定时间内只有一个t-Reassembly在运行。

    当RLC接收下层传来的PDU后,会更新t-Reassembly的状态。

    • 若此时Rx_Next_Highest = Rx_Next,则停止t-Reassembly。
    • 若此时Rx_Next_Highest > Rx_Next,则启动t-Reassembly(若t-Reassembly正在运行,则不需要再另外启动)。
    • t-StatusProhibit
      该计时器被AM RLC实体的接收端用来作为发送STATUS PDU的间隔。
      只会在一种情况下启动:status pdu trigger时。
      只会在一种情况下停止:超时后。

    Configurable parameters

    以下参数在 RS 38.331[5]中被设定。

    • maxRetxThreshold
      该参数被AM RLC实体的发送端用来限制某个RLC SDU或段的重传次数。
    • pollPDU
      该参数被AM RLC实体的发送端用来在每pollPDU个PDU被发送后触发一次轮询
    • pollByte
      该参数被AM RLC实体的传输端用来在每pollByte个byte被发送后触发一次轮询

    相关文章

      网友评论

        本文标题:NR RLC Variables, constants and

        本文链接:https://www.haomeiwen.com/subject/yoqahctx.html