session 1 Congestion Avoidance拥塞避免
R2(config-cmap)#exit
R2(config)#policy-map CB-WERD
R2(config-cmap)#exit
R2(config)#policy-map CB-WERD
R2(config)#interface f0/0
R2(config-if)#service-policy output CB-WRED 应用在接口出站方向上
R2(config-if)#end
查看配置结果:
R2#show policy-map interface f0/0
FastEthernet0/0
Service-policy output: CB-WRED
Class-map: http (match-all)
0 packets, 0 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: protocol http
QoS Set
dscp af43 这里看到已经将http流量的dscp值设置为af43了
Packets marked 0
Queueing
Output Queue: Conversation 265
Bandwidth 30 (%)
Bandwidth 3000 (kbps)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
exponential weight: 9
mean queue depth: 0
dscp Transmitted Random drop Tail drop Minimum Maximum Mark
pkts/bytes pkts/bytes pkts/bytes thresh thresh prob
af11 0/0 0/0 0/0 32 40 1/10
af12 0/0 0/0 0/0 28 40 1/10
af13 0/0 0/0 0/0 24 40 1/10
af21 0/0 0/0 0/0 32 40 1/10
af22 0/0 0/0 0/0 28 40 1/10
af23 0/0 0/0 0/0 24 40 1/10
af31 0/0 0/0 0/0 32 40 1/10
af32 0/0 0/0 0/0 28 40 1/10
af33 0/0 0/0 0/0 24 40 1/10
af41 0/0 0/0 0/0 32 40 1/10
af42 0/0 0/0 0/0 28 40 1/10
af43 0/0 0/0 0/0 35 45 1/15 修改后的af43的丢弃参数
cs1 0/0 0/0 0/0 22 40 1/10
cs2 0/0 0/0 0/0 24 40 1/10
cs3 0/0 0/0 0/0 26 40 1/10
cs4 0/0 0/0 0/0 28 40 1/10
cs5 0/0 0/0 0/0 30 40 1/10
cs6 0/0 0/0 0/0 32 40 1/10
cs7 0/0 0/0 0/0 34 40 1/10
ef 0/0 0/0 0/0 36 40 1/10
rsvp 0/0 0/0 0/0 36 40 1/10
default 0/0 0/0 0/0 20 40 1/10
Class-map: class-default (match-any)
0 packets, 0 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any
Queueing
Flow Based Fair Queueing
Maximum Number of Hashed Queues 256
(total queued/total drops/no-buffer drops) 0/0/0
exponential weight: 9
dscp Transmitted Random drop Tail drop Minimum Maximum Mark
pkts/bytes pkts/bytes pkts/bytes thresh thresh prob
af11 0/0 0/0 0/0 32 40 1/10
af12 0/0 0/0 0/0 28 40 1/10
af13 0/0 0/0 0/0 24 40 1/10
af21 0/0 0/0 0/0 32 40 1/10
af22 0/0 0/0 0/0 28 40 1/10
af23 0/0 0/0 0/0 24 40 1/10
af31 0/0 0/0 0/0 32 40 1/10
af32 0/0 0/0 0/0 28 40 1/10
af33 0/0 0/0 0/0 24 40 1/10
af41 0/0 0/0 0/0 32 40 1/10
af42 0/0 0/0 0/0 28 40 1/10
af43 0/0 0/0 0/0 24 40 1/10
cs1 0/0 0/0 0/0 22 40 1/10
cs2 0/0 0/0 0/0 24 40 1/10
cs3 0/0 0/0 0/0 26 40 1/10
cs4 0/0 0/0 0/0 28 40 1/10
cs5 0/0 0/0 0/0 30 40 1/10
cs6 0/0 0/0 0/0 32 40 1/10
cs7 0/0 0/0 0/0 34 40 1/10
ef 0/0 0/0 0/0 36 40 1/10
rsvp 0/0 0/0 0/0 36 40 1/10
default 0/0 0/0 0/0 20 40 1/10
CED的两种功能:
1、 标记,ECN标记
2、 拥塞避免
ECN的通知功能:在网络中我们使用出站拥塞避免技术RED可以来控制数据出站的队列数量,使用随机丢弃达到避免出站拥塞的情况,但是在RED也无法解决拥塞时,说明进站流量过大。这时候我们对进站流量使用管制和整形(丢包策略)来使进站的流量大小和出站的流量大小基本相等来避免发生拥塞。但是在进站使用管制和整形的过程中会进行数据包的丢弃动作,假如有些数据包对丢弃敏感,那么为了使出站队列避免拥塞而在进站方向丢弃了这些数据包的话QOS就没有意义了。因为根本的原因是你上游的设备发送数据包的数量过多,才导致了设备入口接受了大量数据包,所以ECN的标记是标记了ip数据包的TOS字段的最后最后2个bit,用于通知上游设备来调整数据发送量,因为ip是无连接的协议,不像TCP协议是面向连接的有滑动窗口这种流量控制机制可以协商数据的发送量,ip没有流量协商机制,所以只能通过ECN将ip头部TOS最后2个bit用于流量协商机制(前6个bit用于dscp和ipp了)。
ECN的标记位,最后2个bit为ECT和CE位,组合如下,抓包可以在ip字段中看到TOS中最后2个bit的值:
ECTbit CEbit
0 0 表示不支持ECN
0 1 表示支持ECN,且源设备是路由器
1 0 表示支持ECN,且原设备非路由器
1 1 当前网络已经发生拥塞
配置:
R1(config)#Class-map match-all x
R2(config-cmap)#Match protocol http
R2(config-cmap)#Exit
R2(config-pmap)#Policy-map x
R2(config-pmap-c)#Class x
R2(config-pmap-c)#Bandwidth 1000
R2(config-pmap-c)#Random-detect 开启WRED拥塞避免,因为ECN是基于WRED的所以要先开启
R2(config-pmap-c)#Random-detect ecn 开启ECN功能,相当于给ip包添加了流控机制,类似于TCP的window功能
R2(config-pmap-c)#End
R2#Config terminal
R2(config)#Interface f0/0
R2(config-if)#Services-policy output x
R2(config-if)#End
R1#show policy-map interface f0/0
FastEthernet0/0
Service-policy output: x
Class-map: x (match-all)
0 packets, 0 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: protocol http
Queueing
Output Queue: Conversation 265
Bandwidth 1000 (kbps)
(pkts matched/bytes matched) 0/0
(depth/total drops/no-buffer drops) 0/0/0
exponential weight: 9
explicit congestion notification
mean queue depth: 0
class Transmitted Random drop Tail drop Minimum Maximum Mark
pkts/bytes pkts/bytes pkts/bytes thresh thresh prob
0 1/1074 0/0 0/0 20 40 1/10
1 0/0 0/0 0/0 22 40 1/10 ipp为1的队列中:当前包的数量/大小Byte
2 0/0 0/0 0/0 24 40 1/10 ipp为2的队列中:当前包的数量/大小Byte
3 0/0 0/0 0/0 26 40 1/10
4 0/0 0/0 0/0 28 40 1/10
5 0/0 0/0 0/0 30 40 1/10
6 0/0 0/0 0/0 32 40 1/10
7 0/0 0/0 0/0 34 40 1/10
rsvp 0/0 0/0 0/0 36 40 1/10
class ECN Mark 启用ECN,ip流控
pkts/bytes
0 0/0 表示ipp为0的队列中有:多少个标记ECN位/这些包的大小Byte (0/0)
1 0/0
2 0/0
3 0/0
4 0/0
5 0/0
6 0/0
7 0/0
rsvp 0/0
Class-map: class-default (match-any)
3 packets, 483 bytes
5 minute offered rate 0 bps, drop rate 0 bps
Match: any