您的位置:首页 > 其它

基于性能的拥塞控制算法PCC

2018-01-04 21:41 2586 查看
 一次数据包的丢失,也许并不代表网络发生拥塞。但是在经典的tcp拥塞控制条件下,丢包作为网络拥塞信号,tcp的窗口就要减半,发送端就要减少向网络中发送的数据包数量。

 若是丢包是如下原因,降窗明显不合理。

f might traverse a shallow buffer on a high-BDP link, with the loss due to bad luck in statistical multiplexing rather than high link utilization.

There may be a higher-rate competing flow.

There may be random non-congestion loss somewhere along the path such as noise packet loss.

 关键的就是PCC的速率控制机制了,这个机制和后来出现的BBR算法几乎相同,增加发送速率对网络带宽进行探测。PCC按照监测周期(MI,Monitor Interval)更改发送速率,每四个MI形成两个对。在每个监测对中,分别按照速率(1+ϵ)r,(1−ϵ)r向网络中发包。四个监测周期后,速率更改为r,发送端等待反馈的ack,分别计算相应监测周期的效用函数(U+i,U−i,i=1,2)。如果U+i>U−i,∀i∈{1,2},则将发送速率调整为(1+ϵ)r;如果U+i<U−i,∀i∈{1,2},则将发送速率调整为(1−ϵ)r;若是其他情况,则保持当前的速率。

 其采用的效用函数如下:

ui(x)=Ti(x)sigmoid(Li(x)−0.05)−xi(t)Li(t)(1)

xi(t)为数据包发送速率,Li(t)为丢包率,Ti(x)=xi(t)(1−Li(x))为吞吐量,当丢包率超过0.05,ui(x)为负,可以认为此时的网络状况极其糟糕。

 这个算法,有缺点,带宽小的数据流竞争带宽慢,收敛速度较慢。但是保证了链路的利用率高。

[1]PCC: Re-architecting Congestion Control for Consistent High Performance

[2]拥塞控制算法分类
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  拥塞控制