QOS服务质量
做QOS前要考虑的3方面:1、区分流量 2、关注流量的诉求 3、细化诉求
产生背景:1、带宽 2、延时 3、丢包率 4、抖动:延迟的差值 5、吞吐量:实际处理的流量大小
带宽、时延(到目标花费的时间):时延产生的位置不同,有些位置可以控制,有些则不可以控制(时延包括线路时延、处理时延、排队时延、交换时延)
哪些流量对带宽、时延比较敏感?
1、文件传输、视频、Web应用、邮件
2、语音流量、即时通信流量
3、丢包率—基于TCP的都比较敏感,丢包会导致重传
注:1)qq—TCP登录,UDP传递信息,UDP在应用层做了一定改良(qq如果没传送成功会提示重传)
2)大型企业一般不会将防火墙放在边界位置,因为速度过慢,防火墙会放置在服务器旁边
3)所有网络设备转发原则:匹配、动作
匹配:交换机只匹配MAc地址,路由器只匹配目的IP地址,现在交换机路由器匹配CAM表,防火墙匹配会话表
动作:存储、转发、丢弃等
QOS一般过程:
首先通过源地址、目的地址、源端口、目的端口、协议类型、TOS字段(8位)对流量进行分类
然后通过令牌机制进行控制(令牌桶)对流量进行监管
队列机制:怎么排队、怎么进行队列的调度,最后发送流量
令牌桶满了又会出现拥塞控制机制—拥塞避免
流量管理机制:令牌桶
TOS
TOS使用三位 2^3=8
0 没有被标记Routing(ping流量)1-5可以自定义 6(EIGRP、OSPF……协议流量)、7一般不咋用
数字怎么使用?
规定数字越大越容易从接口出去–排队的时候优先被调度
如果队列被排满,排队的时候应该有是否容易被丢弃这一维度—维度不够用,故产生了DSCP。高三位决定优先出去的权利,而低三位中的前两位决定了丢弃的优先权(数字越大,被丢弃的概率越高),其中最后一位无用。
EF(Expedited Forwarding、加速转发类),这类分组有着最高的优先级,得到最优先转发处理;(语音流量)被丢弃的概率也很大
AF(Assured Forwarding 保证转发类),这类分组有着较高的优先级,将得到保证转发处理
BF(Best Forwarding 尽力转发类),这类分组优先级最低,只作尽力而为的转发;在提供服务时,为属于同一服务类别的分组提供同样的服务策略
控制流量最不容易被丢(000)
CS6—OSPF语音流量 CS7----BGP流量
CS1-AF11、AF12、AF13—AF13被丢弃的概率很高
配置方法:
DSCP无法直接匹配五元组,使用class-map 抓取QOS流量,policy-map给路由做标记
PBR抓取流量,route-map调用,打标识
令牌桶(应用范围较广)
cir(承诺信息速率—运营商承诺的每秒钟的流量大小,桶的大小,单位比特Bc/TC)
TC(每隔多长时间下发一次令牌–毫秒级别)
Bc(每次下发多少令牌)
Be(超纲流量)
1、单速率双色单桶
取到令牌将被染成绿色,取不到将被染成红色(红灯停、绿灯行)
因为cir,令牌桶起到限速作用
2、单速率三色双桶
有寄存—可以超发
第一个桶取到令牌—绿色、第二个桶取到令牌—黄色、没有取到令牌–红色
有积攒才超发,无积攒则不可以超发—超发不是随时的。流量发送曲线对接口不是很匀称,造成流量的忽上忽下,对接口不友好(就比如人生的大起大落……)
3、双速率三色双桶
第一个桶PIr、第二个桶Cir,两个桶各自有一个速率
当流量从接口进入,观察流量是否超过cir桶的寄存数,小于Cir则在Cir取令牌,介于Cir、Pir之间的话在Pir中取令牌,大于Pir则丢弃。从大的角度来看,总量还是固定的。
小于等于Cir—绿色、大于Cir小于Pir–黄色、大于Pir—红色
意义:可以提前获得超发。
作用:流量的管制(漏桶算法)与整形
管制
对进入某个端口的某一类流进行流量管理。当流量超出限额时,可以采取一定的措施,降低优先级或丢弃,以保护运营商的商业利益和网络资源不受侵占。流量监管常用的措施是对某一类流或某个端口进行限速
整形
一般用在大带宽与小带宽接口处使用,将超出的部分先缓存起来,防止小带宽接口被大带宽流量堵塞。
流量整形是一种主动调整流量输出速率的措施。对分组进行缓存,在有可用带宽时将数据发送出去,流量整形与流量监管的主要区别在于,由于整形对数据进行缓存,会增加延迟,而监管不会缓存数据,超规格的分组会被丢弃,上层会重传这些数据。流量整形只用于分组发送,流量监管多用于分组接收。
FRTS(整形部分)
后向拥塞控制符,限制后方、前向拥塞控制符,限制自己—作用的对象速率受限
在串线中可以开启流量的自适应功能(adapt),再给自己设置mincir,表示自身受到控制符的时候降速。
注:1)限速是最高保证,令牌桶就是限制最大流速,最大不能超过设置的值,防干扰机制,流量不能突破这个值,不能干扰其他流量,保障某些业务最低可以固定的带宽;
2)据有关研究表示,出口速率大于58%就不会产生拥塞,最好留出25% 的空闲。
流量的管理:队列机制
队列机制:排几个队、怎么调度
1、PQ—绝对优先队列:分为high、medium、normal、low
有高队列先走高队列,无高队列的时候才调度低队列(饿死现象)
2、CQ—轮循队列 ROBIN 16个队列,0队列为优先队列(不等待迟到队列)
讲究公平性,但是假如说第一次排队2队列没来,然后过了2队列之后2队列才来,则2队列将等待一圈,才能被处理!
3、WFQ—加权公平队列(利用GPS算法、不等待迟到队列) 256个队列 低于2.048串行线路的默认队列,大于2.048默认队列FIFO
权重通过TOS字段计算(IPpresec 或者高三位),流量通过时根据流量五元组不同,权重值不同,计算所占的百分比,一个周期内不管流量来不来,所占的份额就是通过计算所得的数值,但是该机制自动性太强,认为干涉不足
4、CBWFQ 手动设置队列和占用带宽(带宽占用百分比默认不大于75%)
可以人为的设置某流量所占的份额
例:不同企业设置应该不相同,深信服中,如果分配的份额用不完,则多余的部分可以分给其他流量(按照所占份额分配)
5、LLQ 专门为VOIP流量而设的队列,有该队列必定排在前面(在新的一轮流量发送之前)
分配好某流量的份额之后,该流量在传送过程中绝对优先,但是超过分配的部分将不会占用其他流量的份额
注:1)令牌桶主要用于限速,队列调度主要提供带宽的保障。两者可以相互嵌套:比如在总体对流量进行限速,然后在限速的流量内使用队列
2)路由器中默认保障带宽不可以大于75%,如果非要超过,需要先调节默认的75%
拥塞避免:因为上限的原因,主要讲了怎么丢弃包才合理
WRED尾丢弃不能使处于传输中的流量发现通道资源不够用,其他资源又不能抢夺,会引发TCP“全局同步”–因为拥塞导致TCP一直超时丢包,则TCP一直处于握手阶段,如果对分组不加选择的随机丢弃,队列同时丢弃多个 TCP 连接的分组时,将造成多个 TCP 连接同时进入调整流量状态,加剧 TCP 传输的不稳定性,降低了 TCP 传输的效率(即所谓的 TCP 全局同步现象)
RED(早期检测,随机丢弃)虽然随机丢弃可以解决问题–不让队列满(快满的时候随机丢弃),空出位置让后面进,但是可能会丢弃重要的东西,但是仅仅只是随机的话可能把重要的流量丢弃,这也是DSCP为什么有第二维度:丢弃维度。
WRED:加权的RED(本质也是随机丢弃,但是丢弃加权越大,越容易被丢弃)
通过设置权重,根据优先级来对数据进行丢弃—权重大的丢弃概率小,权重大的丢弃概率大(权重来源于DSCP的第二维度—丢弃维度)为每个队列都设定一对低限和高限值,并规定:当队列的长度小于低限时,不丢弃分组。当队列的长度超过高限时,丢弃所有到来的分组。当队列的长度在低限和高限之间时,开始随机丢弃到来的分组。
交换QOS:调度机制写死了,出厂就不能改了
如果交换机不做任何服务保证,那么流量过交换机没有保障,在路由器上做的QOS白做
如何做?
将三层包TOS值映射到二层头部(称为COS),这是交换机可以识别;交换机性能低,跑不起来令牌桶但是有队列机制
SRR、WRR有点像CQ的玩法,天然已经做好,直接使用就行。
作者:苏小酱