分享

IP QoS(DSCP)的流分类方法详解zz...

 tcwl123 2012-07-11

IP QoS(DSCP)的流分类方法详解zz  

2007-12-13 17:13:15|  分类: 默认分类|字号 订阅

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

  0    1    2    3&nb sp;   4    5    6    7  
+-----+-----+-----+-----+-----+-----+-----+-----+
|  PRECEDENCE   |  D  | T  |  R |  0  | 0  |
+-----+-----+-----+-----+-----+-----+-----+-----+

           111 - Network Control
           110 - Internetwork Control
            101- CRITIC/ECP
           100 - Flash Override
           011 - Flash
           010 - Immediate
           001 - Priority
           000 – Routine
 但是在网络中实际部署的时候这8个优先级是远远不够的,于是在RFC2474中又对TOS进行了重新的定义。把前六位定义成DSCP,后两位保留。
  0  1  2  3  4  5  6   7
+---+---+---+---+---+---+---+---+
|        DSCP         |  CU   |
+---+---+---+---+---+---+---+---+
DSCP: differentiatedservices codepoin
CU:   currentlyunused 
但是由于DSCP和IPPRECEDENCE是共存的于是存在了一些兼容性的问题,DSCP的可读性比较差,比如DSCP43我们并不知道对应着IPPRECEDENCE的什么取值,于是就把DSCP进行了进一步的分类。DSCP总共分成了4类。
                ClassSelector(CS)          aaa 000
                ExpeditedForwarding(EF)    101 110
                AssuredForwarding(AF)      aaa bb0
                 Default(BE)                 000 000
 1,默认的DSCP为000 000
2,CS的DSCP后三位为0,也就是说CS仍然沿用了IPPRECEDENCE只不过CS定义的DSCP=IPPRECEDENCE*8,比如CS6=6*8=48,CS7=7*8=56
3,EF含义为加速转发,也可以看作为IPPRECEDENCE为5,是一个比较高的优先级,取值为101110(46),但是RFC并没有定义为什么EF的取值为46。
4,AF分为两部分,a部分和b部分,a部分为3 bit仍然可以和IPPRECEDENCE对应,b部分为2bit表示丢弃性,可以表示3个丢弃优先级,可以应用于RED或者WRED。目前a部分由于有三个bit最大取值为8,但是目前只用到了1~4。为了迅速的和10进制转换,可以用如下方法,先把10进制数值除8得到的整数就是AF值,余数换算成二进制看前两位就是丢弃优先级,比如34/8=4余数为2,2换算成二进制为010,那么换算以后可以知道34代表AF4丢弃优先级为middle的数据报。
如果把CS EFAF和BE做一个排列可以发现一个有趣的现象,如下表。这个表也就是我们在现实当中应用最多的队列。根据IPPRECEDENCE的优先级,CS7最高依次排列BE最低。一般情况下这些队列的用途看这个表的Usage字段
 
对应的服务IPv4优先级/ EXP / 802.1PDSCP(二进制)DSCP(十进制)TOS(十六进制)应用
BE0000Internet
AF1 Green110101028LeasedLine 
AF2 Green2100101848IPTVVOD
AF3 Green3110102668IPTVBroadcast
AF4 Green41000103488NGN/3GSingaling
EF510111046B8NGN/3Gvoice
CS6611000048C0Protocol
CS7711100056E0Protocol

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来做的,保证所有队列都可以得到带宽来传输。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多