專利名稱:一種路由器多徑輸出智能負(fù)載均衡的方法及路由器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通訊技術(shù)領(lǐng)域,尤其涉及一種路由器多徑輸出智能負(fù)載均衡的方法及路由器。
背景技術(shù):
圖1為一種能夠?qū)崿F(xiàn)負(fù)載均衡的組網(wǎng)結(jié)構(gòu),該種組網(wǎng)模式常用于網(wǎng)吧、酒店、學(xué)校、小區(qū)接入等場合。多個(gè)用戶終端通過鏈路1、鏈路2等多條鏈路訪問網(wǎng)絡(luò)服務(wù)器,由于多條鏈路連接相同的寬帶路由器,從寬帶路由器到達(dá)網(wǎng)絡(luò)服務(wù)器可以生成多條等價(jià)鏈路,即多條代價(jià)相同的路由。現(xiàn)有技術(shù)中,來自于同一用戶終端的數(shù)據(jù)流走同一鏈路,使得每個(gè)用戶終端的所有數(shù)據(jù)流都走相同的鏈路到達(dá)網(wǎng)絡(luò)服務(wù)器的同一接口。該種實(shí)現(xiàn)方式通過在寬帶路由器上配置策略路由,對(duì)用戶終端出接口進(jìn)行設(shè)置,但該種方式策略路由使用復(fù)雜且無法動(dòng)態(tài)適應(yīng)網(wǎng)絡(luò)結(jié)構(gòu)的變化,一旦網(wǎng)絡(luò)結(jié)構(gòu)發(fā)生變化就需要重新對(duì)策略路由進(jìn)行配置;此外,該種方式容易出現(xiàn)單線路故障帶來的網(wǎng)絡(luò)可用性風(fēng)險(xiǎn)和網(wǎng)絡(luò)帶寬不足帶來的網(wǎng)絡(luò)訪問問題,因此用戶往往會(huì)租用多條線路。面對(duì)多線路的情況,用戶需要合理運(yùn)用多條線路的功能,使得來自于同一用戶終端的數(shù)據(jù)流在寬帶路由器進(jìn)行負(fù)載均衡,即一部分?jǐn)?shù)據(jù)流走鏈路1、一部分?jǐn)?shù)據(jù)流走鏈路2,一部分?jǐn)?shù)據(jù)可以選擇其他等價(jià)鏈路,既不造成線路資源的浪費(fèi),又能實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)質(zhì)量的提升。
發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問題是提出一種路由器多徑輸出智能負(fù)載均衡的方法及路由器,以解決單線路故障帶來的網(wǎng)絡(luò)可用性風(fēng)險(xiǎn)和網(wǎng)絡(luò)帶寬不足帶來的網(wǎng)絡(luò)訪問問題。一種路由器多徑輸出智能負(fù)載均衡的方法,包括如下步驟:獲取待轉(zhuǎn)發(fā)數(shù)據(jù)流;如果所述數(shù)據(jù)流沒有匹配到狀態(tài)表,且存在N條優(yōu)先級(jí)相同的路由時(shí),計(jì)算所述N條路由的當(dāng)前權(quán)值,并更新各接口所有對(duì)應(yīng)的路由權(quán)值;根據(jù)所述N條路由的當(dāng)前權(quán)值,指定下一跳,建立狀態(tài)表;從指定出接口轉(zhuǎn)發(fā)數(shù)據(jù);其中,所述N為大于等于2的整數(shù),所述N條優(yōu)先級(jí)相同的路由包括網(wǎng)段路由或者
默認(rèn)路由。進(jìn)一步地,該方法按照預(yù)定時(shí)間間隔計(jì)算所述N條路由的當(dāng)前權(quán)值。進(jìn)一步地,所述優(yōu)先級(jí)相同的N條路由的初始權(quán)值與對(duì)應(yīng)鏈路配置接口的下行帶寬成正比。4、根據(jù)權(quán)利要求2所述的路由器多徑輸出智能負(fù)載均衡的方法,其特征在于,所述按照預(yù)定時(shí)間間隔計(jì)算所述N條路由的當(dāng)前權(quán)值包括,S1:配置每條路由對(duì)應(yīng)接口的下行帶寬;S2:設(shè)置初始時(shí)間,從所述初始時(shí)間開始計(jì)時(shí),到達(dá)預(yù)定時(shí)間間隔,觸發(fā)定時(shí)器中斷,計(jì)算每條路由對(duì)應(yīng)接口在所述預(yù)定時(shí)間間隔內(nèi)的平均下行帶寬;S3:計(jì)算每條路由對(duì)應(yīng)接口當(dāng)前平均剩余下行帶寬,所述當(dāng)前平均剩余下行帶寬通過每條路由對(duì)應(yīng)接口配置下行帶寬減去預(yù)定時(shí)間間隔內(nèi)對(duì)應(yīng)的平均下行帶寬得到;S4:根據(jù)每條路由對(duì)應(yīng)接口的平均剩余下行帶寬,按照比值得到每條路由的當(dāng)前權(quán)值,更新各接口所有對(duì)應(yīng)的路由權(quán)值,執(zhí)行步驟S2。進(jìn)一步地,所述各接口所有對(duì)應(yīng)的路由包括,與接口處于同一網(wǎng)段的直連路由和下一跳與接口處于同一網(wǎng)段的所有路由。進(jìn)一步地,所述根據(jù)所述N條路由的當(dāng)前權(quán)值,指定下一跳,建立狀態(tài)表包括,統(tǒng)計(jì)所述N條路由的當(dāng)前權(quán)值;首先從所述權(quán)值中選出最小的權(quán)值,然后從剩余權(quán)值中每次選擇一個(gè)權(quán)值依次相力口,生成一個(gè)數(shù)據(jù)隊(duì)列,根據(jù)所述數(shù)據(jù)隊(duì)列生成一個(gè)包括N個(gè)相鄰取值區(qū)間的隊(duì)列;生成一個(gè)隨機(jī)數(shù),查找所述隨機(jī)數(shù)所處的取值區(qū)間,以所述取值區(qū)間最大值對(duì)應(yīng)的下一跳作為數(shù)據(jù)流傳輸?shù)南乱惶?;根?jù)數(shù)據(jù)流中指定粒度,建立狀態(tài)表,記錄出接口 ;其中,所述隨機(jī)數(shù)為生成的數(shù)據(jù)隊(duì)列中的任意值。進(jìn)一步地,所述數(shù)據(jù)流中指定粒度包括數(shù)據(jù)包的源IP和目的IP組成的IP對(duì);或者,數(shù)據(jù)包的協(xié)議類型、目的地址、目的端口、源地址和源端口組成的五元組信息。進(jìn)一步地,如果所述數(shù)據(jù)流匹配到狀態(tài)表,根據(jù)狀態(tài)表指定的下一跳轉(zhuǎn)發(fā)數(shù)據(jù)包。相應(yīng)地,本發(fā)明還公開一種路由器,所述路由器包括,獲取模塊,用于獲取待轉(zhuǎn)發(fā)數(shù)據(jù)流;匹配模塊,用于將待轉(zhuǎn)發(fā)數(shù)據(jù)流與狀態(tài)表表項(xiàng)進(jìn)行匹配;第一計(jì)算模塊,用于當(dāng)所述數(shù)據(jù)流沒有匹配到狀態(tài)表,且存在N條優(yōu)先級(jí)相同的路由時(shí),計(jì)算所述N條路由的當(dāng)前權(quán)值; 更新模塊,用于根據(jù)所述N條路由的當(dāng)前權(quán)值更新各接口所有對(duì)應(yīng)的路由權(quán)值;第二計(jì)算模塊,用于根據(jù)所述N條路由的當(dāng)前權(quán)值,指定下一跳,建立狀態(tài)表;轉(zhuǎn)發(fā)模塊,用于從指定出接口轉(zhuǎn)發(fā)數(shù)據(jù);其中,所述N為大于等于2的整數(shù),所述路由條目包括網(wǎng)段路由或者默認(rèn)路由。進(jìn)一步地,所述更新模塊用于更新各接口下所有路由權(quán)值,所述所有路由條目包括與接口處于同一網(wǎng)段的直連路由和下一跳與接口處于同一網(wǎng)段的所有路由。本發(fā)明的技術(shù)方案通過為路由器多出口線路分別設(shè)置權(quán)值,以權(quán)值為依據(jù),通過負(fù)載均衡算法來決定流量的出口,并且定期自動(dòng)計(jì)算每一條線路的剩余帶寬,更新各條線路的權(quán)值,動(dòng)態(tài)的適應(yīng)線路的忙閑變化,從而實(shí)現(xiàn)網(wǎng)絡(luò)服務(wù)質(zhì)量的提升。
圖1為一種實(shí)現(xiàn)負(fù)載均衡的組網(wǎng)結(jié)構(gòu)示意圖;圖2為本發(fā)明實(shí)施例提供的路由器多徑輸出智能負(fù)載均衡的方法流程圖;圖3為本發(fā)明實(shí)施例的計(jì)算N條路由條目的當(dāng)前權(quán)值的方法流程圖;圖4為本發(fā)明實(shí)施例的負(fù)載均衡算法的方法流程圖;圖5為本發(fā)明實(shí)施例提供的路由器的結(jié)構(gòu)框圖。
具體實(shí)施例方式為詳細(xì)說明本發(fā)明的技術(shù)內(nèi)容、所實(shí)現(xiàn)目的及效果,以下結(jié)合實(shí)施方式并配合附圖予以詳細(xì)說明。圖2為本發(fā)明實(shí)施例提供的路由器多徑輸出智能負(fù)載均衡的方法流程圖。如圖2所示,該方法包括如下步驟:步驟101:獲取待轉(zhuǎn)發(fā)數(shù)據(jù)流。各用戶終端發(fā)送數(shù)據(jù)流到寬帶路由器,等待寬帶路由器將數(shù)據(jù)轉(zhuǎn)發(fā)到目的地址。步驟102:判斷所述待轉(zhuǎn)發(fā)數(shù)據(jù)流是否匹配到狀態(tài)表,若是,執(zhí)行步驟107 ;否則,執(zhí)行步驟103。狀態(tài)表表項(xiàng)中包括相互關(guān)聯(lián)保存的用戶終端特征信息和對(duì)應(yīng)于寬帶路由器的多條等價(jià)鏈路的出接口信息。所述用戶終端特征信息是指能夠唯一標(biāo)識(shí)發(fā)送數(shù)據(jù)流的終端用戶的信息,用于區(qū)別于其他終端用戶。例如數(shù)據(jù)流攜帶的源IP地址等。出接口是為用于轉(zhuǎn)發(fā)數(shù)據(jù)流的出接口標(biāo)識(shí),或者為出接口標(biāo)識(shí)及下一跳路由地址。對(duì)于某些虛擬接口,通過接口標(biāo)識(shí)無法決定要轉(zhuǎn)發(fā)數(shù)據(jù)流的物理地址,這種情況下需要將出接口及下一跳路由地址綁定來確定實(shí)際的物理端口。步驟103:所述待轉(zhuǎn)發(fā)數(shù)據(jù)流匹配到N條優(yōu)先級(jí)相同的路由,所述N條優(yōu)先級(jí)相同路由包括網(wǎng)段路由或者默認(rèn)路由。所述優(yōu)先級(jí)相同的路由條目是指兩條或者兩條以上的等價(jià)路由,即能夠到達(dá)目的地址且代價(jià)近似相同的路由。如果不存在多條優(yōu)先級(jí)相同的路由,也就無法實(shí)現(xiàn)負(fù)載均衡。假如根據(jù)具體的網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)就可以確定來自不同終端的所有報(bào)文都只發(fā)送給一個(gè)目的地址,則必然存在N條優(yōu)先級(jí)相同的路由,該種情況下也不需要在進(jìn)行匹配。步驟104:計(jì)算所述N條路由的當(dāng)前權(quán)值,并更新各接口下所有對(duì)應(yīng)的路由權(quán)值。所述優(yōu)先級(jí)相同的N條路由條目的初始權(quán)值與對(duì)應(yīng)線路配置接口的下行帶寬成正比。也可以說是與對(duì)應(yīng)線路配置接口鏈路的容量成正比或者與速度成正比。計(jì)算所述N條路由條目的當(dāng)前權(quán)值可以根據(jù)用戶設(shè)置的時(shí)間進(jìn)行。對(duì)于時(shí)間間隔沒有嚴(yán)格的限制。為了實(shí)現(xiàn)方便,本實(shí)施例中按照預(yù)定時(shí)間間隔計(jì)算所述N條路由條目的當(dāng)前權(quán)值。圖3為本發(fā)明實(shí)施例的計(jì)算N條路由條目的當(dāng)前權(quán)值的方法流程圖,具體流程包括:步驟1041:配置每條路由對(duì)應(yīng)接口的下行帶寬;每條路由條目對(duì)應(yīng)接口的下行帶寬可以根據(jù)用戶需要進(jìn)行設(shè)置,也可以直接按照路由器初始值進(jìn)行分配。接口下行帶寬確定的話,接口下路由權(quán)值也就為確定值。在路由器初始化后,每條路由條目權(quán)值與對(duì)應(yīng)接口配置的下行帶寬成比例。步驟1042:系統(tǒng)啟用一個(gè)定時(shí)器,設(shè)置初始時(shí)間和定時(shí)時(shí)間間隔。步驟1043:從所述初始時(shí)間開始計(jì)時(shí),到達(dá)預(yù)定時(shí)間間隔,觸發(fā)定時(shí)器中斷。步驟1044:計(jì)算每一條路由所對(duì)應(yīng)接口在一個(gè)定時(shí)器周期內(nèi)的平均下行帶寬。步驟1045:計(jì)算每條路由條目對(duì)應(yīng)接口當(dāng)前平均剩余下行帶寬。所述當(dāng)前平均剩余下行帶寬通過每條路由條目對(duì)應(yīng)接口配置下行帶寬減去預(yù)定時(shí)間間隔內(nèi)對(duì)應(yīng)的平均下行帶寬得到。
步驟1046:根據(jù)每條路由條目對(duì)應(yīng)接口的平均剩余下行帶寬,按照比值得到每條路由條目的當(dāng)前權(quán)值。所述當(dāng)前路由權(quán)值是當(dāng)前各接口平均剩余下行帶寬的比值,也就是說,每次計(jì)算各接口當(dāng)前平均剩余下行帶寬都要按照平均剩余下行帶寬比值得到各路由當(dāng)前權(quán)值,所述當(dāng)前路由權(quán)值的取值范圍為I到1000。步驟1047:更新各接口所有對(duì)應(yīng)的路由權(quán)值,執(zhí)行步驟1042。步驟105:根據(jù)所述N條路由條目當(dāng)前權(quán)值,指定下一跳,建立狀態(tài)表。該步驟利用負(fù)載均衡算法指定下一跳,建立狀態(tài)表。圖4為本發(fā)明實(shí)施例的負(fù)載均衡算法的方法流程圖。該方法具體包括:步驟1051:統(tǒng)計(jì)所述N條路由條目的當(dāng)前權(quán)值。步驟1052:首先從所述權(quán)值中選出最小的權(quán)值,然后從剩余權(quán)值中每次選擇一個(gè)權(quán)值依次相加,生成一個(gè)數(shù)據(jù)隊(duì)列,根據(jù)所述數(shù)據(jù)隊(duì)列生成一個(gè)包括N個(gè)相鄰取值區(qū)間的
隊(duì)列。例如,N條路由條目的權(quán)值分別為kl、k2、k3......kn ;選出最小的權(quán)值kl用Xl表
示,然后從剩余的權(quán)值中任意選擇一個(gè),與所述最小的權(quán)值Xl相加,得到X2 ;然后從剩余的
權(quán)值中任意選擇一個(gè),與X2相加,得到X3,以此類推,得到一個(gè)X1、X2、X3......Xn的數(shù)據(jù)
隊(duì)列,根據(jù)所述數(shù)據(jù)隊(duì)列生成一個(gè)包括N個(gè)相鄰取值區(qū)間的區(qū)間隊(duì)列,S卩[O XI]、[XI X2]、[X2X3]......[Xn-1 Xn]。所述步驟1052只是一個(gè)具體的例子。對(duì)于生成包括N個(gè)相鄰取值區(qū)間的隊(duì)列的過程,選擇第一個(gè)權(quán)值可以為N條路由條目的權(quán)值中的任意一個(gè),用Xl表示,然后從剩余的權(quán)值中任意選擇一個(gè),與所述最小的權(quán)值Xl相加,得到X2 ;然后從剩余的權(quán)值中任意選擇
一個(gè),與X2相加,得到X3,以此類推......,這樣形成的相鄰取值區(qū)間的值可能不同,但只
需要改變后續(xù)生成隨機(jī)數(shù)的范圍,同樣能夠?qū)崿F(xiàn)負(fù)載均衡。步驟1053:生成一個(gè)隨機(jī)數(shù),查找所述隨機(jī)數(shù)所處的取值區(qū)間,以所述取值區(qū)間最大值對(duì)應(yīng)的下一跳作為數(shù)據(jù)流傳輸?shù)南乱惶I梢粋€(gè)隨機(jī)數(shù)P,P的取值范圍為I到Xn ;查找P處在哪一個(gè)取值區(qū)間內(nèi),找到對(duì)應(yīng)取值區(qū)間以該區(qū)間最大值對(duì)應(yīng)的下一跳作為流的指定下一跳,建立狀態(tài)表,記錄出接口。所述隨機(jī)數(shù)P可以采用隨機(jī)數(shù)生成算法得到。這里要說明的是P所處取值區(qū)間最大值對(duì)應(yīng)的下一跳即得到該最大值對(duì)應(yīng)的路由權(quán)值,選擇該條路由作為下一跳。步驟1054:根據(jù)數(shù)據(jù)流中指定粒度,建立狀態(tài)表,記錄出接口。所述數(shù)據(jù)流中指定粒度包括數(shù)據(jù)包的源IP和目的IP組成的IP對(duì);或者,數(shù)據(jù)包的協(xié)議類型、目的地址、目的端口、源地址和源端口組成的五元組信息。所述狀態(tài)表表項(xiàng)中記錄相互關(guān)聯(lián)保存的用戶終端數(shù)據(jù)包的的源IP和目的IP組成的IP對(duì)與路由器多條等價(jià)鏈路的出接口信息;或者記錄相互關(guān)聯(lián)保存的用戶終端數(shù)據(jù)包的協(xié)議類型、目的地址、目的端口、源地址和源端口組成的五元組信息與路由器多條等價(jià)鏈路的出接口信息。步驟106:從指定出接口轉(zhuǎn)發(fā)數(shù)據(jù)。根據(jù)數(shù)據(jù)流中指定粒度找到對(duì)應(yīng)出接口,發(fā)送數(shù)據(jù)。步驟107:根據(jù)狀態(tài)表指定的下一跳轉(zhuǎn)發(fā)數(shù)據(jù)包。具體地,假設(shè)在圖1所示的組網(wǎng)結(jié)構(gòu)中,寬帶路由器配置3個(gè)接口到網(wǎng)絡(luò)服務(wù)器,形成3條優(yōu)先級(jí)相同的路由條目,分別用鏈路1、鏈路2和鏈路3表示。預(yù)先配置3個(gè)接口的下行帶寬分別為10M、20M和30M,在3條路由條目全部生效的情況下,3條路由條目的權(quán)值分別用1、2和3表示。假如寬帶路由器獲取到6個(gè)數(shù)據(jù)流,如果數(shù)據(jù)流匹配到狀態(tài)表,會(huì)按照狀態(tài)表指定的出接口對(duì)應(yīng)的路由鏈路轉(zhuǎn)發(fā)數(shù)據(jù);如果數(shù)據(jù)流沒有匹配到狀態(tài)表,需要根據(jù)3條路由條目的權(quán)值分配所述數(shù)據(jù)流到某條鏈路上進(jìn)行傳輸。在路由器初始化后,3條路由條目的帶寬與預(yù)先配置的對(duì)應(yīng)接口帶寬相同。在默認(rèn)情況下,6個(gè)數(shù)據(jù)流會(huì)按照3條路由條目的權(quán)值進(jìn)行分配,即權(quán)值為3的路由鏈路分配3個(gè)數(shù)據(jù)流,權(quán)值為2的路由鏈路分配2個(gè)數(shù)據(jù)流,權(quán)值為I的路由鏈路分配I個(gè)數(shù)據(jù)流。寬帶路由器一旦接收數(shù)據(jù)并開始傳輸數(shù)據(jù),各接口下的流量會(huì)時(shí)刻變化,數(shù)據(jù)傳輸是時(shí)刻進(jìn)行的,當(dāng)寬帶路由器不斷接收數(shù)據(jù)流時(shí),3條路由條目的權(quán)重值是時(shí)刻在變化的,在某個(gè)時(shí)刻,有的鏈路可能處于空閑狀態(tài),有的鏈路可能處于忙碌狀態(tài),理想情況下,是將待轉(zhuǎn)發(fā)數(shù)據(jù)流分配到空閑的鏈路上進(jìn)行傳輸。因此,需要對(duì)當(dāng)前路由條目的權(quán)值進(jìn)行重新計(jì)算。本實(shí)施例中采用按照預(yù)定時(shí)間間隔,計(jì)算3條路由條目當(dāng)前權(quán)值,并更新各接口下所有對(duì)應(yīng)的路由權(quán)值,根據(jù)3條路由條目的當(dāng)前權(quán)值,依據(jù)負(fù)載均衡算法,指定下一跳,建立狀態(tài)表,記錄出接口 ;從指定出接口轉(zhuǎn)發(fā)數(shù)據(jù)。下面以具體實(shí)例對(duì)負(fù)載均衡算法進(jìn)行說明:3條路由條目的初始權(quán)值分別為1、2、3 ;選出最小的權(quán)值I用Xl表示,然后從剩余的權(quán)值中選擇任意一個(gè),如選擇3,與所述最小的權(quán)值Xl相加,得到X2,即4 ;然后從剩余的權(quán)值中選擇剩余的一個(gè),與X2相加,得到X3,即6,這樣,得到一個(gè)X1、X2、X3的數(shù)據(jù)隊(duì)列,即1、4、6。根據(jù)所述數(shù)據(jù)隊(duì)列生成一個(gè)包括3個(gè)相鄰取值區(qū)間的區(qū)間隊(duì)列,S卩[O 1]、[1 4]、[4 6]。然后生成一個(gè)介于I到6之間的隨機(jī)數(shù),如隨機(jī)數(shù)為5,查找隨機(jī)數(shù)5處于[4 6]的取值區(qū)間,根據(jù)該取值區(qū)間對(duì)應(yīng)的最大值6,可以得到所述最大值6對(duì)應(yīng)的下一跳為第二條路由鏈路,記錄該條路由接口,建立狀態(tài)表。根據(jù)數(shù)據(jù)流中指定粒度,供所述第二條路由鏈路轉(zhuǎn)發(fā)數(shù)據(jù)。當(dāng)達(dá)到預(yù)定時(shí)間間隔后,需要重新計(jì)算當(dāng)前路由條目對(duì)應(yīng)接口的平均剩余帶寬,根據(jù)所述平均剩余帶寬計(jì)算各條路由權(quán)值,根據(jù)負(fù)載均衡算法對(duì)數(shù)據(jù)流進(jìn)行分配。圖5為本發(fā)明實(shí)施例提供的路由器的結(jié)構(gòu)框圖。如圖5所示,所述路由器包括,獲取模塊501,用于獲取待轉(zhuǎn)發(fā)數(shù)據(jù)流。各用戶終端發(fā)送數(shù)據(jù)流到寬帶路由器,等待寬帶路由器將數(shù)據(jù)轉(zhuǎn)發(fā)到目的地址。匹配模塊502,用于將所述帶轉(zhuǎn)發(fā)數(shù)據(jù)流與狀態(tài)表表項(xiàng)進(jìn)行匹配。第一計(jì)算模塊503,用于當(dāng)所述數(shù)據(jù)流沒有匹配到狀態(tài)表,且存在N條優(yōu)先級(jí)相同的路由條目時(shí),計(jì)算所述N條路由條目的當(dāng)前權(quán)值。所述路由器按照預(yù)定時(shí)間間隔計(jì)算N條路由條目的當(dāng)前權(quán)值,計(jì)算步驟可參考圖3的詳細(xì)描述。更新模塊504,用于根據(jù)所述N條路由條目的當(dāng)前權(quán)值更新各接口所有對(duì)應(yīng)的路由權(quán)值。所述各接口下所有路由包括與接口處于同一網(wǎng)段的直連路由和下一跳與接口處于同一網(wǎng)段的所有路由。第二計(jì)算模塊505,用于根據(jù)所述N條路由條目的當(dāng)前權(quán)值,指定下一跳,建立狀態(tài)表。所述根據(jù)所述N條路由條目的當(dāng)前權(quán)值,指定下一跳依據(jù)負(fù)載均衡算法實(shí)現(xiàn),具體步驟可參考圖4部分的詳細(xì)描述。轉(zhuǎn)發(fā)模塊506,用于從指定出接口轉(zhuǎn)發(fā)數(shù)據(jù);
其中,所述N為大于等于2的整數(shù),所述路由條目包括網(wǎng)段路由或者默認(rèn)路由。本發(fā)明的技術(shù)方案,通過為路由器多出口線路分別設(shè)置權(quán)值,以權(quán)值為依據(jù),通過負(fù)載均衡算法來決定流量的出口,并且定期自動(dòng)計(jì)算每一條線路的剩余帶寬,更新各條線路的權(quán)值,動(dòng)態(tài)的適應(yīng)線路的忙閑變化,使得路由器可以根據(jù)每一條線路上實(shí)時(shí)流量,動(dòng)態(tài)調(diào)整權(quán)重,合理分配不同流量到合適的線路上,克服了傳統(tǒng)多線路中,無論線路忙閑,流量都走固定線路的弊端,大大的提高了線路帶寬利用率,并且極大的改善了上網(wǎng)體驗(yàn)。上述僅為本發(fā)明的較佳實(shí)施例及所運(yùn)用技術(shù)原理,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本發(fā)明揭露的技術(shù)范圍內(nèi),可輕易想到的變化或替換,都應(yīng)涵蓋在本發(fā)明的保護(hù)范圍內(nèi)。
權(quán)利要求
1.一種路由器多徑輸出智能負(fù)載均衡的方法,其特征在于,包括如下步驟: 獲取待轉(zhuǎn)發(fā)數(shù)據(jù)流; 如果所述數(shù)據(jù)流沒有匹配到狀態(tài)表,且存在N條優(yōu)先級(jí)相同的路由時(shí),計(jì)算所述N條路由的當(dāng)前權(quán)值,并更新各接口所有對(duì)應(yīng)的路由權(quán)值; 根據(jù)所述N條路由的當(dāng)前權(quán)值,指定下一跳,建立狀態(tài)表; 從指定出接口轉(zhuǎn)發(fā)數(shù)據(jù); 其中,所述N為大于等于2的整數(shù),所述N條優(yōu)先級(jí)相同的路由包括網(wǎng)段路由或者默認(rèn)路由。
2.根據(jù)權(quán)利要求1所述的路由器多徑輸出智能負(fù)載均衡的方法,其特征在于,該方法按照預(yù)定時(shí)間間隔計(jì)算所述N條路由的當(dāng)前權(quán)值。
3.根據(jù)權(quán)利要求1所述的路由器多徑輸出智能負(fù)載均衡的方法,其特征在于,所述優(yōu)先級(jí)相同的N條路由的初始權(quán)值與對(duì)應(yīng)鏈路配置接口的下行帶寬成正比。
4.根據(jù)權(quán)利要求2所述的路由器多徑輸出智能負(fù)載均衡的方法,其特征在于,所述按照預(yù)定時(shí)間間隔計(jì)算所述N條路由的當(dāng)前權(quán)值包括, 51:配置每條路由對(duì)應(yīng)接口的下行帶寬; 52:設(shè)置初始時(shí)間,從所述初始時(shí)間開始計(jì)時(shí),到達(dá)預(yù)定時(shí)間間隔,觸發(fā)定時(shí)器中斷,計(jì)算每條路由對(duì)應(yīng)接口在所述預(yù)定時(shí)間間隔內(nèi)的平均下行帶寬; 53:計(jì)算每條路由對(duì)應(yīng)接口當(dāng)前平均剩余下行帶寬,所述當(dāng)前平均剩余下行帶寬通過每條路由對(duì)應(yīng)接口配置下行帶寬減去預(yù)定時(shí)間間隔內(nèi)對(duì)應(yīng)的平均下行帶寬得到; 54:根據(jù)每條路由對(duì)應(yīng)接口的平均剩余下行帶寬,按照比值得到每條路由的當(dāng)前權(quán)值,更新各接口所有對(duì)應(yīng)的路由權(quán)值,執(zhí)行步驟S2。
5.根據(jù)權(quán)利要求1所述的路由器多徑輸出智能負(fù)載均衡的方法,其特征在于,所述各接口所有對(duì)應(yīng)的路由包括, 與接口處于同一網(wǎng)段的直連路由和下一跳與接口處于同一網(wǎng)段的所有路由。
6.根據(jù)權(quán)利要求1所述的路由器多徑輸出智能負(fù)載均衡的方法,其特征在于,所述根據(jù)所述N條路由的當(dāng)前權(quán)值,指定下一跳,建立狀態(tài)表包括, 統(tǒng)計(jì)所述N條路由的當(dāng)前權(quán)值; 首先從所述權(quán)值中選出最小的權(quán)值,然后從剩余權(quán)值中每次選擇一個(gè)權(quán)值依次相加,生成一個(gè)數(shù)據(jù)隊(duì)列,根據(jù)所述數(shù)據(jù)隊(duì)列生成一個(gè)包括N個(gè)相鄰取值區(qū)間的隊(duì)列; 生成一個(gè)隨機(jī)數(shù),查找所述隨機(jī)數(shù)所處的取值區(qū)間,以所述取值區(qū)間最大值對(duì)應(yīng)的下一跳作為數(shù)據(jù)流傳輸?shù)南乱惶? 根據(jù)數(shù)據(jù)流中指定粒度,建立狀態(tài)表,記錄出接口 ; 其中,所述隨機(jī)數(shù)為生成的數(shù)據(jù)隊(duì)列中的任意值。
7.根據(jù)權(quán)利要求6所述的路由器多徑輸出智能負(fù)載均衡的方法,其特征在于,所述數(shù)據(jù)流中指定粒度包括數(shù)據(jù)包的源IP和目的IP組成的IP對(duì);或者,數(shù)據(jù)包的協(xié)議類型、目的地址、目的端口、源地址和源端口組成的五元組信息。
8.根據(jù)權(quán)利要求1或2所述的路由器多徑輸出智能負(fù)載均衡的方法,其特征在于,如果所述數(shù)據(jù)流匹配到狀態(tài)表, 根據(jù)狀態(tài)表指定的下一跳轉(zhuǎn)發(fā)數(shù)據(jù)包。
9.一種路由器,其特征在于,所述路由器包括,獲取模塊,用于獲取待轉(zhuǎn)發(fā)數(shù)據(jù)流; 匹配模塊,用于將待轉(zhuǎn)發(fā)數(shù)據(jù)流與狀態(tài)表表項(xiàng)進(jìn)行匹配; 第一計(jì)算模塊,用于當(dāng)所述數(shù)據(jù)流沒有匹配到狀態(tài)表,且存在N條優(yōu)先級(jí)相同的路由時(shí),計(jì)算所述N條路由的當(dāng)前權(quán)值; 更新模塊,用于根據(jù)所述N條路由的當(dāng)前權(quán)值更新各接口所有對(duì)應(yīng)的路由權(quán)值; 第二計(jì)算模塊,用于根據(jù)所述N條路由的當(dāng)前權(quán)值,指定下一跳,建立狀態(tài)表; 轉(zhuǎn)發(fā)模塊,用于從指定出接口轉(zhuǎn)發(fā)數(shù)據(jù); 其中,所述N為大于等于2的整數(shù),所述路由條目包括網(wǎng)段路由或者默認(rèn)路由。
10.根據(jù)權(quán)利要求9所述的路由器,其特征在于,所述更新模塊用于更新各接口下所有路由權(quán)值,所述所有路由條目包括與接口處于同一網(wǎng)段的直連路由和下一跳與接口處于同一網(wǎng)段的所有路由。
全文摘要
本發(fā)明公開一種路由器多徑輸出智能負(fù)載均衡的方法及路由器,通過為路由器多條鏈路分別設(shè)置權(quán)值,以權(quán)值為依據(jù)進(jìn)行負(fù)載均衡,指定下一跳,來決定流量的出口,并且定期自動(dòng)計(jì)算每一條線路的平均剩余帶寬,更新各條線路的權(quán)值,動(dòng)態(tài)的適應(yīng)線路的忙閑變化,使得路由器可以根據(jù)每一條線路上實(shí)時(shí)流量,動(dòng)態(tài)調(diào)整權(quán)重,合理分配不同流量到合適的線路上,克服了傳統(tǒng)多線路中,無論線路忙閑,流量都走固定線路的弊端,大大的提高了線路帶寬利用率,并且極大的改善了上網(wǎng)體驗(yàn)。
文檔編號(hào)H04L12/771GK103188165SQ201310077108
公開日2013年7月3日 申請(qǐng)日期2013年3月12日 優(yōu)先權(quán)日2013年3月12日
發(fā)明者魏元首 申請(qǐng)人:神州數(shù)碼網(wǎng)絡(luò)(北京)有限公司