新四季網

一種多徑TCP網關和數據轉發方法與流程

2023-08-10 19:12:03


一種多徑tcp網關和數據轉發方法
技術領域
1.本方案屬於網絡通信技術領域,尤其涉及一種多徑tcp網關和數據轉發方法。


背景技術:

2.隨著車載移動的增多,有些場景要求較高的上行帶寬和滿足高清視頻傳輸,同時對無線網絡穩定性,有較高的需求。但無論單運營商的4g網絡還是新出的5g網絡都很難保證網絡穩定並不掉線。所以產生了多網卡聚合技術。就是通過使用智能聚合多個4g或5g網卡使得網絡帶寬可以疊加,並且當一個網卡信號不好時切換到別的網卡傳輸。
3.多網卡聚合是由多個小容量網絡通道形成一個大容量通道,把數據先拆包再組包,中間傳輸經由多個不同的鏈路實現,把大的數據高速、穩定、安全的傳送至雲端(軟部署),可達到高安全、大帶寬、業務不中斷。
4.多徑tcp協議(mptcp)由網際網路工程任務組(ietf)multipath tcp工作組研發,其目的是允許傳輸控制協議(tcp)連接使用多個路徑來最大化信道資源使用。現有實現多網卡聚合多是基於軟體實多徑tcp。
5.現有的mptcp的虛擬隧道方法是基於內核的多徑tcp功能和隧道應用相結合的一種多路徑隧道網關。多徑tcp協議是在內核中實現的。
6.由於現有方案是依賴內核支持最新的多徑tcp協議,所以如果對於嵌入式設備用的是老版本內核時。為了能支持多路徑隧道網關則需要升級內核。這對於一些嵌入式設備內核是特殊訂製的時候,升級內核則會有很大的難度。


技術實現要素:

