DSCP QOS COS

 

保证服务质量,是当前网络技术界提得最多的话题之一。包交换压倒电路交换,ip网络压倒传统电信网络,是网络技术发展的必然趋势。但是,电信网络是面向连接的,它的优势是传输语音/视频等实时业务;ip网络本身是无连接的,需要加入新的技术,才能接过传统电信网络的担子。cos就是这样的技术。
  cos(class of service)的基本思想是,对网络上的业务区分不同的优先级,在网络的每一个环节,都让对实时性要求高的数据包优先通过。实施cos技术,需要从网络硬件和网管软件两方面入手。服务器端应该支持基于策略的管理,通过策略管理为不同部门的不同应用、在不同的时间规定不同优先级。策略保存在服务器ldap数据库或目录中,客户端支持程序(例如,3com的dynamicaccess)感知到某个应用程序启动时,该程序向服务请求该应用程序的优先级。在网络的各个节点上,都会给它设置成相应的优先级,局域网上是802.1p,wan上是iptos。交换机的硬件设计必须支持多队列,优先级不同的业务分别排队。例如,高优先级的数据包可以直接通过,普通优先级的数据包缓存起来,空闲时再传送。在广域网上,cos要映射到qos(quality of service)或ip tos(type of service)。
  与cos不同,qos的基本思想是,为实时业务保留一定的带宽,从而把数据的丢包率、延时、吞吐量、拥塞等控制在用户可接受的水平。qos技术有两个基本措施:(1)必须对数据源实施进入控制(connect admission control)和流量调整(traffic shaping);(2)在数据流进入网络之前,必须估算出该数据流对整个网络的影响。
  cos的实质是,通过增加带宽来提高业务质量。cos的优点是:(1)网络简单;(2)费用低;(3)兼容较早的设备。但也有几个缺点:(1)它仍然属于尽力传送;(2)没有服务区分;(3)需要频繁增加带宽;(4)偶尔也会出现拥塞。从cos的这些特点不难看出,cos主要适用于企业网或园区网。
  qos则是通过改善管理来提高业务质量。它的优点是:(1)服务质量更有保证;(2)基本于标准;(3)减少了过量供应带宽的费用;(4)适用于城域网以至广域网。它的缺点是:(1)管理复杂;(2)在整个网络都需要策略先知(policy-aware)的交换机和服务器;(3)现有设备很可能不支持qos。
  从目前的情况来看,虽然各厂商都大谈qos,但要真正在较大的范围内实现qos,短期内还只能是一种理想。一是因为这牵涉到多厂商的设备,二是网络总的带宽太少。所以,3com亚太区企业市场总监francois tournesac说,“internet/广域网没有什么qos”。
  3com是cos的倡导者。众所周知,3com的优势在于企业网。为了实施eric提出的统一网络,3com正致力于在企业网上提供实时业务,例如,它首次提出了局域网电话解决方案(lan telephony)。提供实时业务,企业网上的带宽是不成问题的,只需要简单地将业务分级就可以了,所花费的代价也不高,这就3com提出cos的技术背景所在。同时,业务分级带来了网络管理的复杂性,3com的策略驱动联网(policy powered networking,ppn)可以解决这个问题。所有设备都要依照策略目录的定义进行设置,如用户端某种应用设置较高的优先级,边缘端要进行相应的802.1p设置。中心端如果是以太网,则进行802.1p设置;如果是atm,则进行qos设置。在广域网,要wan进行带宽设置或其他设置。当某一种应用需要较高的优先级时,这种应用通过网络不同地方所用的技术可能是不一样的。但是只要有了策略,就可以根据这些策略在不同的地方进行不同设置,预先定义不同的服务级别。一旦策略形成,网络设备就会同策略目录结合起来,自动执行策略。
  当然,cos只是策略管理的功能之一,策略服务的内容还包括带宽预留、安全控制、网络监测、网络控制管理、sla、服务等级反馈、网络配置、网络运作情况等多个方面。

QoS的实现以IETF 的DiffServ 体系为基础。DiffServ体系规定每一个传输报文将在网络中被分类到不同的类别,分类信息被包含在了IP 报文头中,DiffServ 体系使用了IP 报文头中的TOS(Type Of Service)中的前6个比特来携带报文的分类信息。当然分类信息也可以被携带在链路层报文头上。一般地,附带在报文中的分类信息有:

1 帧头的Tag Control Information 中的前3 个比特,它包含了8 个类别的优先级信息,通常称这三个比特为为User Priority bits。

