QoS和QoS佇列排程演算法
在QoS佇列排程中有如下演算法,分別如下:
1、SP
SP:Strict Priority(嚴格優先順序), SP排程嚴格按照優先順序從高到低的次序優先發送較高優先順序佇列中的分組,當較高優先順序佇列為空時,再發送較低優先順序佇列中的分組。佇列7優先順序最高,佇列0優先順序最低.
報文P1~P11~P…按照分類後進入不同的優先順序佇列,分類指根據報文字地優先順序對映到埠佇列。報文如果按照圖中方式進入各佇列,SP排程先排程高優先順序佇列7的報文,佇列7報文排程完之後在進入下一佇列6,報文出來後的順序就為 p1,p2,p3,p4,p5…p11
2、RR(Round Robin)-迴圈排程
基於報文的公平排程(Round Robin)RR, 基於報文的公平排程,每個佇列排程出對一個報文,就轉下一個佇列
報文P1~P11~P…按照分類後進入不同的優先順序佇列,分類指根據報文字地優先順序對映到埠佇列。報文如果按照圖中方式進入各佇列,RR排程,佇列7排程一個報文進入下一佇列6排程一個報文,依此到佇列0排程1個報文後再進入佇列7排程一個報文,如果佇列中沒有報文直接進入下一個佇列。上述報文出隊的順序為p1,p4,p7,p10,p2,p5,p8,p11,p3,p6,p9。
2、SRR:
3、DRR(deficit round robin)-差額迴圈佇列
DRR演算法是RR演算法的擴充套件。DRR演算法為每個佇列分配一個常量QN
l 佇列中有分組等待發送;
l (QN+DN)大於等於(Bsent+佇列中下一個分組的長度)。
否則,該佇列的差額DN+1被置為QN+DN-Bsent,排程器按順序移到下一個佇列。QN+DN表示在服務時間間隔內佇列能夠傳送的最大位元組數,在一定程度上DN可以平滑資料流的突發。佇列通過QN可以獲得長期的相對頻寬分配。如果啟用佇列的數目小於N,則啟用佇列可以根據QN
4、WRR(Weighted Round Robin)-加權迴圈排程演算法
基於報文的加權排程WRR, 可以配置每個佇列排程出多少個報文,就轉下一個佇列。如配置佇列0-佇列7的排程權重依次為1,1,2,4,5,5,2,3。排程方式如下圖
報文P1~P11~P…按照分類後進入不同的優先順序佇列,分類指根據報文字地優先順序對映到埠佇列。報文如果按照圖中方式進入各佇列,WRR排程,佇列7權重為3排程3個報文p1,p2,p3後進入佇列6,佇列權重為2排程2個報文p4,p5後進入下一級佇列,如果下一級佇列沒有報文直接進入下一級佇列,在一次輪詢完成後再進入佇列7,佇列7沒有報文直接進入佇列6。上圖中報文出來的順序為p1,p2,p3,p4,p5,p7,p8,p10,p6,p9,p11。
5、WDRR(Weighted Deficit Round Robin)-加權差額迴圈排程
基於報文位元組的加權排程,該演算法基於兩個變數:配額(quantum)和餘額(credit counter),配額代表權重,以位元組為單位,是可配置的引數,餘額用來表示配額的積累和消耗情況,是狀態引數,不可配置。初始狀態下,每個佇列的餘額等於其配額,當佇列每傳送一個報文的時候,餘額就減去這個報文的位元組數,當餘額低於0的時候就停止這個佇列的排程。當所有佇列都停止排程的時候就為所有佇列補充配額。權重N的範圍為0~127,權重為N表示配額是(N*MTU_QUANTA)位元組,這個(MTU_QUANTA為2K),N為0表示嚴格優先順序。
WDRR排程圖
報文P1~P11~P…按照分類後進入不同的優先順序佇列,分類指根據報文字地優先順序對映到埠佇列。報文如果按照圖中方式進入各佇列,WDRR排程,報文p1~p11大小如果為1200位元組,佇列7權重為3,即每次排程3*2K= 6K位元組的報文,先從佇列7排程6K位元組,如果佇列中沒有報文直接進入下一佇列,佇列6每次排程1*2K=2K位元組,即會排程兩個報文p4,p5,餘額為-400位元組,再進入下一佇列排程,佇列1權重為1,排程2K位元組排程每個報文p10,p11,餘額為-400位元組,完成一次輪詢後再進入高優先順序佇列,佇列6再分配到2K配額,由於上次欠了-400位元組,因此該次排程只能排程1600位元組。上圖中最終的報文順序為p1,p2,p3,p4,p5,p8,p9,p10,p11,p6,p7,p12