QCN拥塞控制算法

Sigcomm’ 2020论文Annulus在第二环路中使用了QCN拥塞控制算法来对近源端的流进行拥塞控制。论文中没有直接陈述这个算法,而是在参考文献中给出了十页的伪代码 (头皮发麻)
根据自己搜集资料以及伪代码,这里对QCN拥塞控制算法进行总结:

QCN算法

QCN(Quantized Congestion Notification,量化拥塞通知)是一套应用于二层的端到端拥塞通知机制,通过主动反向通知,降低网络中的丢包率和延时,从而提高网络性能。QCN作为数据中心标准的一部分,主要应用于数据中心场景。
很早之前我看过的sigcomm15年的论文DCQCN就是基于QCN进行改进的,所以这两种算法大体上很接近。

Congestion Point

交换机会维持一个这样的公式:
F b = − ( ( Q − Q e q ) + ω ∗ ( Q − Q o l d ) ) F_b = -((Q-Q_{eq} )+ω*(Q-Q_{old}) ) Fb=((QQeq)+ω(QQold))

  • ω ω ω表示一个权重,控制 ( Q − Q o l d ) (Q-Q_{old}) (QQold) F b F_b Fb中的比重,文中将它设置为2。
  • Q Q Q代表采样时刻瞬时队列。
  • Q e q Q_{eq} Qeq表示队列期望大小。
  • Q o l d Q_{old} Qold表示上次采样的队列大小。

所以 F b F_{b} Fb用于表示队列是否发生拥塞,大于等于零表示没有发生拥塞,小于零表示发生拥塞。这时CP端会产生一个CNM报文通知发送端Reaction Point进行降速。

Reaction Point

RP端的基本算法是:

  • 收到CNM消息后,根据消息中 F b F_{b} Fb来调节发送速率, F b F_{b} Fb越大发送速率降得越低;
  • 当速率降下来之后再逐步提升限速的目标上限,将发送速率恢复到原来的值。

在这里插入图片描述

  • CR:当前速率,速率限制器(RL)限制后的当前发送速率
  • TR:目标速率,在收到最后一个CNM消息之前的发送速率,是CR调整的目标速率
  • Rai: 增长常数

速率降低过程公式:
C R = C R ∗ ( 1 − α ∗ ∣ F b ∣ ) CR=CR*(1-α*|F_b|) CR=CR(1αFb)
其中 α α α 是一个常量,其取值需要保证 ∗ ∣ F b ∣ = 1 / 2 *|F_b|=1/2 Fb=1/2 ,因此收到CNM之后速率最多降低到原来速率的一半。

速率增大过程有公式:
C R = 1 / 2 ∗ ( C R + T R ) CR=1/2*(CR+TR) CR=1/2(CR+TR):快速恢复阶段

T R = T R + R a i TR=TR+R_{ai} TR=TR+Rai
C R = 1 / 2 ∗ ( C R + T R ) CR=1/2*(CR+TR) CR=1/2(CR+TR):主动增加阶段

参考文献
[1] Rong Pan. [n.d.]. QCN Pseudo Code: Version 2.2. http://www.ieee802.org/1/files/public/docs2008/au-pan-QCN-pseudo-code-ver2-2.pdf.

[2] https://zhuanlan.zhihu.com/p/142838792

[3] http://www.ieee802.org/1/files/public/docs2007/au_prabhakar_qcn_overview_geneva.pdf

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值