2 报文头中的TOS 字段前3 个比特,称作IP precedence value;或者携带在IP 报文头中的TOS 字段前6 个比特,称作Differentiated Services Code Point (DSCP) value。在遵循DiffServ 体系的网络中,各交换机和路由器对包含同样分类信息的报文采取同样的传输服务策略,对包含不同分类信息的报文采取不同的传输服务策略。报文的分类信息可以被网络上的主机、交换机、路由器或者其它网络设备赋予。可以基于不同的应用策略或者基于报文内容的不同为报文赋予类别信息。识别报文的内容以便为报文赋予类别信息的做法往往需要消耗网络设备的大量处理资源,为了减少骨干网络的处理开销,一般这种赋予类别信息的方式都使用在网络边界。

交换机或路由器根据报文所携带的类别信息,可以为各种交通流提供不同的传输优先级,或者为某种交通流预留带宽,或者适当的丢弃一些重要性较低的报文、或者采取其他一些操作等等。这些独立设备的这种行为在DiffServ 体系中被称作每跳行为(per-hop behavior)。如果网络上的所有设备提供了一致的每跳行为,那么对于DiffServ体系来说,这个网络就可以构成end-to-end QoS solution。

下面几个段落将详细介绍本交换机所提供的以DiffServ 体系为基础的QoS模型。

QoS入口端动作包括Classifying、Policing 和Marking。

Classifying:确保将网络交通流划分成以DSCP值来标识的各个数据流。随后交换机将根据DSCP值来对各个数据流实施不同的QoS策略。有关分类的更详细介绍,请参阅Classifying章节。

Policing:用于约束某个流的所占用的传输带宽,根据配置的Policer来决定流中的哪些部分超出了所限制的传输带宽,并将结果传递给下一阶段的Marking动作。有关Policing的更详细介绍,请参阅Policing章节。

Marking:决定怎样处理数据流中在Policing动作中超限的部分。可能的处理动作有丢弃超限部分和用另外的DSCP值标记超限部分。有关Marking的更详细介绍,请参阅Marking章节。

QoS出口端动作包括Queueing和Scheduling: Queueing:根据数据流的每一个报文所附带的DSCP值来确定将报文送往端口的哪个输出队列,有关Queueing的更详细介绍,请参阅Queueing章节。 Scheduling:确定以什么样的方式处理被送到端口各个输出队列中的报文有关Scheduling的更详细介绍,请参阅Scheduling 章节。下面的段落将详细介绍QoS模型的各个阶段的动作。

Classifying 

Classifying 即为分类,其过程是根据信任策略或者根据分析每个报文的内容来确定将这些报文归类到以DSCP 值来表示的各个数据流中,因此分类动作的核心任务是确定输入报文的DSCP 值。分类发生在端口接收输入报文阶段,当某个端口关联了一个表示QoS 策略的policy-map 后,分类就在该端口上生效,它起作用于所有从该端口输入的报文。

对于一般非IP 报文,交换机将根据以下准则来归类报文:

1.1 如果报文本身不包含QoS 信息,即报文的第二层报文头中不包含User Priority bits,那么可以根据报文输入端口的缺省CoS值来获得报文的QoS信息。端口的缺省CoS值和报文的UserPriority bits 一样,取值范围为0~7。取得报文的CoS 值之后,再根据交换机上配置的CoS-to-DSCP map 来将CoS 转化为DSCP 值。

2.2 如果报文本身包含QoS 信息,报文的第二层报文头中包含User Priority bits,那么可以直接从报文中获得CoS 值,然后再根据交换机上配置的CoS-to-DSCP map 来将CoS 转化为DSCP值。注意以上两种归类准则只有当端口的QoS 信任模式打开的时候才起作用。打开端口的QoS 的信任模式意味着不通过分析报文的内容,而直接从报文中或报文的输入端口上获得报文QoS信息,从而得到DSCP 值。

2 3. 如果端口关联的policy-map 中使用了基于mac access-list extended 的ACLs 归类,那么在该端口上,将通过提取报文的源MAC 地址、目的MAC 地址以及Ethertype 域来匹配关联的ACLs,以确定报文的DSCP 值。要注意的是,如果端口关联了某个policy-map,但又没有为其设置相应的DSCP 值,则交换机将按照缺省行为为符合这种归类的报文分配优先级:即根据报文第二层报文头中包含的优先级信息或端口的缺省优先级。

