copa文件服务器,Copa

Copa: Practical Delay-Based Congestion Control for the Internet

0x00 引言

Copa 也是一个基于 delay 的拥塞控制的算法,它有 3 个基本的 idea,

在 Markovian(马尔可夫) packet arrival 模型下面,最优化的吞吐和延迟的目标发送速率为 1 / (δ*dq),这里的 dq 为测量到的排队延迟;

Copa 根据目标发送速率来调整窗口,即使在系统中存在诸多不稳定的因素下,它也能快速收敛到一个正确的公平的速率;

第 3 个 idea 使用用来解决基于 delay 的算法在基于丢包的算法目前太 “君子” 的问题,比如 Vegas 就存在这个问题。Copa 的解决方法是根据 delay 的变化来对参数δ进行 additive-increase/multiplicative decrease(AIMD) 的变化;

Copa 能和 Cubic 在一个环境下比较好的共同存在,这个比 BBR、PCC 做的好 (也应该包括 Vegas)。

0x01 基本思路

Copa 这里的目标发送速率是 1 / (δ*dq),dq 的含义如前面所言,这样 1 / δ的含义就是 MTU 尺寸包的量。Copa 中 cwnd 的含义和一般的含义相同。在每个 ACK 达到的时候,发送方使用λ = cwnd/RTTstanding 来估计目前的发送速率,这里的 RTTstanding 是在最近的一个时间窗口 τ(τ=srtt/2, srtt 就是 rtt 的估计,和一般的方法一致,选择这样一个时间段内是为了反之 ACK compression 或者是网络抖动带来的影响) 内观察到的最小的值。Copa 使用 dq =RTTstanding−RTTmin 来计算 dq,RTTmin 是在一段比较长时间内观察到的最小值 (在 Copa 中使用了一个小于 10s 的值)。如何利用前面计算目标速率的方式,在超过了目标速率之后,就减少 cwnd,反之增加 cwnd。Copa 发送方的在 ACK 达到之后的处理逻辑,

更新 dq 的计算方法更新 dq 的值,同时更新 srtt 的估计;

根据目标速率的计算公式计算出此时的目标速率λt;

如果当前使用的目标速率λ = cwnd/RTTstanding 小于等于λt,更新 cwnd 的值为 cwnd = cwnd + v/(δ*cwnd),这里的 v 是一个速率参数。反之为 cwnd = cwnd - v/(δ*cwnd),也就是说一次变化的 delta 为 v/(δ*cwnd);

参数 v 在开始的时候初始化为 1,这里的思路和前面的 PCC,PCC-Vivace 的思路相似。都是加速收敛的方法,在一个发送上面多走了几次,就加大 v 的值 (每次 double),方向变化了重新设置为 1。在开始的时候要特殊处理,只有在保持了同一方向的变化 3RTTs 时才应用这个方法,

However, start doubling v only after the direction has remained the same for three RTTs. Since direction may remain the same for 2.5 RTTs in steady state as shown in figure 1, doing otherwise can cause v to be >1 even during steady state. In steady state, we want v = 1.

在连接刚刚建立的事,也是使用 slow-start 的方式,直到λ大于λt。

处理 Buffer-Filling 问题

这个即 Copa 算法的第 3 个 idea,使用 δ处理太 “君子” 的问题。初始的时候 δ设置为 0.5。如果 Copa 观察到在 5 个 5 RTTs 内 RTTs 没有很大的变化,就认为目前没有什么排队现象,

We estimate “nearly empty” as any queuing delay lower than 10% of the rate oscillations in the last four RTTs; i.e., dq < 0.1(RTTmax − RTTmin) where RTTmax is measured over the past four RTTs and RTTmin is our long-term minimum as defined before.

如果 Copa 判断方式了排队的现象,则进入 competitive mode。在这个模式在 δ的变化方法可以根据情况设置。在 Paper 中的实现中利用的事基于包发送成功与否的 AIMD 策略。

6f9759dd7995878d2159db45fba5995f.png

0x03 Justification of the Copa Target Rate

Copa 的目标速率为 1 / (δ*dq)。Copa 使用的效用函数为 (Copa 的目标为是 U 取最大值)。(Why???,¯_(ツ)/¯)

对于前面所说的τ,有

¯_(ツ)/¯ , (´・ω・`)

0x04 评估

这里的详细信息可以参看 [1].

参考

Copa: Practical Delay-Based Congestion Control for the Internet, NSDI’18.

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值