QOS-1 ClassAndMarking标记和分类

来源:互联网 发布:软件定制论坛 编辑:程序博客网 时间:2024/06/12 07:10
session 1 QOS
QOS Quality of Service,服务质量,用来代替ip数据包中的TOS字段的功能。
      还记得ipv4头部的TOS字段(用于ip precedence ip优先级)共8个bit,但是实际上TOS只用了前3个bit做服务质量,那么可用的分类就是2的3次方6种数据优先级的分类,太少。所以使用了QOS技术,QOS中开发了DSCP(差分服务代码点来对数据进行区分标记)DSCP标记也是使用了ip头中的TOS字段的8bit位,但是DSCP标记是用到前6个bit(xxxxxxxx),也就是2的6次方种分类,满足多种数据流标记分类。至于TOS最后两个bit在DSCP中用作保留,现在又用于MPLS的QOS了。
      TOS是ip precedence(ip优先级),使用xxxxxxxx中的前3个bit做标记,注意只是标记技术,和QOS中的DSCP一样只是给数据包打个区分标记而已,用来区分流量,至于对这些标记分类的数据包采取的动作,在QOS中是由PHB(per-hop Behavior每跳行为,就是每一跳路由器可以自行决定QOS的动作,每个都是本地有效)来决定的。也就是说DSCP只是个标记技术,而真正的控制层技术是PHB来做(当然也是根据DSCP的标记来决定动作的)
      OK,为什么DSCP会成为QOS的主流标记技术,因为它和TOS字段的兼容性决定的(就使用的TOS字段的8个bit的前6个)。使得其他依赖于ip的协议能够完美的运行QOS。
这里所有的QOS只讨论现在使用的差分服务模型

session 2 DSCP-PHB的分类(TOS最后2个bit在DSCP中用作保留这里固定是xx,现用于MPLS的QOS了)
      DSCP使用了ip包头的TOS字段(8bit)里面的前6个bit。在DSCP中分4种PHB,分别对应了DSCP的值,十进制是0~63,二进制是000 000~111 111。
      其中前3个bit用作流量的带宽分配xxx xxx,000表示没有带宽保证而111表示最大带宽分配,后3个bit用作流量的丢包控制xxx xxx,最大110表示丢包优先级最低(不丢包),001最小值表示丢弃优先级最高(最优先丢弃)。
 
下面是具体的PHB的分类及对应的DSCP值:
1、EF PHB
加速转发Expedited Forwarding(EF) 提供延时的保证,主要针对于延时 PQ,固定的DSCP值为101 110,表示不丢包,多用于语音流量。
 
2、AF PHB
确保转发Assured Forwarding(AF)提供带宽保证,用于带宽保证CBWFQ,对应的DSCP值是xxx dd 0,AF中DSCP的最后一个bit固定为0,表示必须有丢弃可能性。丢包可能性就看后3个bit中的2个bit,dd位。前面的3个bit表示带宽的分配。
 
3、CS PHB

类选择器Class Selector(CS)xxx 000

这个用于和IPP(ip precedence)做兼容只用到了前3个bit,所以后3个bit都为0而不是表示丢弃可能性,CS PHB是无丢弃可能性的,多用于视频流数据
 
4、BE PHB
      Bast Effort model尽力而为模型,也就是接口默认的FIFO先进先出的原则,对应的dcsp值是000000
      CS6和CS7默认用于协议报文。因为如果这些报文无法接收的话会引起协议中断。而且是大多数厂商硬件队列里最高优先级的报文。
      EF用于承载语音的流量,因为语音要求低延迟,低抖动,低丢包率,是仅次于协议报文的最重要的报文。
      AF4用来承载语音的信令流量,这里大家可能会有疑问为什么这里语音要优先于信令呢?其实是这样的,这里的信令是电话的呼叫控制,你是可以忍受在接通的时候等待几秒钟的,但是绝对不能允许在通话的时候的中断。所以语音要优先于信令。
      AF3可以用来承载IPTV的直播流量,直播的实时性很强需要连续性和大吞吐量的保证。
      AF2可以用来承载VOD的流量,相对于直播VOD要求实时性不是很强,允许有时延或者缓冲。
      AF1可以承载不是很重要的专线业务,因为专线业务相对于IPTV和VOICE来讲,IPTV和VOICE是运营商最关键的业务,需要最优先来保证。当然面向银行之类需要钻石级保证的业务来讲,可以安排为AF4甚至为EF。
      最不重要的业务是Internet业务,可以放在BE模型来传输。这也是我们为什么老抱怨网络不好。
      可以说,有了DSCP,就初步实现了通讯业务中的时间管理,我们日常的通讯业务才能保质保量地高效运行。
 
      理解重点:其实DSCP是一种标记技术,就是使用了ip包头部中的TOS字段的这8个bit中的前6个bit来进行流量的区分,而DSCP-PHB就是人们区分这6个bit组成的不同流量(应该/推荐用于哪种流量的)用途,是在设备中默认设置好的,根据不同协议定义了不同的dscp值(比如在路由器中默认telnet流量的dscp是cs2,eigrp路由协议的dscp也是cs2,语音流量的dscp值是ef,视频流量的dscp是cs7等,其他不同的应用协议也有对应的dscp值,这些dscp是默认的,可以根据自定义需求在polocy-map中使用set命令修改协议流量的dscp值和ipp值等),所以在DSCP-PHB中的EF、AF、CS、BE等只是一个(定义的)名称而已,其实质还是DSCP的标记的值(那6个bit组成的),要么是十进制,要么是二进制的。所以其实可以将DSCP和DCSP-PHB(AF、EF、CS等)看成一个东西,就是6个bit的一个标记,从命令中也可以看出来,系统已经给出了答案:
      dscp可以使用十进制0~63的,也可以使用二进制的bit,比如在二进制是001010的dscp在十进制就是10,在PHB中就是af11(afxy计算方法是看dscp的6个bit,前三个xxxbit做af的x位后面2个dd bit做af的y位,最后一个bit固定位0,比如af11是001 01 0这样计算的)、在二进制是010000的dscp在十进制就是16,在PHB中就是cs2(CSx的计算和afxy一样的,只是cs为了和ipp兼容只计算前3个bit,后面3个bit用不到固定为0)。
       也就是说所有的这些AF、EF、CS等其实都是dcsp值,只是名称不同,例如AF就是AF-dscp、EF就是EF-dcsp都是dscp只是根据(推荐的)dscp用于不同流量起的不同的名称。比如下面的命令:
