專利名稱:一種流量負(fù)載分擔(dān)方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù)領(lǐng)域,特別是涉及一種流量負(fù)載分擔(dān)方法和設(shè)備。
背景技術(shù):
對(duì)于同一路由協(xié)議來說,允許配置多條目的地址相同且開銷相同的路由,即等價(jià)路由,其發(fā)送報(bào)文的鏈路為等價(jià)鏈路;在轉(zhuǎn)發(fā)去往目的地址的報(bào)文時(shí),將依次通過各條等價(jià)鏈路進(jìn)行發(fā)送,從而實(shí)現(xiàn)網(wǎng)絡(luò)的負(fù)載分擔(dān),以有效的提高鏈路的帶寬和利用率,且實(shí)現(xiàn)鏈路的相互備份,有效地提高鏈路的可靠性。當(dāng)前的逐流轉(zhuǎn)發(fā)方式中,根據(jù)五元組(目的MAC(Media Access Control,介質(zhì)訪問
控制),源MAC,目的IP,源IP,端口號(hào))和Index (索引)計(jì)算值生成快轉(zhuǎn)表項(xiàng),其中記錄了轉(zhuǎn)發(fā)該五元組報(bào)文所需的路由信息,即下一跳和出接口 ;且相同五元組的后續(xù)報(bào)文從同一個(gè)接口進(jìn)入,并將匹配到該快轉(zhuǎn)表項(xiàng),走快轉(zhuǎn)流程,即和前一個(gè)報(bào)文采用相同的出接口和下一跳進(jìn)行轉(zhuǎn)發(fā)。當(dāng)前的逐包轉(zhuǎn)發(fā)方式中,從等價(jià)路由表的鏈表頭開始,報(bào)文每查詢一次等價(jià)路由表,則需要將鏈表頭所指向的等價(jià)路由返回,同時(shí)將鏈表頭向后移一個(gè)等價(jià)路由,這樣,在下次查詢時(shí)就會(huì)返回下一個(gè)等價(jià)路由。如圖I所不,為現(xiàn)有技術(shù)的應(yīng)用場景不意圖,Routel設(shè)備上的等價(jià)路由表中存在如表I所示的等價(jià)路由。表I
dest (目的地址)next hop (下一跳)ifnet (出接口)
2.2.2.2ethemet (以太口)01.2.3.0/24__
3.3.3.3ethemet I
4.4.4.4ethemet 2
5.5.5.5ethemet 3針對(duì)逐流轉(zhuǎn)發(fā)方式,如果有目的地址為I. 2. 3.4的報(bào)文,則匹配網(wǎng)段路由(I. 2. 3. 0/24),且根據(jù)五兀組和 index 計(jì)算值在端口 ethernet 0, ethernet I, thernet2和ethernet 3上hash,如hash到ethernet 1,則可建立快轉(zhuǎn)表項(xiàng),其出接口為ethernet1,下一跳為3. 3. 3. 3 ;對(duì)于后續(xù)該五元組的報(bào)文,由于匹配快轉(zhuǎn)表項(xiàng),因此不再查等價(jià)路由表,直接利用接口 ethernet I,下一跳3. 3. 3. 3進(jìn)行轉(zhuǎn)發(fā)。針對(duì)逐包轉(zhuǎn)發(fā)方式,到目的網(wǎng)段I. 2. 3. 0/24有四條等價(jià)路由下一跳分別為
2.2.2.2, 3. 3. 3. 3,4. 4. 4. 4,5. 5. 5. 5 ;如果有目的地址為I. 2. 3. 4的報(bào)文,則匹配該網(wǎng)段路由(I. 2. 3. 0/24),共有連續(xù)N個(gè)報(bào)文,則第一個(gè)報(bào)文從ethernet 0發(fā)出,下一跳為
2.2. 2. 2 ;第二個(gè)報(bào)文從ethernet I發(fā)出,下一跳為3. 3. 3. 3 ;第三個(gè)報(bào)文從ethernet 2發(fā)出,下一跳為4. 4. 4. 4 ;第四個(gè)報(bào)文從ethernet 3發(fā)出,下一跳為5. 5. 5. 5 ;第五個(gè)報(bào)文從ethernet 0發(fā)出,下一跳為2. 2. 2. 2,以此類推。逐流轉(zhuǎn)發(fā)方式的缺點(diǎn)是對(duì)轉(zhuǎn)發(fā)的每條流hash時(shí),都需要選擇所有等價(jià)鏈路的端口進(jìn)行hash,且不同流量經(jīng)過hash映射后,有可能映射到同一條等價(jià)鏈路上,如果網(wǎng)絡(luò)中存在的流量剛好負(fù)載分擔(dān)至同一條等價(jià)鏈路上進(jìn)行轉(zhuǎn)發(fā),則仍然會(huì)出現(xiàn)該等價(jià)鏈路的負(fù)載大,而其他等價(jià)鏈路空閑的現(xiàn)象,從而導(dǎo)致等價(jià)鏈路無法合理分擔(dān)流量,繼而無法合理利用等價(jià)鏈路。逐包轉(zhuǎn)發(fā)方式的缺點(diǎn)是轉(zhuǎn)發(fā)效率很差,而且容易出錯(cuò)包,導(dǎo)致重傳等問題
發(fā)明內(nèi)容
本發(fā)明實(shí)施例提供一種流量負(fù)載分擔(dān)方法和設(shè)備,以使等價(jià)鏈路合理分擔(dān)流量,并合理利用等價(jià)鏈路。為了達(dá)到上述目的,本發(fā)明實(shí)施例提供一種流量負(fù)載分擔(dān)方法,應(yīng)用于包括多條等價(jià)鏈路的網(wǎng)絡(luò)中,該方法包括以下步驟在接收到需要通過所述多條等價(jià)鏈路發(fā)送的流量時(shí),獲得所述多條等價(jià)鏈路中的各條等價(jià)鏈路的剩余鏈路帶寬信息;當(dāng)?shù)葍r(jià)鏈路的剩余鏈路帶寬大于等于所述流量的使用帶寬時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第一優(yōu)先級(jí);當(dāng)?shù)葍r(jià)鏈路的剩余鏈路帶寬小于所述流量的使用帶寬時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第二優(yōu)先級(jí);如果所述多條等價(jià)鏈路中有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第一優(yōu)先級(jí),則優(yōu)先利用所有具有第一優(yōu)先級(jí)的端口對(duì)所述流量進(jìn)行基于逐流轉(zhuǎn)發(fā)方式的流量負(fù)載分擔(dān)處理;如果所述多條等價(jià)鏈路中沒有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第一優(yōu)先級(jí),且有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第二優(yōu)先級(jí),則利用所有具有第二優(yōu)先級(jí)的端口對(duì)所述流量進(jìn)行基于逐包轉(zhuǎn)發(fā)方式的流量負(fù)載分擔(dān)處理。獲得所述多條等價(jià)鏈路中的各條等價(jià)鏈路的剩余鏈路帶寬信息,之后還包括當(dāng)?shù)葍r(jià)鏈路處于擁塞狀態(tài)時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第三優(yōu)先級(jí);如果所述多條等價(jià)鏈路中所有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第三優(yōu)先級(jí),則丟棄所述流量。丟棄所述流量之后還包括發(fā)出告警信息,且所述告警信息用于提示所有等價(jià)鏈路均處于擁塞狀態(tài)。每條等價(jià)鏈路配置有令牌桶C和令牌桶E,Tc為所述令牌桶C中的令牌個(gè)數(shù),Te為所述令牌桶E中的令牌個(gè)數(shù);且所述令牌桶C中存在足夠令牌時(shí)表示等價(jià)鏈路當(dāng)前能夠在不發(fā)生丟包的情況下發(fā)送流量;且所述令牌桶C中未存在足夠令牌,所述令牌桶E中存在足夠令牌時(shí)表示等價(jià)鏈路當(dāng)前能夠在發(fā)生丟包的情況下發(fā)送流量;獲得所述多條等價(jià)鏈路中的各條等價(jià)鏈路的剩余鏈路帶寬信息的過程,包括如果等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc大于等于所述流量的使用帶寬,則確定該等價(jià)鏈路的剩余鏈路帶寬大于等于所述流量的使用帶寬;如果等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc小于所述流量的使用帶寬,且該等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc與令牌桶E中的當(dāng)前令牌個(gè)數(shù)Te之和大于等于所述流量的使用帶寬,則確定該等價(jià)鏈路的剩余鏈路帶寬小于所述流量的使用帶寬;如果等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc與令牌桶E中的當(dāng)前令牌個(gè)數(shù)Te之和小于所述流量的使用帶寬,則確定該等價(jià)鏈路處于擁塞狀態(tài)。 所述令牌桶C的容積為CBS,所述令牌桶E的容積為EBS,所述方法進(jìn)一步包括在將令牌放入令牌桶時(shí),如果所述令牌桶C中的令牌個(gè)數(shù)Tc小于CBS,則將令牌放入所述令牌桶C中;如果所述令牌桶C中的令牌個(gè)數(shù)Tc等于CBS,且所述令牌桶E中的令牌個(gè)數(shù)Te小于EBS,則將令牌放入所述令牌桶E中;如果所述令牌桶E中的令牌個(gè)數(shù)Te等于EBSJIJF將令牌放入所述令牌桶C和所述令牌桶E中;在刪除令牌桶中的令牌時(shí),如果所述令牌桶E中存在令牌,則刪除所述令牌桶E中存在的令牌;如果所述令牌桶E中不存在令牌,且所述令牌桶C中存在令牌,則刪除所述令牌桶C中存在的令牌。本發(fā)明實(shí)施例提供一種流量負(fù)載分擔(dān)設(shè)備,可應(yīng)用于包括多條等價(jià)鏈路的網(wǎng)絡(luò)中,該設(shè)備包括
獲得模塊,用于在接收到需要通過所述多條等價(jià)鏈路發(fā)送的流量時(shí),獲得所述多條等價(jià)鏈路中的各條等價(jià)鏈路的剩余鏈路帶寬信息;設(shè)置模塊,用于當(dāng)?shù)葍r(jià)鏈路的剩余鏈路帶寬大于等于所述流量的使用帶寬時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第一優(yōu)先級(jí);當(dāng)?shù)葍r(jià)鏈路的剩余鏈路帶寬小于所述流量的使用帶寬時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第二優(yōu)先級(jí);處理模塊,用于當(dāng)所述多條等價(jià)鏈路中有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第一優(yōu)先級(jí)時(shí),則優(yōu)先利用所有具有第一優(yōu)先級(jí)的端口對(duì)所述流量進(jìn)行基于逐流轉(zhuǎn)發(fā)方式的流量負(fù)載分擔(dān)處理;當(dāng)所述多條等價(jià)鏈路中沒有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第一優(yōu)先級(jí),且有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第二優(yōu)先級(jí)時(shí),則利用所有具有第二優(yōu)先級(jí)的端口對(duì)所述流量進(jìn)行基于逐包轉(zhuǎn)發(fā)方式的流量負(fù)載分擔(dān)處理。所述設(shè)置模塊,還用于當(dāng)?shù)葍r(jià)鏈路處于擁塞狀態(tài)時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第二優(yōu)先級(jí);所述處理模塊,還用于當(dāng)所述多條等價(jià)鏈路中所有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第三優(yōu)先級(jí)時(shí),則丟棄所述流量。所述處理模塊,進(jìn)一步用于在丟棄所述流量之后,發(fā)出告警信息,且所述告警信息用于提示所有等價(jià)鏈路均處于擁塞狀態(tài)。每條等價(jià)鏈路配置有令牌桶C和令牌桶E,Tc為所述令牌桶C中的令牌個(gè)數(shù),Te為所述令牌桶E中的令牌個(gè)數(shù);且所述令牌桶C中存在足夠令牌時(shí)表示等價(jià)鏈路當(dāng)前能夠在不發(fā)生丟包的情況下發(fā)送流量;且所述令牌桶C中未存在足夠令牌,所述令牌桶E中存在足夠令牌時(shí)表示等價(jià)鏈路當(dāng)前能夠在發(fā)生丟包的情況下發(fā)送流量;所述獲得模塊,進(jìn)一步用于當(dāng)?shù)葍r(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc大于等于所述流量的使用帶寬時(shí),則確定該等價(jià)鏈路的剩余鏈路帶寬大于等于所述流量的使用帶寬;當(dāng)?shù)葍r(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc小于所述流量的使用帶寬,且該等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc與令牌桶E中的當(dāng)前令牌個(gè)數(shù)Te之和大于等于所述流量的使用帶寬時(shí),則確定該等價(jià)鏈路的剩余鏈路帶寬小于所述流量的使用帶寬;當(dāng)?shù)葍r(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc與令牌桶E中的當(dāng)前令牌個(gè)數(shù)Te之和小于所述流量的使用帶寬時(shí),則確定該等價(jià)鏈路處于擁塞狀態(tài)。
所述令牌桶C的容積為CBS,所述令牌桶E的容積為EBS ;所述獲得模塊,進(jìn)一步用于在將令牌放入令牌桶時(shí),如果所述令牌桶C中的令牌個(gè)數(shù)Tc小于CBS,則將令牌放入所述令牌桶C中;如果所述令牌桶C中的令牌個(gè)數(shù)Tc等于CBS,且所述令牌桶E中的令牌個(gè)數(shù)Te小于EBS,則將令牌放入所述令牌桶E中;如果所述令牌桶E中的令牌個(gè)數(shù)Te等于EBS,則不將令牌放入所述令牌桶C和所述令牌桶E中;在刪除令牌桶中的令牌時(shí),如果所述令牌桶E中存在令牌,則刪除所述令牌桶E中存在的令牌;如果所述令牌桶E中不存在令牌,且所述令牌桶C中存在令牌,則刪除所述令牌桶C中存在的令牌。與現(xiàn)有技術(shù)相比,本發(fā)明至少具有以下優(yōu)點(diǎn)本發(fā)明實(shí)施例中,根據(jù)各等價(jià)鏈路的狀況合理分配端口優(yōu)先級(jí),使得流量在等價(jià)鏈路上均衡轉(zhuǎn)發(fā),使等價(jià)鏈路合理分擔(dān)流量,并合理利用等價(jià)鏈路,提高各條等價(jià)鏈路的使用率。
圖I是現(xiàn)有技術(shù)的應(yīng)用場景示意圖;圖2是本發(fā)明實(shí)施例提供的一種流量負(fù)載分擔(dān)方法流程圖;圖3是本發(fā)明實(shí)施例提出的一種流量負(fù)載分擔(dān)設(shè)備結(jié)構(gòu)圖。
具體實(shí)施例方式下面結(jié)合附圖對(duì)本發(fā)明實(shí)施例進(jìn)行詳細(xì)描述。本發(fā)明實(shí)施例提出一種流量負(fù)載分擔(dān)方法,該方法可以應(yīng)用于包括多條等價(jià)鏈路的網(wǎng)絡(luò)中,以圖I為本發(fā)明實(shí)施例的應(yīng)用場景不意圖,則Routel與Route2之間存在4條等價(jià)鏈路;如圖2所示,該方法包括以下步驟步驟201,在接收到需要通過多條等價(jià)鏈路發(fā)送的流量時(shí),獲得多條等價(jià)鏈路中的各條等價(jià)鏈路的剩余鏈路帶寬信息。例如,Routel接收到需要發(fā)送給Route2的流量時(shí),則該流量為需要通過多條等價(jià)鏈路發(fā)送的流量,且該流量為當(dāng)前待轉(zhuǎn)發(fā)流量;且Routel需要獲得各等價(jià)鏈路的剩余鏈路帶寬信息。本發(fā)明實(shí)施例中,等價(jià)鏈路的剩余鏈路帶寬信息具體為等價(jià)鏈路的剩余鏈路帶寬大于等于當(dāng)前待轉(zhuǎn)發(fā)流量的使用帶寬;或者,等價(jià)鏈路的剩余鏈路帶寬小于當(dāng)前待轉(zhuǎn)發(fā)流量的使用帶寬;或者,等價(jià)鏈路處于擁塞狀態(tài)(當(dāng)某個(gè)時(shí)刻,流量到達(dá)的速率大于發(fā)送流量的速率,即鏈路出現(xiàn)嚴(yán)重丟包)。為了獲得各條等價(jià)鏈路的剩余鏈路帶寬信息,可以在所有需要監(jiān)控的等價(jià)鏈路端口上使能流量監(jiān)控功能,且在該功能使能后,可以獲取等價(jià)鏈路上的當(dāng)前帶寬使用情況,繼而獲得等價(jià)鏈路的剩余鏈路帶寬信息。在實(shí)際應(yīng)用中,可利用令牌桶(Token Bucket)獲得各等價(jià)鏈路的剩余鏈路帶寬信息,該令牌桶可以看作是存放一定數(shù)量令牌的容器,且基于令牌桶中是否存在令牌來指示何時(shí)可發(fā)送流量;令牌桶中的每一個(gè)令牌代表一個(gè)字節(jié),如果令牌桶中存在令牌,則允許發(fā)送流量,如果令牌桶中不存在令牌,則不允許發(fā)送流量;假設(shè)配置平均發(fā)送速率為r,則每隔1/r秒將一個(gè)令牌放置到令牌桶中,當(dāng)令牌桶中令牌滿時(shí),多出的令牌溢出,令牌桶中令、牌不再增加;當(dāng)一個(gè)n字節(jié)的數(shù)據(jù)包到達(dá)時(shí),從令牌桶中刪除n個(gè)令牌,且如果令牌桶中少于n個(gè)令牌,則不會(huì)刪除令牌,認(rèn)為這個(gè)數(shù)據(jù)包在流量限制之外。基于令牌桶的相關(guān)特征,本發(fā)明實(shí)施例提供的一種優(yōu)選的獲得等價(jià)鏈路的剩余鏈路帶寬信息的方式,具體為每條等價(jià)鏈路配置有令牌桶C (標(biāo)準(zhǔn)令牌桶)和令牌桶E (擴(kuò)展令牌桶),令牌桶C的容積為CBS,令牌桶E的容積為EBS,通過合理設(shè)置CBS和EBS (根據(jù)實(shí)際需要進(jìn)行設(shè)置),使得令牌桶C中存在足夠令牌(即令牌個(gè)數(shù)大于等于當(dāng)前待轉(zhuǎn)發(fā)流量的使用帶寬)時(shí)表示等價(jià)鏈路當(dāng)前能夠在不發(fā)生丟包的情況下發(fā)送流量;且令牌桶C中未存在足夠令牌(即令牌個(gè)數(shù)小于當(dāng)前待轉(zhuǎn)發(fā)流量的使用帶寬),令牌桶E中存在足夠令牌(即令牌桶C和令牌桶E的令牌個(gè)數(shù)大于等于當(dāng)前待轉(zhuǎn)發(fā)流量的使用帶寬)時(shí)表示等價(jià)鏈路當(dāng)前能夠在發(fā)生丟包的情況下發(fā)送流量。需要說明的是,設(shè)置Tc為令牌桶C中的令牌個(gè)數(shù),Te為令牌桶E中的令牌個(gè)數(shù);且初始時(shí) Tc = CBS,Te = EBS。在將令牌放入令牌桶時(shí),如果令牌桶C中的令牌個(gè)數(shù)Tc小于CBS,將令牌放入令牌 桶C中;如果令牌桶C中的令牌個(gè)數(shù)Tc等于CBS,令牌桶E中的令牌個(gè)數(shù)Te小于EBS,將令牌放入令牌桶E中;如果令牌桶E中的令牌個(gè)數(shù)Te等于EBS,則不將令牌放入令牌桶C和令牌桶E中;在刪除令牌桶中的令牌時(shí),如果令牌桶E中存在令牌,則刪除令牌桶E中存在的令牌;如果令牌桶E中不存在令牌,令牌桶C中存在令牌,則刪除令牌桶C中存在的令牌。進(jìn)一步的,基于上述令牌桶C和令牌桶E的相關(guān)維護(hù)過程,如果等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc大于等于當(dāng)前待轉(zhuǎn)發(fā)流量的使用帶寬,則確定該等價(jià)鏈路的剩余鏈路帶寬大于等于當(dāng)前待轉(zhuǎn)發(fā)流量的使用帶寬;如果等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc小于當(dāng)前待轉(zhuǎn)發(fā)流量的使用帶寬,且該等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc與令牌桶E中的當(dāng)前令牌個(gè)數(shù)Te之和大于等于當(dāng)前待轉(zhuǎn)發(fā)流量的使用帶寬,則確定該等價(jià)鏈路的剩余鏈路帶寬小于當(dāng)前待轉(zhuǎn)發(fā)流量的使用帶寬;如果等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc與令牌桶E中的當(dāng)前令牌個(gè)數(shù)Te之和小于當(dāng)前待轉(zhuǎn)發(fā)流量的使用帶寬,則確定該等價(jià)鏈路處于擁塞狀態(tài)。本發(fā)明實(shí)施例中,獲得等價(jià)鏈路的剩余鏈路帶寬信息的采樣時(shí)間包括但不限于周期性輪詢,其輪詢的時(shí)間可以根據(jù)需求進(jìn)行設(shè)置,且該方式適用于流量穩(wěn)定的情況;動(dòng)態(tài)觸發(fā),即當(dāng)有流量變化需要重新選擇等價(jià)鏈路時(shí),需要重新獲得等價(jià)鏈路的剩余鏈路帶寬信息,以實(shí)時(shí)更新端口的優(yōu)先級(jí),且該方式適用于流量動(dòng)態(tài)變化的情況。步驟202,當(dāng)?shù)葍r(jià)鏈路的剩余鏈路帶寬大于等于流量的使用帶寬時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第一優(yōu)先級(jí);當(dāng)?shù)葍r(jià)鏈路的剩余鏈路帶寬小于流量的使用帶寬時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第二優(yōu)先級(jí)。此外,本發(fā)明實(shí)施例中,當(dāng)?shù)葍r(jià)鏈路處于擁塞狀態(tài)時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第三優(yōu)先級(jí);其中,第一優(yōu)先級(jí)優(yōu)于第二優(yōu)先級(jí),且第二優(yōu)先級(jí)優(yōu)于第三優(yōu)先級(jí)。步驟203,如果多條等價(jià)鏈路中有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第一優(yōu)先級(jí),則優(yōu)先利用所有具有第一優(yōu)先級(jí)的端口對(duì)當(dāng)前待轉(zhuǎn)發(fā)流量進(jìn)行基于逐流轉(zhuǎn)發(fā)方式的流量負(fù)載分擔(dān)處理;如果多條等價(jià)鏈路中沒有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第一優(yōu)先級(jí),且有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第二優(yōu)先級(jí),則利用所有具有第二優(yōu)先級(jí)的端口對(duì)當(dāng)前待轉(zhuǎn)發(fā)流量進(jìn)行基于逐包轉(zhuǎn)發(fā)方式的流量負(fù)載分擔(dān)處理。此外,本發(fā)明實(shí)施例中,如果多條等價(jià)鏈路中所有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第三優(yōu)先級(jí),則丟棄當(dāng)前待轉(zhuǎn)發(fā)流量。進(jìn)一步的,在丟棄當(dāng)前待轉(zhuǎn)發(fā)流量之后,還可以發(fā)出告警信息,且告警信息用于提示所有等價(jià)鏈路均處于擁塞狀態(tài)。以下結(jié)合圖I所示的應(yīng)用場景進(jìn)行說明。(I) 4條等價(jià)鏈路中有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第一優(yōu)先級(jí)時(shí),則利用所有具有第一優(yōu)先級(jí)的端口對(duì)當(dāng)前待轉(zhuǎn)發(fā)流量進(jìn)行基于逐流轉(zhuǎn)發(fā)方式的流量負(fù)載分擔(dān)處理;具體的,基于具有第一優(yōu)先級(jí)的端口,根據(jù)五元組(目的MAC,源MAC,目的IP,源IP,端口號(hào))和Index計(jì)算值生成快轉(zhuǎn)表項(xiàng),其中記錄了轉(zhuǎn)發(fā)該五元組報(bào)文所需的路由信息,即下一跳和出接口 ;且相同五元組的后續(xù)報(bào)文從同一個(gè)接口進(jìn)入,并將匹配到該快轉(zhuǎn)表項(xiàng),走快轉(zhuǎn)流程,
即和前一個(gè)報(bào)文采用相同的出接口和下一跳進(jìn)行轉(zhuǎn)發(fā)。假設(shè)Routel上的等價(jià)路由表中存在如表2所示的等價(jià)路由。表權(quán)利要求
1.一種流量負(fù)載分擔(dān)方法,應(yīng)用于包括多條等價(jià)鏈路的網(wǎng)絡(luò)中,其特征在于,該方法包括以下步驟 在接收到需要通過所述多條等價(jià)鏈路發(fā)送的流量時(shí),獲得所述多條等價(jià)鏈路中的各條等價(jià)鏈路的剩余鏈路帶寬信息; 當(dāng)?shù)葍r(jià)鏈路的剩余鏈路帶寬大于等于所述流量的使用帶寬時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第一優(yōu)先級(jí);當(dāng)?shù)葍r(jià)鏈路的剩余鏈路帶寬小于所述流量的使用帶寬時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第二優(yōu)先級(jí); 如果所述多條等價(jià)鏈路中有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第一優(yōu)先級(jí),則優(yōu)先利用所有具有第一優(yōu)先級(jí)的端口對(duì)所述流量進(jìn)行基于逐流轉(zhuǎn)發(fā)方式的流量負(fù)載分擔(dān)處理; 如果所述多條等價(jià)鏈路中沒有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第一優(yōu)先級(jí),且有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第二優(yōu)先級(jí),則利用所有具有第二優(yōu)先級(jí)的端口對(duì)所述流量進(jìn)行基于逐包轉(zhuǎn)發(fā)方式的流量負(fù)載分擔(dān)處理。
2.如權(quán)利要求I所述的方法,其特征在于,獲得所述多條等價(jià)鏈路中的各條等價(jià)鏈路的剩余鏈路帶寬信息,之后還包括 當(dāng)?shù)葍r(jià)鏈路處于擁塞狀態(tài)時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第三優(yōu)先級(jí); 如果所述多條等價(jià)鏈路中所有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第三優(yōu)先級(jí),則丟棄所述流量。
3.如權(quán)利要求2所述的方法,其特征在于,丟棄所述流量之后還包括 發(fā)出告警信息,且所述告警信息用于提示所有等價(jià)鏈路均處于擁塞狀態(tài)。
4.如權(quán)利要求2所述的方法,其特征在于,每條等價(jià)鏈路配置有令牌桶C和令牌桶E,Tc為所述令牌桶C中的令牌個(gè)數(shù),Te為所述令牌桶E中的令牌個(gè)數(shù);且所述令牌桶C中存在足夠令牌時(shí)表示等價(jià)鏈路當(dāng)前能夠在不發(fā)生丟包的情況下發(fā)送流量;且所述令牌桶C中未存在足夠令牌,所述令牌桶E中存在足夠令牌時(shí)表示等價(jià)鏈路當(dāng)前能夠在發(fā)生丟包的情況下發(fā)送流量; 獲得所述多條等價(jià)鏈路中的各條等價(jià)鏈路的剩余鏈路帶寬信息的過程,包括 如果等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc大于等于所述流量的使用帶寬,則確定該等價(jià)鏈路的剩余鏈路帶寬大于等于所述流量的使用帶寬; 如果等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc小于所述流量的使用帶寬,且該等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc與令牌桶E中的當(dāng)前令牌個(gè)數(shù)Te之和大于等于所述流量的使用帶寬,則確定該等價(jià)鏈路的剩余鏈路帶寬小于所述流量的使用帶寬;如果等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc與令牌桶E中的當(dāng)前令牌個(gè)數(shù)Te之和小于所述流量的使用帶寬,則確定該等價(jià)鏈路處于擁塞狀態(tài)。
5.如權(quán)利要求4所述的方法,其特征在于,所述令牌桶C的容積為CBS,所述令牌桶E的容積為EBS,所述方法進(jìn)一步包括 在將令牌放入令牌桶時(shí),如果所述令牌桶C中的令牌個(gè)數(shù)Tc小于CBS,則將令牌放入所述令牌桶C中;如果所述令牌桶C中的令牌個(gè)數(shù)Tc等于CBS,且所述令牌桶E中的令牌個(gè)數(shù)Te小于EBS,則將令牌放入所述令牌桶E中;如果所述令牌桶E中的令牌個(gè)數(shù)Te等于EBS,則不將令牌放入所述令牌桶C和所述令牌桶E中; 在刪除令牌桶中的令牌時(shí),如果所述令牌桶E中存在令牌,則刪除所述令牌桶E中存在的令牌;如果所述令牌桶E中不存在令牌,且所述令牌桶C中存在令牌,則刪除所述令牌桶C中存在的令牌。
6.一種流量負(fù)載分擔(dān)設(shè)備,可應(yīng)用于包括多條等價(jià)鏈路的網(wǎng)絡(luò)中,其特征在于,該設(shè)備包括 獲得模塊,用于在接收到需要通過所述多條等價(jià)鏈路發(fā)送的流量時(shí),獲得所述多條等價(jià)鏈路中的各條等價(jià)鏈路的剩余鏈路帶寬信息; 設(shè)置模塊,用于當(dāng)?shù)葍r(jià)鏈路的剩余鏈路帶寬大于等于所述流量的使用帶寬時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第一優(yōu)先級(jí);當(dāng)?shù)葍r(jià)鏈路的剩余鏈路帶寬小于所述流量的使用帶寬時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第二優(yōu)先級(jí); 處理模塊,用于當(dāng)所述多條等價(jià)鏈路中有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第一優(yōu)先級(jí)時(shí),則優(yōu)先利用所有具有第一優(yōu)先級(jí)的端口對(duì)所述流量進(jìn)行基于逐流轉(zhuǎn)發(fā)方式的流量負(fù)載分擔(dān)處理;當(dāng)所述多條等價(jià)鏈路中沒有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第一優(yōu)先級(jí),且有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第二優(yōu)先級(jí)時(shí),則利用所有具有第二優(yōu)先級(jí)的端口對(duì)所述流量進(jìn)行基于逐包轉(zhuǎn)發(fā)方式的流量負(fù)載分擔(dān)處理。
7.如權(quán)利要求6所述的設(shè)備,其特征在于, 所述設(shè)置模塊,還用于當(dāng)?shù)葍r(jià)鏈路處于擁塞狀態(tài)時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第三優(yōu)先級(jí); 所述處理模塊,還用于當(dāng)所述多條等價(jià)鏈路中所有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第三優(yōu)先級(jí)時(shí),則丟棄所述流量。
8.如權(quán)利要求7所述的設(shè)備,其特征在于, 所述處理模塊,進(jìn)一步用于在丟棄所述流量之后,發(fā)出告警信息,且所述告警信息用于提示所有等價(jià)鏈路均處于擁塞狀態(tài)。
9.如權(quán)利要求7所述的設(shè)備,其特征在于,每條等價(jià)鏈路配置有令牌桶C和令牌桶E,Tc為所述令牌桶C中的令牌個(gè)數(shù),Te為所述令牌桶E中的令牌個(gè)數(shù);且所述令牌桶C中存在足夠令牌時(shí)表示等價(jià)鏈路當(dāng)前能夠在不發(fā)生丟包的情況下發(fā)送流量;且所述令牌桶C中未存在足夠令牌,所述令牌桶E中存在足夠令牌時(shí)表示等價(jià)鏈路當(dāng)前能夠在發(fā)生丟包的情況下發(fā)送流量; 所述獲得模塊,進(jìn)一步用于當(dāng)?shù)葍r(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc大于等于所述流量的使用帶寬時(shí),則確定該等價(jià)鏈路的剩余鏈路帶寬大于等于所述流量的使用帶寬; 當(dāng)?shù)葍r(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc小于所述流量的使用帶寬,且該等價(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc與令牌桶E中的當(dāng)前令牌個(gè)數(shù)Te之和大于等于所述流量的使用帶寬時(shí),則確定該等價(jià)鏈路的剩余鏈路帶寬小于所述流量的使用帶寬; 當(dāng)?shù)葍r(jià)鏈路對(duì)應(yīng)的令牌桶C中的當(dāng)前令牌個(gè)數(shù)Tc與令牌桶E中的當(dāng)前令牌個(gè)數(shù)Te之和小于所述流量的使用帶寬時(shí),則確定該等價(jià)鏈路處于擁塞狀態(tài)。
10.如權(quán)利要求9所述的設(shè)備,其特征在于,所述令牌桶C的容積為CBS,所述令牌桶E的容積為EBS ; 所述獲得模塊,進(jìn)一步用于在將令牌放入令牌桶時(shí),如果所述令牌桶C中的令牌個(gè)數(shù)Tc小于CBS,則將令牌放入所述令牌桶C中;如果所述令牌桶C中的令牌個(gè)數(shù)Tc等于CBS,且所述令牌桶E中的令牌個(gè)數(shù)Te小于EBS,則將令牌放入所述令牌桶E中;如果所述令牌桶E中的令牌個(gè)數(shù)Te等于EBS,則不將令牌放入所述令牌桶C和所述令牌桶E中; 在刪除令牌桶中的令牌時(shí),如果所述令牌桶E中存在令牌,則刪除所述令牌桶E中存在的令牌;如果所述令牌桶E中不存在令牌,且所述令牌桶C中存在令牌,則刪除所述令牌桶C中存在的令牌。
全文摘要
本發(fā)明公開了一種流量負(fù)載分擔(dān)方法和設(shè)備,該方法包括當(dāng)?shù)葍r(jià)鏈路的剩余鏈路帶寬大于等于流量的使用帶寬時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第一優(yōu)先級(jí);當(dāng)?shù)葍r(jià)鏈路的剩余鏈路帶寬小于流量的使用帶寬時(shí),將該等價(jià)鏈路所在端口的優(yōu)先級(jí)設(shè)置為第二優(yōu)先級(jí);如果有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第一優(yōu)先級(jí),則基于逐流轉(zhuǎn)發(fā)方式進(jìn)行負(fù)載分擔(dān)處理;如果沒有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第一優(yōu)先級(jí),且有等價(jià)鏈路所在端口的優(yōu)先級(jí)為第二優(yōu)先級(jí),則基于逐包轉(zhuǎn)發(fā)方式進(jìn)行負(fù)載分擔(dān)處理。本發(fā)明中,可以合理利用等價(jià)鏈路,并提高各條等價(jià)鏈路的使用率。
文檔編號(hào)H04L12/56GK102739518SQ20121017240
公開日2012年10月17日 申請(qǐng)日期2012年5月30日 優(yōu)先權(quán)日2012年5月30日
發(fā)明者吳玲, 梁玉潔, 王偉 申請(qǐng)人:杭州華三通信技術(shù)有限公司