專利名稱:一種基于定時器和mdrr的隊列調度方法
專利說明本發明是一種基于定時器和MDRR的隊列調度方法的框架。主要用于解決隊列調 度中對實時業務帶寬不能保證及權值不能動態適應網絡的變化的問題,同時對高優先級 業務進行了時延保障,但又考慮了常規業務的服務質量。
背景技術:
對于具有不同網絡服務要求的語音、視頻和數據應用通信而言,要求IP網絡核心 具有區分出不同的通信的能力,進而為之提供不同的服務,達到區分服務的目的。根據不同 的業務實施不同的調度,就能實現對業務的區分。目前在高速路由器中常見的帶權重的調 度算法是 WRR (Weighted Round Robin)。常見的基于輪循的算法有RR,WRR和DRR。傳統的RR只是簡單地對所有隊列進行 輪循調度,一次調度發送一個分組,使得不同隊列在某種程度上“平等”地使用帶寬資源。然 而由于分組長度不固定,使得長分組隊列可能比短分組隊列得到更多的服務,獲得更高的 帶寬,因而其公平性受到很大限制,而且不能提供時延保證。所以出現了許多改進算法,常 見的有WRR禾口 DRR。WRR給隊列賦予不同的權值,可以比RR更靈活地控制帶寬在不同隊列的分配,而 且能以比較平滑的方式調度輸出業務,但仍然存在由于分組變長帶來的不公平性。DRR由 于考慮了分組變長這一信息,很好地解決了帶寬分配的公平性問題;缺陷是不能很好地滿 足業務的時延特性,不能像WRR那樣以較為平滑的方式調度輸出。
發明內容
技術問題本發明的目的是改進區分服務框架中的時延敏感型業務的隊列時延, 通過對該類業務進行優先處理,減少其在調度中的等待時間,同時為該隊列設置一個動態 定時器time,當動態定時器為0后,服務常規隊列,保證了公平性,常規隊列能夠實現根據 網絡狀況自適應配置其權值,保證公平性的同時對突發流量有很好的控制。技術方案一種基于定時器和MDRR的隊列調度方法,其特征在于該方法的步驟 為
步驟l)Time定時器是為類1等時延敏感型業務而設置的,主要保障該隊列的時延;類 2至類η為常規隊列,實時測量隊列長度并根據業務量來修改隊列權值,確保業務量大的隊 列MDRR調度權值稍微加大;
步驟2)調度開始時,初始化Time定時器時間,此時開始服務該隊列; 步驟3)初始化常規隊列預設權值數組W2,W3……,Wn,所述業務權值在1,10范圍類, 當Time時間到后,根據加權輪詢調度算法對其余隊列輪詢;
步驟4)經過一定時間Dt,測試類2至類η隊列的實時長度length_q[i],并對length_ q[i]/ffi在-0. 5,0. 5之間進行歸一化處理后得結果DWi,Wi= WiiDWi更新權值數組,其中 i=2、3、".η ;步驟5)根據步驟4)得到的常規隊列i的權值Wi,設置每個隊列每次權數為MTU + weight*512 ;
步驟6)每個隊列都有一個赤字計數器,用于每次調度時該隊列所能發送的數據包總 和的最大值,初始化為l/2*MTU*weight ;
步驟7)當調度到該隊列i時,權數加到赤字計數器上,如果隊列首部的數據包小于該 赤字計數器,就發送該數據包,赤字計數器同時減去數據包大小,如果赤字計數器小于0,那 么輪詢到下一個隊列;
步驟8)如果有高優先級業務達到,則服務完當前隊列后輪詢到高優先級隊列; 步驟9)為高優先隊列設置一個速率測量器,實時測試高優先隊列速率rate,time表 示該隊列實時應該得到服務的時間,動態定時器為time=k*l0g2rate,K為一固定常數;
步驟10)服務高優先級隊列時,啟動一個計時器,當為0發送完該數據包后,跳轉到常 規隊列的下一個非空隊列有益效果通過基于區分服務的基于區分服務的隊列自適應調度的方法,我們能 夠實現
1)運用該調度算法,優先級隊列不為空時,能夠根據業務速率動態設置其服務時間, 減少時延敏感型業務的時延,同時能夠為常規隊列提供公平性;
2)常規隊列之間實現動態權值分配并映射成調度所需的字節,各隊列能夠公平分享 帶寬,能夠提高路由器的整體調度性能。
圖1基于區分服務的隊列調度的方法的架構圖; 圖2加權輪詢調度算法權值的動態調節流程圖3動態定時器設置流程圖。
具體實施例方式下面結合附圖對發明的技術方案進行詳細說明
本發明提出了一種基于定時器和MDRR的隊列調度方法的框架,并詳細設計了高優先 級隊列的動態定時器和隊列權值自適應分配算法,如圖2和圖3所示。從圖中可以看出,主 要分為三個部分Time定時器,實時權值更新和修改的加權輪詢(MDRR)調度算法組成。Time 定時器
功能為高優先隊列設置一個速率測量器,實時測試其速率rate,設time表示該隊列 實時應該得到服務的時間,動態定時器公式為time=k*l0g2rate,K為一固定常數,這樣,高 優先
級隊列服務的時間就取決于其速率,但隨著速率增長,服務時間不是線性增加,這樣保 證了常規隊列的公平性,當time為0后,發送完當前數據包后,跳轉到剛才服務的常規隊列 的下一個非空隊列。實時權值更新
功能根據初始設定的業務帶寬,公平分配帶寬,同時根據隊列動態變化的隊列長 度,修改隊列權值,使業務量大的隊列權值稍微加大,緩和其丟包率,并解決隊列流量突發問題。a)初始化常規 隊列預設權值數組W2,W3……,Wn,約定此處的各業務權值在1, 10范圍類,當Time時間到后,根據加權輪詢調度算法對其余隊列輪詢;
b)經過一定時間Dt,測試類2至類η隊列的實時長度length_q[i],并將length_q[i]/ Wi,并對其在-0. 5,0. 5之間進行歸一化處理后得結果DWi,Wi= WiiDWi更新權值數組;
c)根據上步驟得到的常規隊列i的權值Wi,需要轉換為調度所需要的比特數,一般而 言,一個隊列的權數大小一定不會小于該接口的MTU值。這保證了調度總是服務每個非 空隊列中至少一個包,因此,我們設置每個隊列每次權數為MTU + weight*512(小數點被忽 略);
MDRR算法
功能根據上述更新的權值,每次調度該隊列的時候就查詢權值,并發送相應大小的 數據。a)每個隊列都有一個赤字計數器,用于每次調度時該隊列所能發送的數據包總 和的最大值,初始化為l/2*MTU*weight;
b)當調度到該隊列i時,權數加到赤字計數器上,如果隊列首部的數據包小于該計數 器,就發送該數據包,同時減去其大小,如果赤字計數器小于0,那么輪詢到下一個隊列;
c)如果有高優先級業務達到,則服務完當前隊列后輪詢到高優先級隊列;
e)服務高優先級隊列時,啟動一個計時器time,當time為0后,發送完該數據包后,跳 轉到剛才服務的常規隊列的下一個非空隊列。從以上的描述中可以看出,本發明實現了對保障高優先級業務帶寬的同時,公平 的進行帶寬自適應分配。以上所述僅為本發明的優選實例而已,本發明的應用不限制于此例。對于本領域 的技術人員來說,本發明可以有各種更改和變化,凡在本發明的精神和原則之類,所作的任 何修改,等同替換,改進等,均應包含在本發明的保護范圍之類。
權利要求
一種基于定時器和MDRR的隊列調度方法,其特征在于該方法的步驟為步驟1)Time定時器是為類1等時延敏感型業務而設置的,主要保障該隊列的時延;類2至類n為常規隊列,實時測量隊列長度并實時測量隊列長度并根據業務量來修改隊列權值,確保業務量大的隊列MDRR調度權值稍微加大; 步驟2)調度開始時,初始化Time定時器時間,此時開始服務該隊列;步驟3)初始化常規隊列預設權值數組W2,W3……,Wn,所述業務權值在1,10范圍類,當Time時間到后,根據加權輪詢調度算法對其余隊列輪詢;步驟4)經過一定時間Dt,測試類2至類n隊列的實時長度length_q[i],并對length_q[i]/Wi在 0.5,0.5之間進行歸一化處理后得結果DWi,Wi= Wi+DWi更新權值數組,其中i=2、3、…n;步驟5) 根據步驟4)得到的常規隊列i的權值Wi,設置每個隊列每次權數為MTU + weight*512;步驟6) 每個隊列都有一個赤字計數器,用于每次調度時該隊列所能發送的數據包總和的最大值,初始化為1/2*MTU*weight;步驟7) 當調度到該隊列i時,權數加到赤字計數器上,如果隊列首部的數據包小于該赤字計數器,就發送該數據包,赤字計數器同時減去數據包大小,如果赤字計數器小于0,那么輪詢到下一個隊列;步驟8) 如果有高優先級業務達到,則服務完當前隊列后輪詢到高優先級隊列;步驟9) 為高優先隊列設置一個速率測量器,實時測試高優先隊列速率rate,time表示該隊列實時應該得到服務的時間,動態定時器為time=k*log2rate,K為一固定常數; 步驟10)服務高優先級隊列時,啟動一個計時器,當為0發送完該數據包后,跳轉到常規隊列的下一個非空隊列。
全文摘要
本發明公布了一種基于定時器和MDRR的隊列調度方法,該方法是基于區分服務模型的,主要由Time定時器、實時權值更新、修改的加權輪詢(MDRR)調度算法三部分組成。Time定時器主要用來控制高優先級隊列的調度,既保證其獲得高的服務質量,又保證了網絡中的公平性;根據隊列中數據流的實時情況,動態地改變MDRR調度算法中的權值參數,通過在業務量過大時適度的增大權值從而保證對其余隊列影響降至最低。本發明實現了支持隊列數目可配置、速率可調節的調度,具有良好的可擴展性,操作簡單。
文檔編號H04L12/56GK101969409SQ20101053299
公開日2011年2月9日 申請日期2010年11月5日 優先權日2010年11月5日
發明者周井泉, 周宇航, 寧向延, 張順頤, 談玲 申請人:南京郵電大學