计算机 · 2023年2月9日 0

路由器丢包策略RED

路由器丢包策略

尾丢包(tail drop)策略:在队列深度达到缓存上限时,把所有新到的包丢掉。尾丢包的问题在于在队列满了才开始丢包,这个时候所有的tcp流都会同时退避,然后所有的tcp流又开始同步增加拥塞窗口,形成TCP global synchronization,导致链路的利用率降低。

RED(random early detection/drop/discard)策略:在队列深度达到minimum threshold时,开始随机丢包,并且丢包的概率随着队列深度的增加而线性增加(这个丢包率线性增加的终点即MDP/maximum drop probability不一定是1,可能是比1小的概率),当队列深度达到maximum threshold时,把所有新到的包丢掉。相比于尾丢包策略,RED可以避免tcp流的同步退让问题,让链路利用率提升。

RED介绍

RED的变种:

wRED(weighted random early detection)

RED的缺点是所有包一视同仁,不能提供有区分的QOS。wRED被用于解决这一问题,对于不同优先级的包,wRED给出不同的丢包概率。wRED工作时,虽然所有的包共享一个队列,但是对于不同traffic class的包,在队列长度达到minimum threshold时,他们的丢包概率计算公式是不一样的,优先级低的包丢包概率大,以保证优先级高的包可以正常发送。

ARED(Active random early detection)

ARED观测队列长度的变化趋势,如果队列长度总是在minimum threshold附近变化,说明丢包策略太过激进,需要减小丢包概率,如果队列长度总是在maximum threshold附近变化,说明丢包策略太过保守,需要增加丢包概率。

RRED(Robust Random early detection)

用于抵御Low Rate Denial of Service攻击,没看懂。