APP下载

基于强化学习的网络拥塞控制算法

2024-04-09李凡李慧斯马文丹

科技创新与应用 2024年10期
关键词:强化学习仿真实验学习方法

李凡 李慧斯 马文丹

摘  要:该文结合强化学习方法提出一种QLCC算法,此算法是将网络拥塞过程进行简化之后描述为马尔科夫决策过程,在Q-learning算法应用的基础上创新设计的新型网络拥塞控制算法。研究过程中首先介绍强化学习方法,并对网络拥塞过程中马尔科夫决策过程的构建条件及假设进行探讨,之后从框架结构、参数结构及定义、参数离散划分和更新步骤几个方面介绍QLCC算法,并采取仿真实验方法对该种新算法的网络吞吐量、公平性、随机丢包环境下的吞吐量分别进行检测,通过与其他3种传统网络拥塞控制算法进行对比分析,证实QLCC算法具有吞吐量较佳、公平性最高、抗丢包性能最优的性能,说明其是一种具有较高应用优势的智能化网络拥塞控制算法。

关键词:强化学习;QLCC算法;网络拥塞控制;学习方法;仿真实验

中图分类号:TP393.0      文献标志码:A          文章编号:2095-2945(2024)10-0055-04

Abstract: In this paper, based on reinforcement learning, a QLCC algorithm is proposed, which describes the network congestion process as a Markov decision process and innovatively designs a new network congestion control algorithm based on the application of Q-learning algorithm. In the course of the research, the reinforcement learning method is first introduced, and the construction conditions and assumptions of Markov decision process in the process of network congestion are discussed, and then the QLCC algorithm is introduced from the aspects of frame structure, parameter structure and definition, parameter discrete partition and update steps. However, simulation experiments are used to test the network throughput, fairness and throughput of the new algorithm in random packet loss environment. By comparison and analysis with other three traditional network congestion control algorithms, it is proved that QLCC algorithm has better throughput, highest fairness and best anti-packet loss performance, indicating that it is an intelligent network congestion control algorithm with high application advantages.

Keywords: reinforcement learning; QLCC algorithm; network congestion control; learning method; simulation experiment

在互联网高速发展的过程中,网络上数据传送量不断增大,若网站端点传输数量超过网络最大承受范围,便会形成网络拥塞,为此,相关专家针对特定网络环境提出了网络拥塞控制算法。网络环境不断改变的同时,网络拥塞控制算法也需要持续优化,需要考虑到多方面影响因素,因此网络拥塞控制算法性能的优化难度相对较高。而基于人工智能的智能化网络拥塞控制算法可以针对网络环境进行模型的预建与虚拟,因此,网络拥塞控制算法呈现出了向智能化与模型化设计方向发展的趋势。为此,基于强化学习思想,利用O-learning算法求解构建拥塞控制模型,是优化网络拥塞控制算法的新路径。

1  强化学习方法

强化学习是一种人工智能机器学习方法,主要是通过试错类学习,在交互过程中不停试错从而实现自动寻优[1]。强化学习由5个部分实现,分别是智能体、外部环境、状态空间、动作空间及反馈。其中,智能体指的是决策及行为的分析模型,而状态空间分别是环境量化的表示方式及智能体执行动作的集合。反馈则是指外部环境对智能体动作执行所作出的评价。强化学习中的智能体及环境,可以利用状态、动作,在奖励激励下产生交互。在强化学习过程中,智能体首先执行动作,然后环境会立即向新状态转变,并对新状态给予正激励或负激励。智能体在新状态及新环境反馈下获得奖励激励后,会采用持续性获得最多奖励的策略执行后续动作。基于强化学习方式了解何种状态下做出何种动作方可实现奖励最大化,是智能体的最终目的。强化学习基本过程如图1所示。

2  网络拥塞过程中马尔科夫决策过程的构建

马尔科夫决策过程是实现强化学习的基础,而此过程的构建有2个必要条件,一是在当前状态执行当前动作后才可进入下一状态。二是当前状态前期状态与下一状态之间并无关联[2]。因此,网络拥塞控制过程符合这2个条件后,方可基于马尔科夫决策过程构建网络拥塞控制模型。由于传统网络拥塞控制算法采用的是将网络拥塞控制过程直接假设为马尔科夫决策过程的简单假设方式,会出现关键信息丢失现象。为此,本文提出简化网络拥塞过程,使此过程与马尔科夫决策过程更加匹配,并且采用强化学习方法实现网络拥塞控制过程求解过程的简化。由于传统网络拥塞控制算法的数据报传送时间延时效应与马尔科夫控制过程不相匹配,为此,基于强化学习的网络拥塞控制算法是在当前网络链路带宽探测的基础上,寻求最优数据发送速率点,不必进行队列填充,但要确保瓶颈链路有持续的数据包传输。也就是说网络链路中没有数据包排列现象。假设网络拥塞控制过程数据发送速率与最优操作点完全契合,那么,本文假设的网络拥塞过程将具备2个性质,一是在网络链路资源得到充分利用的前提下,将最优操作点的网络传输速率作为最大传输速率。二是数据包不排队不会出现时间延遲现象,且此时网络链路的传送时间延时值最低。此操作使网络拥塞过程得以简化,可与马尔科夫决策过程的构建条件相吻合。因此,可利用马尔科夫决策过程构建网络拥塞控制模型,之后,再利用强化学习方法优化与求解此模型。

