QoS基础
作者:Danbo
QoS学习笔记
当我们运行的网络中有人开启迅雷下载时,我们局域网内其他主机网速将降到很低,这些原因就是由于IP使用的问题,如果使用ATM的话就不会出现这些问题。
ATM当时却没有竞争过IP,比如二层使用ATM,而三层使用IP,这就是IPoATM的技术。
ATM芯片太贵,ATM有自己的局域网,而当时国际上推的是以太网,还是由于以太网的芯片便宜。
因此二层没有竞争过以太网,三层竞争不过IP,这就导致其失败的必然。
-Best-Effort:NO QoS is applied to packets尽力而为
-IntServ:Applications signal to the network that they require special QoS集成服务
-DiffServ:The network recognizes classes that require special QoS
为什么P2P争带宽这么严重,因为家庭的网络环境对QoS要求并不高。
对于集成服务来说有一个叫做RSVP(资源预留服务)。集成服务。
差分服务模型:不存在绝对的保留,是提出分类的概念,针对你对资源的需求不同对你进行了划分,但又不能绝对保证。目前我们主要利用的是差分服务(DiffServ)
1.Best-Effor:尽力而为。类似于寄平信一样。没什么优点,没有什么差分服务。
2.IntServ Model:集成服务模型。
-Provides multiple service levels
-Requests specific kind of service from the network before sending datea
-Users RSVP to reserve network resources
-Users intelligent queuing mechanisms
-End to end,端到端的,并不是这些流量走向哪里都进行资源预留,而是在发送数据之前将所有源到目标的经过的所有节点都进行资源预留。然后再开始进行数据传输。
相对于尽力而为,扩展性不过,目标越远其计算的范围越,因此其扩展性不过。
根据你的需求进行分类,比如http分200,P2P下载直接丢弃流量。
其优势就是扩展性高,流量在网络的边缘就进行分类,然后给予它一定的策略,给其一定的服务保证,然后在网络传输过程中就不用管了。
3.DiffServ:这个是整个差分服务模型:提出了一个新的名词“分类”,不跟你谈任何的服务保证,只提供差分服务。但是有一个很大的缺陷:扩展性非常差。从政策角度,其中会经过几个ISP,不同ISP有可能采用的差分服务模型。采用一种信令机制,这将产生额外的传输成本。
IP报头中的ToS字段,但是我们并没有去使用,ToS字段总共占8个比特
x x x x x x x x
7 6 5 4 3 2 1 0
1.BE中我们用到的是7 6 5 三位
z z z x x x x x
前三位叫做IPP(IP Precedence)总共可以分为8个等级,所以其范围为IPP:0-7
比如我们使用route-map给其打上优先级的标记,但是其实并没有去使用优先级位。仅起到marking标记
换句话说就是对流量进行分类,去实现流量分类,但是IP具有先天的不足,其只具有8位。但是我们要实现差分服务的话只好要保证以下的几个位:1.带宽的分配。2.数据包在出站的队列机制。3.当出站接口发生拥塞的时候的发生丢包的机制:丢包策略。但是IP优先级则无法实现这个功能。
因此我们又采用了一个新的位:DSCP(差分服务代码点)对IPP进行扩展,使用前6位:
d d d d d d x x
包含:带宽分配,队列调度,丢包策略。我们发现其使用的前6位于IPP位中的前三位是重合的。
我们在数据包进入路由器之前先对其按照带宽、队列调度、丢包策略进行分类。一旦分类好的数据包进入路由器后,就会对其进PHB(per-hop behaviors,没跳行为)。
挡在第一路由器进行分类,然后在第二个路由器上对流量进行差分服务。这里并不是逐跳行为的,首先给一个DSCP值,你到达某个节点,其行为是独立进行的,执行的依据是依靠DSCP的值,整各过程我们只需要在第一台路由器上对数据进行分类就ok了,部署简单,兼容性高:其用到的位于IPP有重叠,因此DSCP完全可以把IPP考虑进入。其并没有改变IP包头的数据位,仅是对未利用的ToS加以利用。
PHB是一个行为,其行为以来与DSCP的值。
我们现在讲一下PHB行为:
根据这6为的DSCP位:我们对其进行的行为是:
d d d d d d
0 0 0 = Default(FIFO, tail drop尾丢弃)
x x x 0 0 0 = Class Selector 服务选择
1 0 1 = Expedited Forwarding 加速转发
0 0 1
0 1 0
0 1 1
1 0 0 代表的是Assured Forwarding
我们来观看一下PHB的位:
EF PHB
- Ensures a minimum departure rate
- Guarantees bandwidth(The class is guaranteed an amount of bandwidth with prioritized forwarding)
- Polices bandwidth(The class is not allowed to exceed the guaranteed amount - excess traffic is droppep)
26:25
要实现差分服务至少有这三种分类:
1.带宽分配。2.度列机制。3.丢包策略
d d d d d d x x,覆盖了IPP的前3位IPP位。
当数据包进入网络后,被打上DSCP值,然后中间的每台路由器对其采取措施简称PHB(per-hop behaviors),知道如何为其进行贷款分配、如何对其进行丢包等。
PHB是一个行为,这个行为的依据是DSCP。
DSCP所代表的PHB行行为
CS(PHB)后三位为000,这个刚好和IPP所定义的位刚好重合。
我们首先来看一下EF PHB:
其把DSCP分成三个部分:
d d d x x 0
1 0 1 1 1 0
高三位代表带宽,值越高分配的带宽越大。000-101(0-5)为什么没有到7呢?为了和二层最映射。
丢弃位:1 1 代表完全没有丢弃,
EF PHB 行为:1.首先给你保障一个最低转发速率,2.然后再分配一定的带宽,3.并且给你一个优先转发的可能性,我们知道带宽是指单位时间内的吞吐量。
对带宽的管制方面的管制非常严格,绝不会超出给你保证的速率,不会突然爆发流量。
EF多用于语音流量。
AF PHB(保障转发) Assure Forwarding
d d d x x 0
有四个等级(AF1、AF2、AF3、AF4)其前三位变化范围是:0 0 1 - 1 0 0
AF允许部分突发流量,但是当缓存带宽不够的情况下还是会丢包的,这个主要是交互式流量。
第二个部分是丢弃可能性:0 1 - 1 1(1-3)这三个值,指的是当发生拥塞的时候,如何处理这些数据包。
因此优先级最高丢弃率最低的
CS(Class-Selector)x x x 0 0 0
这个主要是用于与BE模式相兼容,这种仅存在带宽分配的DSCP位。
QoS机制:
1.Classification(分类)
我们在做服务质量,根据某些规则(协议,应用,标记),我们把一些熟悉相似的流量做成一个分类。
2.Marking(标记)
比如:IPP、DSCP默认这两种都没有启用。所谓标记仅仅是为了让数据包变得更加醒目一些,区分于其他的流量。其余分类的关系是:先根据某些规则做分类,然后再为这些不同的分类打上标记,以做区分。
这种方式叫做:基于分类的标记。
3.Congestion Management(拥塞管理):这种用到了队列机制去优化传输包。指的是:数据包在做出站传输的时候,怎么样被调度,让数据包更优先或更可控的从出站接口被转发出去。队列调度
4.Congestion Avoidance(拥塞避免):当我们数据包在做出站队列的时候,如果队列深度达到最大发生拥塞,此时就会采取丢弃措施,默认情况下采取的是为丢弃(tail drop),但是这种丢弃方式非常不合理。
5. Policing and Shaping(管制与整形):流量管制指的就是“限速”;整形:与管制相似,是对流量的速率起到一定的约束作用,但是其对流量的约束作用相对于管制来说稍微温和一些(体现在:管制的话对于超出的流量直接丢弃,整形则是当资源有所空闲的时候,会基于一定的buffer,让超出的流量做一暂时缓存,当借口队列空闲的时候,则释放掉这些缓存的突发流量。)
6.Link Efficiency(链路的有效性):有三个方面构成:1.Compresion(压缩:分为包头的压缩和负载的压缩);2.Link Fragmentation(链路的分片);3.interleaving(交叉传递)。链路分片和交叉传递指的都是链路层面。
一、分类
分类采取的措施的是:模块化的命令行:(Modular QoS CLI,MQC)与传统的CLI的区别,MQC:则是使用一套命令就搞定所有的机制。(相当于组合的CLI);
从技术需求与商务需求,否则VoIP流量会和P2P流量清抢占带宽。
未完。。。待续。。。