QOS系列之WRED(加权随机早期丢弃)

标签:
it |
分类: QOS |
TCP同步带来的问题:
1.接口带宽利用率下降
2.丢包重传
如何解决TCP同步:
RED:随机
拥塞避免:流控
RED:可以接管FIFO队列的尾丢弃
CBWFQ及FIFO才能调用
FIFO调用WRED后使用sho queueing
random-detect
RED来控制队列长度,
1.最小丢弃门限 32
1.No
Q(T)表示前一时刻的平均队列长度
Q(t)表示此时的队列长度
2的-N次方表示权重W
假设:N=1
假设:还没来包
Q(0)=0
此时来了20个数据包
Q(1)=0*0.5+20*0.5=10
此时还有50个数据包没发送
Q(2)=10*0.5+50*0.5=30
如果入流量,远远超出出流量导致60个没输出
Q3=30*0.5+60*0.5=45
可是当平均值到达默认的40就已经开始丢弃啦!也就是说在平均值超出32就开始随机丢弃,到达40就是必须尾丢弃。从此也可以看出,权重W越大,越重视前一时刻的的长度,W越小,越重视当前时刻的长度。如果依赖当前时刻的长度,那么忍耐突发的能力相对较小。
默认N=9
不同类的流量可以用不同的门限值,
1.class可以基于优先级/DSCP
1.默认基于IPP 2.传输的包/字节
基于IP优先级的时候使用DSCP值,来看看WRED是否有作用
exponential weight: 9
default
1.调最小阀值:何故用此
2.调最大阀值:何故用此
3.调标记分母:何故用此
4.调权重值:
1.其他条件不变的情况下:最小阀值调小,将导致随机丢包增加,导致尾丢弃可能性减小,导致重要数据包被丢弃的可能性减小。反之则重要数据被尾丢弃的可能性增加。
2.其他条件不变的情况下:最大阀值调小,将导致随机丢包减少,导致尾丢弃可能性增加,导致重要数据包被丢弃的可能性增加,并且排队延迟相应减小。反之则重要数据包被尾丢弃的可能性减小,但是排队延迟相应增加。
ECN显示拥塞通知:
TCP的发送和接收端会进行ECN协商,第一步:SYN ECE EWR
案例一:假设N1产生流量去N2,此时R1的S0/0接口发生拥塞,并且R1是开启了ECN功能的。N1是如何通过ECN来知道链路发生拥塞的?(前提是所有设备都识别ECN)
第一步:N1的数据包IP报头的ECN会置位(01/10),到达R1后由于R1拥塞导致会在S0/0接口ECN变成置位11(表示拥塞),最终到达N2
第二步:N2知道发生拥塞后就知道应该通知发送端N1,N2在自己的TCP报文中将ECE(拥塞通知)置位。最终N1会收到ECE置位的TCP报文。
第三步:N1收到ECE置位的TCP报文后就知道发生了拥塞,就开始减小发送窗口,并且在发送给N2的TCP报文中将CWR(拥塞窗口减少)置位。
第四步:当N2收到TCP报文中CWR置位时,就不会再将TCP报文中的ECE再次置位了。回到正常的TCP报文。
以上步骤实现的基础是ECN置位(01/10)表示支持ECN,并且发生拥塞的R1必须开启了ECN通知(当发生WRED丢包时,会将本应该丢弃的数据包,置位ECN然后继续转发,相当于以前是丢包来通知发送端减小窗口,现在是不丢包也可以起到相同的效果)。