注意上面三种归类准则可能会同时作用于一个端口上。在这种情况下,上面三种归类准则按3、2、1 的优先级起作用。即,先根据ACLs 归类,在归类失败的情况下,才有可能选择归类准则2、1,在这个时候,如果端口的QoS 信任模式打开,则根据准则2 和1 直接从报文中或者从端口上获得QoS 信息;如果端口的QoS 信任模式关闭,那么那些归类失败的报文将被赋予DSCP 的缺省值0。

对于IP 报文,可以将根据以下准则来归类报文:

1.1直接从IP 报文的TOS 字段中提取出DSCP 值。IETF规定IP 报文的TOS 字段的前6 个比特作为DSCP 值,它的取值范围为0~63,和交换机内部使用的DSCP 值一一对应。

2.2 按照非IP 报文处理,按照上面介绍的非IP 报文归类准则1、2来确定报文的DSCP 值。注意以上几种归类准则只有当端口的QoS 信任模式打开的时候才起作用。打开端口的QoS 的信任模式意味着不通过分析IP 报文的内容,而直接从IP 报文的TOS 字段中或报文的输入端口上获得QoS 信息,从而得到DSCP 值。

2 3. 如果端口关联的policy-map 中使用了基于ip access-list (extended)的ACLs 归类,那么该在该端口上,将通过提取报文的源IP 地址、目的IP 地址、Protocol字段、以及第四层TCP/UDP 端口字段来匹配相关联的ACLs,以确定报文的DSCP 值。要注意的是,如果端口关联了某个policy-map,但又没有为其设置相应的DSCP 值,则交换机将按照缺省行为为符合这种归类的报文分配优先级:即根据报文第二层报文头中包含的优先级信息或端口的缺省优先级。和非IP 报文归类准则一样,以上几种归类准则可以同时作用于一个端口上。在这种情况下,上面的归类准则按照3、2、1的优先级起作用。即先根据ACLs 归类,在归类失败的情况下,才有可能选择归类准则2、1;在这个时候,如果端口选择QoS 信任模式Trust IP-precedence,那么准则1 起作用;如果端口选择QoS 信任模式Trust CoS,那么准则2 起作用。有关上面提到的CoS-to-DSCP map、IP-precedence-to-DSCP map映射表的详细描述情常见随后描述。

Policing 

Policing 动作发生在数据流分类完成后,它用于约束被分类的数据流所占用的传输带宽。Policing动作检查被归类的数据流中的每一个报文,如果该报文超出了作用于该数据流的Policer 所允许的限制带宽,那么该报文将会被做会被作特殊处理,它或者要被丢弃,或者要被赋予另外的DSCP 值。在QoS 处理流程中,Policing 动作是可选的。如果没有Policing 动作,那么被分类的数据流中的报文的DSCP 值将会不作任何修改,报文也不会在送往Marking 动作之前被丢弃。

Marking

经过Classifying 和Policing 动作处理之后,为了确保被分类报文报文对应DSCP 值的能够传递给网络上的下一跳设备,需要通过Marking 动作将为报文写入QoS 信息,可以使用Trust 方式直接保留报文中QoS 信息,例如,选择Trust Cos 从而保留802.1Q 报文头的Tag Control Information 中的CoS 信息;默认情况下,Marking 总是用报文对应的DSCP 值转化成QoS 信息,然后写入到报文CoS字段(对于非IP 报文)、DSCP字段或者IP-precedence 字段(对于IP 报文)中。

Queueing 

Queueing 动作负责将数据流中报文送往端口的哪个输出队列中,送往端口的不同输出队列的报文将获得不同等级和性质的传输服务策略。每一个端口上都拥有8 个输出队列,通过交换机上配置的DSCP-to-CoS Map 和Cos-to-Queue Map 两张映射表来将报文的DSCP 值转化成输出队列号,以便确定报文应该被送往的输出队列。

Scheduling 

Scheduling 动作时QoS 流程的最后一个环节。当报文被送到端口的不同输出队列上之后,交换机将采用WRR 或者SP 轮转算法发送8 个队列中的报文。可以通过设置轮转算法的权重值来配置各个输出队列在输出报文的时候所占用的传输带宽。

CoS 服务类别

  不要将CoS与QOS(服务质量)混淆,CoS是优先级队列形式,已在大量通信和连网协议中使用。它是一种基于应用类型(话音、视频、文件传输、事务处理)、用户类型(CEO,秘书)或其他设置对数据分组区分类别并区分优先级次序的方法。

  CoS是一种排队规则,而QOS包括用以管理带宽和网络资源的更广范围的技术。CoS通过检查数据分组参数或CoS标记对数据分组区分等级,并基于预定义的标准将数据分组放在不同优先级队列中。QOS涉及到保证一定的网络性能级别以满足业务合同或支持实时通信。对于QoS'要使用一些方法在发送数据分组前在网络上预留带宽。

