5G NR RLC:RLC架构和RLC entity
其他相關內容
RLC data transfer procedure
RLC PDU and Parameters
1 RLC架構
1.1 RLC架構
RLC的所有功能由RLC entity來實現。RLC entity可以理解為將RLC下層的東西都放在黑盒里,收發兩端等于是兩個RLC entity在相互通信,來為了上層PDCP服務。通常包括三種傳輸模式:TM,UM和AM,可以理解為收發兩端的RLC entity之間傳遞數據的三種傳輸模式,由業務類型來決定采用哪種傳輸模式。兩個RLC entity之間相互傳遞的包(或者說的更確切一點:RLC給MAC層的包)叫RLC PDU(Protocol Data Unit),RLC和上層PDCP之間傳遞的包叫RLC SDU(Service Data Unit)。
RLC和lower layer之間通過邏輯信道(logical channel)傳輸PDU,而和PDCP之間通過RLC信道(RLC channel)傳輸SDU。我簡單的畫了一個圖如下,主要是想體現協議中的這句話:An RLC entity receives/delivers RLC SDUs from/to upper layer and sends/receives RLC PDUs to/from its peer RLC entity via lower layers. 理解什么是RLC entity。
RLC entity無需等待MAC層的傳輸指示來把從PDCP來的RLC SDU轉化為RLC PDU,對于UM和AM傳輸模式,RLC SDU可能會被UM或AM RLC entity分段如果這個包太大的話。雖然RLC PDU的構建無需MAC層的指示,但是構建好了的RLC PDU的傳輸需要等待MAC層指示transmission opportunity。
在NR中,RLC層移除了RLC SDU的串聯(concatenation)功能,而是由MAC層負責對RLC PDU進行串聯,所以我理解是一個MAC PDU里是可以包含若干個MAC SDU的(MAC SDU即RLC PDU)。需要注意的一點是,當UE要生成不止一個MAC PDU的時候,應該避免在一個MAC PDU中出現過多的不連續的RLC PDU。
下圖是RLC的一個架構模型。該模型完整體現了上述內容,包括了RLC和上下層之間的是什么channel,三種不同的傳輸模式及其對應的收發兩端的RLC entity在協議當中的名字。
1.2 三種傳輸模式
上面也說到RLC有三種不同的傳輸模式Transparent Mode (), Unacknowledged Mode (UM) or Acknowledged Mode (AM),由具體的業務類型決定。
- TM mode:發送實體在高層數據上不添加任何額外控制外協議開銷,直接給到下層,接收實體在收到后也直接給到上層。實時語音業務通常采用這種模式。
- UM mode:發送實體(transmitting entity)在高層PDU上添加必要的控制協議開銷,然后(必要情況下分段)傳送但并不保證傳遞到對等實體(peer entity),因為沒有使用重傳協議ARQ。此外能夠檢測高層PDU的完整性。UM模式的業務一般有小區廣播和IP電話。
- AM mode:發送側在高層數據上添加必要的控制協議開銷后進行傳送,并保證傳遞到對等實體。因為具有ARQ能力,如果RLC接收到錯誤的RLC PDU,就通知發送方的RLC重傳這個PDU。此外支持數據向高層的亂序遞交。AM模式是分組數據傳輸的標準模式,比如www和電子郵件下載。
總結來說,TM/UM主要是為實時業務(如會話業務,流業務)而設計,對于實時業務來說,主要目標是低時延,而允許一定的數據錯誤,對時延敏感,對錯誤不敏感,無反饋,無重傳;AM主要是為非實時業務(如交互業務,后臺業務)而設計,對時延不敏感,對錯誤敏感,有反饋,有重傳(ARQ)。總之,對TM/UM/AM模式的選擇主要是根據業務特性決定的。
根據這三種傳輸模式,相應的RLC entity也分為了三種,即TM/UM/AM RLC entity。因為TM和UM模式下,傳輸都是單向的,所以在某個時刻下,RLC entity也是單向的,所以TM和UM RLC entity根據收發端的區別,又被協議分為了transmitting RLC entity和receiving RLC entity。而對于AM模式,由于傳輸是雙向的,所以AM RLC entity也是雙向的,一個實體被劃分為接收側和發送側來完成數據的發送接收的功能,并且它們彼此是能夠互相溝通的,所以對于AM RLC entity,協議當中的說法是AM entity的transmitting side和receiving side,而不是transmitting AM RLC entity和receiving AM RLC entity。
2 RLC entity
2.1 TM RLC entity
對于TM傳輸模式來說,一對TM RLC entity(即transmitting TM RLC entity和receiving TM RLC entity)之間的邏輯信道包括BCCH, UL/DL CCCH, PCCH, 和SBCCH,即TM RLC entity通過這些邏輯信道收發RLC PDU。
TM模式下傳輸的data PDU叫TMD PDU。transmitting TM RLC entity會直接把PDCP來的一整個RLC SDU作為一個TMD PDU并且傳到MAC,receiving TM RLC entity也直接把收到的TMD PDU作為RLC SDU傳給PDCP,這過程中不做任何改動。一個RLC SDU說白了就是一個TMD PDU,不加頭、不分段。
下圖為TM模式,即所謂的透傳,下的收發TM RLC entity的模型,左側為transmitting TM RLC entity,通過TM-RLC channel拿到PDCP來的PDCP PDU,即RLC SDU,然后通過上述logical channel傳到接收端—receiving TM RLC entity,然后接收端將其直接送到PDCP without any delay。
1.2 UM RLC entity
對于UM傳輸模式,收發兩端的兩個UM RLC entity(即transmitting UM RLC entity和receiving UM RLC entity)之間的邏輯信道包括DTCH, SCCH, 和STCH,傳輸的data PDU叫UMD PDU,其傳輸需要等待MAC的指示。transmitting UM RLC entity要將每個RLC SDU進行分段(如果需要的話)、加頭,得到一個或多個大小符合MAC層大小要求的UMD PDU。receiving UM RLC entity在收到UMD PDU之后,需要檢查RLC SDU的segment是否收全了,并重組RLC SDU。組好的RLC SDU會被立馬傳輸到PDCP。如果某些個UMD PDU(由于下層丟包)無法被重組,那么receiving UM RLC entity會將其丟掉。所以UM RLC entity包含分段、重組,檢查segment是否收全的功能。
下圖為UM模式下的傳輸示意圖,左側transmitting UM RLC entity通過UM-RLC channel收到PDCP來的RLC SDU,然后生成RLC header,(如果需要的話)進行分段并加頭,構建好的UMD PDU通過上述邏輯信道來到接收端,receiving UM RLC entity去頭、重組,并立馬送到PDCP。
1.3 AM RLC entity
對于AM傳輸模式,兩個AM RLC entity之間的邏輯信道包括DL/UL DCCH, DL/UL DTCH, SCCH和STCH。兩個AM RLC entity之間傳輸的data PDU叫AMD PDU,傳輸的control PDU叫STATUS PDU,和UM模式相同,如果RLC SDU超出MAC層限制的大小,則AM RLC entity會將其分段。其傳輸同樣需要等待MAC的指示。
與TM模式的不同之處在于,AM RLC entity支持RLC SDU或RLC SDU segment的重傳(ARQ)。重傳過程中,如果RLC SDU或SDU segment大小不符合當前的MAC層指示的transmission opportunity,則AM RLC entity可以對RLC SDU或SDU segment進行分段或者重分段,且重分段次數不限。
在AM RLC entity構建AMD PDU的時候,其中會包含相應的RLC header。在接收AMD PDU的時候,AM RLC entity需要檢查是否有重復或丟掉的AMD PDU,重復的包會被丟掉,如果有丟掉的AMD PDU,AM RLC entity會要求對方重傳,然后重組RLC SDU并立馬傳輸到上層。
下圖為AM mode的示意圖。
3 Services
RLC為PDCP提供的服務包括下面這三項:
- TM data transfer;
- UM data transfer;
- AM data transfer, including indication of successful delivery of upper layers PDUs.
RLC希望從MAC層得到的服務包括下面兩項:
- data transfer;
- notification of a transmission opportunity, together with the total size of the RLC PDU(s) to be transmitted in the transmission opportunity.
4 Functions
根據上面的描述,RLC層的功能其實可以總結如下:
- transfer of upper layer PDUs;
為傳輸PDCP數據服務,即傳輸PDCP PDU(RLC SDU) - error correction through ARQ (only for AM data transfer);
AM模式下的ARQ - segmentation and reassembly of RLC SDUs (only for UM and AM data transfer);
UM和AM模式下的分段、重組功能 - re-segmentation of RLC SDU segments (only for AM data transfer);
AM模式下的重分段功能 - duplicate detection (only for AM data transfer);
AM模式下重復包檢測功能 - RLC SDU discard (only for UM and AM data transfer);
UM和AM模式下重復包檢測功能 - RLC re-establishment;
RLC重建立。在切換流程中,RRC層會要求RLC層進行重建,此時RLC層會停止并重置所有定時器,將所有的狀態變量重置為初始值,并丟棄所有的RLC SDU、RLC SDU segment和RLC PDU。我們知道在NR中,RLC層沒有重排序的功能,通過上面的描述也可以發現,RLC層在得到了一個完整的RLC SDU之后,會立馬將其送到PDCP,由PDCP進行重排序,所以RLC層可以緩存segment,但一定不會緩存完整的RLC SDU。所以在RLC重建時,接收端不會往PDCP遞送RLC SDU。 - Protocol error detection (only for AM data transfer).
總結
以上是生活随笔為你收集整理的5G NR RLC:RLC架构和RLC entity的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 天线端口和参考信号支持的多端口
- 下一篇: 5G NR RLC:Data Trans