?

基于INT 感知的5G 核心網用戶面流量調度系統

2023-11-19 06:53王超任蒙王尚廣
通信學報 2023年10期
關鍵詞:核心網報文路由

王超,任蒙,王尚廣

(北京郵電大學網絡與交換技術全國重點實驗室,北京 100876)

0 引言

在萬物互聯時代,5G 有效支持了大量新型應用接入和大規模機器類型通信,提供了毫秒級端到端通信時延、百萬級連接密度和每秒數十吉比特的峰值速率,用戶服務體驗明顯提升[1]。隨著工業4.0的到來,元宇宙、虛擬現實、移動游戲等新型移動網絡業務不斷涌現,移動通信數據流量急劇增長,據國際電信聯盟報告,全球移動數據流量將在2030 年達到每人每月5 016 EB[2]。5G 核心網用戶面負責業務數據流量的處理和轉發,如此龐大的流量負載會給5G 網絡運營及管理帶來巨大壓力。如果5G 用戶面不能及時路由數據流量,引起的高時延將會給無人駕駛、智慧醫療等業務帶來災難性后果。因此,對5G 核心網用戶面的流量調度機制進行改進與優化,提升網絡服務質量,將對用戶、服務提供商和基礎設施提供商具有重要意義。

為避免差異化新興業務需求與海量數據流量給5G 網絡造成網絡擁塞和負載失衡等問題,對業務流量進行合理規劃與調度是最直接的解決方案。等價多路徑(ECMP,equal-cost multi-path)算法[3]是廣泛應用于數據中心網絡(DCN,data center networking)的流量調度算法,通過將不同流散列分配到多個等價路徑上,實現負載均衡。但是ECMP 算法通過計算哈希值靜態分配數據流路徑,容易將多數流分配到同一路徑,造成擁塞。Ma 等[4]提出一種面向DCN的基于蟻群算法的流量負載均衡調度算法,該算法提升了鏈路利用率和網絡吞吐量。Silva 等[5]提出一種用于軟件定義網絡(SDN,software defined network)數據平面的動態負載均衡算法,通過動態調整流量路由路徑,明顯降低時延和丟包率。對于5G 核心網的流量調度,Tan 等[6]提出一種面向用戶面的智能路由選擇機制,依據用戶面流量負載選擇開銷最小的路由路徑。此外,Nguyen 等[7]提出一種面向基于矢量包處理的5G 核心網用戶面設備的動態負載均衡算法,考慮了矢量包處理向量速率和會話數量并將它們作為性能指標。但是該算法是基于矢量包處理平臺實現的,缺乏普適性。

雖然上述流量調度算法不同程度地實現了時延、吞吐量、鏈路利用率等性能優化,但是在面向5G 核心網的流量調度算法中,只依靠某一時刻獲取的用戶面狀態來制定流量調度決策,不能跟隨時變的用戶面狀態信息來調整路由決策,缺乏連續性和實時性。為了準確且實時獲取5G 核心網用戶面網絡狀態信息,使其作為路由決策依據,需要引入網絡測量技術[8]。

根據測量方式不同,網絡測量可以分為主動測量、被動測量和混合測量[9]。主動測量將探測包注入網絡,通過觀察分析探測包狀態,進而推測網絡性能,如Ping、Traceroute 等,但是這種測量方式僅能測量網絡時延,局限性較大,而且,主動測量不能保證探測包與業務數據流流經同一條路徑,引入了額外帶寬開銷,因此測量結果往往不準確。被動測量在網絡交換設備上利用流量鏡像或端口轉發來記錄并分析數據流量,如NetFlow、sFlow、SNMP 等,但是該測量技術受到交換設備性能限制,測量精度較粗,而且僅能測量本地設備狀態,缺乏對業務流量的端到端感知?;旌蠝y量則是嘗試結合上述2 種測量方式優點的一種網絡測量技術,帶內網絡遙測(INT,in-band network telemetry)是其典型代表。INT 將報文轉發與網絡測量結合,通過在交換機、智能網卡等轉發設備上收集設備狀態元信息并將其插入報文,從而實現隨路測量。INT 因實時性強、測量精度高、測量數據類型豐富等優點引起了業界的廣泛關注。

在基于INT 的網絡流量調度方面,Yao 等[10]提出一種SDN 中的自學習策略控制架構,為動態生成控制策略,使用INT 收集網絡遙測信息,依據遙測信息運行深度強化學習算法,實現了網絡的閉環控制。針對IEEE 802.11 網絡無法細粒度編程和管理多個網絡的問題,Isolani 等[11]提出一種基于INT 的SDN 框架來收集細粒度網絡統計信息,之后基于INT測量的流量統計數據為應用需求進行網絡切片,以提高服務質量(QoS,quality of service)交付。Katta 等[12]提出一種基于虛擬機監視器的可擴展負載均衡器機制,該機制采用路由追蹤機制,利用INT獲取的鏈路擁塞情況或鏈路利用率來發現可用路徑,通過操縱報頭字段,將流量引導到可用路徑上,避免網絡擁塞。

