之前或多或少有對(duì)PHY,MAC及PDCP部分進(jìn)行了總結(jié),現(xiàn)在開(kāi)始的是NR RLC部分的學(xué)習(xí)筆記總結(jié),RLC是很重要的一層,在實(shí)際UE問(wèn)題處理中,常常會(huì)查看RLC的收發(fā)狀況,而NR RLC對(duì)應(yīng)38.322,整本spec不多(30多頁(yè)),最早2019年的時(shí)候就研究過(guò),現(xiàn)在再溫故知新下(也忘差不多了).....
這篇就從大體功能的角度看下RLC,具體細(xì)節(jié)后面慢慢再說(shuō)。先看下NR user plane DL協(xié)議架構(gòu),大概看下RLC的作用,如下圖,許多sub layer與LTE類(lèi)似,但是也有差異,NR 中QoS的處理就是差異之一,當(dāng)連接到 5G 核心網(wǎng)后,SDAP 層會(huì)收到一個(gè)或多個(gè)QoS flow的配置,然后收到對(duì)應(yīng)的IP packet。 而NSA場(chǎng)景,UE會(huì)連接到EPC的 user plane,這時(shí)候就不會(huì)用到 SDAP。NR中,不是所有的場(chǎng)景都會(huì)用到下圖中的每一個(gè)功能,例如,加密就不會(huì)用于系統(tǒng)消息。 NR user plane UL協(xié)議架構(gòu)與DL類(lèi)似,但是或多或少也存在一些差異......
各層的功能簡(jiǎn)單總結(jié)如下。
SDAP:這個(gè)協(xié)議層是NR中新增的,處理負(fù)責(zé)將QoS flow映射到對(duì)應(yīng)的DRB上及在DL和UL packet中對(duì)QoS flow ID進(jìn)行marking。
PDCP: 執(zhí)行 IP 報(bào)頭壓縮、加密、和完整性保護(hù)。 它還處理重傳、按順序傳送和移交時(shí)刪除重復(fù)內(nèi)容。 對(duì)于DC場(chǎng)景,PDCP 還可以提供duplication功能,提高傳輸可靠性。
RLC:負(fù)責(zé)segment和重傳處理。 RLC以RLC channel的形式向PDCP提供服務(wù)。 每個(gè)RLC channel配置一個(gè) RLC entity, 與LTE相比,NR RLC不支持按順序?qū)?shù)據(jù)傳輸?shù)絇DCP的功能,這種變化主要是從減少延遲方面考慮的。
MAC:處理邏輯信道的多路復(fù)用,HARQ重傳,以及調(diào)度和調(diào)度相關(guān)的功能。 MAC 以邏輯信道的形式向 RLC 提供服務(wù)。
PHY :處理編碼/解碼、調(diào)制/解調(diào)、多天線(xiàn)映射和其他典型的物理層功能。 物理層通過(guò)不同傳輸信道向 MAC 層提供服務(wù)。
下面就著重看下NR RLC。
而在5G系統(tǒng)中,為了滿(mǎn)足不同的業(yè)務(wù)要求,符合業(yè)務(wù)傳輸?shù)奶卣鳎琑LC支持3種傳輸模式:TM、UM和AM模式。RLC的配置基于邏輯信道的粒度進(jìn)行的,不依賴(lài)底層的SCS和傳輸時(shí)間間隔(Transmission Time Interval,TTI)的長(zhǎng)度。RLC可以處理在邏輯信道配置的任意SCS和TTI長(zhǎng)度等條件的數(shù)據(jù)分組。TM模式主要用于尋呼消息、系統(tǒng)信息廣播以及SRB0信令的傳輸;其他SRB信令用AM模式傳輸;用于傳輸用戶(hù)數(shù)據(jù)的DRB可以根據(jù)業(yè)務(wù)類(lèi)型,采用AM模式或UM模式傳輸,例如voice DRB 一般會(huì)使用UM模式,降低時(shí)延。
RLC 的主要服務(wù)和功能與傳輸模式相關(guān),包括:對(duì)PDCP PDUs的傳輸;獨(dú)立于 PDCP 進(jìn)行自己的序列編號(hào)(UM 和 AM);AM可以通過(guò)ARQ進(jìn)行糾錯(cuò);AM和UM支持RLC SDU 的segmentation,AM還支持re-segmentation;AM和UM可以重新組裝 SDU;AM支持duplicate detection;AM和UM可以對(duì)RLC SDU進(jìn)行丟棄操作;RLC重建;AM支持Protocol error detection。
其中RLC的ARQ具有以下特點(diǎn):(1)ARQ 會(huì)根據(jù) RLC status reports對(duì)RLC SDU或 RLC SDU segments進(jìn)行重傳;(2)根據(jù)場(chǎng)景觸發(fā)RLC status report 進(jìn)行polling;(3)RLC receiver在檢測(cè)到某些RLC SDU或 RLC SDU segements丟失后也可以觸發(fā)RLC status report。
RLC entities
RLC 配置參數(shù)是通過(guò)RRC層信令帶下來(lái),通常包含在RRC setup及RRC Reconfig中。
RLC sub layer的功能是由 RLC entities執(zhí)行。 gNB配置的 RLC entity會(huì)和UE側(cè)的RLC entity 配對(duì)存在,例如gNB側(cè)是UL發(fā)送RLC entity,UE側(cè)對(duì)應(yīng)的就是DL 接收RLC entity,反之亦然。 RLC entity和PDCP間會(huì)進(jìn)行RLC SDUs的交互,同樣RLC會(huì)通過(guò)底層和對(duì)端RLC 進(jìn)行RLC PDUs交互。
如上圖是所有協(xié)議層的DL數(shù)據(jù)流的例子,其中包含三個(gè) IP packet,兩個(gè)在一個(gè)RB x上,一個(gè)在另一個(gè)RB y。右側(cè)的RLC SDU 被分段并在兩個(gè)不同的TB中傳輸。SDAP將 IP packet映射到不同的RB; 在這個(gè)例子中IP數(shù)據(jù)包n和n+1被映射到RB x,IP數(shù)據(jù)包m被RB y。 通常來(lái)自或傳遞到更高協(xié)議層的data稱(chēng)為SDU,相應(yīng)地來(lái)自或傳遞到較低協(xié)議層data稱(chēng)為PDU。 因此,PDCP的輸出是一個(gè)PDCP PDU,等同于RLC SDU。
IP packet進(jìn)入SDAP后增加了SDAP的header,生成了SDAP的PDU,此PDU是PDCP的SDU,經(jīng)過(guò)PDCP的處理,增加了PDCP的header,生成了PDCP的PDU。而此PDU則是RLC的SDU,經(jīng)過(guò)RLC的處理,增加了RLC的header,生成了RLC的PDU。右側(cè)RB Y對(duì)應(yīng)的RLC對(duì)PDCP的PDU進(jìn)行了segment,生成了兩個(gè)RLC的SDU。在MAC層對(duì)多個(gè)RB的RLC PDU進(jìn)行處理,然后將多個(gè)MAC PDU放到同一個(gè)TB中進(jìn)行傳輸。
RLC 協(xié)議在必要時(shí)會(huì)對(duì)PDCP PDU進(jìn)行segment,并添加包含用于處理重傳的序列號(hào)的 RLC header。 和LTE不同,NR RLC 不提供按順序?qū)?shù)據(jù)包傳送到PDCP的功能, 原因是重新排序機(jī)制會(huì)引起的額外延遲,延遲對(duì)需要極低延遲的服務(wù)不利。例如LTE RLC在進(jìn)行按序傳送時(shí),除非所有先前的RLC SDU都已正確接收,否則 SDU無(wú)法轉(zhuǎn)發(fā)到PDCP。 由于瞬時(shí)干擾突發(fā),引起單個(gè)丟失的 SDU,會(huì)造成接收窗卡住,即使這些 SDU 對(duì)上層十分有用,這種情況在一段時(shí)間內(nèi)會(huì)導(dǎo)致后續(xù)SDU不能及時(shí)向PDCP的傳送。因而NR從RLC中移除按序傳送有助于減少總體延遲,這樣后面的數(shù)據(jù)包就不必像LTE一樣等待之前丟失的數(shù)據(jù)包收到后,才能上傳到PDCP,NR在收全對(duì)應(yīng)SN的RLC SDU后就可以立即上傳到PDCP。
但是如果需要按序傳輸,NR可以由 PDCP 層提供按順序傳輸?shù)墓δ堋LC PDU 轉(zhuǎn)發(fā)到MAC 層后,MAC 層將多個(gè)RLC PDU 附加 MAC header后放在同一個(gè)傳輸塊傳輸。如上圖,MAC header是分布在 MAC PDU中的,這樣 MAC header相關(guān)的某個(gè) RLC PDU 會(huì)緊接在另一個(gè)RLC PDU之前。
這也是與LTE不同的地方,LTE會(huì)在RLC層會(huì)進(jìn)行 concatenation操作,生成一個(gè)header,然后再傳遞到LTE MAC 層,而參照NR中的結(jié)構(gòu),NR RLC 不會(huì)進(jìn)行concatenation,MAC PDU 可以“即時(shí)”組裝,不需要對(duì)RLC進(jìn)行concatenation,直接對(duì)RLC PDU生成對(duì)應(yīng)的MAC header即可, 這樣也會(huì)大大減少處理時(shí)間以及整體延遲。
RLC PDU分為RLC data PDU或RLC control PDU。 如果 RLC entity從PDCP 接收到 RLC SDU,這里是通過(guò)RLC和PDCP之間的單個(gè) RLC信道接收,從接收到的RLC SDU形成RLC data PDU之后,RLC entity通過(guò)單個(gè)邏輯通道再將RLC data PDUs往MAC傳。 如果RLC entity從MAC 接收 RLC data PDUs,這里也是通過(guò)單個(gè)邏輯信道接收,將接收到的 RLC data PDUs 形成 RLC SDU 之后,RLC entity再通過(guò) single RLC 信道將 RLC SDU 傳遞給PDCP。 如果RLC與MAC 層進(jìn)行的是RLC control PDUs的傳輸,要用和傳輸RLC data PDU 的相同邏輯信道進(jìn)行。
RLC entity可以配置AM/TM/UM三種模式之一進(jìn)行數(shù)據(jù)傳輸。 因此,根據(jù) RLC entity配置傳輸模式,RLC entity分為 TM RLC entity、UM RLC entity或 AM RLC entity。
TM RLC entity被配置為transmitting TM RLC entity或receiving TM RLC entity。 transmitting TM RLC entity從PDCP 接收 RLC SDU,并通過(guò)MAC將 RLC PDU 發(fā)送到其對(duì)等 receiving TM RLC entity。 receiving TM RLC entity將 RLC SDU 傳送到PDCP,并通過(guò)MAC從其對(duì)等傳輸 transmitting TM RLC entity接收RLC PDU。
UM RLC entity 和上面的TM RLC entity內(nèi)容相同。
AM RLC entity由transmitting side和receiving side組成。 AM RLC entity的transmitting side從PDCP接收 RLC SDU,并通過(guò)MAC將 RLC PDU 發(fā)送到其對(duì)等 AM RLC entity。 AM RLC entity的receiving side將RLC SDU傳送到PDCP,并通過(guò)MAC從其對(duì)等AM RLC entity接收RLC PDU。上圖對(duì)應(yīng)的就是RLC sub layer的三種傳輸模式的簡(jiǎn)圖。
其實(shí)spec上面這段對(duì)于TM AM UM的描述的是大概過(guò)程,沒(méi)有涉及細(xì)節(jié),所以?xún)?nèi)容基本是一樣的,多少有點(diǎn)重復(fù)廢話(huà)。
RLC SDUs的大小可變,但是size需要是8 bits的倍數(shù),所有 RLC entity types (TM、UM和AM RLC entity)都支持可變大小的 RLC SDUs。
每個(gè)RLC SDU無(wú)需等待來(lái)自 MAC的UL grant的通知,就可以進(jìn)行RLC PDU的構(gòu)造。如果UL grant不夠發(fā)送生成的RLC PDU時(shí),對(duì)于UM和AM RLC entity,可以將RLC SDU進(jìn)行segment,根據(jù)來(lái)自MAC的ul grant將RLC SDU用2個(gè)或多個(gè)RLC PDUs進(jìn)行傳輸;只有當(dāng)MAC通知有UL grant時(shí),RLC PDU才會(huì)提交給MAC。UE在生成多個(gè)MAC PDU時(shí),要避免一個(gè)MAC PDU中包含過(guò)多的非連續(xù)RLC PDU的情況。
下面具體看下每種RLC entity具體功能的描述。
TM RLC entity
TM RLC entity可以通過(guò)BCCH、DL/UL CCCH、PCCH和SBCCH等邏輯信道發(fā)送或者接收的RLC PDUs;TM RLC entity發(fā)送或接收的RLC data PDU是TMD PDU。上圖對(duì)應(yīng)的是兩個(gè)TM peer entity的模型,對(duì)應(yīng)的就是開(kāi)頭TM模式主要用于尋呼消息、系統(tǒng)信息廣播以及SRB0信令的傳輸?shù)拿枋觥?/p>
當(dāng)transmitting TM RLC entity將RLC SDUs 構(gòu)造成 TMD PDU時(shí),不會(huì)對(duì) RLC SDU進(jìn)行分段;也不會(huì)在 TMD PDU 中包含任何 RLC headers,就是啥也不做,直接對(duì)RLC SDU進(jìn)行轉(zhuǎn)發(fā)。當(dāng)receiving TM RLC entity接收到 TMD PDU 時(shí),就會(huì)將 TMD PDU(RLC SDU)傳送到PDCP。
UM RLC entity
UM RLC entity可以通過(guò)DL/UL DTCH、SCCH 和 STCH等邏輯信道發(fā)送/接收 RLC PDU,SCCH和STCH對(duì)應(yīng)V2X,到手機(jī)這方面對(duì)應(yīng)的就是DTCH,具體的可以是voice 或video等業(yè)務(wù);UM RLC entity發(fā)送和接收的RLC data PDU對(duì)應(yīng)的是UMD PDU。
一個(gè) UMD PDU可以包含一個(gè)完整的RLC SDU或一個(gè)RLC SDU segement。上圖對(duì)應(yīng)的是兩個(gè)UM peer entity的模型。
Transmitting UM RLC entity會(huì)為每個(gè) RLC SDU生成UMD PDU;在UMD PDU中應(yīng)該包含相關(guān)的 RLC headers。 當(dāng)MAC通知有UL grant時(shí),transmitting UM RLC entity應(yīng)根據(jù)需要對(duì) RLC SDU 進(jìn)行segment,同時(shí)也需要更新 RLC headers,以便相應(yīng)的UMD PDU可以滿(mǎn)足RLC PDU的對(duì)應(yīng)UL grant的大小。
當(dāng)一個(gè)receiving UM RLC entity接收到 UMD PDU 時(shí),RLC需要檢測(cè)MAC層的 RLC SDU segment是否有丟失;根據(jù)接收到的 UMD PDU進(jìn)行RLC SDU的重組,并在適當(dāng)時(shí)刻將 RLC SDU傳送到PDCP;當(dāng)MAC層丟失屬于特定RLC SDU的UMD PDU而無(wú)法重組時(shí),就要對(duì)這樣的UMD PDUs做discard處理,UM更注重實(shí)時(shí)性,比如voice業(yè)務(wù),丟掉一兩個(gè)包不會(huì)對(duì)voice有特別大的影響,當(dāng)然前提是不會(huì)大量丟包,出現(xiàn)大量丟包的現(xiàn)象,肯定是傳輸上出現(xiàn)問(wèn)題,需要具體問(wèn)題具體分析。
AM RLC entity
AM RLC entity可以通過(guò)DL/UL DCCH、DL/UL DTCH、SCCH 和 STCH邏輯信道收發(fā)RLC PDU,AM RLC entity發(fā)送和接收的RLC data PDU就是AMD PDU;一個(gè)AMD PDU包含一個(gè)完整的RLC SDU 或一個(gè) RLC SDU segment。
AM RLC entity還可以收發(fā)RLC control PDU即STATUS PDU。
AM RLC entity的transmitting side會(huì)為每個(gè) RLC SDU 生成 AMD PDUs。 當(dāng)MAC通知有UL grant時(shí),transmitting AM RLC entity會(huì)在需要時(shí)對(duì) RLC SDU 進(jìn)行分段,也要根據(jù)需要更新 RLC 標(biāo)頭,以便相應(yīng)的AMD PDU可以滿(mǎn)足RLC PDU的對(duì)應(yīng)UL grant的大小。
AM RLC entity的transmitting side支持通過(guò)ARQ 重傳 RLC SDU 或 RLC SDU segment,如果要重傳的RLC SDU 或 RLC SDU segment(包括 RLC header)大于MAC通知的UL grant size時(shí),AM RLC entity要將RLC SDU 或RLC SDU segment再重新分段,而且重新分割的次數(shù)不受限制。
當(dāng)AM RLC entity的transmitting side要將RLC SDU 或 RLC SDU segment生成AMD PDU時(shí),也應(yīng)該在A(yíng)MD PDU中包含相關(guān)的RLC header。
當(dāng) AM RLC entity的receiving side接收到 AMD PDU 時(shí),就要檢測(cè)是否有重復(fù)接收到相同的AMD PDU,如果有就丟棄重復(fù)的AMD PDU;還要檢測(cè)MAC的AMD PDU丟失并請(qǐng)求其對(duì)等AM RLC entity進(jìn)行重傳;還要將收到的 AMD PDU 進(jìn)行 RLC SDU的重組,然后在滿(mǎn)足條件后將RLC SDU傳送到PDCP。
Services
RLC可以向PDCP提供TM/UM/AM等方式的數(shù)據(jù)傳輸,其中AM傳輸時(shí)還包括PDCP PDU成功傳送的指示。
RLC也可以通過(guò)MAC進(jìn)行數(shù)據(jù)傳輸;MAC在有UL grant時(shí),會(huì)通知RLC并告知對(duì)應(yīng)的UL grant大小,以便RLC確定是否進(jìn)行segment操作。
最后RLC 支持的功能總結(jié)如下:RLC 可以傳輸PDCP PDU;在A(yíng)M傳輸時(shí),可以通過(guò) ARQ 進(jìn)行糾錯(cuò);還會(huì)在UM和AM場(chǎng)景進(jìn)行RLC SDU 的分段和重組;AM傳輸場(chǎng)景,還能對(duì)RLC SDU segment進(jìn)行re-segmentation,也要進(jìn)行duplicate detection,有重復(fù)AMD PDU要做discard處理,還要進(jìn)行Protocol error detection;UM傳輸場(chǎng)景,也可以進(jìn)行RLC SDU discard的操作;還需要進(jìn)行RLC re-establishment。
-
調(diào)制解調(diào)器
+關(guān)注
關(guān)注
3文章
873瀏覽量
39448 -
SCS
+關(guān)注
關(guān)注
0文章
20瀏覽量
10814 -
PHY
+關(guān)注
關(guān)注
2文章
315瀏覽量
52545 -
RLC
+關(guān)注
關(guān)注
1文章
116瀏覽量
39494 -
PDCP
+關(guān)注
關(guān)注
0文章
5瀏覽量
9005
發(fā)布評(píng)論請(qǐng)先 登錄
PROTEUS仿真學(xué)習(xí)筆記匯總帖(7.15)
JZ2440學(xué)習(xí)筆記分享!
從FSMC到擴(kuò)展外部SRAM學(xué)習(xí)筆記總結(jié)
【私藏推薦】Linux學(xué)習(xí)筆記,154頁(yè)高清pdf(強(qiáng)悍總結(jié),值得一看)
NodeMCU學(xué)習(xí)筆記
嵌入式系統(tǒng)方向學(xué)習(xí)筆記分享,絕對(duì)實(shí)用
總結(jié)中斷的筆記
RLC協(xié)議學(xué)習(xí)資料總結(jié)免費(fèi)下載

Linux的基礎(chǔ)學(xué)習(xí)筆記資料總結(jié)
OpenStack之Cinder學(xué)習(xí)筆記

SPI主線(xiàn)協(xié)議——ESP32學(xué)習(xí)筆記

RT-Thread學(xué)習(xí)筆記 --(6)RT-Thread線(xiàn)程間通信學(xué)習(xí)過(guò)程總結(jié)

C語(yǔ)言和STM32學(xué)習(xí)的一些學(xué)習(xí)筆記
NR RLC部分的學(xué)習(xí)筆記總結(jié)(二)

評(píng)論