3  QLCC拥塞控制算法

3.1  QLCC算法框架

Q-Learning算法属于强化学习的基础性、离用化算法,此算法可利用时间差分法估算值函数。为化解网络拥塞问题,本文采用Q-Learning算法构建智能化网络拥塞控制算法的模型。以Q-Learning算法为基础构建的网络拥塞控制算法(QLCC)框架图如图2所示。

3.2  QLCC算法参数结构及定义

此算法以传统网络状态参数向量、接收反馈信息参数为输入,并以当前网络状态最佳窗口调节动作为输出。在利用Q-learning算法时,由于其具有离散化特征,为避免多特征参数设置时可能出现维度爆炸等问题,且为达到提高算法运算效率的目的,可以利用Remy拥塞控制算法的参数描述当前网络状态[3]。参数符号共有3个,一是ack_ewma,表示2个连续接收确认数据包的平均时间差值;二是send_ewma,代表接收到确认数据包所对应的发送数据包移动平均时间差值;三是rtt_ratio,指的是最新RTT数值及历史最小RTT数值之比。而QLCC算法的动作空间参数结构复杂,包含5个拥塞控制窗口调节动作,分别是cwnd=cwnd、cwnd=cwnd-1、cwnd=cwnd-1/cwnd、cwnd=cwnd+1和cwnd=cwnd+1/cwnd。其中,cwnd=cwnd表示收到确认数据包时网络发送窗口大小不发生改变,而其他4个动作依次代表收到确认数据包时,减少一个单位大小、减少一个当前窗口单位大小、增加一个单位大小和增强一个当前窗口单位大小。

3.3  QLCC算法参数离散划分

Q-Learning算法属于强化学习中的一种离散化算法,用于描述各个网络状态的参数均具有离散化特征,可采用离散化的形式表示本文所选用的3个连续参数,这3个参数的离散划分数量并不一致,rtt_ratio参数,直接离散划分即可,而send_ewma、ack_ewma 2个参数需要经过归一公式处理后再进行离散划分,公式如下

f(s)=2×((1/1+e-x)-0.5)。  (1)

得到的3个参数离散划分结果详见表1。

3.4  基本回报值函数定义

为提升网络拥塞控制过程及马尔科夫拥塞过程的契合性,确保可在最优操作点处获取最大回报值,将基本回报值函数定义为

U=?琢×log(瞬时吞吐量)-?茁×log■,(2)

式中:?琢为调节延时参数;?茁为吞吐量比例参数。在实验过程中,通过调节吞吐量比例参数便可得到与马尔科夫拥塞控制过程更加契合的网络拥塞控制过程。在智能体了解环境时,回报值函数属于关键因子,为创造更佳的网络环境,保证智能体学习效果,还需要对反馈函数算法进行定义,公式如下

3.5  QLCC算法迭代更新步骤