上述INT 原型系統或方案實現主要基于SDN,以用戶數據報協議(UDP,user datagram protocol)報文作為INT 載體。INT 技術作為一種新型網絡測量技術,為網絡擁塞控制、負載均衡等網絡管理任務提供了細粒度和高精度的實時網絡狀態信息。但是,INT 最初是針對有線網絡設計的,將INT 應用于5G 核心網測量還是一個全新的嘗試,面臨諸多挑戰。首先,INT 遙測報文攜帶遙測指令和遙測數據等固有信息,導致網絡帶寬開銷較大;然后,5G核心網數據傳輸速率和復雜性較高,對網絡性能進行準確測量難度較大,需要保障INT 技術測量結果的準確性;此外,將INT 引入5G 核心網還可能影響不同服務的QoS。因此,本文擬研究基于INT 的5G 核心網用戶面流量調度系統,以探究基于實時網絡狀態的流量調度增益。

5G 核心網采用基于服務的架構(SBA,service-based architecture),將控制面與用戶面分離,用戶面分布下沉到網絡邊緣,實現了用戶面功能(UPF,user plane function)靈活部署,為用戶就近接入和規劃用戶面路徑提供了可能。為保證用戶面流量通信的可靠性,可以在用戶設備(UE,user equipment)和數據網絡(DN,data network)之間建立多條協議數據單元(PDU,protocol data unit)會話連接,以冗余鏈路方式保障通信可靠性。但隨著PDU 會話數量增加,用戶面流量負載增大,可能造成網絡擁塞,而且第三代合作伙伴計劃(3GPP,3rd generation partnership project)5G 核心網標準并沒有為PDU 會話制定負載均衡策略或標準。因此,為了提升5G 核心網服務質量,保證用戶面轉發效率,本文擬設計并實現一個5G 核心網用戶面流量調度系統。利用INT 技術實時高精度感知用戶面狀態信息,并基于該感知信息提出一種改進的路由算法,最終實現PDU 會話高效轉發。

具體而言,本文主要研究內容如下。

1) 提出基于INT 的5G 核心網用戶面網絡狀態信息感知方案。創新性地將INT 技術引入5G 核心網網絡測量中,通過將網絡遙測信息插入GTP-U(GPRS tunnelling protocol user plane)報文中,實現用戶面狀態隨路測量。同時,基于INT 技術規范設計了遙測報文格式,保障遙測信息的添加不影響正常數據流量傳輸。

2) 提出基于改進蟻群算法的流量調度算法。優化傳統蟻群算法的信息素初始化方式,提出基于最大最小蟻群系統和精英螞蟻策略的信息素更新方式?;诟兄木W絡信息計算啟發式函數和信息素函數,實現用戶面路由路徑規劃。

3) 設計實現兼容網絡狀態信息感知和路由決策的5G 核心網用戶面流量調度系統。利用高精度、細粒度的實時感知信息輔助規劃用戶面PDU 會話路由路徑。該系統與Free5GC的聯合部署測試表明,其不僅能有效感知5G 核心網用戶面相關網絡狀態信息,而且流量調度算法較傳統算法實現了更低的端到端時延和丟包率,并確保負載均衡。

1 系統組成

1.1 系統定位

應用功能(AF,application function)為5G 核心網提供額外數據,影響5G 核心網的策略控制,以及邊緣計算應用等高級服務[13]。根據AF 是否與5G 核心網網元處于同一可信域中(由運營商決定),AF 與5G 核心網的交互有2 種模式,如圖1 所示。

當AF 不可信時(AF 是由第三方服務提供商提供的服務),其必須通過網絡開放功能(NEF,network exposure function)提供的接口將相關信息傳輸給其他網元,例如接入和移動性管理功能(AMF)、會話管理功能(SMF)、策略控制功能(PCF)以及統一數據管理功能(UDM)。當AF 可信時(AF 是網絡運營商內部開發的功能),其可以通過服務化接口直接與其他網絡通信。所提流量調度系統將作為5G 核心網控制面中的一個AF,其主要功能是對UE 發起的PDU 會話進行流量調度,同時考慮到當前開源5G 核心網(Free5GC、Free5GS等)均未實現NEF 相關功能,所以本文將所提系統作為一個可信AF,并將其部署于5G核心網控制面。

1.2 流量調度系統架構

5G 核心網通過建立PDU 會話提供UE 與DN間的數據連接,針對PDU 會話規模急劇膨脹導致會話策略相互影響、網絡擁塞,以及缺乏負載均衡策略等問題,本文依據“觀察、判斷、決策、執行”的網絡控制環路思想[14],設計面向5G 核心網用戶面的流量調度系統,主要包含用戶面網絡狀態信息感知與路由決策2 個子系統,如圖2 所示。

