基于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 等,但是该测量技术受到交换设备性能限制,测量精度较粗,而且仅能测量本地设备状态,缺乏对业务流量的端到端感知。混合测量则是尝试结合上述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) 提出基于改进蚁群算法的流量调度算法。优化传统蚁群算法的信息素初始化方式,提出基于最大最小蚁群系统和精英蚂蚁策略的信息素更新方式。基于感知的网络信息计算启发式函数和信息素函数,实现用户面路由路径规划。

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 会话建立请求。控制面解析PDU 会话建立请求后确定PDU 会话相关参数,如DN 名称、UE 位置信息等,并向路由决策子系统请求PDU 会话路由路径。路由决策子系统解析到达的请求,确定PDU 会话的源节点和目的节点,之后向网络状态信息感知子系统请求当前的用户面网络状态信息。路由决策子系统基于状态信息执行流量调度算法,并将PDU 会话路由决策返回给控制面。控制面解析该路由决策,生成相应的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路由机制对比