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