專利名稱:一種數(shù)據(jù)包的調(diào)度方法
技術(shù)領(lǐng)域:
本發(fā)明屬于網(wǎng)絡(luò)通信系統(tǒng)與應(yīng)用技術(shù)領(lǐng)域,具體涉及一種數(shù)據(jù)包的調(diào)度方法,它尤其適用于路由器中數(shù)據(jù)包的調(diào)度。
目前一類基于GPS模型的調(diào)度算法如WFQ、WF2Q、WF2Q+等得到了廣泛的研究。GPS(Generalized Processor Sharing)模型是一種理想化的流體模型,它基于如下兩個假設(shè)其一,數(shù)據(jù)包長度無限可分;其二,所有的流可以同時接受服務(wù)。而在實際系統(tǒng)中,一個調(diào)度器服務(wù)的最小單元為一個數(shù)據(jù)包,而且一次只能為一個流服務(wù),因此GPS模型是不可實現(xiàn)的。于是Jon C.R.Bennett和Hui Zhang(見文獻J.Bennett and H.Zhang,Hierarchical packet fair queuing algorithms,In Proceedings of theACM-SIGCOMM’96,pages 143-156,Palo Alto,CA,August 1996)提出了WF2Q+調(diào)度算法用于在實際系統(tǒng)中模擬GPS模型。其基本思想是,對流中的每個數(shù)據(jù)包維護一個開始服務(wù)時間和結(jié)束服務(wù)時間,當調(diào)度器準備發(fā)送一個數(shù)據(jù)包時,首先需要對等待調(diào)度的數(shù)據(jù)包進行資格測試,只有開始服務(wù)時間小于系統(tǒng)的虛擬時間的數(shù)據(jù)包才可以通過測試,然后在通過測試的數(shù)據(jù)包中選擇具有最小結(jié)束服務(wù)時間的數(shù)據(jù)包進行發(fā)送,這種策略稱為SEFF(Smallest Eligible virtual Finish time First)選擇策略。
由于WF2Q+具有很好的公平性和時延性,而且算法復(fù)雜度比較低,因此得到了業(yè)界的廣泛關(guān)注。但是,WF2Q+算法在應(yīng)用上存在如下問題1)算法的復(fù)雜度隨著受調(diào)度流的數(shù)量增加而增大,特別是在高速核心路由器上,當數(shù)據(jù)流的數(shù)量很大時,算法的應(yīng)用將會給系統(tǒng)帶來巨大的負擔,2)在硬件上實現(xiàn)很困難。
為實現(xiàn)上述發(fā)明目的,一種數(shù)據(jù)包的調(diào)度方法,將待調(diào)度的數(shù)據(jù)包分成新到流隊列和積壓流隊列兩部分,由調(diào)度器進行調(diào)度,其調(diào)度步驟為(1)初始化調(diào)度節(jié)點,設(shè)定系統(tǒng)虛擬時間的初始值;(2)當某個數(shù)據(jù)包到達調(diào)度節(jié)點時,檢查這個數(shù)據(jù)包是否為其所屬數(shù)據(jù)流的第一個數(shù)據(jù)包,如果是,根據(jù)其速率和/或長度掛到新到流隊列部分相應(yīng)的Q1隊列的尾部,并通過公式(3),計算這個數(shù)據(jù)包的虛起始服務(wù)時間,該虛起始服務(wù)時間即該數(shù)據(jù)流的虛起始服務(wù)時間;如果這個數(shù)據(jù)包不是這個數(shù)據(jù)流的第一個數(shù)據(jù)包,直接將這個數(shù)據(jù)包掛在所屬數(shù)據(jù)流的尾部;(3)進行調(diào)度時,調(diào)度器會掃描所有隊列中第一個數(shù)據(jù)流的頭數(shù)據(jù)包的虛起始服務(wù)時間,從中找出虛起始服務(wù)時間小于系統(tǒng)虛擬時間的合法數(shù)據(jù)包,再通過公式(4),計算這些合法數(shù)據(jù)包的虛結(jié)束服務(wù)時間,找出具有最小虛結(jié)束服務(wù)時間的數(shù)據(jù)包進行發(fā)送;(4)對選定的頭數(shù)據(jù)包進行發(fā)送的過程為首先將該數(shù)據(jù)包從所屬的數(shù)據(jù)流F中取下來發(fā)送,數(shù)據(jù)流F再根據(jù)其新的頭數(shù)據(jù)包的速率和長度,掛在積壓流隊列部分相應(yīng)的Q2(Rx,Ly)隊列的尾部,通過公式(2)更新數(shù)據(jù)流F的虛起始服務(wù)時間,即數(shù)據(jù)流F新的頭數(shù)據(jù)包的虛起始服務(wù)時間,并通過公式(1)更新系統(tǒng)虛擬時間;V(t+τ)=max(V(t)+τ,mini∈B(t)(Sihi(t)))....(1)]]> Fik=Sik+LikRi(t).......(4)]]>(5)重復(fù)步驟(2)至(4),直至工作完成。
為了驗證本調(diào)度方法的性能,在Network Simulator仿真環(huán)境中,實現(xiàn)了本調(diào)度方法,并檢查了如下性能指標 帶寬每個數(shù)據(jù)流得到的實際帶寬(Mbps) 帶寬抖動每個數(shù)據(jù)流在相鄰時間段內(nèi)得到的平均實際帶寬之差(Mbps) 時延每個數(shù)據(jù)流的數(shù)據(jù)包離開與到達的時間差(ms) 時延抖動每個數(shù)據(jù)流前后兩個數(shù)據(jù)包的平均時延差(ms)其結(jié)果見具體實施方式
部分??傊?,本調(diào)度方法簡單高效,易于硬件實現(xiàn),并基本保證了WF2Q+算法原有的優(yōu)良性能。
圖7為使用調(diào)度方法時數(shù)據(jù)流1的時延特性;圖8為使用調(diào)度方法時數(shù)據(jù)流1的時延抖動特性;圖9為使用簡化調(diào)度方法時數(shù)據(jù)流1的帶寬特性;
圖10為使用簡化調(diào)度方法時數(shù)據(jù)流1的帶寬抖動特性;圖11為使用簡化調(diào)度方法時數(shù)據(jù)流1的時延特性;圖12為使用簡化調(diào)度方法時數(shù)據(jù)流1的時延抖動特性。
每個數(shù)據(jù)流按照其預(yù)留的速率R(如R=Rm)和頭數(shù)據(jù)包長度L(如Ln-1<L≤Ln),掛在相應(yīng)的隊列Q(Rm,Ln)上。頭數(shù)據(jù)包是指數(shù)據(jù)流中當前排在最前面待調(diào)度的數(shù)據(jù)包,其長度量化為比它大的最近等級長度;大于最高等級長度的,量化為最高等級長度。隊列上的數(shù)據(jù)流依次記為F1,F(xiàn)2,...,最后一個數(shù)據(jù)流記為FTail。數(shù)據(jù)流Fi中的數(shù)據(jù)包依次記為Pi1,Pi2,...,最后一個數(shù)據(jù)包記為Pi,Tail。
數(shù)據(jù)流第一個數(shù)據(jù)包是指該數(shù)據(jù)流初次發(fā)生或停止一段時間后重新發(fā)生時最先被處理的數(shù)據(jù)包。確認一個新到的數(shù)據(jù)包為其所屬數(shù)據(jù)流第一個數(shù)據(jù)包的依據(jù)是該數(shù)據(jù)包所屬數(shù)據(jù)流當前沒有數(shù)據(jù)包正在等待調(diào)度,如果該數(shù)據(jù)包所屬數(shù)據(jù)流已有數(shù)據(jù)包正在等待調(diào)度,則稱該數(shù)據(jù)包為其所屬數(shù)據(jù)流的后續(xù)數(shù)據(jù)包。由于數(shù)據(jù)流第一個數(shù)據(jù)包和其后續(xù)數(shù)據(jù)包的虛起始服務(wù)時間的計算不一致,需要對該數(shù)據(jù)流的第一個數(shù)據(jù)包單獨處理。于是我們將隊列分成兩個部分,新到流隊列部分①和積壓流隊列部分②,如圖1所示。新到流隊列部分①負責處理數(shù)據(jù)流的第一個數(shù)據(jù)包,積壓流隊列部分②負責處理數(shù)據(jù)流的后續(xù)數(shù)據(jù)包,兩部分共需2×M×N個隊列。調(diào)度器③的作用是采用SEFF策略對這兩部分隊列進行統(tǒng)一調(diào)度。
結(jié)合圖2,本調(diào)度方法的具體調(diào)度步驟如下(1)初始化調(diào)度節(jié)點,設(shè)定系統(tǒng)虛擬時間的初始值,比如0;(2)當某個數(shù)據(jù)包到達調(diào)度節(jié)點時,檢查這個數(shù)據(jù)包是否為其所屬數(shù)據(jù)流的第一個數(shù)據(jù)包,如果是,根據(jù)其速率和長度掛到新到流隊列部分①相應(yīng)的Q1(Rm,Ln)隊列的尾部,并通過公式(3),計算這個數(shù)據(jù)包的虛起始服務(wù)時間,該虛起始服務(wù)時間也是該數(shù)據(jù)流的虛起始服務(wù)時間。如果這個數(shù)據(jù)包不是這個數(shù)據(jù)流的第一個數(shù)據(jù)包,直接將這個數(shù)據(jù)包掛在所屬數(shù)據(jù)流的尾部;(3)進行調(diào)度時,調(diào)度器③會掃描所有隊列(包括M×N個新到流隊列Q1(R,L)和M×N個積壓流隊列Q2(R,L))中第一個數(shù)據(jù)流的頭數(shù)據(jù)包的虛起始服務(wù)時間,從中找出虛起始服務(wù)時間小于系統(tǒng)虛擬時間的合法數(shù)據(jù)包,再通過公式(4),計算這些合法數(shù)據(jù)包的虛結(jié)束服務(wù)時間,找出具有最小虛結(jié)束服務(wù)時間的數(shù)據(jù)包進行發(fā)送;(4)無論是選定新到流隊列Q1(Rm,Ln)的第一個數(shù)據(jù)流的頭數(shù)據(jù)包進行發(fā)送,還是選定積壓流隊列Q2(Rm,Ln)的第一個數(shù)據(jù)流的頭數(shù)據(jù)包進行發(fā)送,均做出這樣的處理首先將該數(shù)據(jù)包從所屬的數(shù)據(jù)流F中取下來發(fā)送,數(shù)據(jù)流F再根據(jù)其新的頭數(shù)據(jù)包的速率和長度,掛在積壓流隊列部分②相應(yīng)的Q2(Rx,Ly)隊列的尾部,通過公式(2)更新數(shù)據(jù)流F的虛起始服務(wù)時間,即數(shù)據(jù)流F新的頭數(shù)據(jù)包的虛起始服務(wù)時間,并通過公式(1)更新系統(tǒng)虛擬時間;(5)重復(fù)步驟(2)至(4),直至工作完成。
本發(fā)明所指的調(diào)度節(jié)點,即應(yīng)用了本調(diào)度方法的設(shè)備,如路由器。
為了減少隊列數(shù)目,節(jié)省硬件資源,我們同時提出了簡化調(diào)度方法。如圖3所示,對于新到流隊列部分①只采用長度(或速率)進行量化,記為Q1(Ln)(或Q1(Rm)),這樣共需要M×N+N(或M×N+M)個隊列。以下將以長度量化為例。
結(jié)合圖3,簡化調(diào)度方法的具體調(diào)度步驟如下(1)初始化調(diào)度節(jié)點,設(shè)定系統(tǒng)虛擬時間的初始值,比如0;(2)當某個數(shù)據(jù)包到達調(diào)度節(jié)點時,檢查這個數(shù)據(jù)包是否為其所屬數(shù)據(jù)流的第一個數(shù)據(jù)包,如果是,根據(jù)其長度掛到新到流隊列部分①相應(yīng)的Q1(Ln)隊列的尾部,并通過公式(3),計算這個數(shù)據(jù)包的虛起始服務(wù)時間,該虛起始服務(wù)時間也是該數(shù)據(jù)流的虛起始服務(wù)時間。如果這個數(shù)據(jù)包不是這個數(shù)據(jù)流的第一個數(shù)據(jù)包,直接將這個數(shù)據(jù)包掛在所屬數(shù)據(jù)流的尾部。
(3)進行調(diào)度時,調(diào)度器③會掃描所有隊列(包括N個新到流隊列Q1(L)和M×N個積壓流隊列Q2(R,L))中第一個數(shù)據(jù)流的頭數(shù)據(jù)包的虛起始服務(wù)時間,從中找出虛起始服務(wù)時間小于系統(tǒng)虛擬時間的合法數(shù)據(jù)包,再通過公式(4),計算這些合法數(shù)據(jù)包的虛結(jié)束服務(wù)時間,找出具有最小虛結(jié)束服務(wù)時間的數(shù)據(jù)包進行發(fā)送。
(4)無論是選定新到流隊列Q1(Ln)的第一個數(shù)據(jù)流的頭數(shù)據(jù)包進行發(fā)送,還是選定積壓流隊列Q2(Rm,Ln)的第一個數(shù)據(jù)流的頭數(shù)據(jù)包進行發(fā)送,均做出這樣的處理首先將該數(shù)據(jù)包從所屬的數(shù)據(jù)流F中取下來發(fā)送,數(shù)據(jù)流F再根據(jù)其新的頭數(shù)據(jù)包的速率和長度,掛在積壓流隊列部分②相應(yīng)的Q2(Rx,Ly)隊列的尾部,通過公式(2)更新數(shù)據(jù)流F的虛起始服務(wù)時間,即數(shù)據(jù)流F新的頭數(shù)據(jù)包的虛起始服務(wù)時間,并通過公式(1)更新系統(tǒng)虛擬時間;(5)重復(fù)步驟(2)至(4),直至工作完成。
具體的仿真拓撲結(jié)構(gòu)如圖4所示。
在這個仿真拓撲結(jié)構(gòu)中,各輸入鏈路和輸出鏈路帶寬均為10M,所有的數(shù)據(jù)流均受到調(diào)度節(jié)點的調(diào)度并從輸出鏈路輸出。在圖4的調(diào)度節(jié)點,調(diào)度方法和簡化調(diào)度方法的速率和長度均被量化成5個等級。
對數(shù)據(jù)流定義5個速率等級 0.1Mbps.
0.3Mbps.
1 Mbps.
2 Mbps.
5 Mbps.
對數(shù)據(jù)包定義5個長度等級 200 bytes.
400 bytes.
800 bytes.
1000 bytes.
1600 bytes.
對數(shù)據(jù)流定義兩種傳輸方式 CBR(Const Bit Rate)表明數(shù)據(jù)流以恒定的速率傳輸; On/Off表明數(shù)據(jù)流以某個速率間隙性地傳輸。
對數(shù)據(jù)包長度定義三種分布方式 相同長度數(shù)據(jù)流中的所有數(shù)據(jù)包長度相同; 平均分布數(shù)據(jù)流中的數(shù)據(jù)包長度在某個長度范圍內(nèi)均勻分布; 正態(tài)分布數(shù)據(jù)流中的數(shù)據(jù)包長度以某個長度為中心正態(tài)分布。
對兩種調(diào)度方法進行了大量測試,選取一個較典型的測試配置以說明測試結(jié)果。調(diào)度方法的典型仿真參數(shù)如下表所示
上述配置中每個數(shù)據(jù)流均采用On/Off模型,數(shù)據(jù)流中的數(shù)據(jù)包長度采用正態(tài)分布(均值為1000字節(jié),方差400字節(jié))。對調(diào)度方法和簡化調(diào)度方法進行仿真實驗,得到數(shù)據(jù)流1在兩種方法中的性能指標帶寬、帶寬抖動、時延和時延抖動。如圖5~圖12所示。
根據(jù)圖5~圖12所示的仿真結(jié)果,可以看出這兩種調(diào)度方法均能較好地保證數(shù)據(jù)流1的帶寬、帶寬抖動、時延和時延抖動等性能,從而能較好地保證用戶的服務(wù)質(zhì)量。
在NS仿真實驗的基礎(chǔ)上,采用Xilinx公司的FPGA實現(xiàn)了支持簡化調(diào)度方法的調(diào)度芯片。該芯片最大支持128k個數(shù)據(jù)流,5個速率等級和5個長度等級,并可動態(tài)配置各速率和長度等級的值。經(jīng)實際運行測試,該芯片能很好地保證各數(shù)據(jù)流的預(yù)約帶寬、時延性及公平性。
權(quán)利要求
1.一種數(shù)據(jù)包的調(diào)度方法,該方法將待調(diào)度的數(shù)據(jù)包分成新到流隊列和積壓流隊列兩部分,由調(diào)度器進行調(diào)度,其調(diào)度步驟為(1)初始化調(diào)度節(jié)點,設(shè)定系統(tǒng)虛擬時間的初始值;(2)當某個數(shù)據(jù)包到達調(diào)度節(jié)點時,檢查這個數(shù)據(jù)包是否為其所屬數(shù)據(jù)流的第一個數(shù)據(jù)包,如果是,根據(jù)其速率和/或長度掛到新到流隊列部分相應(yīng)的Q1隊列的尾部,并通過公式(3),計算這個數(shù)據(jù)包的虛起始服務(wù)時間,該虛起始服務(wù)時間即該數(shù)據(jù)流的虛起始服務(wù)時間;如果這個數(shù)據(jù)包不是這個數(shù)據(jù)流的第一個數(shù)據(jù)包,直接將這個數(shù)據(jù)包掛在所屬數(shù)據(jù)流的尾部;(3)進行調(diào)度時,調(diào)度器會掃描所有隊列中第一個數(shù)據(jù)流的頭數(shù)據(jù)包的虛起始服務(wù)時間,從中找出虛起始服務(wù)時間小于系統(tǒng)虛擬時間的合法數(shù)據(jù)包,再通過公式(4),計算這些合法數(shù)據(jù)包的虛結(jié)束服務(wù)時間,找出具有最小虛結(jié)束服務(wù)時間的數(shù)據(jù)包進行發(fā)送;(4)對選定的頭數(shù)據(jù)包進行發(fā)送的過程為首先將該數(shù)據(jù)包從所屬的數(shù)據(jù)流F中取下來發(fā)送,數(shù)據(jù)流F再根據(jù)其新的頭數(shù)據(jù)包的速率和長度,掛在積壓流隊列部分相應(yīng)的Q2(Rx,Ly)隊列的尾部,通過公式(2)更新數(shù)據(jù)流F的虛起始服務(wù)時間,即數(shù)據(jù)流F新的頭數(shù)據(jù)包的虛起始服務(wù)時間,并通過公式(1)更新系統(tǒng)虛擬時間;V(t+τ)=max(V(t)+τ,mini∈B(t)(Sihi(t)))....(1)]]> Fik=Sik+LikRi(t)..........(4)]]>(5)重復(fù)步驟(2)至(4),直至工作完成。
全文摘要
本發(fā)明公開了一種數(shù)據(jù)包的調(diào)度方法,該方法量化數(shù)據(jù)流速率和數(shù)據(jù)包長度;并將待調(diào)度的數(shù)據(jù)流隊列分成兩部分,即新到流隊列部分①和積壓流隊列部分②;調(diào)度器③采用SEFF策略對這兩部分隊列進行統(tǒng)一調(diào)度。當硬件資源不夠時,可以對新到流隊列部分進行簡化。當一個數(shù)據(jù)包到達調(diào)度節(jié)點時,根據(jù)其是否為所屬數(shù)據(jù)流的第一個數(shù)據(jù)包而排在新到流隊列部分或積壓流隊列部分,調(diào)度器會從新到流隊列部分和積壓流隊列部分中選取一個數(shù)據(jù)包進行發(fā)送。該調(diào)度方法簡單、高效,可采用硬件實現(xiàn),并基本保證了WF
文檔編號H04L25/02GK1450754SQ03118918
公開日2003年10月22日 申請日期2003年4月11日 優(yōu)先權(quán)日2003年4月11日
發(fā)明者楊宗凱, 劉彥, 王玉明, 范兵 申請人:華中科技大學