5G QoS - ianchen0119/Introduce-to-5GC GitHub Wiki

什麼是 QoS?

QoS (Quality of Service) 是一種控制機制,它能夠對資料流的流量與速率進行控制。 一般來說,電信營運商都會有 QoS 的需求,因為他們需要對使用者的流量、網路速度進行控制,以台灣的 4G 吃到飽方案來看,費率從 199 - 1899 不等,方案之間的差異除了每個月固定的市話額度不同,剩下的就跟 QoS 有關了,本篇文章會搭配 3GPP TS 23.501 與筆者個人的初淺的理解來向大家說明 QoS,如果內容有誤歡迎大家在留言處指正。

5G QoS model

5G QoS model 以 5G QoS flow 為基礎,每一個 5G QoS flow 都可以依據是否有保證速率劃分成:

  • GBR (Guaranteed Bit Rate) flow
  • Non-GBR flow

兩者的差異也如上面所說,GBR flow 會有一定的服務品質保證,而 Non-GBR flow 只會提供一個最大的傳輸速率,這倆者因為功能上的不同所以會有不同的 Information Element (IE),這些 IE 也會在稍後進行補充。 在更深入的探討 GBR 與 Non-GBR 的差別之前,筆者統整了一些 TS 23.501 上關於 QoS Flow 的重要描述:

1. QoS Flow is the finest granularity of QoS differentiation in the PDU Session.

5G 網絡以 Data Packet 的形式將 UE 和外部網絡 PDN (Public Data Network) 之間的資料進行傳輸。 PDU (Packet Data Unit) Session 則是 UE 與外部網路之間的一個數據通道,每一個 PDU Session 可以根據不同的規劃分配不同的 QoS Rule,而最好細分 QoS 的方式就是使用 QoS flow。

2. A QoS Flow ID (QFI) is used to identify a QoS Flow in the 5G System.

如果在 PDU Session 內有多個 User Plan traffic 具有同樣的 QFI,那麼這些 traffic 會得到相同的對待,這裡的對待是指:排程、門檻值...等等。 QFI 會被封裝在 GTP-U 封包的 Header 當中(也就是 N3 與 N9 這兩個 Reference point),QFI 的值可以跟 5QI 相同也可以被動態的指派。

3. QoS Any QoS Flow is characterized by:

  • (R)AN 可以透過預先設定或是由 SMF 透過 N2 (AMF) 取得 QoS Profile
  • UE 可以透過 Reflective QoS Control 或是由 SMF 透過 N1 (AMF) 取得一個或多個 QoS Rule 以及一些可選的 QoS parameters
  • UPF 可以取得由 SMF 提供的 Uplink/Downlink PDR(s)

對每一個 QoS Flow 來說,QoS Profile 都需要包含:

  • 5QI (5G QoS ID)

    5QI 是一個用來識別 QoS 特徵的參考,不同的 5QI 會 mapping 不同的 QoS 參數,這些參數包含了 Packet Error RateResource TypePriority Level...等. 等。 詳細的資料請參考 TS 23.501 Standardized 5QI to QoS characteristics mapping 章節。

  • ARP (Allocation and Retention Priority)

    • ARP 代表 QoS Flow 的搶佔能力,從最高到最低為 1 到 15。
    • ARP 通常會用於 GBR QoS Flow 上(為了保證一定的 QoS)。

對 Non-GBR QoS Flow 來說,它可能會包含:

  • RQA (Reflective QoS Attribute)

    如果 SMF 並沒有提供 DL QoS Rule 且 UE 支援 Reflective QoS 的功能,那麼 UE 就能透過收到的 DL Data 反推可能的 QoS Rule 並套用它。 只有當 RAN (透過 N2 從 SMF)收到 RQA Enable 的訊息時,RAN 才會傳輸與這個 QoS Flow 對應的 RAN 資源的 RQI 給 UE。

對 GBR QoS Flow 來說,它必須包含:

  • UL/DL Guaranteed Flow Bit Rate (GFBR) GFBR 用來表示一個 QoS Flow 至少會以這個速率進行傳輸。
  • UL/DL Maximum Flow Bit Rate (MFBR) MFBR 用來表示這個 QoS Flow 的最高速率。

補充:MFBR 或是 GFBR 的單位都是 kb/s

且可能包含:

  • Notification control
  • UL/DL Maximum Packet Loss Rate

4. 每一個 PDU Session 至少都需要有一個套用預設 QoS Rule 設定的 QoS flow,且這個 flow 必須是 Non-GBR flow。

QoS Rule

  • UE 會為 UL 封包進行分類並標記,此外,UE 會透過 PDU Session Establishment 或是 PDU Session Modification procedure 來通知核網 UE 本身支援哪些 Packet filter。
  • UPF 會對 DL 封包進行分類並標記,當 SMF 收到 PDU Session Modification 或是 PDU Session Establishment Request 時,SMF 也會通知 UPF 要更新對應的 QoS Rule。
  • 如果 UE 沒有找到 Matching QoS rule,那麼 UE 會丟棄這個 UL 封包。

核心網路中的 QoS 設計

QoS rules 套用時機

當 UE 發起 PDU establishment request,SMF 會收到由 AMF 發送的 Nsmf_PDUSession_CreateSMContext,這時 SMF 需要做:

  • 使用當前資訊向 PCF 詢問 policy decision
  • 根據 decision 建構相關訊息:
    • PFCP 訊息用於通知 UPF 套用相關的 PDR、QER、FAR...
    • NGAP 訊息用於告知 RAN 需要為 UE 分配多少資源(DRB)
    • NAS 訊息用於告知 UE 它將會使用哪一些 QoS 策略

此外,QoS 會在以下場景需要修改:

1. PDU Session Modification 有可能是:

  • UE 發起
  • RAN 發現無法處理當前的 QoS 需求,由 RAN 發起

2. PCF 發起 SM Policy Association Modification procedure

取自 TS 29.513 Figure 5.2.2.2-1 Interactions between SMF, PCF and CHF for PCF-initiated SM Policy Association Modification procedure

這個流程有可能是因為 UE 的 Subscriber information 更新所引起(更新後發現 UE 不符合當前 QoS 的資格)。

3. [SBI] Nsmf_PDUSession_UpdateSMContext

總結

本篇提到的內容基本上都可以在 TS 23.501 找到,但筆者認為規格書的介紹實在過於抽象、難以理解,所以寫了一份筆記希望可以幫助大家學習。 順帶一提,在過程中我也發現原來 LinkedIn 上有這麼多 5G 相關的學習資源,有很多核心網路與 RAN 的概念都可以透過滑 LinkedIn 學會,算是意外之中的收穫(?)

References