1. LTE协议RLC简介 在LTE中,为了给数据传输提供足够的可靠性,层2使用了双重传机制。ARQ位于RLC层,HARQ位于MAC层中。ARQ与HARQ的交互更有利地保证了数据的无差错传输,在HARQ的某个数据包重传失败后,ARQ将发起RLC PDU的重传,RLC层传输失败后,则会有更上层(如TCP/IP协议层)保障数据的可靠性。 层2的RLC子层为用户和控制数据提供分段和重传服务,RLC实体有3种工作模式:透明模式(TM),非确认模式(UM)),确认模式(AM)。如下图所示: 图1-1 RLC协议层简图(参照协议36系列36.322) RLC子层主要功能列表: 表1-1 RLC子层主要功能表 ARQ功能只在AM模式使用,ARQ方式有3种基本类型:SAW(Stop and Wait)重传、退N步(GBN:Go back N)重传和选择重传(SR:Selective Retransmission)。 l SAW重传是指发端发送每个分组数据后都要等待收端的回执,收到NACK就重传,收到ACK后则准备发送下一个分组数据。 l GBN重传可持续发送多个分组数据,发端发送第一个分组数据后不必等待回执,经过网络延迟后回执到达发端,若收端反馈的是NACK,则发端重传该分组数据及其后在延迟期间发送的分组数据。 l SR重传中发端按固定顺序发送分组数据,只重传收到NACK所对应的分组数据。 在3种重传方式中,SR重传的效率是最高的,但由于需要保证分组数据的传送顺序,收发两端必须占用较大的缓冲区。 目前的LTE标准采用的是SR重传方式,保证数据传输效率更高。 如上表1所示,AM模式功能最完备,如下章节以AM模式为例说明RLC参数配置对LTE性能影响。 AM模式需要考虑的关键参数如下: 表1-2 RLC子层AM模式关键参数 | | | 窗长:和SN序列号(10bits)有关,目前协议固定为512。 | | | | | | | | | | | 窗长:和SN序列号(10bits)有关,目前协议固定为512。 | | | | |
参照协议36系列36.331中RLC-Config说明,RLC层AM模式各参数对应字段取值范围如下: RLC-Config information element -- ASN1START RLC-Config ::= CHOICE { am SEQUENCE { ul-AM-RLC UL-AM-RLC, dl-AM-RLC DL-AM-RLC }, um-Bi-Directional SEQUENCE { ul-UM-RLC UL-UM-RLC, dl-UM-RLC DL-UM-RLC }, um-Uni-Directional-UL SEQUENCE { ul-UM-RLC UL-UM-RLC }, um-Uni-Directional-DL SEQUENCE { dl-UM-RLC DL-UM-RLC }, ... } UL-AM-RLC ::= SEQUENCE { t-PollRetransmit T-PollRetransmit, pollPDU PollPDU, pollByte PollByte, maxRetxThreshold ENUMERATED { t1, t2, t3, t4, t6, t8, t16, t32} } DL-AM-RLC ::= SEQUENCE { t-Reordering T-Reordering, t-StatusProhibit T-StatusProhibit } UL-UM-RLC ::= SEQUENCE { sn-FieldLength SN-FieldLength } DL-UM-RLC ::= SEQUENCE { sn-FieldLength SN-FieldLength, t-Reordering T-Reordering } SN-FieldLength ::= ENUMERATED {size5, size10} T-PollRetransmit ::= ENUMERATED { ms5, ms10, ms15, ms20, ms25, ms30, ms35, ms40, ms45, ms50, ms55, ms60, ms65, ms70, ms75, ms80, ms85, ms90, ms95, ms100, ms105, ms110, ms115, ms120, ms125, ms130, ms135, ms140, ms145, ms150, ms155, ms160, ms165, ms170, ms175, ms180, ms185, ms190, ms195, ms200, ms205, ms210, ms215, ms220, ms225, ms230, ms235, ms240, ms245, ms250, ms300, ms350, ms400, ms450, ms500, spare9, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1} PollPDU ::= ENUMERATED { p4, p8, p16, p32, p64, p128, p256, pInfinity} PollByte ::= ENUMERATED { kB25, kB50, kB75, kB100, kB125, kB250, kB375, kB500, kB750, kB1000, kB1250, kB1500, kB2000, kB3000, kBinfinity, spare1} T-Reordering ::= ENUMERATED { ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, ms40, ms45, ms50, ms55, ms60, ms65, ms70, ms75, ms80, ms85, ms90, ms95, ms100, ms110, ms120, ms130, ms140, ms150, ms160, ms170, ms180, ms190, ms200, spare1} T-StatusProhibit ::= ENUMERATED { ms0, ms5, ms10, ms15, ms20, ms25, ms30, ms35, ms40, ms45, ms50, ms55, ms60, ms65, ms70, ms75, ms80, ms85, ms90, ms95, ms100, ms105, ms110, ms115, ms120, ms125, ms130, ms135, ms140, ms145, ms150, ms155, ms160, ms165, ms170, ms175, ms180, ms185, ms190, ms195, ms200, ms205, ms210, ms215, ms220, ms225, ms230, ms235, ms240, ms245, ms250, ms300, ms350, ms400, ms450, ms500, spare8, spare7, spare6, spare5, spare4, spare3, spare2, spare1} -- ASN1STOP 另外,AM模式其它的中间状态变量,不在这里重复考虑和描述,请参考协议,主要状态变量如下: l AM实体发送端 1) VT(A):确认状态变量 Ø 下一个需要被正确确认的AMD PDU的SN,作为发送窗口的最低边界。初始值为0,当收到一个SN = VT(A)的AMD PDU的正确确认后更新该参数; 2) VT(MS):最大发送状态参数 Ø 该参数值等于VT(A) + AM_Window_Size,为发送窗口的最高边界; 3) VT(S):发送状态参数 Ø 分配给下一个将要生成的AMD PDU的SN,初始值为0,只要发送了一个SN= VT(S)的AMD PDU后,该值便会更新; 4) POLL_SN:轮询发送状态变量 Ø 该变量值等于最近一次发送的P位置1的RLC数据PDU的SN,初始值为0; l AM实体接收端 1) VR(R):接收状态变量 Ø 变量值为最后一个顺序接收到的AMD PDU的下一个PDU的SN,作为接收窗口的最低边界。初始值为0,当收到SN= VR(R)的AMD PDU时,该值更新; 2) VR(MR):最大可接收状态变量 Ø 等于VR(R) + AM_Window_Size,接收窗外第一个PDU的SN,作为接收窗的最高边界; 3) VR(X):t-Reordering状态变量 Ø 等于触发t-Reordering的RLC数据PDU的下一个PDU的SN; 4) VR(MS):最大STATUS发送状态变量 Ø 当需要构造一个STATUS PDU的时候,该值等于可以被“ACK_SN”指示的SN的最大值; 5) VR(H):最高接收状态变量 Ø 已经接收到的RLC数据PDUs中的SN最高值,初始值为0; 6) POLL_SN:轮询发送状态参数 Ø 等于最近一次发送的P位指示为1的RLC数据PDU时的VT(S)-1,初始值为0; 后续各章节将从包时延,吞吐量性能指标角度分别对发送端参数和接收端参数做重点分析,其中AM_Window_Size参数发送端和接收端共有参数,在发送端一并说明。
|