Data Link Layer in 5G NR - ianchen0119/Introduce-to-5GC GitHub Wiki
-
對於 Control Plane,NAS (Non-Access Stratum) 乘載了 control-plane 訊息,讓這些訊息能夠在 UE 與 EPC/5GC 之間流通。
-
而 Data Plane 使用 PDCP (Packet Data Convergence Protocol) 對 packet 進行加密與完整性保護,RLC (Radio Link Control) 提供可靠的資料傳輸、MAC 管理上行與下行的無線資源存取,PHY layer 為無線訊號的處理提供支援。
本篇文章會從上到下依序介紹 PDCP、RLC 以及 MAC 協定。
PDCP
- PDCP 會將來自上層的資料視為 Service Data Unit,經過該協定處理並封裝後,SDU 會變成 Protocol Data Unit 向下傳遞給 RLC 層。
- PDCP 負責以下內容:
- 封包標頭的壓縮與解壓縮
- 資料加解密
- 完整性保護
- PDCP 將 Protocol Data Unit 分為兩類:
- 帶有資料以及序列號碼的 PDCP Data PDU
- 帶有 PDCP Status Report 或 Header Compression Control 的 PDCP Control PDU
- 資料完整性保護只使用於 Signaling Radio Bearer (SRB),也就是只能用於 Signaling message 的傳輸
- 標頭壓縮只適用於 Dedicated Radio Bearer (DRB),也就是只能用於 Data Packet 的傳輸
- 利用 PDCP Data PDU 的序列號碼,可以在 PDCP 子層將下層送來的資料進行重組以確保上層資料的順序性與完整性不會出錯
RLC
當 RLC 子層將收到來自上層提供的資料視為 SDU ,並對它進行切割與重組,處理完後會將產生的 PDU 傳遞給 MAC 子層。
- 在獲得 MAC 子層的指示後,RLC 才能將 PDU 傳遞給 MAC 子層
- 否則這些處理好的 PDU 會先存放至 RLC 的 Buffer Area
- 經過 RLC 子層處理後的 PDU 標頭也包含了序列號碼,可以幫助接收端收到資料時對封包進行重組與排序 除此之外,RLC 最重要的工作還有 ARQ (Automatic Repeat Request)。
RLC Mode Types
RLC 一共有三種操作模式:
- Transport Mode
- Acknowledge Mode
- Unacknowledged Mode
關於這三種操作模式的細節,可以參考 TS 36.322。
Transport Mode
在 Transport Mode 下,RLC 不會對 SDU 進行任何處理直接轉接給 MAC 子層,這個模式是三種模式裡面最高效的做法。
Unacknowledged Mode
會為 SDU 添加 RLC 標頭,並且對資料進行重組與排序,但是不會對出錯的資料進行糾正(ARQ)。
Acknowledge Mode
大致上與 Unacknowledged Mode 相同,並且支援 ARQ。
MAC
MAC 子層負責以下工作:
- Scheduling
- Multiplexing
- 產生 MAC 子層的 PDU
- 使用 HARQ 防止 RLC PDU 遺失的情況發生
Multiplexing
Multiplexing 的目的是讓屬於不同邏輯通道的資料可以在同一個實體通道上進行傳輸(利用 Logical Channel ID 做到),這部分的工作會由發送端進行處理。 等到接收端收到資料時,會將這些資料進行解多工,將實體通道的資料拆分成多個邏輯通道。
Scheduling
基地台的排程機制會在 MAC 子層上實作,排程器可以根據每個資料流的 Priority 來決定誰能被優先傳輸。 如果對核網資料傳輸的優化有興趣,可以從這一塊下手進行排程器的研究。
補充:ARQ (Automatic Repeat Request)
ARQ 可以幫助我們檢查資料遺失,並針對遺失的部分要求重傳、進行資料重組。 常見的 ARQ 機制有:
- Stop-And-Wait ARQ (SAW ARQ)
- 收到一筆資料時會對它進行檢查,如果 SQN 是正確的,會回應發送端一個 Ack。
- 反之,如果在 Waiting Time 結束前都沒有收到資料,會向發送端傳送一個 Nak。
- Go-Back-N ARQ (GBN ARQ)
- GBN ARQ 會以 N 個資料為一個 Frame,如果 Frame 的其中一個資料有誤,就會重新傳送整個 Frame Data(即是其他資料有正確接收)。
- Frame 的 N 是可變的。
- Selective-Repeat ARQ (SR ARQ)
- SR ARQ 只會對發送端要求指定的資料,假設第 3 個資料塊有誤,SR ARQ 在收到重傳的第 3 塊資料之前還是可以先接收第 4, 5, 6, 7 塊資料,不會 Blocking 整個資料的收送。
- 當然,在提高 Throughput 的同時也是要付出代價的,SR ARQ 需要將資料進行緩存,等到所有資料都收到了以後才能進行重組並傳輸到上一個網路層或是子層。