基于人工智能技术的的拥塞控制的基本原理—— PCC Vivace

PCC使用黑盒方法,核心思路是感知网络在给出某发送速率之后的表现,从而调整发送速率。传统的PCC-Allegro通过发送者观察以特定速率发送所产生的性能指标,并将指标转换成相应的有效值,随后根据经验调整发送速率向更高效用的方向。而Pcc-Vivace的设计实现结合了2015年的PCC-Allegro的基本框架和机器学习中在线学习的原理,通过调整发送端速率的调整方向、调整步长和调整阈值,来解决网络的拥塞控制问题


1.PCC-Allegro实现思路

PCC-Allegro将时间切分为连续的 monitor intervals (MIs),MI的程度通常为1到2个RTT的时间。PCC在一个MI内,选一个发送的速率r,在这个MI内都以这个速率发送,在大约一个RTT之后,发送方会看到SACK,PCC将这些ACK的信息转换了性能评价的指标如吞吐、丢包率和延迟。这些指标通过一个效用函数()计算一个效用值,使用u表示。
在一个速率r下,后面PCC会尝试(1+ε)*r 和 (1-ε)r的速率。PCC会朝着让效用值更加高的方向移动。为了减少一些测试噪音,PCC不是使用在两个MI内测试的方法,而是在四个MI内已随机的顺序测试两种不同的速率。如果两边都得到更加高的效用值,PCC选择随机其中的一个值来作为下次的发送效率。在有n个发送者的一个网络中,网络最大的带宽为C,每一个发送者i的效用函数为:
在这里插入图片描述
xi是发送端 i 的发送速率,Li 是所观察到的丢包率,Ti=xi*(1-Li)

PCC这里是控制算法步骤
Starting State,启动状态:启动的发送速率设置为 2 * MSS/RTT,然后在之后的每一个MI内发送速率加倍。PCC终止启动阶段不是以包丢失来确定的,而是计算的效用值下降的时候;

Decision Making State,决策状态:这里阶段工作的思路就如下面的描述。PCC选择4个MI,分为2组(随机),一组以r(1 + ε )速率发送,另外一组以r(1 - ε )发送,之后计算出来的效用值记为Ui+,Ui-,如果Ui+ > Ui-,新速率设置为r(1 + ε ),反之设置为r(1 - ε )。但是如果效用下降,PCC将其速率保留在当前的速率。同时ε = ε +εmin,但是最大不同超过εmax。这里使用 εmin = 0.01εmax = 0.05


2.PPC- Vivace算法对PCC-Allegro优化

改进核心
1) 使用了一个新的学习框架来保证多个Vivace流可以收敛到有一个公平和有效率的状态
2) 使用了一个基于梯度在线优化算法来调整发送速率,它会计算步长
PCC Vivace的效用函数框架:
在这里插入图片描述
其中0<t<1,b>=0,c>0,( b,c,t为常数). 该目标函数的第一项为发送速率的幂次方,第二项为RTT梯度的比例项,第三项为丢包率的比例项。相比Allegro而言,可以看到,Vivace在目标函数中考虑了时延(第二项)。总体来说,效用值在吞吐量上升时得到奖励,在RTT和丢包率上升时受到惩罚。

注:为什么在这里要使用RTT的梯度,而不是RTT的值呢?
考虑以下例子:一个拥有较大缓存的发送者在第一个MI中以2倍于链路带宽的速率发送报文,并且在第二个MI中以一个稍低一点的速率发送。如果使用RTT的值作为目标函数的项,那么发送者在这两个MI中的目标函数值应该都没什么区别,尽管降低发送速率是一个较优的选择。

速率控制部分:
PCC Vivace同样使用在几个连续的MI中测试r(1 + ε )和 r(1 − ε )的方法,不过设置下一个速率的时候使用的梯度的方法。设这个两个测试到的效用函数为u1,u2,
在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值