專利名稱:一種端口數(shù)據(jù)流量動(dòng)態(tài)均衡分配方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù),尤其涉及一種端口數(shù)據(jù)流量動(dòng)態(tài)均衡分配方法。
背景技術(shù):
將一個(gè)高速率接口的數(shù)據(jù)流分配給幾個(gè)低速率的接口,是數(shù)據(jù)通信里面經(jīng)常會(huì)遇到的問(wèn)題。如,從2.5G端口到四個(gè)622M端口,從10G端口到四個(gè)2.5G端口以及從40G端口到四個(gè)10G端口,都是典型的例子。為了保證四個(gè)端口都能以最大容量進(jìn)行處理,這就需要在將流分配給四個(gè)端口時(shí)需要保證其均衡性。
現(xiàn)有技術(shù),數(shù)據(jù)流初始化后,該流的數(shù)據(jù)包應(yīng)從固定的端口轉(zhuǎn)發(fā),不再作調(diào)整,雖然這種方法簡(jiǎn)單,但由于數(shù)據(jù)流都具有突發(fā)性,所以不可能進(jìn)行絕對(duì)的靜態(tài)均衡分配,當(dāng)流發(fā)生突發(fā)性增加而超過(guò)端口流量時(shí),無(wú)法將一部分流量調(diào)整到其他端口,即不能實(shí)現(xiàn)動(dòng)態(tài)均衡流量,此時(shí)就會(huì)發(fā)生丟包現(xiàn)象。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種端口數(shù)據(jù)流量動(dòng)態(tài)均衡分配方法,以解決現(xiàn)有技術(shù)中因多個(gè)端口數(shù)據(jù)流量不能動(dòng)態(tài)均衡而在數(shù)據(jù)流量突發(fā)性增加時(shí)存在丟包的問(wèn)題。
為解決上述問(wèn)題,本發(fā)明提供下述技術(shù)方案一種端口數(shù)據(jù)流量動(dòng)態(tài)均衡分配方法,用于將一個(gè)第一端口的數(shù)據(jù)流分配給多個(gè)第二端口;其特征在于該方法包括步驟A、接收第一端口一個(gè)數(shù)據(jù)流的數(shù)據(jù)包;B、根據(jù)數(shù)據(jù)流的標(biāo)號(hào)判斷該數(shù)據(jù)流是否已初始化,如果是則進(jìn)行步驟D,否則,進(jìn)行步驟C;
C、為所述數(shù)據(jù)流分配一個(gè)第二端口作為目的端口,從該第二端口轉(zhuǎn)發(fā)數(shù)據(jù)包并記錄該數(shù)據(jù)流標(biāo)號(hào)與該第二端口的對(duì)應(yīng)關(guān)系,轉(zhuǎn)步驟A;D、判斷所述數(shù)據(jù)流對(duì)應(yīng)的第二端口是否發(fā)生擁塞,如果未發(fā)生擁塞,則從該數(shù)據(jù)流對(duì)應(yīng)的第二端口轉(zhuǎn)發(fā)數(shù)據(jù)包,轉(zhuǎn)步驟A;否則,將該數(shù)據(jù)流調(diào)整到下一個(gè)未發(fā)生擁塞的第二端口,從該未發(fā)生擁塞的第二端口轉(zhuǎn)發(fā)數(shù)據(jù)包并記錄數(shù)據(jù)流標(biāo)號(hào)與該第二端口的對(duì)應(yīng)關(guān)系,轉(zhuǎn)步驟A。
根據(jù)上述方法將數(shù)據(jù)流的初始化標(biāo)志,數(shù)據(jù)流的標(biāo)號(hào),與該數(shù)據(jù)流對(duì)應(yīng)的目的端口號(hào),以及該目的端口號(hào)的擁塞標(biāo)志之間的對(duì)應(yīng)關(guān)系保存于一個(gè)映射表中。
步驟C中,將一個(gè)取值在所述第二端口的數(shù)目之間循環(huán)的初始化令牌的值作為所述數(shù)據(jù)流的目的端口號(hào),并在初始化該數(shù)據(jù)流后將初始化令牌的值加1,保證在初始化數(shù)據(jù)流時(shí)均衡分配端口號(hào),其中該初始化令牌的初始值與多個(gè)第二端口中的最小端口號(hào)相同。
步驟D中,當(dāng)所有的第二端口均出現(xiàn)擁塞時(shí),不調(diào)整所述數(shù)據(jù)流對(duì)應(yīng)的第二端口。
本發(fā)明能夠大幅度提高流量通過(guò)率,盡量減小因擁塞對(duì)流的影響,從而有效地減少了在流量突發(fā)時(shí)造成的丟包現(xiàn)象。
圖1為第一端與多個(gè)第二端口的模型圖;圖2為本發(fā)明的流程圖。
具體實(shí)施例方式
參閱圖1所示,第一端口為端口A,該端口A為一個(gè)高速率的端口,從端口A的流量經(jīng)過(guò)均衡分配后送到四個(gè)第二端口(并不限于四個(gè))去并行處理,該四個(gè)第二端口分別為端口B、C、D、E,均為低速率的端口。
由于流量的突發(fā)性和不可預(yù)知性,所以當(dāng)原先分配到B端口的流量發(fā)生突發(fā),其速率超過(guò)了A端口的流量的1/4時(shí),此時(shí)就會(huì)發(fā)生丟包。本發(fā)明在這種突發(fā)情況下,將多出的部分流量自動(dòng)地轉(zhuǎn)移到端口C,D或E上去進(jìn)行處理,以最大限度的避免發(fā)生丟包的現(xiàn)象,達(dá)到最佳的性能。也就是說(shuō),數(shù)據(jù)流具體去哪一個(gè)端口是根據(jù)后面四個(gè)端口的流量情況進(jìn)行動(dòng)態(tài)調(diào)節(jié)的,流量多的就會(huì)將其動(dòng)態(tài)分配到流量小的端口上去,以保持四個(gè)端口之間的流量均衡,保證其最佳的處理的能力。
為了使流量動(dòng)態(tài)均衡,設(shè)置以下標(biāo)志初始化令牌,初始分配數(shù)據(jù)流時(shí)均衡分配端口號(hào)。初始化令牌的取值在第二端口的數(shù)目間環(huán)循,并且初值與端口中的最小端口號(hào)相同。當(dāng)初始化一個(gè)數(shù)據(jù)流時(shí)將該初始化令牌的當(dāng)前值作為該數(shù)據(jù)流的目的端口號(hào)(一個(gè)第二端口的端口號(hào)),然后將初始化令牌的值加1。如圖1中,第二端口的數(shù)目為4,最小端口號(hào)為0,則初始化令牌的取值在0~3之間循環(huán),即如果當(dāng)前值為3,則加1后的取值為0。
初始化標(biāo)志,用于表示某一個(gè)流是否已經(jīng)分配了端口號(hào)。
擁塞標(biāo)志(或稱動(dòng)態(tài)調(diào)整標(biāo)志),如果一個(gè)第二端口的流量達(dá)到一定的門(mén)限,表示此端口的流量已經(jīng)達(dá)到幾乎滿了,此時(shí)此標(biāo)志位將會(huì)置為1。
對(duì)于已經(jīng)初始化的數(shù)據(jù)流,將數(shù)據(jù)流的標(biāo)號(hào)(簡(jiǎn)稱流號(hào))、初始化標(biāo)志、目的端口號(hào)及該端口的擁塞標(biāo)志之間的對(duì)應(yīng)關(guān)系保存于映射表中,如下表所示。
如果為一個(gè)流分配的目的端口不發(fā)生擁塞,則以后這個(gè)流就一直發(fā)往這個(gè)目的端口。
初始分配時(shí),流按照順序分配目的端口,分配了端口B后,將會(huì)去分配端口C,如此類推。按順序分配端口,在分配的過(guò)程中傳遞初始化令牌。同時(shí)當(dāng)一個(gè)流分配了一個(gè)端口后,將這個(gè)流以及它對(duì)應(yīng)的端口號(hào)等和初始化標(biāo)志寫(xiě)入到映射表當(dāng)中去。
在非初始分配時(shí),如果一個(gè)端口發(fā)生擁塞,此時(shí)擁塞標(biāo)志就會(huì)置起,則會(huì)將屬于他的部分的流分配給下一個(gè)目的端口,如果下一個(gè)目的端口也發(fā)生擁塞,則會(huì)分配給再下一個(gè)目的端口,以此類推。如果四個(gè)目的端口都需要?jiǎng)討B(tài)調(diào)整,則目的端口不發(fā)生更改,此時(shí)就會(huì)發(fā)生丟包現(xiàn)象。
參閱圖2所示,對(duì)數(shù)據(jù)流的處理過(guò)程如下步驟10開(kāi)始首先將所有的流的初始化標(biāo)志清為零,同時(shí)初始化令牌也清為零。
步驟20接收一個(gè)流的數(shù)據(jù)包,并根據(jù)流標(biāo)號(hào)查詢映射表。
步驟30判斷數(shù)據(jù)是否已經(jīng)初始化,如果沒(méi)有初始化,則進(jìn)行步驟40,否則進(jìn)行步驟50。
步驟40將流的目的端口號(hào)置為初始化令牌的值,即將端口號(hào)與初始化令牌的值相同的端口作為該流的目的端口,從該端口轉(zhuǎn)發(fā)數(shù)據(jù)包并將各對(duì)應(yīng)關(guān)系寫(xiě)入映射表,同時(shí)將初始化令牌的值加1,轉(zhuǎn)步驟20。
步驟50判斷數(shù)據(jù)流對(duì)應(yīng)的目的端口是否發(fā)生擁塞,如果是則進(jìn)行步驟70,否則進(jìn)行步驟60;步驟60將數(shù)據(jù)包從數(shù)據(jù)流對(duì)應(yīng)的端口轉(zhuǎn)發(fā),即不調(diào)整目的端口,并轉(zhuǎn)步驟20。
步驟70將數(shù)據(jù)流的目的端口調(diào)整為下一個(gè)不擁塞的端口,從該不擁塞的端口轉(zhuǎn)發(fā)數(shù)據(jù)包并將各對(duì)應(yīng)關(guān)系寫(xiě)入映射表中,轉(zhuǎn)步驟20。
如果所有的端口都發(fā)生擁塞,則不發(fā)生調(diào)整。
本發(fā)明雖然第二端口為四個(gè)端口進(jìn)行說(shuō)明,但該第二端口的數(shù)目可根據(jù)需要增加或減少,其方法與上述相同。
權(quán)利要求
1.一種端口數(shù)據(jù)流量動(dòng)態(tài)均衡分配方法,用于將一個(gè)第一端口的數(shù)據(jù)流分配給多個(gè)第二端口;其特征在于該方法包括步驟A、接收第一端口一個(gè)數(shù)據(jù)流的數(shù)據(jù)包;B、根據(jù)數(shù)據(jù)流的標(biāo)號(hào)判斷該數(shù)據(jù)流是否已初始化,如果是則進(jìn)行步驟D,否則,進(jìn)行步驟C;C、為所述數(shù)據(jù)流分配一個(gè)第二端口作為目的端口,從該第二端口轉(zhuǎn)發(fā)數(shù)據(jù)包并記錄該數(shù)據(jù)流標(biāo)號(hào)與該第二端口的對(duì)應(yīng)關(guān)系,轉(zhuǎn)步驟A;D、判斷所述數(shù)據(jù)流對(duì)應(yīng)的第二端口是否發(fā)生擁塞,如果未發(fā)生擁塞,則從該數(shù)據(jù)流對(duì)應(yīng)的第二端口轉(zhuǎn)發(fā)數(shù)據(jù)包,轉(zhuǎn)步驟A;否則,將該數(shù)據(jù)流調(diào)整到下一個(gè)未發(fā)生擁塞的第二端口,從該未發(fā)生擁塞的第二端口轉(zhuǎn)發(fā)數(shù)據(jù)包并記錄數(shù)據(jù)流標(biāo)號(hào)與該第二端口的對(duì)應(yīng)關(guān)系,轉(zhuǎn)步驟A。
2.如權(quán)利要求1所述的方法,其特征在于,將數(shù)據(jù)流的初始化標(biāo)志,數(shù)據(jù)流的標(biāo)號(hào),與該數(shù)據(jù)流對(duì)應(yīng)的目的端口號(hào),以及該目的端口號(hào)的擁塞標(biāo)志之間的對(duì)應(yīng)關(guān)系保存于一個(gè)映射表中。
3.如權(quán)利要求1所述的方法,其特征在于,步驟C中,將一個(gè)取值在所述第二端口的數(shù)目之間循環(huán)的初始化令牌的值作為所述數(shù)據(jù)流的目的端口號(hào),并在初始化該數(shù)據(jù)流后將初始化令牌的值加1,保證在初始化數(shù)據(jù)流時(shí)均衡分配端口號(hào),其中該初始化令牌的初始值與多個(gè)第二端口中的最小端口號(hào)相同。
4.如權(quán)利要求1至3任一所述的方法,其特征在于,步驟D中,當(dāng)所有的第二端口均出現(xiàn)擁塞時(shí),不調(diào)整所述數(shù)據(jù)流對(duì)應(yīng)的第二端口。
5.如權(quán)利要求4所述的方法,其特征在于,所述第一端口的速率高于第二端口。
全文摘要
本發(fā)明公開(kāi)了一種端口數(shù)據(jù)流量動(dòng)態(tài)均衡分配方法,用于將一個(gè)第一端口的數(shù)據(jù)流分配給多個(gè)第二端口;該方法為接收第一端口一個(gè)數(shù)據(jù)流的數(shù)據(jù)包;根據(jù)數(shù)據(jù)流的標(biāo)號(hào)判斷該數(shù)據(jù)流是否已初始化,如果未初始化,則為該流分配一個(gè)目的端口并記錄對(duì)應(yīng)關(guān)系;如果已初始化,則判斷所述數(shù)據(jù)流對(duì)應(yīng)的第二端口是否發(fā)生擁塞,如果未發(fā)生擁塞,則從該數(shù)據(jù)流對(duì)應(yīng)的第二端口轉(zhuǎn)發(fā)數(shù)據(jù)包;如果發(fā)生擁塞則將該數(shù)據(jù)流調(diào)整到下一個(gè)未發(fā)生擁塞的第二端口,從該未發(fā)生擁塞的第二端口轉(zhuǎn)發(fā)數(shù)據(jù)包并記錄數(shù)據(jù)流標(biāo)號(hào)與該第二端口的對(duì)應(yīng)關(guān)系。
文檔編號(hào)H04L12/56GK1622532SQ20031011666
公開(kāi)日2005年6月1日 申請(qǐng)日期2003年11月25日 優(yōu)先權(quán)日2003年11月25日
發(fā)明者葉錦華, 姚慧勇, 蔣治 申請(qǐng)人:華為技術(shù)有限公司