QoS
QoS:Quality of Service服务质量
QoS技术是在带宽恒定的情况下,对流量的优化转发。
网络质量评价标准(影响QoS因素)
1. 带宽 传输路径上最小带宽
2. 时延 处理时延 CPU、FPGA对报文处理的时间
队列时延 报文在队列中排队的时延、流量整形
传输时延 报文在网线、光纤、自由空间介质中传输的时延
串行化时延 数字信号-模拟信号转换的时延
3. 抖动
4. 丢包率 处理过程丢包 CPU使用率100%
队列过程丢包 尾丢弃、WRED
传输过程丢包 网线质量不好、光衰过大、wifi信号弱
QoS模型
- Best-Effort尽力而为:Internet的默认服务类型,对时延、抖动、丢包均不保证。
- IntServ综合服务:用户发送流量前,需要通过信令(RSVP)向网络描述自己的流量参数。网络中的每一跳设备都要预留资源给该用户。该模型难以大规模部属。
- DiffServ差分服务: 用户流量网络边界设备上根据条件(报文S/D IP、S/D port、协议类型、IPv4报文的ToS字段、二层vlan帧的PRI字段)打上不同的标记(颜色),对流量进行分类。在转发流量设备上制定针对不同标记(颜色)流量的转发策略,不同类型流量使用不同策略转发。
DiffServ模型的4个QoS组件
1. 流分类:网络边缘设备对流量进行分类
标记:对不同的流分类设置不同的优先级
2. 当业务流量超过额定速率时,
流量监管:将超过的流量丢弃或重新标记
流量整形:将突发的流量通过限速、延迟转发等手段,使其均匀转发
3. 拥塞管理:网络拥塞时,将报文放入特定队列、按照特定调度算法转发报文
4. 拥塞避免:当发现网络流量将要激增时,主动丢弃报文
报文在设备内的处理流程
分类/打标
[R] traffic classifier 1
if-match acl(匹配感兴趣流)/ 8021p x(重标记)
traffic behavior 1
remark 8021p/DSCP x
traffic policy 1
classifier 1 behavior 1
[R-G] traffic-policy 1 inbound
优先级映射
[R-G] trust 8021p override //信任别人报文优先级
[R] qos map-table dot1q-dscp
input x output y
拥塞管理+拥塞避免
使用队列模版queue-profile
[R] qos drop-profile DROP
wred dscp //根据DSCP WRED丢弃
dscp AF low-limit 30 high-limit 80 discard-percentage 50
[R] queue-profile QUEUE
schedule wfq 0 to 4 pq 5 to 7 //调度(拥塞管理)
queue x drop-profile DROP
queue x weight x
[R-G] qos queue-profile QUEUE //接口应用队列模版
报文优先级
二层、三层、MPLS报文 中的QoS字段
- CoS:802.1p、EXP(3bit优先级)
ToS:IP报文优先级(IP Precedence、DSCP)
- 协议报文,QoS优先级=6
1. VLAN数据帧中的PRI字段(也称802.1p优先级)
2. MPLS标签中的EXP(3bits)字段
3. IP报文的ToS字段(DSCP、IP P)
IP Precedence:ToS前3位,规定了23=8个优先级
DSCP:ToS前6位,有2种表达形式:
数字形式:26=64个优先级
关键字形式:尽力而为BE、保证转发AF、加速转发EF、类选择器CS
- 路由器子接口,dot1q termination vid终结了子接口的vlan tag。如果vlan tag中有802.1p优先级,路由器不会根据802.1p将报文入队列。
因此路由器收到vlan tag帧时,
需要做优先级映射(802.1p → DSCP)
报文优先级 → 本地优先级(WFQ2)
IPv4报文头中TOS字段DSCP↑
DSCP 6bit = IP Precedence 3bit + 3bit
简单流分类
根据报文优先级(802.1p、EXP、DSCP),流分类
- 一般用在网络中间节点(信任上游报文优先级)
复杂流分类
根据报文的五元组【源/目IP、源/目端口号、协议】及报文优先级,流分类
用Hash(五元组、报文优先级)标识一个流
- 一般用在网络边界(DS域边界,不信任其他DS域优先级)
配置报文优先级
[R] traffic-behavior xxx
数字形式: remark 8021p / mpls-exp 0~7
remark dscp 0~63
关键字形式: remark dscp default / AFxx / EF / CS0~7
优先级映射
为什么要映射?
1. PRI、ToS、EXP映射成为内部优先级(本地优先级)后,进入不同队列,提供差分服务
2. 路由器从子接口收到vlan tag帧(带802.1p优先级)、MPLS收到EXP,需要映射到DSCP后,传给下游路由器
3. 通过override参数,控制报文出设备时的报文优先级
[R-G0/0/1] trust 8021p override //接收报文的8021p优先级
[R] qos map-table dot1p-dscp //本设备上8021优先级映射为DSCP
input 5 output 46 //映射规则
input 4 output 32
input 3 output 24
input 2 output 16
input 0 output 0
override表示报文离开设备时,使用(映射后的)内部优先级,覆盖
DS域(差分服务域/信任域)
trust表示信任(采用)别人DS域的报文优先级
Eg. 公司A对自己内部报文做了各种报文优先级标记,传递给公司B后,公司B使用trust命令采用A公司的报文优先级(而不是重新流分类)
接口队列
接口队列默认8个(高端设备更多)
默认队列
- 默认队列采用FIFO、PQ、WRR、DRR、WFQ、PQ+WFQ调度方式
1. CS经典队列
BE=CS0
DSCP后三位=0