算法更新时,首先需要录入网络环境量化参数,而后输出最优决策动作,输出参数有当前网络状态量化后参数向量(s)、行为动作参数向量(a)、行为动作参数空间(A)、下一网络状态量化后参数向量(■)、状态-行为对应值函数(Q(s,a))、规则集合(Q-Table)、折扣因子(?酌)、单步学习率(?琢)、回报值(R)和动作概率(?茁),而后会对规则集合进行初始化,并于当前网络环境进行量化后参数向量的获取,之后停止模拟过程,在if random(0,1)<0.9条件下,在规则集合中选取当前状态下量化后参数向量的最大值的动作ealse,那么便会在行为动作参数空间动作集中随机选择一个行为动作参数向量,并且此向量会在环境下运行,从中获取到下一网络状态量化得到的参数向量及回报值,最后值函数会进行更新,步骤为:Q(s,a)←Q((s,a)+?琢[R+?酌maxaQ(■,a)-Q((s,a)]。s与■数值相等是当前环境状态参数进行更新的必要条件[4]。

4  QLCC算法实验设计与结果分析

4.1  QLCC算法实验拓扑结构设计

本实验仿真平台选用网络仿真模拟器,网络仿真拓扑环境的结构包含3个主要部分,一是发送端,二是接收端,三是路由节点,其中发送端及接收端分别有多个,而路由节点只有2个。发送节点具备嵌入不同种类拥塞控制算法的功能,而瓶颈链路的作用是对不同带宽及延时进行设置。

4.2  仿真实验及结果分析

4.2.1  網络吞吐量实验

在网络吞吐量实验中,只需设置一个发送端,并分析单个发送端的吞吐量,实验时将瓶颈链路的带宽及延时分别设定为5 Mb及10 ms,而队列排队值及模拟时间值分别设置为100 kpt及100 s。在数据发送端嵌入QLCC算法,同时还需将TCP NewReno算法、TCP CUBIC算法、TCP Compound算法嵌入其中作为对比,并对各个算法的网络吞吐量值、平均时间延时值展开对比分析。4种算法各自发送端吞吐量及时延统计数据见表2。通过仿真实验的QLCC算法及其他算法的拥塞控制窗口数据变化情况分析发现,网络环境下只设置发送端时,QLCC算法可在低时延下(无须排队的情况下)具备较高的吞吐量,虽然此吞吐量要低于TCP Compound算法,但却比TCP NewReno算法、TCP CUBIC算法更高。QLCC算法的平均时延仅为0.012 8 s左右,而其他算法的平均时延均高于0.12 s,说明QLCC算法比其他3种算法的时延更低。这是由于QLCC算法数据传送时,链路上无数据包排队现象,因而数据传输更加高效。

4.2.2  算法公平性实验

在对QLCC算法的公平性进行检验时,需要在网络拓扑结构中设置4个发送端,将上述4种算法分别嵌入其中,并将瓶颈链路的带宽及时延设置为10 Mb及10 ms,队列排队值及模拟时间值分别设置为1 000 kpt及100 s。通过仿真实验可以获取4种算法网络拥塞控制算法协议内公平性对比数据。其中QLCC算法及TCP CUBIC算法的网络公平因子均为1.000 0,而TCP NewReno算法及TCP CUBIC算法的网络公平因子分别是0.977 5及0.990 0。QLCC算法的公平性在4种算法中居于第二,虽不如TCP Compound算法,但比TCP NewReno算法及TCP CUBIC算法更为优异。并且QLCC的4个发送端吞吐量在前期快速提升后以极快的速度进行收敛, 在整个仿真实验过程中,4个发送端的瞬时吞吐量持平,由此可见,相较于其他3种算法而言,QLCC算法的公平性更佳[5]。

4.2.3  随机丢包环境下吞吐量实验

此实验过程中,在网络拓扑结构中只设置1个发送端,所有实验参数设置均与网络吞吐量实验相同,即瓶颈链路带宽、延时、队列排队值和模拟时间分别为5 Mb、10 ms、100 kpt和100 s。之后将4种算法分别嵌入到4个发送端中。通过仿真实验可以得到4种算法在丢包环境下的吞吐量情况。其中,在丢包率为1%时,TCP Compound算法、TCP NewReno算法、TCP CUBIC算法的吞吐量均出现了明显下滑趋势,导致此现象的原因是这些传统网络拥塞控制算法均以丢包反馈作为设计依据,因而在丢包越多的情况下,数据包传送速率越低,因而其吞吐量出现了不断下降现象。而QLCC算法在丢包率达到25%后吞吐量才出现下滑,是因为此时QLCC算法所收集及学习的有价值信息量有所不足,对其决策制定产生了影响[6]。然而相较于其他3种算法而言,相同丢包率情况下,QLCC算法的吞吐量更高。这说明,QLCC算法具备更强的抗丢包性能。如图3所示。

5  结论

基于QLCC的网络拥塞控制算法可通过简化网络拥塞控制过程,使之与马尔科夫决策过程更加契合,并可基于强化学习中的Q-learning算法完成网络拥塞控制模型的求解。相较于传统网络拥塞控制方法而言,此种基于强化学习的新型网络拥塞控制算法的网络吞吐量、公平性均较强,并且丢包环境下的吞吐量更高,说明其抗丢包能力更强。通过仿真实验证实,此种智能化网络拥塞控制算法在化解网络拥塞问题方面具备更高的应用价值。

参考文献:

[1] 何佳晋.基于深度强化学习方法的拥塞控制研究[D].哈尔滨:哈尔滨理工大学,2021.

[2] 楊明.网络拥塞控制算法BBR的公平性研究与改进[D].武汉:华中科技大学,2020.

[3] 成诚.基于在线学习的数据中心网络拥塞控制算法的设计与实现[D].北京:北京邮电大学,2020.

[4] 刘安战.移动延迟容忍传感网络拥塞控制算法研究[J].计算机仿真,2020,37(2):307-311.

[5] 李少博.端到端的TCP拥塞控制算法研究[D].哈尔滨:哈尔滨理工大学,2018.

[6] 张奎.基于NS2的网络拥塞控制算法实验仿真与分析[J].青海师范大学学报(自然科学版),2021,37(2):36-41.

猜你喜欢

强化学习仿真实验学习方法
基于强化学习的在线订单配送时隙运能分配
论“以读促写”在初中英语写作教学中的应用
智能交通车流自动导引系统
开展体验式教学创新研究 提高化学课堂有效性
分布式系统中基于非合作博弈的调度算法
小学音乐快乐学习的三种方法
高中数学教学方法浅析
论高中物理电路知识的学习方法及解题思路
小学语文低段识字教学的意义及学习方法
基于多重视阈下的《电子控制技术》课程的教学探讨