7.有鑑於此,本發明實施例提供了一種多徑tcp網關和數據轉發方法,其技術方案包括:通過網關作業系統核心態的原始套接字從所述網關兩邊網絡接收ip包;通過網關作業系統用戶態的隧道應用模塊根據該ip包實現多徑tcp的生成或解析,從而實現不支持多徑tcp協議的網絡和支持多徑tcp協議的網絡之間的數據轉發。本發明實施例的技術方案在網關作業系統的用戶態實現多徑tcp協議,從而在核心態不支持多徑tcp協議的網關上無需改造核心態,低成本實現多徑tcp。
8.第一方面,本發明實施例提供了一種多徑tcp網關,實現第一網絡和第二網絡的數據轉發,第一網絡不支持多徑tcp協議,第二網絡支持多徑tcp協議,包括:原始套接字和隧道應用模塊,原始套接字在網關作業系統的核心態,隧道應用模塊在網關作業系統的用戶態;原始套接字用於與第一網絡或第二網絡交換ip包;隧道應用模塊用於根據至少一個第一ip包生成若干個第一多徑tcp包,並據此生成相應的若干個第二ip包,以被原始套接字通過第二網絡的多個路徑發送,第一ip包為從第一網絡接收的ip包;隧道應用模塊還用於根據至少一個第二多徑tcp包生成若干個第四ip包,以被原始套接字向第一網絡發送,第二多徑tcp包根據第三ip包獲得,第三ip包為從所述多個路徑接收的ip包。
9.由上,本發明實施例的技術方案在網關作業系統的用戶態實現多徑tcp協議,從而
在核心態不支持多徑tcp協議的網關上無需改造核心態,低成本實現多徑tcp。
10.在第一方面的一種可能實施方式中,還包括虛擬網卡,其在用戶態,用於從原始套接字接收第一ip包,並轉發至隧道應用模塊,還用於從隧道應用模塊接收第四ip包,並轉發至原始套接字。
11.由上,通過虛擬網卡代理第一網絡中多個用戶與第二網絡交互。
12.在第一方面的一種可能實施方式中,隧道應用模塊包括多徑tcp協議棧;在所述隧道應用模塊根據至少一個第一ip包生成若干個第一多徑tcp包時,具體用於把第一ip包中的源ip地址轉換為虛擬網卡的ip地址,生成第五ip包,並通過所述多徑tcp協議棧把第五ip包作為第一應用數據生成所述第一多徑tcp包;在所述隧道應用模塊根據至少一個第二多徑tcp包生成若干個第四ip包時,具體用於通過所述多徑tcp協議棧根據第二多徑tcp包的承載數據獲得第二應用數據,並把第二應用數據中的目標ip地址換算為在第一網絡相應的目的ip地址。
13.由上,通過在用戶態的多徑tcp協議棧實現多徑tcp包的生成和解析,從而實現多徑tcp協議。
14.在第一方面的一種可能實施方式中,還包括虛擬控制臺,其在核心態,用於虛擬網卡與原始套接字之間的ip包轉發。在一些實施例中,虛擬控制臺通過linux系統的tty實現。
15.由上,通過虛擬控制臺實現用戶態與核心態的數據交換。
16.在第一方面的一種可能實施方式中,隧道應用模塊還用於與第二網絡對端的多徑tcp網關建立多徑tcp的連接。
17.由上,通過建立多徑tcp連接實現多徑tcp包的傳輸。
18.在第一方面的一種可能實施方式中,所述多徑tcp協議棧為通過把lwip的tcp協議修改多徑tcp協議實現。
19.由上,通過lwip的改造實現多徑tcp協議,佔用計算資源少,適合嵌入式系統。
20.第二方面,本發明實施例提供了一種數據轉發方法,在第一方面任一實施方式所述網關上實現第一網絡向第二網絡之間的數據轉發時,包括:原始套接字從第一網絡接收第一ip包;隧道應用模塊根據至少一個第一ip包生成若干個第一多徑tcp包,並據此生成相應的若干個第二ip包;原始套接字通過多個路徑向第二網絡接發送第二ip包。
21.由上,本發明實施例的技術方案在網關作業系統的用戶態實現多徑tcp協議中非多徑tcp網絡向多徑tcp網絡轉發數據,從而在核心態不支持多徑tcp協議的網關上無需改造核心態,低成本實現多徑tcp。
22.在第二方面的一種可能實施方式中,在第一方面任一實施方式所述網關上實現第二網絡向第一網絡之間的數據轉發時,還包括:原始套接字從第二網絡接收第三ip包;隧道應用模塊根據第三ip包獲得第二多徑tcp包,並根據至少一個第二多徑tcp包生成若干個第四ip包;原始套接字向第一網絡發送第四ip包。
23.由上,本發明實施例的技術方案在網關作業系統的用戶態實現多徑tcp協議中多徑tcp網絡向非多徑tcp網絡轉發數據,從而在核心態不支持多徑tcp協議的網關上無需改造核心態,低成本實現多徑tcp。
24.在第二方面的一種可能實施方式中,當所述網關包括虛擬網關時,實現第一網絡向第二網絡之間的數據轉發,還包括:虛擬網關從原始套接字接收第一ip包,並轉發至隧道
應用模塊;實現第二網絡向第一網絡之間的數據轉發,還包括:虛擬網關接收第四ip包,並轉發至原始套接字。
25.由上,通過虛擬網卡代理第一網絡中多個用戶與第二網絡交互。
26.在第二方面的一種可能實施方式中,所述根據至少一個第一ip包生成若干個第一多徑tcp包,具體包括:隧道應用模塊把第一ip包中的源用戶ip地址轉換為虛擬網卡的ip地址,生成第五ip包,通過多徑tcp協議棧把第五ip包作為第一應用數據,生成所述第一多徑tcp包;所述根據至少一個第二多徑tcp包生成若干個第四ip包,具體包括:隧道應用模塊根據第二多徑tcp包的承載數據獲得第二應用數據包,並把第二應用數據中的目標ip地址換算為在第一網絡相應的目的ip地址。
27.由上,通過在用戶態的多徑tcp協議棧實現多徑tcp包的生成和解析,從而實現多徑tcp協議。
28.在第二方面的一種可能實施方式中,還包括:通過虛擬控制臺進行虛擬網卡與原始套接字之間的ip包轉發。在一些實施例中,虛擬控制臺通過linux系統的tty實現。
29.由上,通過虛擬控制臺實現用戶態與核心態的數據交換。
30.在第二方面的一種可能實施方式中,還包括:隧道應用模塊與第二網絡對端的多徑tcp網關建立多徑tcp的連接。
31.由上,通過建立多徑tcp連接實現多徑tcp包的傳輸。
32.在第二方面的一種可能實施方式中,所述多徑tcp協議棧為通過把lwip的tcp協議修改多徑tcp協議實現。
33.由上,通過lwip的改造實現多徑tcp協議,佔用計算資源少,適合嵌入式系統。
34.第三方面,本發明實施例提供了一種計算設備,包括:總線;通信接口,其與所述總線連接;至少一個處理器,其與所述總線連接;以及至少一個存儲器,其與所述總線連接並存儲有程序指令,所述程序指令當被所述至少一個處理器執行時使得所述至少一個處理器執行本發明第一方面任一所述實施方式。
35.第四方面,本發明實施例提供了一種計算機可讀存儲介質,其上存儲有程序指令,所述程序指令當被計算機執行時使得所述計算機執行申請第一方面任一所述實施方式。
附圖說明
36.圖1為本發明的各實施例應用場景的結構示意圖;
37.圖2為本發明的一種多徑tcp的網關實施例一的結構示意圖;
38.圖3為本發明的一種多徑tcp的網關實施例二的結構示意圖;
39.圖4a為本發明的一種多徑tcp的網關實施例二中從第一網絡向第二網絡轉發數據中的數據包轉發和轉換的過程示意圖;
40.圖4b為本發明的一種多徑tcp的網關實施例二中從第二網絡向第一網絡轉發數據中的數據包轉發和轉換的過程示意圖;
41.圖5a為本發明的一種數據轉發方法實施例一中從第一網絡向第二網絡轉發數據的流程示意圖;
42.圖5b為本發明的一種數據轉發方法實施例一中從第二網絡向第一網絡轉發數據的流程示意圖;
43.圖6a為本發明的一種數據轉發方法實施例二中從第一網絡向第二網絡轉發數據的流程示意圖;
44.圖6b為本發明的一種數據轉發方法實施例二中從第二網絡向第一網絡轉發數據的流程示意圖;
45.圖6c為本發明的一種數據轉發方法實施例二中多徑tcp連接建立的流程示意圖;
46.圖7為本發明各實施例計算設備的結構示意圖。
具體實施方式
47.在以下的描述中,涉及到「一些實施例」,其描述了所有可能實施例的子集,但是可以理解,「一些實施例」可以是所有可能實施例的相同子集或不同子集,並且可以在不衝突的情況下相互結合。
48.在以下的描述中,所涉及的術語「第一\第二\第三等」或模塊a、模塊b、模塊c等,僅用於區別類似的對象,或用於區別不同的實施例,不代表針對對象的特定排序,可以理解地,在允許的情況下可以互換特定的順序或先後次序,以使這裡描述的本發明實施例能夠以除了在這裡圖示或描述的以外的順序實施。
49.在以下的描述中,所涉及的表示步驟的標號,如s110、s120
……
等,並不表示一定會按此步驟執行,在允許的情況下可以互換前後步驟的順序,或同時執行。
50.除非另有定義,本文所使用的所有的技術和科學術語與屬於本發明的技術領域的技術人員通常理解的含義相同。本文中所使用的術語只是為了描述本發明實施例的目的,不是旨在限制本發明。
51.本發明實施例提供了一種多徑tcp網關和數據轉發方法,其技術方案包括:通過網關作業系統核心態的原始套接字從所述網關兩邊網絡接收ip包;通過網關作業系統用戶態的隧道應用模塊根據該ip包實現多徑tcp的生成或解析,從而實現不支持多徑tcp協議的網絡和支持多徑tcp協議的網絡之間的數據轉發。本發明實施例的技術方案在網關作業系統的用戶態實現多徑tcp協議,從而在核心態不支持多徑tcp協議的網關上無需改造核心態,低成本實現多徑tcp。
52.下面結合附圖介紹本發明的各實施例。首先介紹本發明各實施例的應用場景。
53.圖1示出了本發明的各實施例應用場景的結構,包括用戶10、網絡20、網關30、網絡40、網關50、網絡60和伺服器70,用戶10通過網絡接入伺服器70。
54.網絡20和網絡60為有線網絡,支持tcp協議,不支持多徑tcp協議,有較高網絡的容量和質量。
55.網絡40為多個無線網絡組成,每個無線網絡的容量和/或質量受限。為了提高接入的容量和質量,通過網關30和網關50在網絡40上實現多徑tcp傳輸,提高傳輸容量和質量,網關30和網關50為多徑tcp網關,實現tcp協議與多徑tcp協議之間的數據轉發。
56.下面結合圖2介紹本發明的一種多徑tcp網關實施例一。
57.一種多徑tcp網關實施例一用於不支持多徑tcp協議的第一網絡與支持多徑tcp協議的第二網絡之間的數據轉發,位於網關作業系統核心態的原始套接字從第一網絡或第二網絡接收ip包;位於網關作業系統用戶態的隧道應用模塊根據至少一個第一ip包生成若干個第一多徑tcp包,並據此生成相應的若干個第二ip包,以被原始套接字通過多個路徑向第
二網絡發送,第一ip包為從第一網絡接收的ip包;還通過隧道應用模塊根據至少一個第二多徑tcp包生成若干個第四ip包,以被原始套接字向第一網絡發送,第二多徑tcp包為根據通過所述多個路徑從第二網絡接收的第三ip包獲得。本實施例的技術方案在網關作業系統的用戶態實現多徑tcp協議,從而在核心態不支持多徑tcp協議的網關上無需改造核心態,在用戶態低成本實現多徑tcp。
58.圖2示出了一種多徑tcp的網關實施例一的結構圖,其網關100包括原始套接字110和隧道應用模塊120。原始套接字110位於網關100的作業系統的核心態,隧道應用模塊120位於網關100的作業系統的用戶態。示例地,網關作業系統為linux系統的發行版。
59.原始套接字110用於接收所有發送到本網關的ip包,包括ip頭和tcp/udp/icmp包頭。
60.其中,原始套接字110從第一網絡接收的ip包為第一ip包,向第二網絡發送的ip包為第二ip包,從第二網絡接收的ip包為第三ip包,向第一網絡發送的ip包為第四ip包。
61.對比地,應用層套接字是在應用層收發數據,每個程序只能收到發給自己的數據,即每個程序只能收到來自該程序綁定的埠的數據,收到的數據往往只包括應用層數據,指是ip包的中一部分,且無法所有本機收發的數據。而採用原始套接字100可以接收所有發送到網關100的ip包,從而在隧道應用模塊120可以在完整的ip上修改ip包頭和添加多徑tcp包頭。
62.隧道應用模塊120在從第一網絡向第二網絡轉發數據時,根據至少一個第一ip包生成若干個第一多徑tcp包,並據此生成相應的若干個第二ip包,以被原始套接字110通過多個路徑向第二網絡發送。該多個路徑包括各種4g/各種5g/各種wifi等多個無線網絡中至少1個網絡。
63.在一些實施例中,隧道應用模塊120把第一ip包作為網關的應用層數據,根據多徑tcp協議把該應用層數據進行分包到多個第一多徑tcp包中。每個第一多徑tcp對應第二網絡中一個路徑,對每個第一多徑tcp添加相應路徑的ip包頭後,通過該相應路徑發送,從而實現在多個路徑發送,提高通信的容量和質量。
64.在另一些實施例中,隧道應用模塊120還對第一ip包中源ip地址進行替換,替換為網關100相關的ip地址,然後再作為網關的應用層數據,進行多徑tcp協議相關的處理,從而使網關100可以接入多個用戶。
65.隧道應用模塊120在從第二網絡向第一網絡轉發數據時,根據多個第三ip包獲得至少一個第二多徑tcp包,根據該至少一個第二多徑tcp包的承載數據生成若干個第四ip包,以被原始套接字110向第一網絡發送。
66.其中,第二多徑tcp包為網關100在第二網絡對端的多徑tcp網關中生成,其承載數據為網關100在第二網絡對端的多徑tcp網關的原始套接字接收的第一網絡的tcp包的ip包數據。
67.示例地,如果網關100是圖1中網關30,則多徑tcp包是在圖1的網關50中生成的;如果網關100是圖1中網關50,則多徑tcp包是在圖1的網關30中生成的。
68.在一些實施例中,原始套接字100根據從第二多徑tcp包的承載數據獲得的網關100的應用層數據中目的ip地址向第一網絡發送。
69.在另一些實施例中,從第二多徑tcp包的承載數據獲得的網關100的應用層數據中
的目的ip地址為網關100的相關地址,根據nat協議轉換為用戶或伺服器的ip地址,在通過第一網絡發送。
70.綜上,通過網關作業系統核心態的原始套接字從所述網關兩邊網絡接收ip包;通過網關作業系統用戶態的隧道應用模塊根據該ip包實現多徑tcp的生成或解析,從而實現不支持多徑tcp協議的網絡和支持多徑tcp協議的網絡之間的數據轉發。本發明實施例的技術方案在網關作業系統的用戶態實現多徑tcp協議,從而在核心態不支持多徑tcp協議的網關上無需改造核心態,低成本實現多徑tcp。
71.下面結合圖3至圖4b介紹本發明的一種多徑tcp網關實施例二。
72.一種多徑tcp網關實施例二繼承一種多徑tcp網關實施例一的結構,具有一種多徑tcp網關實施例一的一切優點,同時在隧應用模塊中通過lwip實現多徑tcp協議棧,實施方便,佔用資源少,且適合在嵌入系統中使用;還增加虛擬網卡和在隧道應用模塊中設置nat協議棧,並根據虛擬網卡的虛擬ip地址與第二網絡通信,實現一個網關支持多個用戶的多徑tcp轉發。
73.圖3示出了一種多徑tcp網關實施例二的結構,其網關200包括:原始套接字210、虛擬控制臺220、隧道應用模塊230和虛擬網卡240,隧道應用模塊230中設置nat協議棧232、多徑tcp協議棧234和多徑地址模塊236,其中,多徑tcp協議棧234通過lwip協議棧中的tcp協議替換多徑tcp協議而實現。
74.原始套接字210和虛擬控制臺220在網關200的作業系統的核心態,隧道應用模塊230和虛擬網卡240在網關200的作業系統的用戶態。
75.示例地,網關200的作業系統為linux系統,原始套接字和虛擬控制臺也稱為raw socket和tty,虛擬網卡也稱為tap0。
76.下面詳細網關200各模塊的功能。為了敘述方便,以網關200實現第一網絡與第二網絡之間數據轉發為例,第一網絡為普通tcp的網絡即不支持多徑tcp的網絡,第二網絡為多徑tcp網絡。
77.圖4a示出了從第一網絡向第二網絡轉發數據中的數據包轉發和轉換的過程,下面結合圖4a介紹在從第一網絡向第二網絡轉發數據中網關200各模塊的作用。
78.1)原始套接字210用於從第一網絡接收第一ip包。
79.其中,原始套接字210接收完整的ip包,第一ip包包括用戶ip包頭、用戶tcp包頭和payload及用戶數據。
80.第一ip的結構如下。這裡的用戶ip包頭中ip地址為用戶與伺服器的ip地址,可以是從用戶向伺服器發送數據時的ip包頭,也可以是從伺服器向用戶發送數據的ip包頭。用戶tcp包頭也是用戶到伺服器之間的端到端的tcp包頭,payload是傳輸數據。
[0081][0082]
2)虛擬控制臺220用於把第一ip包從原始套接字210轉發至虛擬網卡240。
[0083]
其中,虛擬控制臺220實現虛擬網卡240對原始套接字210的數據始發,與原始套接字210及虛擬網卡240的關聯。
[0084]
3)虛擬網卡240用於通過虛擬控制臺220從原始套接字210接收第一ip包,並轉發至隧道應用模塊230。
[0085]
其中,通過虛擬控制臺220和虛擬網卡240實現原始套接字210與隧道應用模塊230之間第一ip包的流動。
[0086]
4)nat協議棧232用於把第一ip包中的源用戶ip地址轉換為虛擬網卡240的ip地址,生成第五ip包。
[0087]
其中,通過nat協議棧實現網關200支持多個用戶接入。
[0088]
其中,第五ip包的結構如下,虛擬網卡ip包頭中源ip地址為虛擬網卡ip,其他內容為nat協議轉換獲得。
[0089][0090]
5)多徑tcp協議棧234用於把第五ip包作為第一應用數據,並據此生成第一多徑tcp包。其中,每個第一多徑tcp包對應第二網絡的中一個路徑,各第一多徑tcp包通過多個路徑發送,從而提高對每個用戶數據在第二網絡中傳輸的容量和質量。
[0091]
其中,第一多徑tcp包結構如下。
[0092][0093]
6)多徑地址模塊236用於給每個第一多徑tcp包添加相應路徑的ip頭,生成第二ip包,並轉發至原始套接字210。
[0094]
至此,第二ip的結構如下。這裡對接ip包頭的源地址和目的地址分別第二網絡中相應路徑徑兩端ip地址。
[0095][0096]
7)原始套接字210還用於通過多個路徑向第二網絡的相應路徑發送相應的第二ip包。
[0097]
其中,通過多個路徑發送各第二ip包,從而提高對每個用戶數據在第二網絡中傳輸的容量和質量。
[0098]
隧道應用模塊還用於與第二網絡對端的多徑tcp網關建立多徑tcp的連接。
[0099]
圖4b示出了從第二網絡向第一網絡轉發數據中的數據包轉發和轉換的過程,下面結合圖4b介紹在從第二網絡向第一網絡轉發數據中網關200各模塊的作用。
[0100]
1)原始套接字210用於從第二網絡的多條路徑接收各第三ip包,並轉發至隧道應用模塊230。
[0101]
其中,第三ip包為網關200在第二網絡的對端生成的ip包,相當於網關200生成的第二ip包。
[0102]
2)多徑地址模塊236用於把每個第三多徑ip包去除相應路徑的ip頭,獲得各路徑的第二多徑tcp包。
[0103]
其中,第二多徑tcp包為網關200在第二網絡的對端生成的多徑tcp包,相當於網關200生成的第一多徑tcp包。
[0104]
3)多徑tcp協議棧234用於對各第二多徑tcp包進行去重複和組合,獲得網關200的第二應用數據。
[0105]
其中,第二多徑tcp包為網關200在第二網絡對端的多徑tcp網關中生成,其承載數據為網關200的第二應用數據,也是ip包,稱為第六ip包,第六ip包為網關200在第二網絡對
端的多徑tcp網關的經過nat協議站變換ip包頭的ip包,相當於網關200生成的第五ip包,其ip包頭的目的地址為本網關200的虛擬網卡240的ip地址,通過多徑tcp連接握手協議獲得。
[0106]
示例地,如果網關200是圖1中網關30,則第二多徑tcp包是在圖1的網關50中生成,在網關30中解析獲得;如果網關200是圖1中網關50,則第二多徑tcp包是在圖1的網關30中生成,在網關50中解析獲得。
[0107]
4)nat協議棧232用於把第六ip包的目標ip地址換算為第一網絡中相應的目的ip地址,獲得第四ip包。
[0108]
其中,如果網關200是圖1中網關30,則第一網絡中相應的目的ip地址是用戶10的ip地址;如果網關200是圖1中網關50,則第一網絡中相應的目的ip地址是伺服器70的ip地址。
[0109]
5)虛擬網卡240用於從隧道應用模塊230接收第四ip包.
[0110]
6)虛擬控制臺220用於把第四ip包從虛擬網卡240轉發至原始套接字210。
[0111]
7)原始套接字210還用於向第一網絡發送第四ip包。
[0112]
需要強調的是:無論是從第一網絡向第二網絡轉發數據,還是第二網絡向第一網絡轉發數據,網關200都要和其在第二網絡對端建立多徑tcp連接。該連接的建立申請可以任一端發起,發起的一端為多徑tcp的用戶端,並不是真正獲取服務的用戶終端,應答的一端為多徑tcp的伺服器端,同樣也不是真正提供服務的伺服器。
[0113]
綜上,一種多徑tcp網關實施例二繼承一種多徑tcp網關實施例一的結構,具有一種多徑tcp網關實施例一的一切優點,同時在隧應用模塊中通過lwip實現多徑tcp協議棧,實施方便,佔用資源少,且適合在嵌入系統中使用;還增加虛擬網卡和在隧道應用模塊中設置nat協議棧,並根據虛擬網卡的虛擬ip地址與第二網絡通信,實現一個網關支持多個用戶的多徑tcp轉發。
[0114]
下面結合圖5a至圖6c介紹本發明的一種數據轉發方法實施例。
[0115]
一種數據轉發方法實施例一在一種多徑tcp網關實施例一中運行,實現不支持多徑tcp協議的第一網絡和支持多徑tcp協議的第二網絡之間的數據轉發,其具有一種多徑tcp網關實施例一的一切優點。
[0116]
一種數據轉發方法實施例一包括兩個流程:從第一網絡向第二網絡轉發數據的流程和從第二網絡向第一網絡轉發數據的流程。
[0117]
圖5a示出了從第一網絡向第二網絡轉發數據的流程,其包括步驟s5110至s5130。
[0118]
s5110:原始套接字110從第一網絡接收第一ip包。
[0119]
s5120:隧道應用模塊120根據至少一個第一ip包生成若干個第一多徑tcp包,並據此生成相應的若干個第二ip包。
[0120]
s5130:原始套接字110通過多個路徑向第二網絡接發送第二ip包。
[0121]
圖5b示出了從第二網絡向第一網絡轉發數據的流程,其包括步驟s5210至s5230
[0122]
s5210:原始套接字110從第二網絡接收第三ip包。
[0123]
s5220:隧道應用模塊120根據第三ip包獲得第二多徑tcp包,並根據至少一個第二多徑tcp包生成若干個第四ip包。
[0124]
s5230:原始套接字110向第一網絡發送第四ip包。
[0125]
一種數據轉發方法實施例二在一種多徑tcp網關實施例二中運行,實現不支持多
徑tcp協議的第一網絡和支持多徑tcp協議的第二網絡之間的數據轉發,具有一種多徑tcp網關實施例二的一切優點。
[0126]
一種數據轉發方法實施例二包括三個流程:從第一網絡向第二網絡轉發數據的流程、從第二網絡向第一網絡轉發數據的流程和多徑tcp連接建立流程。
[0127]
圖6a示出了從第一網絡向第二網絡轉發數據的流程,包括步驟s6110至s6170。其中,
[0128]
s6110:原始套接字210從第一網絡接收第一ip包。
[0129]
s6120:虛擬控制臺220把第一ip包從原始套接字210轉發至虛擬網卡240。
[0130]
s6130:虛擬網卡240通過虛擬控制臺220從原始套接字210接收第一ip包,並轉發至隧道應用模塊230。
[0131]
s6140:nat協議棧232把第一ip包中的源用戶ip地址轉換為虛擬網卡240的ip地址,生成第五ip包。
[0132]
s6150:多徑tcp協議棧234把第五ip包作為第一應用數據,並據此生成第一多徑tcp包。其中,每個第一多徑tcp包對應第二網絡的中一個路徑,各第一多徑tcp包通過多個路徑發送,從而提高對每個用戶數據在第二網絡中傳輸的容量和質量。
[0133]
s6160:多徑地址模塊236給每個第一多徑tcp包添加相應路徑的ip頭,生成第二ip包,並轉發至原始套接字210。
[0134]
s6170:原始套接字210通過多個路徑向第二網絡的相應路徑發送相應的第二ip包。
[0135]
圖6b示出了從第二網絡向第一網絡轉發數據的流程,包括步驟s6210至s6270。
[0136]
s6210:原始套接字210從第二網絡的多條路徑接收各第三ip包,並轉發至隧道應用模塊230。
[0137]
其中,第三ip包為網關200在第二網絡的對端生成的ip包,相當於網關200生成的第二ip包。
[0138]
s6220:多徑地址模塊236把每個第三多徑ip包去除相應路徑的ip頭,獲得各路徑的第二多徑tcp包。
[0139]
其中,第二多徑tcp包為網關200在第二網絡的對端生成的多徑tcp包,相當於網關200生成的第一多徑tcp包。
[0140]
s6230:多徑tcp協議棧234對各第二多徑tcp包進行去重複和組合,獲得網關200的第二應用數據。
[0141]
其中,第二多徑tcp包為網關200在第二網絡對端的多徑tcp網關中生成,其承載數據為網關200在第二網絡對端的多徑tcp網關的原始套接字接收的tcp包加上該對端的nat協議添加的網關ip包頭,該ip包頭的目的地址為網關200的虛擬網卡240的ip地址。
[0142]
示例地,如果網關100是圖1中網關30,則多徑tcp包是在圖1的網關50中生成的;如果網關100是圖1中網關50,則多徑tcp包是在圖1的網關30中生成的。
[0143]
s6240:nat協議棧232把第二應用數據中的目標ip地址換算為第一網絡中相應的目的ip地址,獲得第四ip包。
[0144]
s6250:虛擬網卡240從隧道應用模塊230接收第四ip包,
[0145]
s6260:虛擬控制臺220把第四ip包從虛擬網卡240轉發至原始套接字210。
[0146]
s6270:原始套接字210向第一網絡發送第四ip包。
[0147]
圖6c示出了多徑tcp連接建立流程,包括步驟s6310至s6350。
[0148]
多徑tcp連接建立在一種多徑tcp網關實施例二所述網關上,每個網關都可以配置成多徑tcp的客戶端或伺服器,發起連接的網關為多徑tcp客戶端,為了便於描述,以第一網關被配置多徑tcp和第二網關被配置成多徑tcp伺服器。
[0149]
s6310:在第一網關中配置虛擬網卡tap的虛擬ip地址。
[0150]
其中,為了便於描述,該地址為示例地為10.0.1.2。
[0151]
s6320:在第一網關中啟動隧道應用模塊、原始套接字和虛擬控制臺,並配置本網關為多徑tcp客戶端mptcp-client,設置其相應的多徑tcp伺服器名字為mptcp-server。
[0152]
s6330:在第二網關中配置虛擬網卡tap的虛擬ip地址。
[0153]
其中,為了便於描述,該地址為示例地為10.0.1.3。
[0154]
s6340:在第二網關中啟動隧道應用模塊、原始套接字和虛擬控制臺,並配置本網關為並多徑tcp伺服器mptcp-server,等待多徑tcp客戶端mptcp-client的連接。
[0155]
s6350:多徑tcp客戶端mptcp-client申請與多徑tcp伺服器mptcp-server建立連接,通過雙方握手流程建立多徑tcp連接。
[0156]
其中,當所有多徑tcp連接建立好之後,第一網關通過10.0.1.2發送到10.0.1.3的數據會在第一網關的隧道應用模塊封裝為多徑tcp包通過多條路徑發送到第二網關。
[0157]
本發明實施例還提供了一種計算設備,下面圖7詳細介紹。
[0158]
該計算設備700包括,處理器710、存儲器720、通信接口730、總線740。
[0159]
應理解,該圖所示的計算設備700中的通信接口730可以用於與其他設備之間進行通信。
[0160]
其中,該處理器710可以與存儲器720連接。該存儲器720可以用於存儲該程序代碼和數據。因此,該存儲器720可以是處理器710內部的存儲單元,也可以是與處理器710獨立的外部存儲單元,還可以是包括處理器710內部的存儲單元和與處理器710獨立的外部存儲單元的部件。
[0161]
可選的,計算設備700還可以包括總線740。其中,存儲器720、通信接口730可以通過總線740與處理器710連接。總線740可以是外設部件互連標準(peripheral component interconnect,pci)總線或擴展工業標準結構(efstended industry standard architecture,eisa)總線等。所述總線740可以分為地址總線、數據總線、控制總線等。為便於表示,該圖中僅用一條線表示,但並不表示僅有一根總線或一種類型的總線。
[0162]
應理解,在本發明實施例中,該處理器710可以採用中央處理單元(central processing unit,cpu)。該處理器還可以是其它通用處理器、數位訊號處理器(digital signal processor,dsp)、專用集成電路(application specific integrated circuit,asic)、現成可編程門陣列(field programmable gate array,fpga)或者其它可編程邏輯器件、分立門或者電晶體邏輯器件、分立硬體組件等。通用處理器可以是微處理器或者該處理器也可以是任何常規的處理器等。或者該處理器710採用一個或多個集成電路,用於執行相關程序,以實現本發明實施例所提供的技術方案。
[0163]
該存儲器720可以包括只讀存儲器和隨機存取存儲器,並向處理器710提供指令和數據。處理器710的一部分還可以包括非易失性隨機存取存儲器。例如,處理器710還可以存
儲設備類型的信息。
[0164]
在計算設備700運行時,所述處理器710執行所述存儲器720中的計算機執行指令執行各方法實施例的操作步驟。
[0165]
應理解,根據本發明實施例的計算設備700可以對應於執行根據本發明各實施例的方法中的相應主體,並且計算設備700中的各個模塊的上述和其它操作和/或功能分別為了實現本方法實施例各方法的相應流程,為了簡潔,在此不再贅述。
[0166]
本領域普通技術人員可以意識到,結合本文中所公開的實施例描述的各示例的單元及算法步驟,能夠以電子硬體、或者計算機軟體和電子硬體的結合來實現。這些功能究竟以硬體還是軟體方式來執行,取決於技術方案的特定應用和設計約束條件。專業技術人員可以對每個特定的應用來使用不同方法來實現所描述的功能,但是這種實現不應認為超出本發明的範圍。
[0167]
所屬領域的技術人員可以清楚地了解到,為描述的方便和簡潔,上述描述的系統、裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
[0168]
在本發明所提供的幾個實施例中,應該理解到,所揭露的系統、裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或組件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
[0169]
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分布到多個網絡單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本方法實施例方案的目的。
[0170]
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。
[0171]
所述功能如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個計算機可讀取存儲介質中。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的部分可以以軟體產品的形式體現出來,該計算機軟體產品存儲在一個存儲介質中,包括若干指令用以使得一臺計算機設備(可以是個人計算機,伺服器,或者網絡設備等)執行本發明各個實施例所述解碼方法的全部或部分步驟。而前述的存儲介質包括,u盤、移動硬碟、只讀存儲器(read-only memory,rom)、隨機存取存儲器(random access memory,ram)、磁碟或者光碟等各種可以存儲程序代碼的介質。
[0172]
本發明實施例還提供了一種計算機可讀存儲介質,其上存儲有電腦程式,該程序被處理器執行時用於執行各方法實施例的操作步驟。
[0173]
本發明實施例的計算機存儲介質,可以採用一個或多個計算機可讀的介質的任意組合。計算機可讀介質可以是計算機可讀信號介質或者計算機可讀存儲介質。計算機可讀存儲介質例如可以是,但不限於,電、磁、光、電磁、紅外線、或半導體的系統、裝置或器件,或者任意以上的組合。計算機可讀存儲介質的更具體的例子(非窮舉的列表)包括,具有一個或多個導線的電連接、可攜式計算機磁碟、硬碟、隨機存取存儲器(ram)、只讀存儲器(rom)、
可擦式可編程只讀存儲器(eprom或快閃記憶體)、光纖、可攜式緊湊磁碟只讀存儲器(cd-rom)、光存儲器件、磁存儲器件、或者上述的任意合適的組合。在本文件中,計算機可讀存儲介質可以是任何包含或存儲程序的有形介質,該程序可以被指令執行系統、裝置或者器件使用或者與其結合使用。
[0174]
計算機可讀的信號介質可以包括在基帶中或者作為載波一部分傳播的數據信號,其中承載了計算機可讀的程序代碼。這種傳播的數據信號可以採用多種形式,包括但不限於電磁信號、光信號或上述的任意合適的組合。計算機可讀的信號介質還可以是計算機可讀存儲介質以外的任何計算機可讀介質,該計算機可讀介質可以發送、傳播或者傳輸用於由指令執行系統、裝置或者器件使用或者與其結合使用的程序。
[0175]
計算機可讀介質上包含的程序代碼可以用任何適當的介質傳輸,包括、但不限於無線、電線、光纜、rf等等,或者上述的任意合適的組合。
[0176]
可以以一種或多種程序設計語言或其組合來編寫用於執行本發明操作的電腦程式代碼,所述程序設計語言包括面向對象的程序設計語言—諸如java、smalltalk、c++,還包括常規的過程式程序設計語言—諸如「c」語言或類似的程序設計語言。程序代碼可以完全地在用戶計算機上執行、部分地在用戶計算機上執行、作為一個獨立的軟體包執行、部分在用戶計算機上部分在遠程計算機上執行、或者完全在遠程計算機或伺服器上執行。在涉及遠程計算機的情形中,遠程計算機可以通過任意種類的網絡,包括區域網(lan)或廣域網(wan),連接到用戶計算機,或者,可以連接到外部計算機(例如利用網際網路服務提供商來通過網際網路連接)。
[0177]
注意,上述僅為本發明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發明不限於這裡所述特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發明的保護範圍。因此,雖然通過以上實施例對本發明進行了較為詳細的說明,但是本發明不僅僅限於以上實施例,在不脫離本發明構思的情況下,還可以包括更多其他等效實施例,均屬於本發明保護範疇。

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