注意

  打个比方,CoS如同将要递送的包裹分级为平邮投递、第二日投递或第三日投递。QOS是投递公司为确保您的包裹按时递交要做的事情(如包裹跟踪、航空运输、挨家挨户收取和投递邮件)。

  虽然CoS技术可以赋予一些通信高于其他通信的优先级,但是如果没有QOS,将没有办法防止即使是高优先级的通信被延迟或丢失数据分组。事实上,真正的QOS仅对于ATM才是可以实现的,由于ATM具有固定的信元所以它能提供可以预测的服务。对于ATM通信公司和服务提供商精确知道在其网络容量内可以发送多少个53字节的信元。这种可预测性允许通信公司以保证的服务级别签署服务级别协议。

  另外,CoS技术能够减少等待时间,确保重要的通信在合理的时间内完成。CoS在企业网络上是很实用的。对一个网络进行过量供应(提供多于平均需要的带宽)然后将通信区分优先次序以达到可接受的服务级别,这一点是有可能做到的。通过将通信区分优先次序,网络设备可以在进行最高优先级通信前先放下最不重要的通信。

  后面列出了CoS技术并在本书其他地方做了描述。为了便于比较,请参考it QOS(服务质量)”和“综合业务(IntServ)"以了解对于QOS技术的讨论。

·802.1p 一个IEEE标准,它使用以太网帧头中的3个比特将通信分为多达8个的优先级。它 基本上赋予交换机和其他第2层连网设备以对通 信区分优先次序的功能。这在“网络通信优先级”和"QoS(服务质量)”中进行了讨论。

·Diff-Serv 一个用以对IP通信区分优先次序的规范。对于使用能将IP网络上通信区分优先级的方法设置IP头中的TOS(服务类型)字段,它指定了方法。Diff-Serv是重要的,这是因为它可以跨互联网络和[[因特网//使用。请参阅“区分服务DiffServ)”和“网络通信优先级”。

·ATM服务类别 ATM有自己的通信分类方法,如分类为CBR恒定比特率)、VBR可变比特率)、UBR不指定比特率)、ABR可用比特率)和GFR保证帧速率)。有关更多详细信息,请参阅"ATM异步传输模式)”。

  Acuitive的总裁在一篇论文对于CoS提供了一种有趣的观点(请参阅本主题结尾处的链接)。他宣称:虽然CoS可以减少等待时间,然而随着链路速度的增加,CoS重要性将降低。例如,200ms以下的延迟几乎难以觉察。快速以太网链路的等待时间约为2.4ms。他解释说,对于即使注意到等待时间仅有轻微增加的用户,数据分组需要“经过几乎100个快速以太网交换机,在每个交换机上都延后20个大小为最大的以太网才到达”。他估计CoS最重要的用途在于WAN,而不是以太网LAN

 

 

IP Qos DSCP和TOS分类

RFC 791中 OS位的IP Precedence划分成了8个优先级,可以应用于流分类,数值越大表示优先级越高。

   0     1     2     3     4     5     6     7 
+-----+-----+-----+-----+-----+-----+-----+-----+
|   PRECEDENCE    |  t3 | t2  |  t1 | t0 |m
-----+-----+-----+-----+-----+-----+-----+-----+

            111 - Network Control
            110 - Internetwork Control
            101 - CRITIC/ECP
            100 - Flash Override
            011 - Flash
            010 - Immediate
            001 - Priority
            000 – Routine

但是在网络中实际部署的时候这8个优先级是远远不够的,于是在RFC 2474中又对TOS进行了重新的定义。把前六位定义成DSCP,后两位保留。

  0   1   2   3   4   5   6   7
+---+---+---+---+---+---+---+---+
|         DSCP          |  CU   |
+---+---+---+---+---+---+---+---+

DSCP: differentiated services codepoin

CU:   currently unused

但是由于DSCP和IP PRECEDENCE是共存的于是存在了一些兼容性的问题,DSCP的可读性比较差,比如DSCP 43我们并不知道对应着IP PRECEDENCE的什么取值,于是就把DSCP进行了进一步的分类。DSCP总共分成了4类。

                 Class Selector(CS)           aaa 000
                 Expedited Forwarding(EF)     101 110
                 Assured Forwarding(AF)       aaa bb0
                 Default(BE)                  000 000

