簡介
Round-Robin,輪詢調度,通信中信道調度的一種策略,該調度策略使用戶輪流使用共享資源,不會考慮瞬時信道條件。從相同數量無線資源(相同調度時間段)被分配給每條通信鏈路的角度講,輪詢調度可以被視為公平調度。然而,從提供相同服務質量給所有通信鏈路的角度而言,輪詢調度是不公平的,此時,必須為帶有較差信道條件的通信鏈路分配更多無線資源(更多時間)。此外,由於輪詢調度在調度過程中不考慮瞬時信道條件,因此它將導致較低的整體系統性能,但與最大載乾比調度相比,在各通信鏈路間具有更為均衡的服務質量。
佇列調度算法的公平性、分組排隊時延等性能是影響路由設備QoS特性的中央因素。佇列調度算法可用循環調度(RR,Round Robin)等算法。
傳統的輪詢算法對不同的分組業務流佇列進行同樣的無差別的循環調度服務,這樣的調度方式對於等長業務流佇列是公平的,但是網際網路的業務流是由不定長分組流構成的,因此不同的佇列就可能具有不同的分組長度,結果分組長度大的業務流佇列將可能會比分組長度小的業務流佇列接收更多的服務,是佇列之間產生不公平的現象;而且,這種算法也無法事先對業務需要的時延保證。
分類
為了改進RR算法的時延特性和其在變長分組環境下的不公平性,人們又提出了一些改進算法,如加權輪詢(WRR,Weight RR),差額輪詢(DRR,Defict RR),緊急輪詢(URR,Urgency-based RR)。這些算法都力圖在儘量保持RR算法實現簡單性的同時,從不同的方面改進RR算法的時延特性和其在可變長分組環境下的不公平性。
WRR
WRR也是周而復始地輪詢分組業務流佇列,但不同的是WRR算法為每個業務流佇列分配一個權值,當輪詢到某個業務流佇列時,將根據它所具有權值的大小決定其可轉發分組的個數,而不是只轉發一個。由於WRR是基於輪詢的,因此它只是在大於一個輪詢周期的時間上才能顯示是公平的,同時,當佇列的分組大小不等時,它也不能公平地分配頻寬。
DRR
DRR算法通過為各業務流分配服務權值來解決RR調度在變長分組環境中的不公平性。DRR算法規定,每個調度循環中的的業務流佇列i可接收的服務量定額為Q。在首輪循環中,若業務流佇列i的隊首分組的長度大於Q,就不能在本輪得到服務,其服務量定額Q被累加到分組下一輪;若隊首分組長度小於Q,則該分組可接收服務,本輪未用完的服務質量定額也將累加到下一輪;在以後的調度循環中一次類推。由此可見,即使分組長度不同各業務不會流佇列獲得的服務量也不會超過其定額,從而隔離了各業務流之間的相互影響。DRR算法提高了變長分組環境中算法的公平性,又沒有增加RR算法原有的複雜度。但DRR算法在時延特性上有明顯的缺點,即在每個調度循環中,佇列的服務順序是靜態指定的,不能根據業務的屬性進行動態調整,因此難以有效地支持實時業務。
URR
URR算法是為改善RR算法時延特性而提出的另一種算法。URR個緊急性指數算法為每個佇列分配U;在每個調度循環前,算法首先計算各佇列的U值,然後按照U的大小順序為各佇列提供服務。儘管URR算法改善了時延特性,但其原有的公平性問題仍然存在。