專利名稱::一種多鏈路負(fù)載分擔(dān)和選路的方法和路由器的制作方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信
技術(shù)領(lǐng)域:
,尤其涉及一種多鏈路負(fù)載分擔(dān)和選路的方法和路由器。
背景技術(shù):
:在中小企業(yè)組網(wǎng)中,出口網(wǎng)關(guān)路由器占有不可或缺的地位,對企業(yè)內(nèi)部訪問Internet的流量進(jìn)行NAT(NetworkAddressTranslation,網(wǎng)絡(luò)地址轉(zhuǎn)換)、Firewall(防火墻)過濾等業(yè)務(wù)功能。同時由于企業(yè)網(wǎng)關(guān)路由器處于網(wǎng)絡(luò)位置的末端,相對與核心路由器關(guān)注的功能特性也有所不同企業(yè)網(wǎng)關(guān)路由器組網(wǎng)比較簡單,一般為1條或者多條上行鏈路接入Internet,不需要運(yùn)行OSPF(OpenShortestPathFirst,開放式最短路徑優(yōu)先)、ISIS(分級鏈接狀態(tài)路由協(xié)議)、RIP(RoutinginformationProtocol,路由信息協(xié)議)等動態(tài)路由協(xié)議與運(yùn)營商接入路由器交換路由信息,一般配置靜態(tài)路由或策略路由就可滿足需求。對于單條上行鏈路的組網(wǎng),一般在網(wǎng)關(guān)路由器配置靜態(tài)默認(rèn)路由即可滿足應(yīng)用;對于采用多條上行鏈路的組網(wǎng)中,并且每條上行鏈路的帶寬并不相同的情況下,就需要涉及到流量負(fù)載分擔(dān)的問題。目前負(fù)載分擔(dān)的技術(shù)一般為基于接口帶寬的負(fù)載分擔(dān)、基于源地址的負(fù)載分擔(dān)和基于目的地址的負(fù)載分。其中,基于接口帶寬的負(fù)載分擔(dān)如圖l所示,一般是對于每條上行鏈路配置一條靜態(tài)默認(rèn)路由或者策略路由,設(shè)置每條上行鏈路的帶寬比例,對于內(nèi)網(wǎng)訪問Internet的流量,網(wǎng)關(guān)路由器按照設(shè)置的比例對每個報(bào)文或者每條數(shù)據(jù)流(通常用一個5元組來標(biāo)識一條數(shù)據(jù)流源IP地址、源端口號、目的IP地址、目的端口號、協(xié)議號)使用不同的上行鏈路進(jìn)行轉(zhuǎn)發(fā),如圖1組網(wǎng)中,WAN(WideAreaNetwork,廣域網(wǎng))1和WAN2的接口帶寬比例為1:2,網(wǎng)關(guān)路由器對于內(nèi)網(wǎng)的轉(zhuǎn)發(fā)流量會按照1:2的比例使用不同WAN接口進(jìn)行轉(zhuǎn)發(fā),如表1所示表1:<table>tableseeoriginaldocumentpage5</column></row><table>其中,基于源地址的負(fù)載分擔(dān),與基于接口帶寬負(fù)載分擔(dān)類似,也需要設(shè)置每條上行鏈路的帶寬比例,不同之處是基于報(bào)文的源地址進(jìn)行負(fù)載分擔(dān),對于同樣源地址的IP報(bào)文使用同一條上行鏈路轉(zhuǎn)發(fā),不同源地址的IP報(bào)文或數(shù)據(jù)流按接口帶寬的比例從不同鏈路上進(jìn)行轉(zhuǎn)發(fā),這種分擔(dān)方式也稱為基于用戶的負(fù)載分擔(dān);基于源地址的負(fù)載分擔(dān),同樣需要為每條上行鏈路配置一條靜態(tài)路由或者策略路由,定義每條上行鏈路的帶寬比例,對于同一源地址的流量使用同一上行鏈路轉(zhuǎn)發(fā),不同源地址的流量按照帶寬比例使用不同的上行鏈路轉(zhuǎn)發(fā),如圖2組網(wǎng)中,WAN1和WAN2的接口帶寬比例為l:2,網(wǎng)關(guān)對外的轉(zhuǎn)發(fā)流量會按照1:2的比例使用不同WAN接口進(jìn)行轉(zhuǎn)發(fā),如表2所示表2:<table>tableseeoriginaldocumentpage6</column></row><table>其中,基于目的地址的負(fù)載分擔(dān),需要在網(wǎng)關(guān)路由器上配置特定目的地址的靜態(tài)路由或策略路由,使訪問這些特定地址的流量從指定的鏈路轉(zhuǎn)發(fā)?;谀康牡刂返呢?fù)載分擔(dān),需要根據(jù)業(yè)務(wù)需求,在路由器上定義多條到不同目的地址的靜態(tài)路由或者策略路由,使訪問這些地址的流量從指定的鏈路轉(zhuǎn)發(fā),如表3所示表3:<table>tableseeoriginaldocumentpage6</column></row><table>上述三種負(fù)載分擔(dān)技術(shù)都是在網(wǎng)關(guān)路由器上根據(jù)上行鏈路帶寬的情況,預(yù)先定義好分擔(dān)方式,報(bào)文或者數(shù)據(jù)流根據(jù)預(yù)先的定義,按比例使用不同的上行鏈路轉(zhuǎn)發(fā)。無法感知上行鏈路帶寬實(shí)際占用情況,且?guī)挶壤O(shè)置固定,無法根據(jù)上行鏈路的實(shí)際帶寬利用情況進(jìn)行動態(tài)調(diào)整。
發(fā)明內(nèi)容本發(fā)明提供了一種多鏈路負(fù)載分擔(dān)和選路的方法和路由器,以實(shí)現(xiàn)動態(tài)調(diào)整流量轉(zhuǎn)發(fā)。本發(fā)明提供了一種多鏈路負(fù)載分擔(dān)和選路的方法,應(yīng)用于內(nèi)部網(wǎng)絡(luò)用戶通過網(wǎng)關(guān)路由器訪問外網(wǎng)服務(wù)器的系統(tǒng)中,所述網(wǎng)關(guān)路由器和服務(wù)器之間包括至少兩條鏈路,所述方法包括以下步驟所述網(wǎng)關(guān)路由器接收用戶向所述外網(wǎng)服務(wù)器發(fā)送的報(bào)文;所述網(wǎng)關(guān)路由器查找預(yù)先設(shè)置的轉(zhuǎn)發(fā)記錄表,如果所述轉(zhuǎn)發(fā)記錄表中有所述報(bào)文對應(yīng)的記錄表項(xiàng)且優(yōu)選路由標(biāo)識不為O,則按照所述記錄表項(xiàng)向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā)所述報(bào)文;如果所述轉(zhuǎn)發(fā)記錄表中沒有所述報(bào)文對應(yīng)的記錄表項(xiàng),則根據(jù)默認(rèn)路由匹配結(jié)果,將所述報(bào)文復(fù)制為與鏈路數(shù)對應(yīng)的份數(shù),分別使用所述不同的鏈路向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā),并將所述報(bào)文信息更新到所述轉(zhuǎn)發(fā)記錄表中;如果所述轉(zhuǎn)發(fā)記錄表中有所述報(bào)文對應(yīng)的記錄表項(xiàng),但優(yōu)選路由標(biāo)識為0,則根據(jù)默認(rèn)路由匹配結(jié)果,將所述報(bào)文復(fù)制為與鏈路數(shù)對應(yīng)的份數(shù),分別使用所述不同的鏈路向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā);所述網(wǎng)關(guān)路由器確定所述外網(wǎng)服務(wù)器最先回復(fù)的報(bào)文使用的鏈路為最優(yōu)轉(zhuǎn)發(fā)路由。優(yōu)選地,所述網(wǎng)關(guān)路由器查找預(yù)先設(shè)置的轉(zhuǎn)發(fā)記錄表,之前還包括建立轉(zhuǎn)發(fā)記錄表,記錄接收報(bào)文索引、流特征信息、出接口和優(yōu)選路由標(biāo)識。優(yōu)選地,所述流特征信息為源地址、源端口、目的地址、目的端口和協(xié)議號;所述出接口為實(shí)際出接口和備選出接口。優(yōu)選地,所述網(wǎng)關(guān)路由器確定所述外網(wǎng)服務(wù)器最先回復(fù)的報(bào)文使用的鏈路為最優(yōu)轉(zhuǎn)發(fā)路由,具體包括所述網(wǎng)關(guān)路由器接收所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文,讀取所述報(bào)文的流特征信息;將所述流特征信息進(jìn)行HASH運(yùn)算,得到所述回復(fù)報(bào)文的索引;查找所述轉(zhuǎn)發(fā)記錄表中與所述索引對應(yīng)的轉(zhuǎn)發(fā)表項(xiàng)中的優(yōu)選路由標(biāo)識,如果為O,則將所述回復(fù)報(bào)文的入接口記錄到所述轉(zhuǎn)發(fā)表項(xiàng),并設(shè)置所述優(yōu)選路由標(biāo)識為l,根據(jù)所述回復(fù)報(bào)文的報(bào)文內(nèi)容進(jìn)行HASH運(yùn)算,得到HASH值并填入表項(xiàng)中的HASH字段,同時將所述回復(fù)報(bào)文轉(zhuǎn)發(fā)給用戶;如果優(yōu)選路由標(biāo)識小于上行轉(zhuǎn)發(fā)鏈路數(shù)但不為O,根據(jù)所述所述回復(fù)報(bào)文的報(bào)文內(nèi)容進(jìn)行HASH云端,得到HASH值,與表項(xiàng)中已存儲的HASH值進(jìn)行比較,如果相等,將優(yōu)選路由標(biāo)識的值加l,并且將所述回復(fù)報(bào)文丟棄;如果不相等,將所述回復(fù)報(bào)文直接向用戶轉(zhuǎn)發(fā);如果優(yōu)選路由標(biāo)識的值等于上行轉(zhuǎn)發(fā)鏈路數(shù),直接向用戶轉(zhuǎn)發(fā)所述回復(fù)報(bào)文;其中,如果在預(yù)設(shè)的時間范圍內(nèi)讓沒有接收到所有的回復(fù)報(bào)文,則將當(dāng)前的優(yōu)選路由標(biāo)識設(shè)置為上行轉(zhuǎn)發(fā)鏈路數(shù)。優(yōu)選地,所述網(wǎng)關(guān)路由器具有網(wǎng)絡(luò)地址轉(zhuǎn)換功能,向外網(wǎng)轉(zhuǎn)發(fā)報(bào)文之前將用戶目的地址和用戶目的端口轉(zhuǎn)換為公網(wǎng)的目的地址和公網(wǎng)的目的端口;所述網(wǎng)關(guān)路由器接收所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文之后、讀取所述報(bào)文的流特征信息之前,還包括經(jīng)過網(wǎng)絡(luò)地址轉(zhuǎn)換,將公網(wǎng)目的地址和公網(wǎng)目的端口轉(zhuǎn)換為用戶的目的地址和目的端口。優(yōu)選地,還包括為每個轉(zhuǎn)發(fā)記錄表項(xiàng)設(shè)置老化定時器,當(dāng)所述老化定時器超時后,轉(zhuǎn)發(fā)記錄表項(xiàng)自動刪除。本發(fā)明提供了一種網(wǎng)關(guān)路由器,應(yīng)用于內(nèi)部網(wǎng)絡(luò)用戶通過網(wǎng)關(guān)路由器訪問外網(wǎng)服務(wù)器的系統(tǒng)中,所述網(wǎng)關(guān)路由器和服務(wù)器之間包括至少兩條鏈路,所述網(wǎng)關(guān)路由器包括接收模塊,用于接收用戶向所述外網(wǎng)服務(wù)器發(fā)送的報(bào)文,接收所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文;查找模塊,與所述接收模塊連接,用于查找預(yù)先設(shè)置的轉(zhuǎn)發(fā)記錄表,如果所述轉(zhuǎn)發(fā)記錄表中有所述報(bào)文對應(yīng)的記錄表項(xiàng)且優(yōu)選路由標(biāo)識不為0,則按照所述記錄表項(xiàng)向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā)所述報(bào)文;如果所述轉(zhuǎn)發(fā)記錄表中沒有所述報(bào)文對應(yīng)的記錄表項(xiàng),則根據(jù)默認(rèn)路由匹配結(jié)果,將所述報(bào)文復(fù)制為與鏈路數(shù)對應(yīng)的份數(shù),分別使用所述不同的鏈路向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā);如果所述轉(zhuǎn)發(fā)記錄表中有所述報(bào)文對應(yīng)的記錄表項(xiàng),但優(yōu)選路由標(biāo)識為O,則根據(jù)默認(rèn)路由匹配結(jié)果,將所述報(bào)文復(fù)制為與鏈路數(shù)對應(yīng)的份數(shù),分別使用所述不同的鏈路向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā);路由確定模塊,與所述接收模塊連接,用于確定所述外網(wǎng)服務(wù)器最先回復(fù)的報(bào)文使用的鏈路為最優(yōu)轉(zhuǎn)發(fā)路由。優(yōu)選地,還包括轉(zhuǎn)發(fā)記錄表設(shè)置模塊,與所述查找模塊連接,用于建立轉(zhuǎn)發(fā)記錄表,記錄接收報(bào)文索引、流特征信息、出接口和優(yōu)選路由標(biāo)識,并在所述查找模塊沒有查找到所述報(bào)文對應(yīng)的記錄表項(xiàng)時,將所述報(bào)文的信息更新到所述轉(zhuǎn)發(fā)記錄表中。優(yōu)選地,所述網(wǎng)關(guān)路由器,還包括更新模塊,與所述轉(zhuǎn)發(fā)記錄表設(shè)置模塊連接,用于為每個轉(zhuǎn)發(fā)記錄表項(xiàng)設(shè)置老化定時器,當(dāng)所述老化定時器超時后,轉(zhuǎn)發(fā)記錄表項(xiàng)自動刪除。優(yōu)選地,所述接收模塊還用于接收所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文,所述路由確定模塊具體包括讀取子模塊,用于讀取所述接收模塊所接收到的所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文中的流特征信息;計(jì)算子模塊,與所述讀取子模塊連接,用于將所述讀取子模塊所讀取的流特征信息進(jìn)行HASH運(yùn)算,得到所述回復(fù)報(bào)文的索引;查找子模塊,與所述計(jì)算子模塊連接,用于查找所述轉(zhuǎn)發(fā)記錄表中與所述索引對應(yīng)的轉(zhuǎn)發(fā)表項(xiàng)中的優(yōu)選路由標(biāo)識,如果為O,則將所述回復(fù)報(bào)文的入接口記錄到所述轉(zhuǎn)發(fā)表項(xiàng),并設(shè)置所述優(yōu)選路由標(biāo)識為1,根據(jù)所述回復(fù)報(bào)文的報(bào)文內(nèi)容進(jìn)行HASH運(yùn)算,得到HASH值并填入表項(xiàng)中的HASH字段,同時將所述回復(fù)報(bào)文轉(zhuǎn)發(fā)給用戶;如果優(yōu)選路由標(biāo)識小于上行轉(zhuǎn)發(fā)鏈路數(shù)但不為O,根據(jù)所述所述回復(fù)報(bào)文的報(bào)文內(nèi)容進(jìn)行HASH云端,得到HASH值,與表項(xiàng)中已存儲的HASH值進(jìn)行比較,如果相等,將優(yōu)選路由標(biāo)識的值加1,并且將所述回復(fù)報(bào)文丟棄;如果不相等,將所述回復(fù)報(bào)文直接向用戶轉(zhuǎn)發(fā);如果優(yōu)選路由標(biāo)識的值等于上行轉(zhuǎn)發(fā)鏈路數(shù),直接向用戶轉(zhuǎn)發(fā)所述回復(fù)報(bào)文;其中,如果在預(yù)設(shè)的時間范圍內(nèi)讓沒有接收到所有的回復(fù)報(bào)文,則將當(dāng)前的優(yōu)選路由標(biāo)識設(shè)置為上行轉(zhuǎn)發(fā)鏈路數(shù)。優(yōu)選地,所述網(wǎng)關(guān)路由器具有網(wǎng)路地址轉(zhuǎn)換功能,向外網(wǎng)轉(zhuǎn)發(fā)報(bào)文之前將用戶目的地址和用戶目的端口轉(zhuǎn)換為公網(wǎng)的目的地址和公網(wǎng)的目的端口;所述讀取子模塊,還用于接收所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文之后經(jīng)過網(wǎng)絡(luò)地址轉(zhuǎn)換,將目的地址和目的端口轉(zhuǎn)換為用戶的地址和端口。優(yōu)選地,還包括更新模塊,與所述轉(zhuǎn)發(fā)記錄表設(shè)置模塊連接,用于為每個轉(zhuǎn)發(fā)記錄表項(xiàng)設(shè)置老化定時器,當(dāng)所述老化定時器超時后,轉(zhuǎn)發(fā)記錄表項(xiàng)自動刪除。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)本發(fā)明中,網(wǎng)關(guān)路由器能夠獲知每條上行鏈路流量轉(zhuǎn)發(fā)延時情況,可根據(jù)該延時情況動態(tài)調(diào)整流量轉(zhuǎn)發(fā),不需要預(yù)先設(shè)置上行鏈路帶寬比例。圖1是現(xiàn)有技術(shù)中基于接口帶寬的負(fù)載分擔(dān)示意圖;圖2是現(xiàn)有技術(shù)中基于源地址的負(fù)載分擔(dān)示意圖;圖3是本發(fā)明中一種多鏈路負(fù)載分擔(dān)和選路的方法流程圖;圖4是本發(fā)明中兩條上行鏈路的網(wǎng)關(guān)路由器網(wǎng)絡(luò)示意圖;圖5是本發(fā)明中上行方向報(bào)文轉(zhuǎn)發(fā)流程圖;圖6是本發(fā)明中下行方向報(bào)文轉(zhuǎn)發(fā)流程圖;圖7是本發(fā)明中一種網(wǎng)關(guān)路由器結(jié)構(gòu)圖。具體實(shí)施例方式本發(fā)明的核心思想為網(wǎng)關(guān)路由器上同時存在多條等價路由,網(wǎng)關(guān)路由器首次轉(zhuǎn)發(fā)報(bào)文之前對報(bào)文進(jìn)行復(fù)制,分別使用不同的路由進(jìn)行轉(zhuǎn)發(fā),根據(jù)回復(fù)報(bào)文的到達(dá)延時情況記錄最優(yōu)轉(zhuǎn)發(fā)路由,網(wǎng)關(guān)路由器轉(zhuǎn)發(fā)后續(xù)相應(yīng)報(bào)文時使用該最優(yōu)轉(zhuǎn)發(fā)路由。本發(fā)明提供了一種多鏈路負(fù)載分擔(dān)和選路的方法,應(yīng)用于內(nèi)部網(wǎng)絡(luò)用戶通過網(wǎng)關(guān)路由器訪問外網(wǎng)服務(wù)器的系統(tǒng)中,所述網(wǎng)關(guān)路由器和服務(wù)器之間包括至少兩條鏈路,網(wǎng)關(guān)路由器預(yù)先建立轉(zhuǎn)發(fā)記錄表,記錄接收報(bào)文索弓l、源地址、源端口、目的地址、目的端口、協(xié)議號、實(shí)際出接口、備選出接口及優(yōu)選路由標(biāo)識。所述方法如圖3所示,包括以下步驟步驟301,所述網(wǎng)關(guān)路由器接收用戶向所述外網(wǎng)服務(wù)器發(fā)送的報(bào)文;步驟302,所述網(wǎng)關(guān)路由器查找預(yù)先設(shè)置的轉(zhuǎn)發(fā)記錄表,如果所述轉(zhuǎn)發(fā)記錄表中有所述報(bào)文對應(yīng)的記錄表項(xiàng)且優(yōu)選路由標(biāo)識不為O,則轉(zhuǎn)步驟303;如果所述轉(zhuǎn)發(fā)記錄表中沒有所述報(bào)文對應(yīng)的記錄表項(xiàng),則轉(zhuǎn)步驟304;如果所述轉(zhuǎn)發(fā)記錄表中有所述報(bào)文對應(yīng)的記錄表項(xiàng),但優(yōu)選路由標(biāo)識為O,則轉(zhuǎn)步驟305;步驟303,按照所述記錄表項(xiàng)向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā)所述報(bào)文;步驟304,根據(jù)默認(rèn)路由匹配結(jié)果,將所述報(bào)文復(fù)制為與鏈路數(shù)對應(yīng)的份數(shù)。具體為根據(jù)所述報(bào)文的目的IP地址在路由表中進(jìn)行匹配查找,獲得匹配的默認(rèn)路由,如果匹配的默認(rèn)路由有多條,則將所述報(bào)文復(fù)制為與所述默認(rèn)路由對應(yīng)的鏈路數(shù)對應(yīng)的份數(shù)。然后分別使用所述不同默認(rèn)路由對應(yīng)的鏈路向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā),并將所述報(bào)文信息更新到所述轉(zhuǎn)發(fā)記錄表中;轉(zhuǎn)步驟306;步驟305,根據(jù)默認(rèn)路由匹配結(jié)果,將所述報(bào)文復(fù)制為與鏈路數(shù)對應(yīng)的份數(shù)。具體為根據(jù)所述報(bào)文的目的IP地址在路由表中進(jìn)行匹配查找,獲得匹配的默認(rèn)路由,如果匹配的默認(rèn)路由有多條,則將所述報(bào)文復(fù)制為與所述默認(rèn)路由對應(yīng)的鏈路數(shù)對應(yīng)的份數(shù),分別使用所述不同默認(rèn)路由對應(yīng)的鏈路向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā);轉(zhuǎn)步驟306;步驟306,所述網(wǎng)關(guān)路由器確定所述外網(wǎng)服務(wù)器最先回復(fù)的報(bào)文使用的鏈路為最優(yōu)轉(zhuǎn)發(fā)路由。具體包括所述網(wǎng)關(guān)路由器接收所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文,讀取所述報(bào)文的流特征信息;將所述流特征信息進(jìn)行HASH運(yùn)算,得到所述回復(fù)報(bào)文的索引;查找所述轉(zhuǎn)發(fā)記錄表中與所述索引對應(yīng)的轉(zhuǎn)發(fā)表項(xiàng)中的優(yōu)選路由標(biāo)識,如果為O,則將所述回復(fù)報(bào)文的入接口記錄到所述轉(zhuǎn)發(fā)表項(xiàng),并設(shè)置所述優(yōu)選路由標(biāo)識為l,,根據(jù)該回復(fù)報(bào)文的報(bào)文內(nèi)容進(jìn)行HASH運(yùn)算,得到HASH值并填入表項(xiàng)中的HASH字段,同時將所述回復(fù)報(bào)文轉(zhuǎn)發(fā)給用戶;如果優(yōu)選路由標(biāo)識小于上行轉(zhuǎn)發(fā)鏈路數(shù)但不為O,根據(jù)所述所述回復(fù)報(bào)文的報(bào)文內(nèi)容進(jìn)行HASH云端,得到HASH值,與表項(xiàng)中已存儲的HASH值進(jìn)行比較,如果相等,將優(yōu)選路由標(biāo)識的值加l,并且將所述回復(fù)報(bào)文丟棄;如果不相等,將所述回復(fù)報(bào)文直接向用戶轉(zhuǎn)發(fā);如果優(yōu)選路由標(biāo)識的值等于上行轉(zhuǎn)發(fā)鏈路數(shù),直接向用戶轉(zhuǎn)發(fā)所述回復(fù)報(bào)文;其中,如果在預(yù)設(shè)的時間范圍內(nèi)讓沒有接收到所有的回復(fù)報(bào)文,則將當(dāng)前的優(yōu)選路由標(biāo)識設(shè)置為上行轉(zhuǎn)發(fā)鏈路數(shù)。進(jìn)一步,所述網(wǎng)關(guān)路由器如果具有網(wǎng)絡(luò)地址轉(zhuǎn)換功能,還可以對回復(fù)報(bào)文進(jìn)行網(wǎng)絡(luò)地址轉(zhuǎn)換,將公網(wǎng)目的地址和公網(wǎng)目的端口轉(zhuǎn)換為用戶的目的地址和目的端口,然后再進(jìn)行流特征信息的HASH運(yùn)算及后續(xù)操作。本發(fā)明中,為了適應(yīng)網(wǎng)絡(luò)流量的動態(tài)變化,避免出現(xiàn)一旦表項(xiàng)建立后無法再次更新的情況,本發(fā)明中還可以為每個轉(zhuǎn)發(fā)記錄表項(xiàng)創(chuàng)建一個老化定時器,當(dāng)該定時器超時后,轉(zhuǎn)發(fā)記錄表項(xiàng)自動刪除,后續(xù)報(bào)文重新使用上述流程轉(zhuǎn)發(fā)。結(jié)合上述原理,以連接兩條上行鏈路的網(wǎng)關(guān)路由器為例進(jìn)行說明,結(jié)構(gòu)如圖4所示。每條上行鏈路通常對應(yīng)一條默認(rèn)路由,該條默認(rèn)路由的下一跳為外網(wǎng)網(wǎng)關(guān)地址,該外網(wǎng)網(wǎng)關(guān)可以將報(bào)文分發(fā)到具體的外網(wǎng)服務(wù)器。網(wǎng)關(guān)路由器上預(yù)先定義如下轉(zhuǎn)發(fā)記錄表,記錄流量相關(guān)的轉(zhuǎn)發(fā)信息如表4所示表4:<table>tableseeoriginaldocumentpage10</column></row><table>其中,Index為表項(xiàng)的索引,可以根據(jù)報(bào)文五元組進(jìn)行串連,然后進(jìn)行HASH計(jì)算獲得,計(jì)算公式如下:HASH(SIP:Sport:DIP:Dport:Protocol);SIP,為報(bào)文的源地址;Sport為報(bào)文的源端口;DIP為報(bào)文的目的地址;Dport為報(bào)文的目的端口;Protocol為報(bào)文的協(xié)議號;0utlnter為報(bào)文轉(zhuǎn)發(fā)的實(shí)際出接口;S-Outlnterl為報(bào)文轉(zhuǎn)發(fā)的備選出接口1;S-0utlnter2為報(bào)文轉(zhuǎn)發(fā)的備選出接口2(備選出接口表項(xiàng)數(shù)可根據(jù)實(shí)際組網(wǎng)中的應(yīng)用進(jìn)行擴(kuò)展);HASH為使用連接回復(fù)的第一個報(bào)文進(jìn)行計(jì)算的HASH值;Flag為轉(zhuǎn)發(fā)記錄表中的優(yōu)選路由標(biāo)識,默認(rèn)為O。在上行方向,報(bào)文轉(zhuǎn)發(fā)流程如圖5所示,包括以下步驟步驟501,初始條件下,該轉(zhuǎn)發(fā)記錄表為空,企業(yè)內(nèi)部網(wǎng)絡(luò)用戶進(jìn)行訪問外網(wǎng)服務(wù)器的操作,網(wǎng)關(guān)路由器接收到用戶向外網(wǎng)服務(wù)器發(fā)送的建立連接的TCPSYN報(bào)文,報(bào)文特征如下:SIP=192.168.1.2,Sport=2000,DIP=202.30.1.20,Port=80,Protocol=6;步驟502,網(wǎng)關(guān)路由器根據(jù)報(bào)文的目的地址判斷該報(bào)文是否可以使用默認(rèn)路由進(jìn)行轉(zhuǎn)發(fā),如果是,轉(zhuǎn)步驟503;步驟503,獲取報(bào)文中的五元組信息,并進(jìn)行如下HASH運(yùn)算HASH(DIP:Dport:SIP:Sport:Protocol),得到該報(bào)文在轉(zhuǎn)發(fā)記錄表中的Index;步驟504,查找轉(zhuǎn)發(fā)記錄表,判斷是否存在與所述索引匹配的記錄表項(xiàng),如果未找到該報(bào)文對應(yīng)的記錄表項(xiàng),轉(zhuǎn)步驟505;如果找到該報(bào)文對應(yīng)的記錄表項(xiàng),則轉(zhuǎn)步驟507;步驟505,根據(jù)所述報(bào)文的目的IP地址在路由表中進(jìn)行匹配查找,例如,將報(bào)文的目的地址和路由表進(jìn)行匹配查找,獲得匹配的默認(rèn)路由,并在轉(zhuǎn)發(fā)記錄表中增加該報(bào)文對應(yīng)的記錄表項(xiàng);如表5所示表5:<table>tableseeoriginaldocumentpage11</column></row><table>步驟506,匹配的默認(rèn)路由有多條(例如兩條),在記錄表項(xiàng)中存在兩個出接口,則對報(bào)文進(jìn)行復(fù)制分別通過不同的默認(rèn)路由對應(yīng)的上行鏈路進(jìn)行轉(zhuǎn)發(fā),既將復(fù)制后的報(bào)文分別通過不同上行鏈路對應(yīng)的出接口轉(zhuǎn)發(fā);復(fù)制后的報(bào)文經(jīng)過出接口NAT處理(如果不存在公私網(wǎng)地址轉(zhuǎn)換的情況,不需要進(jìn)行NAT處理),分別經(jīng)過兩條上行鏈路向外網(wǎng)服務(wù)器轉(zhuǎn)發(fā);步驟507,判斷轉(zhuǎn)發(fā)記錄表是否已存在Flag并且Flag不為0,如果是,則轉(zhuǎn)步驟508,否則,轉(zhuǎn)步驟506;步驟508,直接將該報(bào)文按照轉(zhuǎn)發(fā)記錄表中Outlnter表項(xiàng)記錄的WAN接口信息進(jìn)行轉(zhuǎn)發(fā)。在下行方向,報(bào)文轉(zhuǎn)發(fā)流程如圖6所示,包括以下步驟步驟601,網(wǎng)關(guān)路由器接收從外網(wǎng)服務(wù)器返回的回復(fù)報(bào)文;如果WAN1連接的上行鏈路帶寬利用率低,網(wǎng)絡(luò)轉(zhuǎn)發(fā)延時小,則從WANl發(fā)送報(bào)文會先于從WAN2發(fā)送的報(bào)文到達(dá)外網(wǎng)服務(wù)器,并且從外網(wǎng)服務(wù)器返回的回復(fù)報(bào)文會先到達(dá)WANl(由于兩個WAN接口均啟用NAT,因此外網(wǎng)服務(wù)器會認(rèn)為兩個復(fù)制的報(bào)文是兩個不同的連接,然后分別進(jìn)行回復(fù))。如果網(wǎng)關(guān)路由器不經(jīng)過NAT時,則外網(wǎng)服務(wù)器會認(rèn)為該兩個復(fù)制的報(bào)文是兩個相同的連接,根據(jù)外網(wǎng)服務(wù)器的設(shè)置,可以向網(wǎng)關(guān)路由器回復(fù)一個報(bào)文,也可以向網(wǎng)關(guān)路由器回復(fù)兩個報(bào)文。步驟602,網(wǎng)關(guān)路由器收到此報(bào)文后先經(jīng)過NAT轉(zhuǎn)換地址處理,將目的地址和端口轉(zhuǎn)換為用戶的原始地址和端口,然后讀取報(bào)文的五元組信息,如SIP=202.30.1.20,Sport=80,DIP=192.168.1.2,DPort=2000,Protocol=6將五元組信息進(jìn)行如下HASH運(yùn)算由于發(fā)送報(bào)文和接收報(bào)文的目的地址和源地址相反,這里需要進(jìn)行順序調(diào)整,保持各元素的計(jì)算順序一致。HASH(DIP:Dport:SIP:Sport:Protocol),得到該報(bào)文在轉(zhuǎn)發(fā)記錄表中的Index;步驟603,查找該表項(xiàng)對應(yīng)的Flag的值,如果為0,則轉(zhuǎn)步驟607;如果Flag的值小于上行轉(zhuǎn)發(fā)鏈路數(shù)但不為0,則轉(zhuǎn)步驟604;如果Flag等于上行轉(zhuǎn)發(fā)鏈路數(shù),則轉(zhuǎn)步驟608;其中,如果經(jīng)過一段時間后仍然沒有收到所有回復(fù)報(bào)文,則直接將Flag置為上行鏈路數(shù);這里的時間設(shè)置可以根據(jù)需要進(jìn)行調(diào)整,具體時間長度的變化并不會影響本發(fā)明的保護(hù)范圍;步驟604,說明已經(jīng)收到回復(fù)報(bào)文,此時計(jì)算收到報(bào)文整個報(bào)文的HASH值與表項(xiàng)中的HASH值進(jìn)行比較,如果相等,轉(zhuǎn)步驟605,如果不相等,則轉(zhuǎn)步驟606;步驟605,說明報(bào)文重復(fù),則將Flag值加1,并且將該報(bào)文丟棄;步驟606,將報(bào)文直接向用戶轉(zhuǎn)發(fā);步驟607,將報(bào)文的進(jìn)入的WAN接口填入轉(zhuǎn)發(fā)記錄表中的Outlnter項(xiàng),并設(shè)置Flag為1,計(jì)算整個報(bào)文的HASH值并填入表項(xiàng)中的HASH字段同時將報(bào)文轉(zhuǎn)發(fā)給用戶,此時一條轉(zhuǎn)發(fā)記錄表項(xiàng)完成建立;步驟608,說明所有的重復(fù)報(bào)文已收到,直接向用戶轉(zhuǎn)發(fā)報(bào)文。網(wǎng)關(guān)路由器收到從WAN1回復(fù)的報(bào)文后更新轉(zhuǎn)發(fā)記錄表如表6:表6<table>tableseeoriginaldocumentpage13</column></row><table>之后WAN2收到服務(wù)器的回復(fù)報(bào)文,經(jīng)過同樣的HASH運(yùn)算找到該報(bào)文在轉(zhuǎn)發(fā)記錄表中的表項(xiàng),因?yàn)樵摫眄?xiàng)Flag已不為O,計(jì)算該報(bào)文的整個報(bào)文的HASH值,因?yàn)榕c表項(xiàng)中的HASH值相同,因此此報(bào)文被丟棄,并將Flag值加1,為2,后續(xù)從上行鏈路收到的報(bào)文判斷Flag為2,等于上行轉(zhuǎn)發(fā)鏈路數(shù),則直接轉(zhuǎn)發(fā)。如果轉(zhuǎn)發(fā)記錄表項(xiàng)建立后,并且沒有從任何一條WAN連接收到回復(fù)報(bào)文,網(wǎng)關(guān)路由器又收到用戶發(fā)送的重復(fù)建立連接報(bào)文,則該報(bào)文首先經(jīng)過HASH運(yùn)算查找轉(zhuǎn)發(fā)記錄表,找到該表項(xiàng)中的Flag位為0,則報(bào)文仍然經(jīng)過復(fù)制,分別通過不同的WAN連接進(jìn)行轉(zhuǎn)發(fā)。另外,對于只有單向流量的報(bào)文,如監(jiān)控流量等特殊單向UDP(UserDatagramProtocol,用戶數(shù)據(jù)包協(xié)議)流量,因?yàn)闆]有回復(fù)報(bào)文,無法完成轉(zhuǎn)發(fā)記錄表的建立,因此可以加過濾條件,將此類報(bào)文過濾不進(jìn)行上述負(fù)載分擔(dān)的處理,在此技術(shù)中不做深入討論。本發(fā)明提供了一種網(wǎng)關(guān)路由器,應(yīng)用于內(nèi)部網(wǎng)絡(luò)用戶通過網(wǎng)關(guān)路由器訪問外網(wǎng)服務(wù)器的系統(tǒng)中,所述網(wǎng)關(guān)路由器和服務(wù)器之間包括至少兩條鏈路,所述網(wǎng)關(guān)路由器如圖7所示,包括接收模塊710,用于接收用戶向所述外網(wǎng)服務(wù)器發(fā)送的報(bào)文,還用于接收所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文。查找模塊720,與接收模塊710連接,用于查找預(yù)先設(shè)置的轉(zhuǎn)發(fā)記錄表,如果所述轉(zhuǎn)發(fā)記錄表中有所述報(bào)文對應(yīng)的記錄表項(xiàng)且優(yōu)選路由標(biāo)識不為0,則按照所述記錄表項(xiàng)向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā)所述報(bào)文;如果所述轉(zhuǎn)發(fā)記錄表中沒有所述報(bào)文對應(yīng)的記錄表項(xiàng),則根據(jù)默認(rèn)路由匹配結(jié)果,將所述報(bào)文復(fù)制為與鏈路數(shù)對應(yīng)的份數(shù),分別使用所述不同的鏈路向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā);如果所述轉(zhuǎn)發(fā)記錄表中有所述報(bào)文對應(yīng)的記錄表項(xiàng),但優(yōu)選路由標(biāo)識為0,則根據(jù)默認(rèn)路由匹配結(jié)果,將所述報(bào)文復(fù)制為與鏈路數(shù)對應(yīng)的份數(shù),分別使用所述不同的鏈路向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā);路由確定模塊730,與接收模塊710連接,用于確定所述外網(wǎng)服務(wù)器最先回復(fù)的報(bào)文使用的鏈路為最優(yōu)轉(zhuǎn)發(fā)路由。路由確定模塊730具體包括讀取子模塊731,用于讀取所述接收模塊710所接收到的所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文,讀取所述報(bào)文的流特征信息;計(jì)算子模塊732,與讀取子模塊731連接,用于將所述流特征信息進(jìn)行HASH運(yùn)算,得到所述回復(fù)報(bào)文的索引;查找子模塊733,與計(jì)算子模塊732連接,用于查找所述轉(zhuǎn)發(fā)記錄表中與所述索引對應(yīng)的轉(zhuǎn)發(fā)表項(xiàng)中的優(yōu)選路由標(biāo)識,如果為O,則將所述回復(fù)報(bào)文的入接口記錄到所述轉(zhuǎn)發(fā)表項(xiàng),并設(shè)置所述優(yōu)選路由標(biāo)識為l,根據(jù)所述回復(fù)報(bào)文的報(bào)文內(nèi)容進(jìn)行HASH運(yùn)算,得到HASH值并填入表項(xiàng)中的HASH字段,同時將所述回復(fù)報(bào)文轉(zhuǎn)發(fā)給用戶;如果優(yōu)選路由標(biāo)識小于上行轉(zhuǎn)發(fā)鏈路數(shù)但不為O,根據(jù)所述所述回復(fù)報(bào)文的報(bào)文內(nèi)容進(jìn)行HASH云端,得到HASH值,與表項(xiàng)中已存儲的HASH值進(jìn)行比較,如果相等,將優(yōu)選路由標(biāo)識的值加l,并且將所述回復(fù)報(bào)文丟棄;如果不相等,將所述回復(fù)報(bào)文直接向用戶轉(zhuǎn)發(fā);如果優(yōu)選路由標(biāo)識的值等于上行轉(zhuǎn)發(fā)鏈路數(shù),直接向用戶轉(zhuǎn)發(fā)所述回復(fù)報(bào)文;其中,如果在預(yù)設(shè)的時間范圍內(nèi)讓沒有接收到所有的回復(fù)報(bào)文,則將當(dāng)前的優(yōu)選路由標(biāo)識設(shè)置為上行轉(zhuǎn)發(fā)鏈路數(shù)。轉(zhuǎn)發(fā)記錄表設(shè)置模塊740,與查找模塊720連接,用于建立轉(zhuǎn)發(fā)記錄表,記錄接收報(bào)文索引、流特征信息、出接口和優(yōu)選路由標(biāo)識。其中,流特征信息為源地址、源端口、目的地址、目的端口和協(xié)議號;所述出接口為實(shí)際出接口和備選出接口,并在所述查找模塊沒有查找到記錄表項(xiàng)時,將所述查找模塊所轉(zhuǎn)發(fā)的報(bào)文信息更新到所述轉(zhuǎn)發(fā)記錄表中。更新模塊750,與轉(zhuǎn)發(fā)記錄表設(shè)置模塊740連接,用于為每個轉(zhuǎn)發(fā)記錄表項(xiàng)設(shè)置老化定時器,當(dāng)所述老化定時器超時后,轉(zhuǎn)發(fā)記錄表項(xiàng)自動刪除。在具體的應(yīng)用場景中,所述網(wǎng)關(guān)路由器具有網(wǎng)路地址轉(zhuǎn)換功能時,所述網(wǎng)關(guān)路由器具有網(wǎng)路地址轉(zhuǎn)換功能,向外網(wǎng)轉(zhuǎn)發(fā)報(bào)文之前將用戶目的地址和用戶目的端口轉(zhuǎn)換為公網(wǎng)的目的地址和公網(wǎng)的目的端口;接收模塊710,還用于接收所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文之后經(jīng)過網(wǎng)絡(luò)地址轉(zhuǎn)換,將目的地址和目的端口轉(zhuǎn)換為用戶的地址和端口。通過以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到本發(fā)明可以通過硬件實(shí)現(xiàn),也可以借助軟件加必要的通用硬件平臺的方式來實(shí)現(xiàn)?;谶@樣的理解,本發(fā)明的技術(shù)方案可以以軟件產(chǎn)品的形式體現(xiàn)出來,該軟件產(chǎn)品可以存儲在一個非易失性存儲介質(zhì)(可以是CD-ROM,U盤,移動硬盤等)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)執(zhí)行本發(fā)明各個實(shí)施例所述的方法。本領(lǐng)域技術(shù)人員可以理解附圖只是一個優(yōu)選實(shí)施例的示意圖,附圖中的模塊或流程并不一定是實(shí)施本發(fā)明所必須的。本領(lǐng)域技術(shù)人員可以理解實(shí)施例中的裝置中的模塊可以按照實(shí)施例描述進(jìn)行分布于實(shí)施例的裝置中,也可以進(jìn)行相應(yīng)變化位于不同于本實(shí)施例的一個或多個裝置中。上述實(shí)施例的模塊可以合并為一個模塊,也可以進(jìn)一步拆分成多個子模塊。上述本發(fā)明序號僅僅為了描述,不代表實(shí)施例的優(yōu)劣。以上公開的僅為本發(fā)明的幾個具體實(shí)施例,但是,本發(fā)明并非局限于此,任何本領(lǐng)域的技術(shù)人員能思之的變化都應(yīng)落入本發(fā)明的保護(hù)范圍。權(quán)利要求一種多鏈路負(fù)載分擔(dān)和選路的方法,應(yīng)用于內(nèi)部網(wǎng)絡(luò)用戶通過網(wǎng)關(guān)路由器訪問外網(wǎng)服務(wù)器的系統(tǒng)中,所述網(wǎng)關(guān)路由器和服務(wù)器之間包括至少兩條鏈路,其特征在于,所述方法包括以下步驟所述網(wǎng)關(guān)路由器接收用戶向所述外網(wǎng)服務(wù)器發(fā)送的報(bào)文;所述網(wǎng)關(guān)路由器查找預(yù)先設(shè)置的轉(zhuǎn)發(fā)記錄表,如果所述轉(zhuǎn)發(fā)記錄表中有所述報(bào)文對應(yīng)的記錄表項(xiàng)且優(yōu)選路由標(biāo)識不為0,則按照所述記錄表項(xiàng)向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā)所述報(bào)文;如果所述轉(zhuǎn)發(fā)記錄表中沒有所述報(bào)文對應(yīng)的記錄表項(xiàng),則根據(jù)默認(rèn)路由匹配結(jié)果,將所述報(bào)文復(fù)制為與鏈路數(shù)對應(yīng)的份數(shù),分別使用所述不同的鏈路向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā),并將所述報(bào)文信息更新到所述轉(zhuǎn)發(fā)記錄表中;如果所述轉(zhuǎn)發(fā)記錄表中有所述報(bào)文對應(yīng)的記錄表項(xiàng),但優(yōu)選路由標(biāo)識為0,則根據(jù)默認(rèn)路由匹配結(jié)果,將所述報(bào)文復(fù)制為與鏈路數(shù)對應(yīng)的份數(shù),分別使用所述不同的鏈路向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā);所述網(wǎng)關(guān)路由器確定所述外網(wǎng)服務(wù)器最先回復(fù)的報(bào)文使用的鏈路為最優(yōu)轉(zhuǎn)發(fā)路由。2.如權(quán)利要求1所述的方法,其特征在于,所述網(wǎng)關(guān)路由器查找預(yù)先設(shè)置的轉(zhuǎn)發(fā)記錄表,之前還包括建立轉(zhuǎn)發(fā)記錄表,記錄接收報(bào)文索引、流特征信息、出接口和優(yōu)選路由標(biāo)識。3.如權(quán)利要求2所述的方法,其特征在于,所述流特征信息為源地址、源端口、目的地址、目的端口和協(xié)議號;所述出接口為實(shí)際出接口和備選出接口。4.如權(quán)利要求2所述的方法,其特征在于,所述網(wǎng)關(guān)路由器確定所述外網(wǎng)服務(wù)器最先回復(fù)的報(bào)文使用的鏈路為最優(yōu)轉(zhuǎn)發(fā)路由,具體包括所述網(wǎng)關(guān)路由器接收所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文,讀取所述報(bào)文的流特征信息;將所述流特征信息進(jìn)行HASH運(yùn)算,得到所述回復(fù)報(bào)文的索引;查找所述轉(zhuǎn)發(fā)記錄表中與所述索引對應(yīng)的轉(zhuǎn)發(fā)表項(xiàng)中的優(yōu)選路由標(biāo)識,如果為0,則將所述回復(fù)報(bào)文的入接口記錄到所述轉(zhuǎn)發(fā)表項(xiàng),并設(shè)置所述優(yōu)選路由標(biāo)識為l,根據(jù)所述回復(fù)報(bào)文的報(bào)文內(nèi)容進(jìn)行HASH運(yùn)算,得到HASH值并填入表項(xiàng)中的HASH字段,同時將所述回復(fù)報(bào)文轉(zhuǎn)發(fā)給用戶;如果優(yōu)選路由標(biāo)識小于上行轉(zhuǎn)發(fā)鏈路數(shù)但不為O,根據(jù)所述所述回復(fù)報(bào)文的報(bào)文內(nèi)容進(jìn)行HASH云端,得到HASH值,與表項(xiàng)中已存儲的HASH值進(jìn)行比較,如果相等,將對應(yīng)的優(yōu)選路由標(biāo)識的值加l,并且將所述回復(fù)報(bào)文丟棄;如果不相等,將所述回復(fù)報(bào)文直接向用戶轉(zhuǎn)發(fā);如果優(yōu)選路由標(biāo)識的值等于上行轉(zhuǎn)發(fā)鏈路數(shù),直接向用戶轉(zhuǎn)發(fā)所述回復(fù)報(bào)文;其中,如果在預(yù)設(shè)的時間范圍內(nèi)讓沒有接收到所有的回復(fù)報(bào)文,則將當(dāng)前的優(yōu)選路由標(biāo)識設(shè)置為上行轉(zhuǎn)發(fā)鏈路數(shù)。5.如權(quán)利要求4所述的方法,其特征在于,所述網(wǎng)關(guān)路由器具有網(wǎng)絡(luò)地址轉(zhuǎn)換功能,向外網(wǎng)轉(zhuǎn)發(fā)報(bào)文之前將用戶目的地址和用戶目的端口轉(zhuǎn)換為公網(wǎng)的目的地址和公網(wǎng)的目的端口;所述網(wǎng)關(guān)路由器接收所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文之后、讀取所述報(bào)文的流特征信息之前,還包括經(jīng)過網(wǎng)絡(luò)地址轉(zhuǎn)換,將公網(wǎng)目的地址和公網(wǎng)目的端口轉(zhuǎn)換為用戶的目的地址和目的端□。6.如權(quán)利要求2所述的方法,其特征在于,所述建立轉(zhuǎn)發(fā)記錄表,之后還包括為每個轉(zhuǎn)發(fā)記錄表項(xiàng)設(shè)置老化定時器,當(dāng)所述老化定時器超時后,轉(zhuǎn)發(fā)記錄表項(xiàng)自動刪除。7.—種網(wǎng)關(guān)路由器,應(yīng)用于內(nèi)部網(wǎng)絡(luò)用戶通過網(wǎng)關(guān)路由器訪問外網(wǎng)服務(wù)器的系統(tǒng)中,所述網(wǎng)關(guān)路由器和服務(wù)器之間包括至少兩條鏈路,其特征在于,所述網(wǎng)關(guān)路由器包括接收模塊,用于接收用戶向所述外網(wǎng)服務(wù)器發(fā)送的報(bào)文,接收所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文;查找模塊,與所述接收模塊連接,用于查找預(yù)先設(shè)置的轉(zhuǎn)發(fā)記錄表,如果所述轉(zhuǎn)發(fā)記錄表中有所述報(bào)文對應(yīng)的記錄表項(xiàng)且優(yōu)選路由標(biāo)識不為O,則按照所述記錄表項(xiàng)向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā)所述報(bào)文;如果所述轉(zhuǎn)發(fā)記錄表中沒有所述報(bào)文對應(yīng)的記錄表項(xiàng),則根據(jù)默認(rèn)路由匹配結(jié)果,將所述報(bào)文復(fù)制為與鏈路數(shù)對應(yīng)的份數(shù),分別使用所述不同的鏈路向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā);如果所述轉(zhuǎn)發(fā)記錄表中有所述報(bào)文對應(yīng)的記錄表項(xiàng),但優(yōu)選路由標(biāo)識為0,則根據(jù)默認(rèn)路由匹配結(jié)果,將所述報(bào)文復(fù)制為與鏈路數(shù)對應(yīng)的份數(shù),分別使用所述不同的鏈路向所述外網(wǎng)服務(wù)器轉(zhuǎn)發(fā);路由確定模塊,與所述接收模塊連接,用于確定所述外網(wǎng)服務(wù)器最先回復(fù)的報(bào)文使用的鏈路為最優(yōu)轉(zhuǎn)發(fā)路由。8.如權(quán)利要求7所述的網(wǎng)關(guān)路由器,其特征在于,還包括轉(zhuǎn)發(fā)記錄表設(shè)置模塊,與所述查找模塊連接,用于建立轉(zhuǎn)發(fā)記錄表,記錄接收報(bào)文索引、流特征信息、出接口及優(yōu)選路由標(biāo)識,并在所述查找模塊沒有查找到所述報(bào)文對應(yīng)的記錄表項(xiàng)時,將所述報(bào)文的信息更新到所述轉(zhuǎn)發(fā)記錄表中。9.如權(quán)利要求8所述的網(wǎng)關(guān)路由器,其特征在于,還包括更新模塊,與所述轉(zhuǎn)發(fā)記錄表設(shè)置模塊連接,用于為每個轉(zhuǎn)發(fā)記錄表項(xiàng)設(shè)置老化定時器,當(dāng)所述老化定時器超時后,轉(zhuǎn)發(fā)記錄表項(xiàng)自動刪除。10.如權(quán)利要求7所述的網(wǎng)關(guān)路由器,其特征在于,所述路由確定模塊具體包括讀取子模塊,用于讀取所述接收模塊所接收到的所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文中的流特征信息;計(jì)算子模塊,與所述讀取子模塊連接,用于將所述讀取子模塊所讀取的流特征信息進(jìn)行HASH運(yùn)算,得到所述回復(fù)報(bào)文的索引;查找子模塊,與所述計(jì)算子模塊連接,用于查找所述轉(zhuǎn)發(fā)記錄表中與所述索引對應(yīng)的轉(zhuǎn)發(fā)表項(xiàng)中的優(yōu)選路由標(biāo)識,如果為0,則將所述回復(fù)報(bào)文的入接口記錄到所述轉(zhuǎn)發(fā)表項(xiàng),并設(shè)置所述優(yōu)選路由標(biāo)識為l,根據(jù)所述回復(fù)報(bào)文的報(bào)文內(nèi)容進(jìn)行HASH運(yùn)算,得到HASH值并填入表項(xiàng)中的HASH字段,同時將所述回復(fù)報(bào)文轉(zhuǎn)發(fā)給用戶;如果優(yōu)選路由標(biāo)識小于上行轉(zhuǎn)發(fā)鏈路數(shù)但不為O,根據(jù)所述所述回復(fù)報(bào)文的報(bào)文內(nèi)容進(jìn)行HASH云端,得到HASH值,與表項(xiàng)中已存儲的HASH值進(jìn)行比較,如果相等,將優(yōu)選路由標(biāo)識的值加l,并且將所述回復(fù)報(bào)文丟棄;如果不相等,將所述回復(fù)報(bào)文直接向用戶轉(zhuǎn)發(fā);如果優(yōu)選路由標(biāo)識的值等于上行轉(zhuǎn)發(fā)鏈路數(shù),直接向用戶轉(zhuǎn)發(fā)所述回復(fù)報(bào)文;其中,如果在預(yù)設(shè)的時間范圍內(nèi)讓沒有接收到所有的回復(fù)報(bào)文,則將當(dāng)前的優(yōu)選路由標(biāo)識設(shè)置為上行轉(zhuǎn)發(fā)鏈路數(shù)。11.如權(quán)利要求io所述的網(wǎng)關(guān)路由器,其特征在于,所述網(wǎng)關(guān)路由器具有網(wǎng)路地址轉(zhuǎn)換功能,向外網(wǎng)轉(zhuǎn)發(fā)報(bào)文之前將用戶目的地址和用戶目的端口轉(zhuǎn)換為公網(wǎng)的目的地址和公網(wǎng)的目的端口;所述接收模塊,還用于接收所述外網(wǎng)服務(wù)器的回復(fù)報(bào)文之后經(jīng)過網(wǎng)絡(luò)地址轉(zhuǎn)換,將目的地址和目的端口轉(zhuǎn)換為用戶的地址和端口。全文摘要本發(fā)明公開了一種多鏈路負(fù)載分擔(dān)和選路的方法網(wǎng)關(guān)路由器上同時存在多條等價路由,網(wǎng)關(guān)路由器轉(zhuǎn)發(fā)報(bào)文之前對報(bào)文進(jìn)行復(fù)制,分別使用不同的路由進(jìn)行轉(zhuǎn)發(fā),根據(jù)回復(fù)報(bào)文的到達(dá)延時情況記錄最優(yōu)轉(zhuǎn)發(fā)路由,后續(xù)相應(yīng)連接報(bào)文使用該最優(yōu)轉(zhuǎn)發(fā)路由進(jìn)行轉(zhuǎn)發(fā)。本發(fā)明中,網(wǎng)關(guān)路由器能夠獲知每條上行鏈路流量轉(zhuǎn)發(fā)延時情況,可根據(jù)該延時情況動態(tài)調(diào)整流量轉(zhuǎn)發(fā),不需要預(yù)先設(shè)置上行鏈路帶寬比例。文檔編號H04L12/56GK101729427SQ20101000079公開日2010年6月9日申請日期2010年1月20日優(yōu)先權(quán)日2010年1月20日發(fā)明者劉雄威申請人:杭州華三通信技術(shù)有限公司