1,默认的DSCP为000 000
2,CS的DSCP后三位为0,也就是说CS仍然沿用了IP PRECEDENCE只不过CS定义的DSCP=IP PRECEDENCE*8,比如CS6=6*8=48,CS7=7*8=56
3,EF含义为加速转发,也可以看作为IP PRECEDENCE为5,是一个比较高的优先级,取值为101110(46),但是RFC并没有定义为什么EF的取值为46。
4,AF分为两部分,a部分和b部分,a部分为3 bit仍然可以和IP PRECEDENCE对应,b部分为2 bit表示丢弃性,可以表示3个丢弃优先级,可以应用于RED或者WRED。目前a部分由于有三个bit最大取值为8,但是目前只用到了1~4。为了迅速的和10进制转换,可以用如下方法,先把10进制数值除8得到的整数就是AF值,余数换算成二进制看前两位就是丢弃优先级,比如34/8=4余数为2,2换算成二进制为010,那么换算以后可以知道34代表AF4丢弃优先级为middle的数据报。

如果把CS EF AF和BE做一个排列可以发现一个有趣的现象,如下表。这个表也就是我们在现实当中应用最多的队列。根据IP PRECEDENCE的优先级,CS7最高依次排列BE最低。一般情况下这些队列的用途看这个表的Usage字段

对应的服务 IPv4优先级/EXP/802.1P    DSCP(二进制) DSCP[dec][Hex] TOS(十六进制)       应用  丢包率
BE         0                        0            0    0                Internet 
AF1        Green 1       001 010      10[0x0a]      40[0x28]      Leased Line  L 
AF1        Green 1       001 100      12[0x0c]      48[0x30]      Leased Line   M
AF1        Green 1       001 110      14[0x0e]      56[0x38]      Leased Line   H

AF2        Green 2                  010 010      18[0x12]      72[0x48]       IPTV VOD   L
AF2        Green 2                  010 100      20[0x14]      80[0x50]          IPTV VOD   M
AF2        Green 2                  010 110      22[0x16]      88[0x58]       IPTV VOD   H

AF3        Green 3                  011 010      26[0x1a]      104[0x68]       IPTV Broadcast  L
AF3        Green 3                  011 100      28[0x1c]      112[0x70]      IPTV Broadcast  M
AF3        Green 3                  011 110      30[0x1e]      120[0x78]       IPTV Broadcast  H

AF4        Green 4                  100 010      34[0x22]      136[0x88]       NGN/3G Singaling  L
AF4        Green 4                  100 100      36[0x24]      144[0x90]      NGN/3G Singaling M
AF4        Green 4                  100 110      38[0x26]      152[0x98]       NGN/3G Singaling H

EF         5                        101 110      46[0x2E]      184[0xB8]      NGN/3G voice

CS6(INC)   6                        110 000      48[0x30]      192[0xC0]      Protocol
CS7(NC)    7                        111 000      56[0x38]      224[0xE0]      Protocol
1,CS6和CS7默认用于协议报文,比如说OSPF报文,BGP报文等应该优先保障,因为如果这些报文无法接收的话会引起协议中断。而且是大多数厂商硬件队列里最高优先级的报文。
2,EF用于承载语音的流量,因为语音要求低延迟,低抖动,低丢包率,是仅次于协议报文的最重要的报文。
3,AF4用来承载语音的信令流量,这里大家可能会有疑问为什么这里语音要优先于信令呢?其实是这样的,这里的信令是电话的呼叫控制,你是可以忍受在接通的时候等待几秒钟的,但是绝对不能允许在通话的时候的中断。所以语音要优先于信令。
4,AF3可以用来承载IPTV的直播流量,直播的时时性很强需要连续性和大吞吐量的保证。
5,AF4可以用来承载VOD的流量,相对于直播VOD要求时时性不是很强,允许有延迟或者缓冲。
6,AF5可以承载不是很重要的专线业务,因为专线业务相对于IPTV和VOICE来讲,IPTV和VOICE是运营商最关键的业务,需要最优先来保证。当然面向银行之类需要钻石级保证的业务来讲,可以安排为AF4甚至为EF。
7,最不重要的业务是INTERNET业务,可以放在BE模型来传输。

而在硬件队列里是如何保证协议报文(CS6和CS7中的数据)优先传输呢?在制作路由器的时候一般都是把CS6和CS7中的数据做PQ也就是绝对优先处理,无论下面是否有数据也是要优先来传递这两个队列中的数据。而其他EF到AF1的队列中是用WFQ来做的,保证所有队列都可以得到带宽来传输。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值