最近在搞qos,看到一篇文章,不錯。
===========================================
IP QoS的流分類方法詳解
[url]www.net130.com[/url] 日期:2007-11-18 瀏覽次數:3337
出處:blog.sina.com.cn/stimwoo 上次和同事討論到qos流量和協議流量的優先順序問題。後來發現此篇文章。特轉寄。
RFC 791中把TOS位的IP Precedence劃分成了8個優先順序,可以應用於流分類,數值越大表示優先順序越高。
0 1 2 3 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個優先順序是遠遠不夠的,於是在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(十進位) TOS(十六進位) 應用
BE 0 0 0 0 Internet
AF1 Green 1 1010 10 28 Leased Line
AF2 Green 2 10010 18 48 IPTV VOD
AF3 Green 3 11010 26 68 IPTV Broadcast
AF4 Green 4 100010 34 88 NGN/3G Singaling
EF 5 101110 46 B8 NGN/3G voice
CS6 6 110000 48 C0 Protocol
CS7 7 111000 56 E0 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來做的,保證所有隊列都可以得到頻寬來傳輸