圖2 面向5G 核心網用戶面的流量調度系統總體架構

網絡狀態信息感知子系統和路由決策子系統之間通過RESTful 應用程序接口(API,application programming interface)交互,兩者模塊化的設計降低了系統耦合性,并增強了系統的可擴展性。所提系統內部模塊根據部署位置的不同分為控制面模塊和用戶面模塊。流量調度系統部署于5G 核心網控制面,直接與SMF 通信,為其提供流量調度功能。流量調度系統用戶面模塊部署于UPF 上,以實現對5G 核心網用戶面網絡狀態信息的實時感知。其中,網絡狀態信息感知子系統是路由決策子系統運行的基礎,它通過INT 感知并收集用戶面網絡狀態信息,如UPF 間傳輸時延、UPF 內處理時延、UPF 端口帶寬等。網絡狀態信息感知子系統內部采用gRPC[15]實現位于控制面的模塊與位于用戶面模塊之間遙測信息的傳輸。路由決策子系統負責執行流量調度算法,確定當前PDU 會話最佳路由路徑,通過SMF更新相應UPF的包檢測規則(PDR,packet detection rule)、操作轉發規則(FAR,forwarding action rule),最終將決策下發給UPF。具體來說,控制面模塊包含整個路由決策子系統以及網絡狀態信息感知子系統部分功能;用戶面模塊包含INT 信息發送模塊和INT 信息更新模塊。各模塊具體功能如表1 所示。

表1 模塊功能

網絡狀態信息感知子系統和路由決策子系統分別解決核心網用戶面的狀態測量和路由調度問題,2 個子系統的功能相互補充、配合,最終實現高精度、細粒度的5G 核心網用戶面網絡狀態信息感知,并依據狀態信息對新建立的PDU 會話進行路由決策,最終提高核心網服務質量。

1.3 流量調度系統流程

面向5G 核心網用戶面的流量調度系統運行流程如圖3 所示。網絡狀態信息感知子系統在系統啟動時便持續實時感知用戶面網絡狀態信息。

圖3 面向5G 核心網用戶面的流量調度系統運行流程

UE 向5G 核心網控制面發起PDU 會話建立請求??刂泼娼馕鯬DU 會話建立請求后確定PDU 會話相關參數,如DN 名稱、UE 位置信息等,并向路由決策子系統請求PDU 會話路由路徑。路由決策子系統解析到達的請求,確定PDU 會話的源節點和目的節點,之后向網絡狀態信息感知子系統請求當前的用戶面網絡狀態信息。路由決策子系統基于狀態信息執行流量調度算法,并將PDU 會話路由決策返回給控制面??刂泼娼馕鲈撀酚蓻Q策,生成相應的PDR、FAR,并使用包轉發控制協議(PFCP,packet forwarding control protocol)向UPF 發送調度指令。用戶面將調度結果反饋給控制面,最終由控制面將PDU 會話建立結果返回給UE。

1.4 存儲機制設計

INT 元數據經解析后的網絡狀態信息,標識每個INT原始報文的唯一標識符等相關數據均需保存在數據庫中。INT 原始報文是由作為INT 接收節點的UPF 傳輸給INT 收集系統的INT 信息,包括INT報文頭部和所歷經的各個UPF 插入的INT 元數據,其大小受到當前流量帶寬、測量頻率、測量參數等因素影響。本文系統采用MySQL 數據庫實現可靠的數據存儲和高效的數據寫入。此外,當用戶查詢當前網絡狀態信息時,流量調度系統需快速響應以保證數據的實時性,因此,本文系統引入輕量級內存數據庫 Redis 作為系統熱點數據緩存,使用Key-Value 的方式存儲用戶最近查詢的熱點數據,實現對用戶請求的快速響應。為防范因SQL 注入攻擊導致網絡狀態信息數據庫泄露的風險,利用權限設置防止高風險語句執行,同時嚴格檢查輸入變量的類型和格式,防止SQL 注入。針對外部用戶惡意訪問接口導致的系統能力下降的問題,可采用Token 授權認證或者黑白名單等方式實現鑒權。

2 基于帶內網絡遙測的狀態信息感知

2.1 網絡狀態信息感知子系統

網絡狀態信息感知子系統作為路由決策子系統的數據提供方,通過INT 技術實現對5G 核心網用戶面狀態信息的感知,并直接與UPF 進行交互。由于該子系統需要與 Free5GC 聯合部署,而Free5GC 中UPF 的GTP-U 報文處理模式是作為Linux內核模塊開發使用的,因此為使UPF支持INT功能,位于用戶面的INT 信息更新模塊作為Linux內核模塊進行開發,INT 信息發送模塊位于Linux用戶空間,采用Linux 系統中通用的Netlink 功能[16]實現2 個模塊之間的通信。

