IP Precedence 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,AF2可以用來承載VOD的流量,相對於直播VOD要求時時性不是很強,允許有延遲或者緩衝。
6,AF1可以承載不是很重要的專線業務,因爲專線業務相對於IPTV和VOICE來講,IPTV和VOICE是運營商最關鍵的業務,需要最優先來保證。當然面向銀行之類需要鑽石級保證的業務來講,可以安排爲AF4甚至爲EF。
7,最不重要的業務是INTERNET業務,可以放在BE模型來傳輸。
 而在硬件隊列裏是如何保證協議報文(CS6和CS7中的數據)優先傳輸呢?在製作路由器的時候一般都是把CS6和CS7中的數據做PQ也就是絕對優先處理,無論下面是否有數據也是要優先來傳遞這兩個隊列中的數據。而其他EF到AF1的隊列中是用WFQ來做的,保證所有隊列都可以得到帶寬來傳輸。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章