通過(guò)網(wǎng)絡(luò)接口傳輸包的方法和系統(tǒng)的制作方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明總體上涉及計(jì)算機(jī)網(wǎng)絡(luò)的領(lǐng)域。更確切地說(shuō),本發(fā)明涉及在包括多個(gè)網(wǎng)絡(luò) 接口的第一通信路由器處傳輸數(shù)據(jù)包的方法和系統(tǒng)?;谑欠穹夏承l件,通過(guò)一個(gè)或 多個(gè)網(wǎng)絡(luò)接口傳輸數(shù)據(jù)包。
【背景技術(shù)】
[0002] 多廣域網(wǎng)(WAN)站點(diǎn)到站點(diǎn)VPN路由器是用以支持集中多個(gè)互連(例如,用于訪問(wèn) 一個(gè)或多個(gè)遠(yuǎn)程專用網(wǎng)絡(luò)的WAN連接)的帶寬的路由器。在一些實(shí)施方案中,每個(gè)TCP/IP會(huì) 話僅路由到一個(gè)WAN。在此配置中,單個(gè)TCP文件傳送會(huì)話僅能夠利用每個(gè)終端上的一個(gè)WAN 連接的帶寬。例如,在基于站點(diǎn)到站點(diǎn)虛擬專用網(wǎng)絡(luò)(VPN)連接的會(huì)話中,VPN流量被路由到 兩個(gè)站點(diǎn)(例如,站點(diǎn)A和B)之間的多個(gè)WAN連接。
[0003] 在一個(gè)實(shí)施方案中,在WAN連接之間初始地形成MXN個(gè)隧道,其中M和N分別是站點(diǎn) A和站點(diǎn)B的WAN網(wǎng)絡(luò)連接的數(shù)目。隨后經(jīng)由不同的隧道路由應(yīng)用程序TCP/IP會(huì)話。然而,應(yīng) 注意,雖然基于站點(diǎn)到站點(diǎn)VPN的會(huì)話能夠針對(duì)不同的會(huì)話利用不同的隧道,但是此類型的 連接中的單個(gè)下載會(huì)話僅能夠利用一個(gè)隧道。
[0004] 為了提高單數(shù)據(jù)傳送會(huì)話的吞吐量,已經(jīng)創(chuàng)建路由模式以嘗試針對(duì)單個(gè)TCP/IP會(huì) 話利用多個(gè)WAN連接。在一些情況下,實(shí)施信道綁定。例如,在多WAN路由器上的綁定的站點(diǎn) 到站點(diǎn)VPN連接中,來(lái)自單個(gè)TCP/IP會(huì)話的數(shù)據(jù)被分布到多個(gè)隧道。在這些布置中,根據(jù)MX N個(gè)隧道的相應(yīng)上行或下行帶寬來(lái)利用所述隧道,并且經(jīng)由這些隧道發(fā)送的單個(gè)會(huì)話中的 數(shù)據(jù)的量與隧道的各個(gè)帶寬比成比例地分布。然而,這些解決方案仍未能考慮到一些隧道 因一個(gè)或多個(gè)條件而不應(yīng)用于傳輸數(shù)據(jù)。此外,這些解決方案也未考慮到一些網(wǎng)絡(luò)接口未 能符合一個(gè)或多個(gè)條件,并且因此那些網(wǎng)絡(luò)接口不應(yīng)用于傳輸數(shù)據(jù)。
【發(fā)明內(nèi)容】
[0005] 因此,本發(fā)明提供通過(guò)將已建立的端到端連接分類成第一組已建立端到端連接和 至少一組非第一組已建立端到端連接來(lái)選擇已建立的端到端連接的裝置、系統(tǒng)和方法,其 中第一組已建立端到端連接符合所有的一個(gè)或多個(gè)條件,并且其中至少一組非第一組已建 立端到端連接不符合所有的一個(gè)或多個(gè)條件。通過(guò)使用多個(gè)條件,本發(fā)明的實(shí)施例能夠選 擇已經(jīng)符合條件的已建立的端到端連接來(lái)傳輸數(shù)據(jù)包,而不使用不符合要求的已建立的端 到端連接來(lái)傳輸數(shù)據(jù)包。
[0006] 根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)符合第一條件時(shí),通信裝置通過(guò)第一網(wǎng)絡(luò)接口傳輸 數(shù)據(jù)包,并且當(dāng)符合第二條件時(shí),通信裝置通過(guò)第二網(wǎng)絡(luò)接口傳輸數(shù)據(jù)包。根據(jù)本發(fā)明的一 個(gè)實(shí)施例,當(dāng)通過(guò)第一網(wǎng)絡(luò)接口建立連接時(shí)符合第一條件。第二網(wǎng)絡(luò)接口于是用作備份網(wǎng) 絡(luò)接口,當(dāng)?shù)谝痪W(wǎng)絡(luò)接口未能符合第一條件時(shí),通信裝置將使用第二網(wǎng)絡(luò)接口。為了允許快 速使用第二網(wǎng)絡(luò)接口,通過(guò)經(jīng)由所述網(wǎng)絡(luò)接口周期性地傳輸包來(lái)維持第二網(wǎng)絡(luò)接口的作用 狀態(tài)。
[0007] 根據(jù)本發(fā)明的一個(gè)實(shí)施例,當(dāng)滿足第三條件時(shí),通過(guò)第二網(wǎng)絡(luò)接口糾錯(cuò)包、管理包 和/或數(shù)據(jù)包。這允許利用第二網(wǎng)絡(luò)接口來(lái)提高整體網(wǎng)絡(luò)吞吐量。根據(jù)本發(fā)明的一個(gè)實(shí)施 例,如果在第一網(wǎng)絡(luò)接口處在預(yù)定義時(shí)間周期內(nèi)檢測(cè)到預(yù)定義數(shù)目的丟包,則符合第三條 件。
[0008] 根據(jù)本發(fā)明的一個(gè)實(shí)施例,如果符合第四條件,則通信裝置停止通過(guò)第二網(wǎng)絡(luò)接 口傳輸數(shù)據(jù)包,并開(kāi)始通過(guò)第一網(wǎng)絡(luò)接口傳輸數(shù)據(jù)包。第四條件基于在預(yù)定義時(shí)間周期內(nèi) 在第二網(wǎng)絡(luò)接口處丟包的預(yù)定義數(shù)目的。
【具體實(shí)施方式】
[0009] 以下說(shuō)明僅提供優(yōu)選示例性實(shí)施例和示例性實(shí)施例,且不意圖限制本發(fā)明的范 圍、適用性或配置。實(shí)際上,優(yōu)選示例性實(shí)施例和示例性實(shí)施例的以下說(shuō)明將為所屬領(lǐng)域的 技術(shù)人員提供實(shí)施本發(fā)明的優(yōu)選示例性實(shí)施例的有效說(shuō)明。應(yīng)理解,在不脫離如在所附權(quán) 利要求書中闡述的本發(fā)明的精神和范圍的情況下可以制得元件的功能和布置的各種變化。
[0010] 同樣,應(yīng)注意,實(shí)施例可以描述為過(guò)程,過(guò)程描繪為流程圖、流程圖表、數(shù)據(jù)流圖、 結(jié)構(gòu)圖或方塊圖。盡管流程圖可以將操作描述為順序過(guò)程,但是許多操作可以并行或同時(shí) 執(zhí)行。另外,操作的順序可以重新布置。當(dāng)操作完成時(shí),過(guò)程終止,但是過(guò)程可以具有不包含 在圖中的另外步驟。過(guò)程可以與方法、函數(shù)、步驟、子例程、子程序等相對(duì)應(yīng)。當(dāng)過(guò)程與函數(shù) 相對(duì)應(yīng)時(shí),其終止與所述函數(shù)返回到調(diào)用函數(shù)或主函數(shù)相對(duì)應(yīng)。
[0011] 此外,如本文所揭示,術(shù)語(yǔ)"從存儲(chǔ)裝置"和"主存儲(chǔ)器"可以表示用于存儲(chǔ)數(shù)據(jù)的 一個(gè)或多個(gè)裝置,包含只讀存儲(chǔ)器(R0M)、隨機(jī)存取存儲(chǔ)器(RAM)、磁性RAM、磁心存儲(chǔ)器、磁 盤存儲(chǔ)媒體、光學(xué)存儲(chǔ)媒體、快閃存儲(chǔ)器裝置和/或用于存儲(chǔ)信息的其它機(jī)器可讀媒體。術(shù) 語(yǔ)"機(jī)器可讀媒體"包含但不限于便攜式或固定存儲(chǔ)裝置、光學(xué)存儲(chǔ)裝置、無(wú)線信道以及能 夠存儲(chǔ)、含有或承載指令和/或數(shù)據(jù)的各種其它媒體。機(jī)器可讀媒體可以通過(guò)虛擬化來(lái)實(shí) 現(xiàn),且可以是虛擬機(jī)器可讀媒體,包含在基于云的實(shí)例中的虛擬機(jī)器可讀媒體。
[0012]此外,實(shí)施例可以由硬件、軟件、固件、中間件、微碼、硬件描述語(yǔ)言或其任意組合 來(lái)實(shí)施。當(dāng)以軟件、固件、中間件或微碼實(shí)施時(shí),執(zhí)行必要任務(wù)的程序代碼或代碼段可以存 儲(chǔ)在例如存儲(chǔ)媒體等機(jī)器可讀媒體中。處理單元可以執(zhí)行必要任務(wù)。處理單元可以是CPU、 ASIC半導(dǎo)體芯片、半導(dǎo)體芯片、邏輯單元、數(shù)字處理器、模擬處理器、FPGA或能夠執(zhí)行邏輯和 算術(shù)函數(shù)的任何處理器。代碼段可以表示步驟、函數(shù)、子程序、程序、例程、子例程、模塊、軟 件包、類別,或指令、數(shù)據(jù)結(jié)構(gòu)或程序語(yǔ)句的任何組合。一個(gè)代碼段可以通過(guò)傳遞和/或接收 信息、數(shù)據(jù)、自變量、參數(shù)或存儲(chǔ)器內(nèi)容耦合到另一代碼段或硬件電路。信息、自變量、參數(shù)、 數(shù)據(jù)等可以經(jīng)由包含存儲(chǔ)器共享、消息傳遞、令牌傳遞、網(wǎng)絡(luò)傳輸?shù)热魏魏线m的方式傳遞、 轉(zhuǎn)發(fā)或傳輸。處理單元可以通過(guò)虛擬化來(lái)實(shí)現(xiàn),且可以是虛擬處理單元,包含在基于云的實(shí) 例中的虛擬處理單元。
[0013]端到端連接可以使用面向連接的協(xié)議(例如,傳輸控制協(xié)議(TCP))或無(wú)連接協(xié)議 (例如,用戶數(shù)據(jù)報(bào)協(xié)議(UDP))來(lái)傳輸數(shù)據(jù)包。用于部署端到端連接的眾所周知的協(xié)議包含 第二層隧道協(xié)議(L2TP)、安全外殼(SSH)協(xié)議、多協(xié)議標(biāo)簽交換(MPLS)以及微軟的點(diǎn)對(duì)點(diǎn)隧 道協(xié)議(PPTP)。連接到網(wǎng)絡(luò)接口的連接呈光纖、以太網(wǎng)、ATM、幀中繼、TI/E1. IPv4、IPv6、無(wú) 線技術(shù)、Wi-Fi、WiMax、高速包接入技術(shù)、3GPP長(zhǎng)期演進(jìn)(LTE)等形式。
[0014] 網(wǎng)絡(luò)接口可以是虛擬網(wǎng)絡(luò)接口,包含在基于云的實(shí)例中的虛擬網(wǎng)絡(luò)接口。
[0015] 圖IA示出了根據(jù)本發(fā)明的多個(gè)實(shí)施例中的一個(gè)的網(wǎng)絡(luò)環(huán)境。通信路由器106與通 信路由器108建立集中的端到端連接10 3。集中的端到端連接10 3包括多個(gè)已建立的端到端 連接。多個(gè)已建立的端到端連接被分成多個(gè)組。為了更好地說(shuō)明,組103A表示第一組已建立 的端到端連接,組103B表示第二組已建立的端到端連接,并且組103C表示不屬于第一組已 建立端到端連接或第二組已建立端到端連接的所有其它已建立端到端連接。本文后續(xù)細(xì)節(jié) 中將更詳細(xì)地論述將已建立端到端連接分成組1〇3Α、103Β或103C。替代地,多個(gè)已建立端到 端連接被分成多個(gè)組。
[0016] 根據(jù)多個(gè)實(shí)施例中的一個(gè),通信路由器106和108具有一個(gè)或多個(gè)網(wǎng)絡(luò)接口。通信 路由器106經(jīng)由其一個(gè)或多個(gè)網(wǎng)絡(luò)接口與通信路由器108的一個(gè)或多個(gè)網(wǎng)絡(luò)接口建立多個(gè) 所述的已建立端到端連接。
[0017] 在多個(gè)實(shí)施例中的一個(gè)中,在已建立端到端連接被分成組103A、103B和103C之后, 通過(guò)通信路由器106,根據(jù)通信路由器106的用戶、制造商或管理員設(shè)置的條件,經(jīng)由不同組 的已建立端到端連接傳輸數(shù)據(jù)包。
[0018] 在多個(gè)實(shí)施例中的一個(gè)中,在已建立端到端連接被分成組103A、103B和/或103C之 后,通過(guò)通信路由器106,根據(jù)通信路由器106的用戶、制造商或管理員設(shè)置的條件以及包的 類型,經(jīng)由不同組的已建立端到端連接傳輸不同類型的包。
[0019] 集中的端到端連接
[0020] 將多個(gè)已建立端到端連接集中、組合或綁定在一起以形成一個(gè)集中的端到端連 接,例如集中的端到端連接103。所屬領(lǐng)域的技術(shù)人員將了解,存在種種方式來(lái)集中、組合或 綁定多個(gè)已建立端到端連接以形成一個(gè)集中的端到端連接。集中的端到端連接被使用其的 會(huì)話或應(yīng)用程序視為一個(gè)端到端連接。集中的端到端連接可以被視為隧道、虛擬專用網(wǎng)絡(luò) 或連接模式或面向連接的無(wú)連接模式。例如,集中的端到端連接103是TCP連接。在另一實(shí)例 中,集中的端到端連接103是UDP連接。在另一實(shí)例中,集中的端到端連接是多個(gè)隧道的集 中,并且每個(gè)隧道在通信路由器106與通信路由器108之間鏈接。在另一實(shí)例中,集中的端到 端連接103是VPN隧道,包括多個(gè)已建立端到端連接,并且每個(gè)已建立端到端連接在通信路 由器106與通信路由器108之間鏈接。
[0021] 通常,通信路由器106將源自發(fā)射主機(jī)的數(shù)據(jù)包封裝到至少一個(gè)數(shù)據(jù)包中。為便于 閱讀,源自發(fā)射主機(jī)的數(shù)據(jù)包被稱為原始數(shù)據(jù)包。發(fā)射主機(jī)可以通過(guò)電纜、無(wú)線連接、近場(chǎng) 連接傳輸或通過(guò)其它網(wǎng)絡(luò)裝置連接到通信路由器106。當(dāng)通信路由器108接收已經(jīng)封裝了原 始數(shù)據(jù)包的數(shù)據(jù)包時(shí),通信路由器108將原始數(shù)據(jù)包從所述數(shù)據(jù)包解封裝并且接著將原始 數(shù)據(jù)包轉(zhuǎn)發(fā)到接收主機(jī)或節(jié)點(diǎn)。
[0022] 存在種種方式來(lái)將原始數(shù)據(jù)包封裝到由通過(guò)通信路由器106發(fā)送的數(shù)據(jù)包中。確 切地說(shuō),通信路由器106可以使用已知的二層和/或三層隧道協(xié)議(例如,第二層隧道協(xié)議 (L2TP)和通用路由封裝(GRE)協(xié)議)在其邏輯端點(diǎn)之間隧道傳送原始數(shù)據(jù)包。在此情況下, 一個(gè)或多個(gè)隧道報(bào)頭前置于數(shù)據(jù)包以沿著虛電路恰當(dāng)?shù)貍魉退鰯?shù)據(jù)包。多協(xié)議標(biāo)簽交換 (MPLS)協(xié)議可以用作隧道機(jī)制,以用于通過(guò)IP網(wǎng)絡(luò)建立二層虛電路或三層的基于網(wǎng)絡(luò)的 VPN0
[0023]通信路由器106可以使用TCP、UDP或其它通信協(xié)議作為已建立端到端連接的通信 協(xié)議。在使用集中的端到端連接時(shí)所面臨的最大的挑戰(zhàn)之一是將在已建立端到端連接之中 接收到的數(shù)據(jù)包重新排序,因?yàn)榻邮盏降臄?shù)據(jù)包可能無(wú)序地到達(dá)通信路由器108。如果通信 路由器108將接收到的數(shù)據(jù)包太早傳遞到接收主機(jī),那么接收主機(jī)可能將那些尚未接收到 的數(shù)據(jù)包視為丟失數(shù)據(jù)包,即使那些數(shù)據(jù)包最終會(huì)到達(dá)??朔颂魬?zhàn)的一種方法是當(dāng)通信 路由器106向通信路由器108傳輸數(shù)據(jù)包時(shí),通信路由器106為每個(gè)數(shù)據(jù)包分配一個(gè)序列號(hào)。 通信路由器108接著能夠根據(jù)所述序列號(hào)將數(shù)據(jù)包重新排序。
[0024] 在通信路由器106與通信路由器108之間可以存在一個(gè)或多個(gè)集中的端到端連接。 每個(gè)集中的端到端連接具有其自身的已建立端到端連接。例如,第一個(gè)集中的端到端連接 可具有十個(gè)已建立端到端連接,而第二個(gè)集中的端到端連接可具有五個(gè)已建立端到端連 接。第一個(gè)集中的端到端連接和第二個(gè)集中的端到端連接不能使用相同的已建立端到端連 接。
[0025] 圖5是根據(jù)本發(fā)明的多個(gè)實(shí)施例中的一個(gè)的通信路由器(例如,通信路由器106)的 示意性方塊圖。通信路由器106包括處理單元502、主存儲(chǔ)器503、系統(tǒng)總線504、從存儲(chǔ)裝置 505以及多個(gè)網(wǎng)絡(luò)接口 506。處理單元502和主存儲(chǔ)器503彼此直接連接。系統(tǒng)總線504將處理 單元502直接或間接連接到從存儲(chǔ)裝置505和多個(gè)網(wǎng)絡(luò)接口 506。使用系統(tǒng)總線504可允許通 信路由器106具有較高的模塊性。系統(tǒng)總線504將處理單元502耦合到從存儲(chǔ)裝置505和多個(gè) 網(wǎng)絡(luò)接口 506。系統(tǒng)總線504可以是多種類型總線結(jié)構(gòu)中的任一個(gè),包含存儲(chǔ)器總線、外圍總 線以及使用多種總線架構(gòu)中的任一個(gè)的本地總線。從存儲(chǔ)裝置505存儲(chǔ)由處理單元502執(zhí)行 的程序指令。從存儲(chǔ)裝置505進(jìn)一步存儲(chǔ)條件,其中將已建立端到端連接分成不同組取決于 已建立端到端連接是否符合條件。
[0026] 圖4是示出了根據(jù)多個(gè)實(shí)施例中的一個(gè)的如何將已建立端到端連接分成組的樹(shù)形 圖。已建立端到端連接400表示在兩個(gè)網(wǎng)絡(luò)節(jié)點(diǎn)(例如,通信路由器106和108)之間的所有已 建立端到端連接。符合將在第一組中的條件的已建立端到端連接被分到第一組已建立端到 端連接410中。不符合將被分到第一組已建立端到端連接410的條件的已建立端到端連接被 分到非第一組已建立端到端連接420。在一個(gè)變型中,非第一組已建立端到端連接420進(jìn)一 步被分成第二組已建立端到端連接421和非第一 /第二組已建立端到端連接422。不符合將 被分到第二組已建立端到端連接421的條件的已建立端到端連接被分到非第一 /第二組已 建立端到端連接422。在一個(gè)變型中,不將非第一組已建立端到端連接進(jìn)一步分成第二組已 建立端到端連接421和非第一 /第二組已建立端到端連接422。因此省略第二組已建立端到 端連接421。
[0027]為了將已建立端到端連接分成不同組,通信路由器確定已建立端到端連接是否符 合某些條件。根據(jù)多個(gè)實(shí)施例中的一個(gè),進(jìn)行分類以便通過(guò)屬于某一組的已建立端到端連 接傳輸某些類型的包,并且使用其它組中的已建立端到端連接傳輸其它類型的包。根據(jù)多 個(gè)實(shí)施例中的一個(gè),一旦完成分類,就對(duì)組進(jìn)行分級(jí),使得使用具有最高等級(jí)的一組已建立 端到端連接來(lái)傳輸具有最高優(yōu)先級(jí)的數(shù)據(jù)包。
[0028]在本發(fā)明的多個(gè)實(shí)施例中的一個(gè)中,當(dāng)在第一組已建立端到端連接中存在多個(gè)已 建立端到端連接時(shí),使用負(fù)載均衡技術(shù)或任何其它允許在多個(gè)已建立端到端連接之中分布 并傳輸數(shù)據(jù)包的技術(shù),在第一組的多個(gè)已建立端到端連接之中分布數(shù)據(jù)包并通過(guò)所述多個(gè) 已建立端到端連接傳輸數(shù)據(jù)包。所屬領(lǐng)域的技術(shù)人員應(yīng)了解,存在許多技術(shù)來(lái)使用多個(gè)已 建立端到端連接傳輸數(shù)據(jù)包。也可以應(yīng)用相同技術(shù)在其它組已建立端到端連接中分布數(shù)據(jù) 包。
[0029] 圖IB示出了根據(jù)實(shí)施例調(diào)適的系統(tǒng)100,其配置成通過(guò)調(diào)節(jié)在數(shù)據(jù)傳送會(huì)話期間 的隧道帶寬加權(quán)模式來(lái)優(yōu)化綁定的多個(gè)可變帶寬連接的吞吐量。系統(tǒng)100包含多個(gè)站點(diǎn)102 和104,每個(gè)站點(diǎn)包括至少一個(gè)通信路由器106和108。通信路由器106和108可以實(shí)施作為多 WAN路由器,其支持集中多個(gè)因特網(wǎng)連接的帶寬。通信路由器106和108經(jīng)由網(wǎng)絡(luò)110連接。網(wǎng) 絡(luò)110可以包括局域網(wǎng)(LAN)、城域網(wǎng)(MAN)、廣域網(wǎng)(WAN)、無(wú)線網(wǎng)、公共交換電話網(wǎng)(PSTN)、 因特網(wǎng)、企業(yè)內(nèi)部網(wǎng)、外聯(lián)網(wǎng)等。
[0030] 站點(diǎn)102和路由器106可以包括M個(gè)連接112,且站點(diǎn)104和路由器108可以包括N個(gè) 連接114。連接112和114是用于在站點(diǎn)102與104之間的網(wǎng)絡(luò)110內(nèi)傳送信息的數(shù)據(jù)連接。在 所圖示的實(shí)施例中,M等于3且N等于2;然而,這些值可以根據(jù)所需的路由器和配置改變。連 接112和114可以具有類似的或不同的帶寬容量。此外,連接112和114可以包括不同類型的 WAN連接,例如WiFi、電纜、DSL、TI、3G、4G、衛(wèi)星連接等。還應(yīng)注意,站點(diǎn)102和站點(diǎn)104可以被 認(rèn)為是發(fā)送器或接收器兩者,并且關(guān)于任一站點(diǎn)的功能性的論述可以在另一站點(diǎn)上實(shí)施。 換句話說(shuō),系統(tǒng)100可以實(shí)施為對(duì)稱網(wǎng)絡(luò)。
[0031] 圖2A展示了系統(tǒng)100的操作的高階流程圖,其描繪了用于提高綁定的連接的吞吐 量的方法200。應(yīng)了解,圖2A中提供的具體功能、功能的順序等意圖是根據(jù)本發(fā)明的概念的 示例性操作。因此,本文中的概念可以用與所圖示的實(shí)施例的方式不同的方式來(lái)實(shí)施。 [0032]在所圖示的實(shí)施例的方塊2