一種用于代數(shù)交換引擎數(shù)據(jù)包分組重組的voq調(diào)度算法
【技術(shù)領(lǐng)域】
[0001]本申請涉及通信技術(shù)領(lǐng)域,尤其涉及到代數(shù)交換和網(wǎng)絡(luò)編碼領(lǐng)域。
【背景技術(shù)】
[0002]代數(shù)交換是一種多路徑自路由交換結(jié)構(gòu),這種結(jié)構(gòu)將代數(shù)分配格理論應(yīng)用于自路由模型,該結(jié)構(gòu)具有完全分布式自路由、無內(nèi)部緩存、線速及無抖動等優(yōu)勢。在保證提供QoS的條件下,適合大規(guī)模擴展。然而這種結(jié)構(gòu)會產(chǎn)生內(nèi)部爭用和外部阻塞,從而導(dǎo)致了一定的丟包率?,F(xiàn)有的代數(shù)交換引擎中,對于丟失的數(shù)據(jù)包是無法直接恢復(fù)的,只能通過重傳的方式得到該數(shù)據(jù)包,因而降低了通信效率。為了降低丟包率,一種有效的方法是將網(wǎng)絡(luò)編碼和代數(shù)交換結(jié)構(gòu)融合,利用網(wǎng)絡(luò)編碼來恢復(fù)丟失的數(shù)據(jù)包,從而有效降低系統(tǒng)的丟包率。
[0003]然而現(xiàn)有的交換引擎中的VOQ (Virtual Output Queue,虛擬輸出隊列)算法不能發(fā)揮網(wǎng)絡(luò)編碼的功能,因為傳統(tǒng)的V0Q算法的核心是避免內(nèi)部阻塞,因而無法充分利用網(wǎng)絡(luò)編碼的特性,反而會引起系統(tǒng)丟包率的提尚。
【發(fā)明內(nèi)容】
[0004]本申請?zhí)峁┮环N用于代數(shù)交換引擎數(shù)據(jù)包分組重組的V0Q調(diào)度算法。
[0005]具體地,本申請?zhí)峁┑挠糜诖鷶?shù)交換引擎數(shù)據(jù)包分組重組的V0Q調(diào)度算法,包括:
[0006]對數(shù)據(jù)包按照其目的端口地址進行分流,以將所述數(shù)據(jù)包送入相應(yīng)的虛擬隊列中;
[0007]所述數(shù)據(jù)包在進入所述虛擬隊列同時還進入一檢測器,所述檢測器實時地記錄所述虛擬隊列中的信元的數(shù)量,并將所述信元的數(shù)量反饋給一調(diào)度器,所述調(diào)度器按照一定的規(guī)則進行分析以決定哪些信元被輸出給后級模塊中。
[0008]本申請的有益效果是:
[0009]本發(fā)明提出的代數(shù)交換引擎數(shù)據(jù)包分組重組的V0Q調(diào)度算法,其融合了網(wǎng)絡(luò)編碼,它能夠充分利用網(wǎng)絡(luò)編碼可以恢復(fù)丟失的信元這個特性,最大程度地提升系統(tǒng)的吞吐量和降低丟包率。
【附圖說明】
[0010]圖1為具有網(wǎng)絡(luò)編碼功能的代數(shù)交換引擎結(jié)構(gòu)示意圖;
[0011]圖2為一實施例中的V0Q和調(diào)度器的結(jié)構(gòu)示意圖。
【具體實施方式】
[0012]下面通過【具體實施方式】結(jié)合附圖對本申請作進一步詳細說明。
[0013]請參照圖1,為本發(fā)明中的基于網(wǎng)絡(luò)編碼的代數(shù)交換引擎的結(jié)構(gòu)示意圖。標準的IP數(shù)據(jù)包從N個輸入端口 1.1.1,1.1.2,…,1.1.N進入,在數(shù)據(jù)預(yù)處理模塊1.2中,將添加同步控制信號,并把數(shù)據(jù)包切割成長度相等的數(shù)據(jù)片和添加包頭控制信息,其中N為正整數(shù)。圖1中黑色粗箭頭1表示封包,即標準的以太網(wǎng)數(shù)據(jù)包;數(shù)據(jù)包進入數(shù)據(jù)預(yù)處理模塊1.2之后,灰色粗箭頭2表示被切割之后的數(shù)據(jù)片,即信元;灰色細箭頭3表示流控,即數(shù)據(jù)同步信號。編碼模塊1.3對信元進行編碼,產(chǎn)生的冗余信息隨原始數(shù)據(jù)包一起進入后級模塊。N個并行的VOQ模塊1.4.1,1.4.2,…,1.4.N將數(shù)據(jù)按照輸出端口分流,同時將數(shù)據(jù)包按一定的調(diào)度算法送入代數(shù)交換模塊1.5ο在Ν個組裝模塊1.6.1,1.6.2,…,1.6.Ν中,將歸屬于同一個數(shù)據(jù)包的信元按照一定的順序重新組裝,恢復(fù)出原始的數(shù)據(jù)包。只有當組裝過程中檢測到有一個信元丟失時,才會啟動Ν個解碼模塊1.7.1,1.7.2,…,1.7.Ν,通過解碼恢復(fù)出丟失的信元。
[0014]如圖2所示,一實施例中,用于代數(shù)交換引擎數(shù)據(jù)包分組重組的V0Q調(diào)度算法,包括以下步驟:
[0015]對數(shù)據(jù)包按照其目的端口地址進行分流,以將數(shù)據(jù)包送入相應(yīng)的虛擬隊列中;
[0016]數(shù)據(jù)包在進入所述虛擬隊列的同時還進入一檢測器4,檢測器4實時地記錄虛擬隊列中的信元的數(shù)量,并將信元的數(shù)量反饋給調(diào)度器5,調(diào)度器5按照一定的規(guī)則進行分析以決定哪些信元被輸出給后級模塊中。
[0017]從圖2中可以看出,在圖1的基礎(chǔ)上,下面以一個實際的例子說明。
[0018]本發(fā)明的代數(shù)交換引擎數(shù)據(jù)包分組重組V0Q調(diào)度算法,其融合了網(wǎng)絡(luò)編碼,其是根據(jù)V0Q中的占用率,對當前輸入端口的流量進行建模,將其歸納為:HeaVy,F(xiàn)air,Light三種模型,做出相應(yīng)的調(diào)度決策,具體如下:
[0019]對于一個32X32 (M = 4,G = 8)代數(shù)交換結(jié)構(gòu)來說,其中Μ為群組數(shù),G為群組大小。系統(tǒng)中共有4個V0Q,每個V0Q的狀態(tài)分為三類-Light,F(xiàn)air,Heavy ;設(shè)ε L為Light的上限,εΗ為Heavy的下限;設(shè)ε (i, j)為V0Q(i,j)中信元的占用率。那么,
[0020]a)當 0 < ε (i, j) < ε L,則 V0Q(i, j)的狀態(tài)為 Light ;
[0021]b)當 ε L<= ε (i, j) <= ε H,則 V0Q(i,j)的狀態(tài)為 Fair ;
[0022]c)當 ε (i, j) > ε ?,則 V0Q(i, j)的狀態(tài)為 Heavy ;
[0023]根據(jù)以上定義,每個VOQ調(diào)度器的工作步驟如下:
[0024]1)按照定義1判斷當前四個V0Q的狀態(tài)。
[0025]2)根據(jù)當前V0Q的狀態(tài)判斷輸入端口的流量模型。假如有3個以上的V0Q狀態(tài)均為Heavy,則輸入端口流量模型為Heavy ;假如有3個以上的V0Q狀態(tài)均為Light,則輸入端口流量模型為Light ;否則,則該端口流量模型為Fair。
[0026]3)根據(jù)端口流量模型選擇信元的數(shù)量送往交換結(jié)構(gòu):
[0027]1.Heavy:從ε (i, j)最大的VOQ中選擇6個信元,從ε (i, j)第二大的VOQ中選擇2個信元,共8個信元送往后級交換模塊。
[0028]i1.Fair:從ε (i, j)最大的VOQ中選擇4個信元,從ε (i, j)第二大的VOQ中選擇4個信元,共8個信元送往后級交換模塊。
[0029]ii1.Light:從四個V0Q中各選2個信元送往后級交換模塊。假如有V0Q中剩余信元不足2個,則按實際情況輸出。
[0030]iv.其他:當隊列中信元數(shù)量不足或無信元時,則產(chǎn)生無效信元來彌補,后面的解碼和組裝模塊將忽略這些無效信元。
[0031]按照以上調(diào)度算法,系統(tǒng)可快速做出決策,在保證具有網(wǎng)絡(luò)編碼功能的代數(shù)交換引擎吞吐率的條件下,提高交換效率。
[0032]以上內(nèi)容是結(jié)合具體的實施方式對本申請所作的進一步詳細說明,不能認定本申請的具體實施只局限于這些說明。對于本申請所屬技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本申請發(fā)明構(gòu)思的前提下,還可以做出若干簡單推演或替換。
【主權(quán)項】
1.一種用于代數(shù)交換引擎數(shù)據(jù)包分組重組的VOQ調(diào)度算法,其特征在于,包括: 對數(shù)據(jù)包按照其目的端口地址進行分流,以將所述數(shù)據(jù)包送入相應(yīng)的虛擬隊列中; 所述數(shù)據(jù)包在進入隊列同時還進入一檢測器,所述檢測器實時地記錄所述虛擬隊列中的信元的數(shù)量,并將所述信元的數(shù)量反饋給一調(diào)度器,所述調(diào)度器按照一定的規(guī)則進行分析以決定哪些信元被輸出給后級模塊中。
【專利摘要】本申請公開了一種用于代數(shù)交換引擎數(shù)據(jù)包分組重組的VOQ調(diào)度方法,屬于通信技術(shù)領(lǐng)域,涉及到VOQ(Virtual?Output?Queue,虛擬輸出隊列)調(diào)度算法和代數(shù)交換領(lǐng)域。本發(fā)明是一種基于網(wǎng)絡(luò)編碼的代數(shù)交換引擎數(shù)據(jù)包分組重組的虛擬輸出隊列調(diào)度算法,該算法提供了一種快速的決策和調(diào)度方法,能夠最大程度地利用網(wǎng)絡(luò)編碼的可以恢復(fù)丟失信元的特性,提升交換引擎的吞吐率和交換效率。
【IPC分類】H04L12/863
【公開號】CN105262701
【申請?zhí)枴緾N201510564591
【發(fā)明人】馬麗, 李碩彥, 張明龍, 朱鍵, 呂士杰, 李揮
【申請人】香港中文大學(xué)深圳研究院
【公開日】2016年1月20日
【申請日】2015年9月7日