基于INT 的網絡狀態信息感知流程如圖4 所示。其中,INT 源節點是指創建INT 報頭(INT Header)并將其插入報文的UPF,INT 中間節點是指根據INT報頭中包含的指令收集用戶面遙測信息(元數據)的UPF,INT 接收節點是指提取INT 報頭并收集遙測信息的錨點UPF(PSA-UPF,PDU session anchor-UPF),INT 頭部是INT 遙測信息的報頭,INT 元數據(INT Metadata)是需要收集的網絡狀態信息。

圖4 基于INT 的網絡狀態信息感知流程

2.2 INT 報文結構

5G 核心網用戶面中承載用戶報文的主要協議為GTP-U,該協議為支持未來的應用程序,實現了一些可用于傳輸任意類型數據的GTP-U 擴展頭部,例如在3GPP 5G 核心網標準中已定義了幾個擴展值:PDU 會話容器、服務等級指示器等。完整GTP-U報文格式請參考文獻[17]。

本文將所有INT 信息,包括INT 報文、INT 指令、INT 元數據,均放入GTP-U 擴展頭部,并將其作為一個新的GTP-U 擴展報文類型。若GTP-U 經過的部分路由器、交換機、UPF 不支持INT,該部分網絡設備或UPF 能夠自動忽略GTP-U 擴展報頭中的INT 信息并自動轉發報文,保證數據流量的正常轉發以及網絡性能的準確測量。本文參考P4.org 應用工作組提出的INT 規范[18],結合5G 核心網用戶面狀態信息感知需求,設計圖5 所示的INT 報文格式。

圖5 INT 報文格式

協議版本號(4 bit)固定為2;D(1 bit)代表丟棄標志位,該值為1 時,INT 接收節點在讀取報文INT 元數據后不轉發該報文并丟棄;E(1 bit)代表超過最大跳數標志位,當INT 節點不能添加元數據且剩余跳數為0 時,該值為1;M(1 bit)代表超過最大傳輸單元(MTU,maximum transmission unit)限制標志位;Reserved(12 bit)代表保留位,在INT 源節點該值為1,在其余INT 節點該字段被忽略;Hop ML(5 bit)代表INT 元數據長度;Remaining Hop Count(8 bit)代表允許添加INT 元數據的剩余跳數;Instruction Bitmap(16 bit)是INT指令位圖,每個比特位表示一種網絡遙測數據類型;Domain Specific ID(16 bit)代表INT 域ID,規定當前INT 指令適用的范圍,INT 域ID 為0 時,表示所有INT節點均能根據INT指令插入對應INT元數據。

INT 報頭共8 B,之后INT 報文內容為INT 元數據協議棧。INT 元數據的插入順序受到INT 指令位圖的嚴格限制,以方便INT 收集系統根據數據類型解析對應的INT 元數據。該INT 數據插入方式實現了較強的兼容性,當UPF 不支持INT 時,網絡轉發設備可以自動忽略GTP-U 擴展頭部中包含的不能識別的INT 信息,繼續進行GTP-U 報文轉發,逐步替換原有不支持INT 的UPF 設備,最終實現基于INT 技術的5G 核心網用戶面網絡狀態信息感知。

2.3 INT 報文處理

INT 報文在INT 源節點、INT 中間節點和INT接收節點中的處理方式如下。

1) INT 源節點

INT 源節點根據預先設定的INT 指令和測量頻率對接收到的GTP-U 報文進行封裝,包括INT 報頭和INT 元數據,生成并轉發帶有INT 信息的GTP-U報文。作為INT 源節點的UPF 收到GTP-U 報文后,首先判斷GTP-U報文是否滿足預先設定的測量頻率(設定測量頻率為2f,其中f為8bit的無符號十進制整數),若不滿足則視為普通GTP-U 報文進行轉發;若滿足則進入添加INT 信息的流程。INT 源節點確認需向GTP-U 報文添加INT 信息后,首先檢查該GTP-U 報文是否有足夠空間容納INT 信息,若空間充足,則向GTP-U 擴展頭部中添加INT 報頭,并將INT 源節點元數據插入INT 元數據棧中;若沒有足夠空間容納INT 信息或報文長度超過MTU,則單獨構造GTP-U 格式的遙測報文,同時向該報文添加INT 信息。之后將丟棄指示位D 置1,表示該報文為包含INT 信息的遙測報文,需在INT 接收節點丟棄。最后,更新GTP-U 報文上層協議校驗和(如IP 報頭校驗和),通過UPF 的PDR、FAR 轉發至下一跳UPF。

2) INT 中間節點