R1(config-cmap)#match dscp 10 就等于 R1(config-cmap)#match dscp af11
下面是QOS差分服务模型中所有dscp的值和dscp的分类:
R1(config-cmap)#match dscp ?
  <0-63>   Differentiated services codepoint value
  af11     Match packets with AF11 dscp (001010)
  af12     Match packets with AF12 dscp (001100)
  af13     Match packets with AF13 dscp (001110)
  af21     Match packets with AF21 dscp (010010)
  af22     Match packets with AF22 dscp (010100)
  af23     Match packets with AF23 dscp (010110)
  af31     Match packets with AF31 dscp (011010)
  af32     Match packets with AF32 dscp (011100)
  af33     Match packets with AF33 dscp (011110)
  af41     Match packets with AF41 dscp (100010)
  af42     Match packets with AF42 dscp (100100)
  af43     Match packets with AF43 dscp (100110)
  cs1      Match packets with CS1(precedence 1) dscp (001000)
  cs2      Match packets with CS2(precedence 2) dscp (010000)
  cs3      Match packets with CS3(precedence 3) dscp (011000)
  cs4      Match packets with CS4(precedence 4) dscp (100000)
  cs5      Match packets with CS5(precedence 5) dscp (101000)
  cs6      Match packets with CS6(precedence 6) dscp (110000)
  cs7      Match packets with CS7(precedence 7) dscp (111000)
  default  Match packets with default dscp (000000)
  ef       Match packets with EF dscp (101110)
 

session 3 QOS实现的机制/方法(Mechanisms)

1、class分类,也是QOS必须的最基础的框架

2、Marking标记(L2层cos、L3层DSCP)

3、队列(拥塞管理),调度,只保证每个队列数据流量的带宽配额,不管队列的延迟,不决定那个队列先传出。在入方向没有“队列”一说,只有出方向有队列,因为入向不会有数据包排队等待被发送出去的现象。

4、拥塞避免(丢弃机制),与队列互补,可以控制队列的丢弃。未雨绸缪,在未拥塞前丢弃一些不重要的数据

5、policing管制(严格限速)和shaping整形(宽容限速)

6、WAN链路有效性(Link Efficiency),包括三个内容:

压缩(compression)、分片(Link fragmentation)、交叉传递(interleaving)


QOS机制的使用方向:

1、input方向使用:class、marking、policing

2、output方向使用:队列、管制和整形、拥塞避免


session 4 QOS配置的实现途径

1、传统的QOS CLI,每种QOS的机制有单独的命令

2、SDM cisco的图形化配置工具

3、Auto QOS

4、MQC 模块化的配置工具,框架型命令,整合了所有的机制的配置格式,目前主流的QOS配置途径

以上都是说QOS的差分服务模型,end to end(端到端的配置)

MQC CLI配置QOS的基本步骤:

第一步、定义class分类

使用class-map来定义分类,命令为:

class-map match-all/match-any map_name (默认是class-map是match-all类型)

match 匹配和match not 反选,匹配除去这个流量的其余的流量

第二步、制定策略policy

 policy-map map_name

class class-map_name

bandwidth 2000(KB)       将class-map匹配的流量的带宽设置带宽为2M

class class-default               class-default这个名字是系统预定义的,代表除class-map匹配的其余的流量

bandwidth 5000(KB)       将其余所有流量设置为带宽5M

第三步、在出站和入站接口调用policy策略

service-policy input/output policy-map_name

 

      补充:L2层的QOS是cos值,对应L3层的ipp(ip优先级)和dscp。L2层的QOS有边界可信设备的概念,一般是接入层交换机是最边界的可信设备,而来自PC的流量是不和信的不用cos,要求cos与ipp或dscp对应是因为以太网的帧是无法在WAN上传输的,WAN上传输的都是其他的L2层协议和ip协议,因此没有以太网帧头部的封装,也就没有cos的值了(cos的字段是在L2层帧的头部中),必须转换成ipp或dscp才能被WAN和L3层设备识别标记。 


0 0
原创粉丝点击