INT 中間節點負責采集本地UPF 的INT 元數據,并將其插入具有INT 報頭的GTP-U 報文的INT 元數據棧中。作為INT 中間節點的UPF 首先對收到GTP-U 報文進行解析,若該報文不是包含INT 信息的遙測報文,則根據PDR、FAR 進行轉發;若該報文是帶INT 信息的遙測報文,則根據INT 指令判斷GTP-U 報文是否有足夠空間或當前長度是否超過MTU。如果空間不足或長度超過MTU,則同樣單獨構建GTP-U 格式的遙測報文,并將原GTP-U 報文中的INT 報頭和所有INT 元數據轉移到新構建的GTP-U 報文中,同時將丟棄指示位D 置1;如果空間充足且長度不超過MTU,則將本地UPF 的INT 元數據插入INT 元數據棧中。最后,更新GTP-U 報文上層協議校驗和(如IP 報頭校驗和),按照UPF 的PDR、FAR 進行轉發。

3) INT 接收節點

INT 接收節點除向GTP-U 報文添加INT 信息外,主要負責提取GTP-U 報文中的INT 報頭和INT 元數據,并通過gRPC 將INT 信息發送給INT 收集系統。作為INT 接收節點的UPF 收到GTP-U 報文后進行解析,若該報文非遙測報文,則按照PDR、FAR 進行轉發;若該報文為遙測報文,可按照INT 信息添加流程向該GTP-U 報文添加INT 信息,之后提取所有INT信息,將其通過gRPC 發送給INT 收集系統。若該GTP-U 報文非INT 探測包,即丟棄標志位D 不為1,則刪除包含的所有INT 信息,同時更新GTP-U 上層協議校驗和,根據PDR、FAR 進行轉發;否則丟棄該INT 探測包。

2.4 基于Netlink 的數據傳輸方案設計

在網絡狀態信息感知子系統實現層面,5G UPF的GTP-U 報文解析與轉發功能是以Linux 內核模塊的方式實現的,對應程序運行在Linux 內核空間。UPF 轉發用戶面GTP-U 報文時,所有GTP-U 報文均在Linux 內核空間中實現解析與轉發。因此,網絡狀態信息感知子系統向GTP-U 報文中添加INT 報頭和INT 元數據的功能也必須在Linux 內核空間實現,但gRPC 框架只有處于Linux 用戶空間時才能使用。所以,本文系統基于Netlink 通信框架將位于Linux內核空間的INT 信息更新模塊采集到的INT信息傳輸給位于Linux 用戶空間的INT 信息發送模塊。

網絡狀態信息感知子系統實現的適用于INT的Netlink 子協議號為31。該數據傳輸方案中,從Linux用戶空間向Linux 內核空間發送的消息為控制信令,主要功能是設置UPF 所對應的INT 角色,設置測量頻率和需要感知的網絡狀態信息類型,從Linux 內核空間向Linux 用戶空間發送的消息為UPF 作為INT 接收節點提取到的所有INT 信息。

位于用戶空間的INT 信息發送模塊和位于內核空間的INT 信息更新模塊之間的消息交互過程如圖6 所示。

圖6 消息交互過程

在該數據傳輸方案中,首先加載INT 信息更新模塊,使其創建內核空間的Netlink 套接字,INT信息更新模塊在內核空間采用netlink_unicast()函數對指定進程標識符(PID,process identifier)的用戶空間進程進行通信,所以需要INT 信息發送模塊率先使用send()函數發送初始消息到內核空間,使INT信息更新模塊能夠獲取PID。

3 基于改進蟻群算法的路由決策

3.1 路由決策子系統

路由決策子系統是5G 核心網用戶面流量調度系統的控制中樞,其與網絡狀態信息感知子系統交互獲取5G 核心網用戶面狀態信息,如UPF 端口帶寬、UPF 間鏈路時延、UPF 內處理時延等,通過運行流量調度算法,生成PDU 會話路由決策,保障不同用戶服務的QoS。同時路由決策子系統直接與5G 核心網控制面的SMF 交互,獲取流量調度請求并將流量調度決策下發。路由決策子系統邏輯架構如圖7 所示。

圖7 路由決策子系統邏輯架構

3.2 路由決策子系統算法設計

路由決策子系統的目的是通過運行流量調度和路由算法,在5G 核心網用戶面現有時延和帶寬等條件約束下,為新建的PDU 會話規劃一條合理路由路徑,避免網絡擁塞的同時提高用戶面通信鏈路利用率與PDU 會話吞吐量,降低PDU 會話時延。本文借鑒蟻群算法在尋找最優路徑方面的分布式計算、魯棒性強、不需要全局信息等特點[19-20],將5G 核心網用戶面當前網絡狀態信息(鏈路時延、UPF 吞吐量等)加入螞蟻尋路過程中。在已有的基于蟻群算法的網絡路由相關工作中,網絡狀態信息是固定配置的,蟻群算法不能實時動態感知變化的網絡環境。本文提出一種基于改進蟻群算法的流量調度(IAC-TS,traffic scheduling based on improved ant colony)算法,利用INT 狀態信息感知系統為蟻群算法提供動態網絡信息,在一次迭代中每一只螞蟻單獨對從基站到DN 的路徑進行搜索,形成備選路徑集合。之后,更新螞蟻經過路徑的信息素并開始下一次迭代。隨著迭代次數增加,螞蟻會集中到信息素濃度較高的幾條路徑上,直至到達指定迭代次數,獲取最優路由路徑集合。實現過程如下。

1) 信息素初始化

使用常數對信息素初始化的方式容易導致收斂速度過慢,為避免該問題,將網絡鏈路的信息素初始值設為

其中,τij(0)表示初始鏈路(i,j)上的信息素含量,在5G 核心網用戶面流量調度背景下,該值表示鏈路的可用帶寬;表示鏈路(i,j)的最大可用帶寬;Txij表示鏈路(i,j)在時間T內發送的字節數。

2) 螞蟻轉移

螞蟻的初始位置均位于作為源節點的UPF 上。規定螞蟻路徑不能形成環路,因此每只螞蟻都會維護一個禁忌表,該表存放螞蟻經過UPF 節點ID。螞蟻依據鏈路信息素濃度計算轉移到下一個節點的概率,計算方式為

其中。i和j分別表示螞蟻的當前節點和下一跳節點,τij(t)表示時刻t鏈路(i,j)上的信息素濃度,ηij(t)表示時刻t鏈路(i,j)上的啟發信息,α和β分別表示信息素濃度和啟發信息的權重因子,表示位于節點i的螞蟻k所有未經過節點的集合。

ηij(t)計算式為

若螞蟻所有相鄰節點均在禁忌表中,則該螞蟻的此次路徑搜索失敗。否則,螞蟻通過輪盤賭方式選擇下一跳節點,同時檢查禁忌表中是否包含源節點和目的節點,若包含則搜索成功。否則,螞蟻重新計算轉移概率并選擇下一跳節點。

3) 信息素更新

所有螞蟻執行完一次路徑搜索,即完成一次迭代后,將所得有效路徑通過Top-k算法選擇最優的k條路徑添加到候選路徑集中,之后,根據式(5)更新當前鏈路信息素濃度

其中,τij(t+Δt)是經過時間Δt后鏈路(i,j)的信息素濃度,ρ(0 〈ρ〈1)是信息素揮發因子。為提升蟻群算法前期的搜索能力和后期的收斂速度,ρ的取值方式為

其中,I表示算法的當前迭代次數,Imax表示最大迭代次數。

之后再次更新候選路徑集中k條鏈路的信息素濃度以增加優質鏈路的信息素濃度,保證鏈路質量,即

其中,Δτij表示鏈路(i,j)新增的信息素濃度;Δ(t)表示第n只螞蟻在鏈路(i,j)上釋放的信息素濃度;m表示蟻群大??;Ln表示第n只螞蟻走過的路徑總長度,以路徑總時延表示;Q表示信息素總濃度,為一常量;eij表示以i,j為端點的UPF 鏈路;P表示候選路徑集;μ表示候選路徑的信息素增量因子。

為防止鏈路信息素濃度出現極端情況導致螞蟻搜索路徑不準確,基于最大最小蟻群思想對信息素增量 Δτij進行限制,即

其中,τmax、τmin分別表示鏈路(i,j)的最大、最小信息素濃度。為模擬現實網絡狀態,本文仿真實驗將可用帶寬限制在[5,12]Mbit/s。

3.3 基于改進蟻群算法的流量調度方法

算法執行到最大迭代次數Imax后,在候選路徑集中隨機選擇一條鏈路作為PDU 會話的最終路由路徑,算法的具體實現過程如算法1 所示。

算法1IAC-TS 算法

28)end Func

算法1 中1)~17)行用于計算獲取最優路徑,每只螞蟻在成功搜索到從源節點到目的節點的一條鏈路后,對所有鏈路信息素濃度進行更新,采用Top-k算法選出k條候選路徑。18)~28)行表示單只螞蟻搜索最優路徑的過程,采用輪盤賭算法選擇下一跳節點,并用式(2)計算下一跳節點的選擇概率。

4 系統驗證

4.1 實驗環境

本文所提系統旨在實現5G 核心網用戶面流量優化調度,具體地,通過INT 技術對用戶面網絡狀態信息感知,并基于路由決策子系統的路由算法實現PDU會話路由路徑規劃。將所提5G 核心網用戶面流量調度系統與Free5GC 進行聯合部署,測試環境如表2 所示。

表2 測試環境

4.2 網絡狀態信息感知功能驗證

網絡狀態信息感知子系統負責監控5G 核心網用戶面網絡狀態,通過INT 技術實時獲取網絡狀態信息,包括用戶面鏈路時延、UPF 內GTP-U 報文處理時延、UPF 端口吞吐量等。網絡狀態信息感知子系統功能測試拓撲如圖8 所示。

圖8 網絡狀態信息感知子系統功能測試拓撲

該網絡拓撲包括一個5G 基站(gNB)、3 個具有INT 功能的UPF、一個基于Docker 部署的DN,以及5G 核心網控制面(包含完整的核心網功能、路由決策子系統功能、部分網絡狀態信息感知子系統功能)。在UE 中運行Iperf 以模擬PDU會話建立請求,UPF1-UPF3 分別作為INT 源節點、INT 中間節點、INT 接收節點,最終將報文發送至DN。

4.2.1 INT 功能測試

利用UERANSIM建立一條從UE到DN的PDU會話路徑,在UE 上發送測試報文并使用Wireshark抓包,以驗證GTP-U 報文中是否攜帶INT 信息,測試結果如圖9 所示。

圖9 測試結果

測試結果顯示,UPF1 向該報文的GTP-U 擴展頭部中插入了INT 報頭和INT 元數據,UPF2 作為中間節點僅插入了INT 元數據,UPF3 將本地設備收集的INT 元數據和GTP-U 報文中的所有INT 信息一同發給位于5G 控制面的INT 收集系統。該測試結果說明INT 功能可以正常使用。

4.2.2 不同遙測參數對吞吐量的影響

本節實驗測試不同遙測參數對PDU 會話吞吐量產生的影響。實驗選用3 種典型的INT 參數的不同組合進行測試:RX+TX 表示測量報文經過UPF 端口的接收/ 發送的字節數,Egress TS+Ingress TS(Timestamp)表示測量報文經過UPF 出口/入口的時間戳,None 表示未啟用INT功能。不同遙測參數組合對吞吐量的影響如圖10所示,其中遙測間隔是指向每n個報文中插入一項INT 元數據。

未啟用INT 功能時,PDU 會話帶寬是一個定值。隨著遙測間隔減小,即測量頻率升高,不同遙測參數組合的PDU 會話帶寬都會明顯降低,而且更多遙測參數的組合會在測量頻率升高時使PDU 會話帶寬快速下降,原因是過高的測量頻率會導致在報文中插入了大量的INT 信息,UPF 內部處理時延明顯增加,UPF 端口擁塞,從而導致吞吐量下降。因此,過多的遙測參數會對PDU 會話性能產生不利影響。

4.2.3 不同遙測參數對時延的影響

通過分析用戶面GTP-U 報文中的INT 元數據,獲取UPF1 到UPF3 的單向傳輸時延。不同遙測參數組合對傳輸時延的影響如圖11 所示。

圖11 不同遙測參數組合對傳輸時延的影響

從圖11 可以看出,在不同的遙測參數組合下,測量頻率會影響PDU 會話時延。遙測間隔越小,即測量頻率越高,傳輸時延越大,這也與GTP-U 中的INT 信息處理有關。因此在實際部署INT 功能時,需要對測量精度與對PDU 會話質量產生的影響進行權衡。

4.2.4 不同遙測參數對UPF CPU 利用率的影響

本節實驗測試不同遙測參數在不同遙測間隔下對UPF3,即INT 接收節點的CPU 利用率的影響,在UPF3 上監控該設備的CPU 利用率,實驗結果如圖12 所示。

圖12 不同遙測參數在不同遙測間隔下對接收節點CPU 利用率的影響

隨著遙測間隔減小,即測量頻率提升,不同遙測參數組合的UPF3 的CPU 利用率都快速提升。一方面,INT 接收節點設備本身在收集INT信息和提取INT 信息時會占用一定CPU;另一方面,系統采用的Netlink 和gRPC 技術頻繁向INT收集系統發送INT 信息也會占用CPU。因此,需要選擇合理的測量頻率,將INT 引入對CPU 的額外占用的影響降到最小。

4.2.5 鏈路負載變化對UPF 處理時延的影響

本節實驗通過改變PDU 路徑上各個UPF 的背景流量大小,測量UPF 單跳處理時延來測試INT的效果。將鏈路帶寬設置為30 Mbit/s,背景流量設置為40 Mbit/s,目的是模擬鏈路中存在擁塞的情況。在UE 上通過Iperf 向DN 發送UDP 報文,測量不同遙測間隔對UPF3 單跳時延的影響,實驗結果如圖13 和圖14 所示。

圖13 UPF 單跳時延(遙測間隔為一個報文)

圖14 UPF 單跳時延(遙測間隔為8 個報文)

在遙測間隔減小,即遙測頻率提升的情況下,所探測的GTP-U 報文數量增加,因此UPF 的處理開銷增大,使GTP-U 報文轉發時延增加。另外,由于設置的背景流量大于鏈路帶寬,因此會有部分GTP-U 報文的處理時延偏高。

4.3 流量調度功能驗證

本節對由網絡狀態信息感知子系統和路由決策子系統組成的整個流量調度系統進行測試。首先路由決策子系統接收SMF 發送的PDU 會話路由請求;然后從網絡狀態信息感知子系統感知用戶面網絡狀態信息,計算PDU 會話路由路徑;最后將路由決策返回給SMF,由SMF 下發路由決策。流量調度系統功能測試拓撲如圖15 所示。用戶面共包含11 個UPF,UPF1 作為INT 源節點,UPF9-UPF11 作為INT 接收節點,其余UPF 均為INT 中間節點。

圖15 流量調度系統功能測試拓撲

4.3.1 PDU 會話流量調度功能測試

本節實驗測試路由決策子系統與SMF 之間的連通性。將所提流量調度系統與Free5GC 聯合部署,通過UERANSIM 模擬的UE 發起PDU 會話建立請求,發送數據報文進行測試,在網絡狀態信息數據庫中查詢報文中的INT 元數據,通過跟蹤該報文的路徑信息,判斷是否執行正確的路由決策。

圖16 顯示了運行流量調度系統后,UE 建立PDU 會話連接時的5G 核心網運行結果。

圖16 5G 核心網運行結果

由圖16 可知,在UE 請求建立PDU 會話過程中,SMF 向流量調度系統請求對應PDU 會話的路由路徑,最終完成PDU 會話建立。解析完成后的INT 元數據如圖17 所示。

圖17 解析完成后的INT 元數據

圖17 顯示了2 個攜帶INT 信息的GTP-U 報文經過不同的UPF,data_id 為3801616~3801618 是第一個報文,data_id 為3801619~3801621 是第二個報文,node_id 是GTP-U 經過的不同UPF 的編號,結果顯示路由決策子系統選用了不同的UPF 對GTP-U 報文進行了轉發。

4.3.2 不同算法對PDU 會話流量調度性能的影響

PDU 會話建立完成后,在DN 中設置Iperf 服務端程序測量PDU 會話端到端時延、帶寬以及丟包率,UE 通過Iperf 客戶端發送UDP 報文模擬數據流量。設置UE 每隔10 s 發起一個新的PDU 會話請求,每個成功建立的 PDU 會話均發送帶寬固定為1.05 Mbit/s的UDP報文,發送報文持續時長為200 s,直至建立10 條PDU 會話。將所提IAC-TS 算法與傳統路由算法(包括最短路徑算法、ECMP 算法,以及廣度優先搜索(BFS,breadth-first search)算法)進行性能對比,實驗結果如圖18~圖20 所示。

圖18 端到端傳輸時延

圖19 端到端平均吞吐量

圖20 端到端平均丟包率

從圖18~圖20 可以看出,所提IAC-TS 算法在網絡負載相同的情況下,PDU 會話的端到端傳輸時延和丟包率均低于最短路徑算法、ECMP 算法和BFS 算法,而平均吞吐量具有明顯提升。具體來看,較其他算法,IAC-TS 算法的端到端傳輸時延平均降低72.03%,端到端平均吞吐量平均提升9.88%,端到端平均丟包率降低76.1%。說明基于改進蟻群算法的路由方案使路由決策子系統能夠做出更好的PDU 會話路由決策,避免用戶面網絡擁塞,提升PDU 會話吞吐量和帶寬,達到了負載均衡效果,進而提升了服務質量。

5 結束語

5G 復雜應用和龐大業務流量對核心網服務質量提出更高需求。本文設計并實現了5G 核心網用戶面流量調度系統,包含網絡狀態信息感知子系統和路由決策子系統。網絡狀態信息感知子系統采用INT 實現高精度、細粒度的用戶面狀態信息感知,路由決策子系統依據用戶面狀態信息,執行基于改進蟻群算法的流量調度算法,生成PDU 會話路由路徑。在測試階段,將所提流量調度系統與Free5GC聯合部署,證明了所提系統能夠以較小的網絡開銷實現對用戶面狀態信息的感知,而且所做PDU 會話路由決策在時延、吞吐量和丟包率等方面均優于其他幾種路由決策算法。

在未來工作中,將進一步改進INT 信息收集架構,避免因測量頻率提升導致INT 信息占用大量帶寬的問題;此外,需要實現測量頻率、網絡狀態參數自動調整以節約測量開銷并快速定位網絡問題;還將考慮采用更加先進高效的流量調度算法來提升5G 核心網用戶面數據流量的路由效果。

猜你喜歡
核心網報文路由
基于J1939 協議多包報文的時序研究及應用
CTCS-2級報文數據管理需求分析和實現
GSM-R核心網升級改造方案
淺析反駁類報文要點
探究路由與環路的問題
5G移動通信核心網關鍵技術
通信核心網技術的應用探討
ATS與列車通信報文分析
VoLTE核心網建設方案
PRIME和G3-PLC路由機制對比
91香蕉高清国产线观看免费-97夜夜澡人人爽人人喊a-99久久久无码国产精品9-国产亚洲日韩欧美综合