欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于創(chuàng)建數(shù)據(jù)分組的子流的方法與流程

文檔序號(hào):11637146閱讀:503來源:國(guó)知局
用于創(chuàng)建數(shù)據(jù)分組的子流的方法與流程

本發(fā)明涉及用于使用適于多路徑通信模式的傳輸協(xié)議來創(chuàng)建補(bǔ)充數(shù)據(jù)分組的子流作為網(wǎng)絡(luò)連接中的數(shù)據(jù)分組的現(xiàn)有子流的補(bǔ)充的方法和裝置。

近幾十年來,通信網(wǎng)絡(luò)的應(yīng)用快速增加,首先是有線網(wǎng)絡(luò)的應(yīng)用快速增加,接著最近是無線網(wǎng)絡(luò)的應(yīng)用快速增加。很快,它們自己就感受到需要進(jìn)行可靠通信。在九十年代初,提出了確保傳送可靠性的傳送協(xié)議。該協(xié)議(被稱為tcp(rfc-793,傳輸控制協(xié)議))提出了許多可靠性機(jī)制。在這些可靠性機(jī)制之中,存在使用同一通信網(wǎng)絡(luò)提供各種應(yīng)用之間的合理帶寬共享的擁堵控制機(jī)制和確??煽總鬏斔l(fā)送的每個(gè)數(shù)據(jù)的誤差控制機(jī)制。以有序的一系列分組的形式發(fā)送數(shù)據(jù),所發(fā)送的數(shù)據(jù)的無序接收被誤差控制機(jī)制識(shí)別為傳送誤差,每個(gè)傳送誤差致使擁堵控制機(jī)制的反應(yīng),從而通常導(dǎo)致數(shù)據(jù)傳送速率減小。tcp協(xié)議大范圍遍布于網(wǎng)絡(luò),以致于該協(xié)議現(xiàn)在被視為是確保通信網(wǎng)絡(luò)的全局穩(wěn)定性所必需的。

在定義tcp協(xié)議時(shí),考慮在其創(chuàng)建時(shí)存在的應(yīng)用。tcp協(xié)議因此既沒有考慮到移動(dòng)設(shè)備上新近出現(xiàn)的通信應(yīng)用,也沒有考慮以下事實(shí):所述相同設(shè)備可按照多路徑通信模式在多個(gè)通信路徑(諸如,有線鏈路(以太網(wǎng),ieee1394)和/或無線鏈路(wi-fi、3g、4g、bluetooth))上同時(shí)通信,每個(gè)路徑都與其特定的ip地址(rfc791:互聯(lián)網(wǎng)協(xié)議)關(guān)聯(lián)。tcp協(xié)議機(jī)制的可靠性不適于多路徑通信模式,因?yàn)槎鄠€(gè)路徑上的該通信模式可致使無序接收分組,這將被tcp可靠性機(jī)制錯(cuò)誤地解釋為傳送誤差。

近來,指定使通信設(shè)備得益于多路徑通信模式的新協(xié)議。被稱為mptcp(rfc-6824,多路徑tcp)的該協(xié)議可被視為tcp協(xié)議的發(fā)展。在定義mptcp協(xié)議時(shí),考慮兩個(gè)主要要求:與應(yīng)用的兼容性和與網(wǎng)絡(luò)的兼容性。

應(yīng)用的兼容性意指,用tcp協(xié)議起作用的應(yīng)用必須能夠在不進(jìn)行修改的情況下用mptcp協(xié)議起作用。

與網(wǎng)絡(luò)的兼容性意指,mptcp協(xié)議必須能夠在tcp所作用于的任何網(wǎng)絡(luò)路徑上起作用。多個(gè)網(wǎng)絡(luò)路徑包括諸如網(wǎng)絡(luò)地址翻譯器(nat)、防火墻、代理、網(wǎng)關(guān)等的中間網(wǎng)絡(luò)組件(inc)(“中間件(middlebox)”)。inc可處于lan(局域網(wǎng))型的局域網(wǎng)中或wan(廣域網(wǎng))型的擴(kuò)展網(wǎng)絡(luò)中。不同于路由器,當(dāng)tcp業(yè)務(wù)經(jīng)過inc時(shí),inc能夠識(shí)別tcp業(yè)務(wù)。這個(gè)認(rèn)知使inc能夠向tcp業(yè)務(wù)應(yīng)用諸如硬件加速器通常所使用的加速處理或傳輸機(jī)制的特定處理操作。mptcp協(xié)議必須能夠受益于與tcp協(xié)議相同的加速處理或傳輸機(jī)制。

mptcp協(xié)議受到某些限制。例如,mptcp協(xié)議的一種特性是,它要求第一網(wǎng)絡(luò)單元和第二網(wǎng)絡(luò)單元,將在下文中將第一網(wǎng)絡(luò)單元稱為“源”,將在下文中將第二網(wǎng)絡(luò)單元稱為“接收器”,源和接收器與同一連接關(guān)聯(lián),均支持mptcp協(xié)議。例如,當(dāng)實(shí)現(xiàn)mptcp協(xié)議的源想要與不知曉mptcp協(xié)議而例如僅知曉tcp協(xié)議的接收器通信時(shí),此約束可能限制mptcp協(xié)議的使用。

此外,當(dāng)連接源和接收器的網(wǎng)絡(luò)由從頭到尾平行的多個(gè)路徑組成時(shí),mptcp協(xié)議特別適用。當(dāng)連接源和接收器的網(wǎng)絡(luò)的一部分由單個(gè)路徑組成時(shí),mptcp協(xié)議的效率不太高。

已經(jīng)提出了用于克服以上約束的各種解決方案。例如,當(dāng)與mptcp協(xié)議兼容的、連接源和接收器的網(wǎng)絡(luò)的至少一部分由單個(gè)路徑組成時(shí),第一解決方案包括在單個(gè)路徑組成的網(wǎng)絡(luò)的所述一部分上將mptcp連接的tcp子流(在下文中被稱為“mptcp子流”)封裝在單個(gè)流中。然后,用諸如tcp的單路徑傳輸協(xié)議來管理單個(gè)流,封裝在該單個(gè)流中的mptcp子流被視為單個(gè)流的數(shù)據(jù)。該第一解決方案通常被視為在計(jì)算方面昂貴,而且在存儲(chǔ)器使用方面也昂貴。這是因?yàn)?,它要求首先封裝每個(gè)mptcp子流的每個(gè)分組,其次存儲(chǔ)所有封裝的mptcp子流的每個(gè)分組,只要封裝協(xié)議的誤差檢查機(jī)制沒有檢查到事實(shí)上已經(jīng)接收到分組。另外,單個(gè)流中的分組丟失通常致使封裝協(xié)議的擁堵控制機(jī)制的全局反應(yīng),進(jìn)而致使所有封裝mptcp子流中的發(fā)送速率降低,而分組丟失可能只影響封裝mptcp子流中的一個(gè)mptcp子流。此外,該解決方案要求將能夠進(jìn)行封裝的至少一個(gè)網(wǎng)絡(luò)單元引入網(wǎng)絡(luò)中??赡茉黾拥氖牵诜庋b期間,能夠進(jìn)行封裝的網(wǎng)絡(luò)單元不使用如同傳統(tǒng)inc一樣的加速處理和傳輸機(jī)制。

第二解決方案允許避免源或接收器與mptcp協(xié)議的不兼容性。該第二解決方案包括在網(wǎng)絡(luò)中插入諸如inc的中間網(wǎng)絡(luò)單元,該中間網(wǎng)絡(luò)單元能夠提供諸如例如mptcp連接的多路徑連接和諸如例如tcp或udp連接的至少一個(gè)單路徑連接之間的中繼。能夠提供mptcp連接和至少一個(gè)tcp連接之間的中繼的inc被稱為術(shù)語“tcp/mptcp中繼器”。tcp/mptcp中繼器能夠使tcp連接的tcp流與mptcp流匹配,tcp連接的tcp流在下文中被簡(jiǎn)稱為“tcp流”。因此,tcp/mptcp中繼器使得使用mptcp協(xié)議的源(或分別地,接收器)(在下文中應(yīng)當(dāng)被稱為“tptcp源(或分別地,接收器)”)與使用tcp協(xié)議的接收器(或分別地,源)(在下文中應(yīng)當(dāng)被稱為“tcp接收器(或分別地,源)”)通信。當(dāng)tcp/mptcp中繼器接收到源自mptcp源的mptcp子流的分組(在下文中應(yīng)當(dāng)被稱為“mptcp分組”)時(shí),中繼器提取mptcp分組中包含的數(shù)據(jù),將它們插入tcp流的分組(在下文中應(yīng)當(dāng)被稱為“tcp分組”)中,并且在tcp流中在tcp接收器的方向上發(fā)送tcp分組。當(dāng)tcp/mptcp中繼器接收到源自tcp源的tcp分組時(shí),中繼器提取tcp分組中包含的數(shù)據(jù),將這些數(shù)據(jù)插入mptcp分組中,并且在mptcp子流中在mptcp接收器的方向上發(fā)送mptcp分組。

該解決方案的主要不足是要求在網(wǎng)絡(luò)中安裝tcp/mptcp中繼器。另外,這些中繼器不使用如同傳統(tǒng)inc一樣的處理和傳輸加速。

使用mptcp協(xié)議包括三個(gè)主要階段:

●建立連接的階段,

●在所建立的連接的背景下傳輸數(shù)據(jù)分組的階段,以及

●終止連接的階段。

mptcp連接的建立開始于被稱為“三次握手”的過程,該過程包括順序?qū)崿F(xiàn)的以下步驟:

●由源在接收器的方向上發(fā)送被稱為“syn分組”的源同步分組,

●由接收器在源的方向上發(fā)送被稱為“syn/ack分組”的接收器同步分組,該分組還提供關(guān)于源同步分組(即,syn分組)的確認(rèn),以及

●由源在接收器的方向上發(fā)送確認(rèn)目的地同步分組(即,syn/ack分組)的分組(被稱為“ack分組”)。

當(dāng)接收器接收到ack分組時(shí),建立連接。在mptcp連接的背景下發(fā)送的每個(gè)分組在mptcp子流中被發(fā)送。由每個(gè)在連接建立階段期間定義的連接方向的五元組(quintuplet)識(shí)別mptcp子流。在源到接收器(或分別地,接收器到源)的方向上,該五元組包括源ip地址和接收器ip地址、源端口號(hào)、接收器端口號(hào)和接收器ip地址的標(biāo)識(shí)符(或分別地,源地址的標(biāo)識(shí)符)。下文中,為了進(jìn)行簡(jiǎn)化,應(yīng)當(dāng)考慮通過包括源ip地址、接收器ip地址、源端口號(hào)、接收器端口號(hào)、接收器ip地址的標(biāo)識(shí)符和源ip地址的標(biāo)識(shí)符的六元組來識(shí)別mptop子流。應(yīng)該注意,源ip地址的標(biāo)識(shí)符和接收器ip地址的標(biāo)識(shí)符使源和接收器能夠在網(wǎng)絡(luò)中存在網(wǎng)絡(luò)地址翻譯器nat時(shí)找到源和接收器ip地址的值。

數(shù)據(jù)分組傳輸階段使用在連接建立階段期間定義的ip地址和端口號(hào)。該階段完全得益于inc中的加速機(jī)制。

在終止連接的階段期間,通過在源和接收器之間交換被稱為“rst”分組的“重置”型的分組,或者更均勻地交換下文中被稱為“fin分組”的“fin”型的分組,突然地終止連接。

然而,根據(jù)tcp協(xié)議的連接可以與僅一個(gè)數(shù)據(jù)流關(guān)聯(lián),根據(jù)mptcp協(xié)議的連接可包括多個(gè)mptcp子流。使用mptcp連接的數(shù)據(jù)傳輸應(yīng)用隨后可在任何時(shí)間使用mptcp子流中的任一個(gè)。

在多個(gè)步驟中創(chuàng)建包括多個(gè)mptcp子流的mptcp連接,這多個(gè)步驟包括創(chuàng)建初始子流并隨后創(chuàng)建至少一個(gè)附加子流。

圖1示意性地示出在創(chuàng)建包括初始mptcp子流和附加mptcp子流的mptcp連接期間使用mptcp協(xié)議的示例。該實(shí)施方式發(fā)生在包括四個(gè)inc1002至1005的網(wǎng)絡(luò)以及與mptcp協(xié)議兼容的第一網(wǎng)絡(luò)單元1001和第二網(wǎng)絡(luò)單元1006中。網(wǎng)絡(luò)單元1001和1006可交替地實(shí)現(xiàn)源或接收器的作用。下文中,集中于以下情況:網(wǎng)絡(luò)單元1001實(shí)現(xiàn)源的作用,而網(wǎng)絡(luò)單元1006實(shí)現(xiàn)接收器的作用。然而,下文中描述的所有方法是可逆的,并且適于網(wǎng)絡(luò)單元1001實(shí)現(xiàn)源的作用而網(wǎng)絡(luò)單元1006實(shí)現(xiàn)源的作用的情況。網(wǎng)絡(luò)單元1001隨后被稱為源1001,而網(wǎng)絡(luò)單元1006被稱為源1006。源1001處于lan中,被稱為“源lan”,包括源1001和inc1002。接收器1006處于lan中,被稱為“接收器lan”,包括接收器1006和inc1005。這兩個(gè)lan連接到包括inc1003和1004的wan。在建立mptcp連接的階段期間,創(chuàng)建初始mptcp子流。創(chuàng)建初始mptcp子流使用三次握手110、111和112,在這三次握手中,syn、syn/ack和ack分組包括mp_capable型報(bào)頭。從mptcp協(xié)議的觀點(diǎn)來看,當(dāng)創(chuàng)建初始mptcp子流時(shí),報(bào)頭mp_capable必須絕對(duì)地位于syn、syn/ack和ack分組中。然而,接收包含mp_capable報(bào)頭的分組的tcp接收器將不能夠解釋mp_capable報(bào)頭并且將忽略該報(bào)頭。包含mp_capable報(bào)頭的分組的交換首先允許確保源和接收器可實(shí)現(xiàn)mptcp協(xié)議,其次創(chuàng)建初始子流。

在通過實(shí)現(xiàn)其中syn、syn/ack和ack分組包括mp_join型報(bào)頭的三次握手過程120、121和122來創(chuàng)建初始子流之后,創(chuàng)建附加子流。從mptcp協(xié)議的觀點(diǎn)來看,當(dāng)創(chuàng)建了附加子流時(shí),mp_join報(bào)頭必須絕對(duì)地處于syn/ack和ack分組中。然而,接收包含mp_join報(bào)頭的分組的tcp接收器將不能夠解釋mp_join報(bào)頭并且將忽略該報(bào)頭。

圖1中的示例實(shí)施方式描述了創(chuàng)建單個(gè)附加mptcp子流。可根據(jù)源和接收器上可用的ip地址的數(shù)量來創(chuàng)建其它附加mptcp子流。

根據(jù)可用于mptcp連接的傳送路徑的可用性,附加mptcp子流的創(chuàng)建可以是動(dòng)態(tài)的。

每個(gè)mptcp子流與對(duì)于它特定的六元組關(guān)聯(lián)。

為了考慮多路徑背景的特殊性,已經(jīng)改編了tcp誤差檢驗(yàn)和擁堵控制機(jī)制。

如上所見,mptcp協(xié)議適于新通信路徑的打開(open)或現(xiàn)有通信路徑的關(guān)閉的動(dòng)態(tài)管理。然而,這些路徑必須是首尾相連的,也就是說,從源到接收器。圖2a示意性地示出通過mptcp協(xié)議管理源101和接收器108之間的通信的通信網(wǎng)絡(luò)100的示例。通信網(wǎng)絡(luò)100包括編號(hào)為102至107的inc型的六個(gè)節(jié)點(diǎn)、與mptcp協(xié)議兼容的源101和與mptcp兼容的接收器108。源101和節(jié)點(diǎn)102屬于第一lan,第一lan被稱為源lan。接收器108和節(jié)點(diǎn)107屬于第二lan,第二lan被稱為接收lan。節(jié)點(diǎn)103至106屬于wan。源101能夠使用mptcp連接通過四個(gè)不同路徑與接收器108通信。被表示為tcpid0/0的初始mptcp子流使用第一路徑,并且被表示為tcpid1/1、tcpid2/2和tcpid3/3的三個(gè)附加mptcp子流使用剩余三個(gè)路徑。在符號(hào)tcpidi/j中,下標(biāo)i/j指示mptcp子流使用源地址標(biāo)識(shí)符(地址id)i和接收器地址標(biāo)識(shí)符j。

諸如例如mptcp協(xié)議的適于多路徑通信模式的傳輸協(xié)議不能管理網(wǎng)絡(luò)中的新中間通信路徑的打開,新中間通信路徑被定義為inc和接收器之間的或兩個(gè)inc之間的路徑。

圖2b重復(fù)關(guān)于圖2a描述的通信網(wǎng)絡(luò)100,并且例示了對(duì)當(dāng)前定義的mptcp協(xié)議的某些限制。在圖2b中,wan型的新中間路徑109在mptcp連接期間打開。mptcp協(xié)議不允許在mptcp連接期間檢測(cè)中間路徑的打開,甚至也不允許使用該新路徑。因此,打開中間路徑109(這有可能使源101能夠以較高速率與接收器108通信)事實(shí)上沒有帶來有益效果。

本發(fā)明解決的問題由以下組成:使得使用適于多路徑通信模式的傳輸協(xié)議來實(shí)現(xiàn)連接的應(yīng)用能夠使用在連接期間已經(jīng)出現(xiàn)的一個(gè)或多個(gè)中間路徑。

為此目的,根據(jù)第一方面,本發(fā)明涉及一種用于使用適于多路徑通信模式的傳輸協(xié)議來創(chuàng)建補(bǔ)充數(shù)據(jù)分組子流作為網(wǎng)絡(luò)連接中的現(xiàn)有數(shù)據(jù)分組子流的補(bǔ)充的方法,所述網(wǎng)絡(luò)連接被稱為多路徑網(wǎng)絡(luò)連接,所述多路徑網(wǎng)絡(luò)連接在包括多個(gè)網(wǎng)絡(luò)單元的通信網(wǎng)絡(luò)中實(shí)現(xiàn),所述多個(gè)網(wǎng)絡(luò)單元中的第一網(wǎng)絡(luò)單元使用連接集合,所述連接集合包括用于經(jīng)由所述多個(gè)網(wǎng)絡(luò)單元中的第三網(wǎng)絡(luò)單元與所述多個(gè)網(wǎng)絡(luò)單元中的第二網(wǎng)絡(luò)單元通信的所述多路徑網(wǎng)絡(luò)連接,所述第三網(wǎng)絡(luò)單元被稱為中間網(wǎng)絡(luò)組件。在打開從所述中間網(wǎng)絡(luò)組件并且在所述第二網(wǎng)絡(luò)單元的方向上的中間通信路徑之后,所述中間網(wǎng)絡(luò)組件實(shí)現(xiàn)以下步驟:獲得意圖用于所述第一或第二網(wǎng)絡(luò)單元并且與所述傳輸協(xié)議兼容的分組;創(chuàng)建第一類型的報(bào)頭,所述第一類型的報(bào)頭表示創(chuàng)建所述補(bǔ)充數(shù)據(jù)分組子流的請(qǐng)求,所述補(bǔ)充數(shù)據(jù)分組子流意圖在創(chuàng)建所述補(bǔ)充數(shù)據(jù)分組子流之后,在數(shù)據(jù)分組傳遞階段中使用中間通信路徑;將所述第一類型的所述報(bào)頭插入所述分組中;在所述目的地的方向上發(fā)送所述分組,以致使由所述第一或第二網(wǎng)絡(luò)單元發(fā)起在所述多路徑網(wǎng)絡(luò)連接的背景下創(chuàng)建所述補(bǔ)充數(shù)據(jù)分組子流的過程。

根據(jù)一個(gè)實(shí)施方式,對(duì)于在所述多路徑網(wǎng)絡(luò)連接的背景下創(chuàng)建的每個(gè)子流,所述中間網(wǎng)絡(luò)組件使用所創(chuàng)建的子流中的至少一個(gè)向在數(shù)據(jù)分組傳遞階段期間發(fā)送的每個(gè)分組應(yīng)用加速處理過程,并且所述中間網(wǎng)絡(luò)組件中斷針對(duì)所創(chuàng)建的子流中的至少一個(gè)的加速處理過程,以允許獲得其中將插入所述第一類型的報(bào)頭的分組并且發(fā)送其中已經(jīng)插入所述第一類型的報(bào)頭的分組。

根據(jù)一個(gè)實(shí)施方式,用于創(chuàng)建所述補(bǔ)充數(shù)據(jù)分組子流的過程包括在所述多個(gè)網(wǎng)絡(luò)單元中的兩個(gè)網(wǎng)絡(luò)單元之間實(shí)現(xiàn)的三次握手過程,所述三次握手過程包括:創(chuàng)建第一同步分組并且經(jīng)由所述中間網(wǎng)絡(luò)組件在所述第二網(wǎng)絡(luò)單元的方向上發(fā)送第一同步分組的第一步驟;創(chuàng)建第二同步分組并且經(jīng)由所述中間網(wǎng)絡(luò)組件在所述第一網(wǎng)絡(luò)單元的方向上發(fā)送所述第二同步分組的第二步驟,創(chuàng)建第二同步分組并且經(jīng)由所述中間網(wǎng)絡(luò)組件在所述第一網(wǎng)絡(luò)單元的方向上發(fā)送所述第二同步分組的第二步驟,所述第二同步分組能夠確認(rèn)所述第一同步分組的接收;創(chuàng)建接收確認(rèn)分組并且經(jīng)由所述中間網(wǎng)絡(luò)在所述第二網(wǎng)絡(luò)單元的方向上發(fā)送所述接收確認(rèn)分組的第三步驟;在所述三次握手過程期間交換的至少一個(gè)分組包括第二類型的報(bào)頭,所述第二類型的報(bào)頭包括致使在所述數(shù)據(jù)分組傳遞階段期間使用所述中間通信路徑的信息。

根據(jù)一個(gè)實(shí)施方式,所述第一同步分組的所述第二類型的報(bào)頭由所述第一網(wǎng)絡(luò)單元?jiǎng)?chuàng)建并且插入所述第一同步分組中。

根據(jù)一個(gè)實(shí)施方式,所述第一同步分組的所述第二類型的報(bào)頭由所述中間網(wǎng)絡(luò)組件創(chuàng)建并且插入所述第一同步分組中。

根據(jù)一個(gè)實(shí)施方式,在所述第二同步分組被發(fā)送到所述第一網(wǎng)絡(luò)單元之前,由所述中間網(wǎng)絡(luò)組件從所述第二同步分組刪除所述第二同步分組的所述第二類型的報(bào)頭。

根據(jù)一個(gè)實(shí)施方式,由所述中間網(wǎng)絡(luò)組件來創(chuàng)建所述接收確認(rèn)分組的所述第二類型的報(bào)頭并且將其插入所述接收確認(rèn)分組中。

根據(jù)一個(gè)實(shí)施方式,當(dāng)創(chuàng)建所述第一類型的報(bào)頭時(shí),所述中間網(wǎng)絡(luò)組件確定隨機(jī)序列號(hào)并且將所述隨機(jī)序列號(hào)插入所述第一類型的報(bào)頭中,所述隨機(jī)序列號(hào)被所述中間網(wǎng)絡(luò)組件用來識(shí)別在所述三次握手過程的背景下經(jīng)由所述中間網(wǎng)絡(luò)組件在所述源和所述接收器之間交換的分組。

根據(jù)一個(gè)實(shí)施方式,當(dāng)創(chuàng)建所述第一同步分組時(shí),由所述中間網(wǎng)絡(luò)組件確定的所述隨機(jī)序列號(hào)值被復(fù)制到所述第二類型的報(bào)頭的第一字段中,使得當(dāng)所述中間網(wǎng)絡(luò)組件后續(xù)接收到包括其值與所述隨機(jī)序列號(hào)的值相等的第一字段的第一同步分組時(shí),所述中間網(wǎng)絡(luò)組件確定所述第一同步分組與用于創(chuàng)建所述補(bǔ)充數(shù)據(jù)分組子流的過程有關(guān)并且依此推導(dǎo)出必須使用所述中間通信路徑來發(fā)送所述第一同步分組。

根據(jù)一個(gè)實(shí)施方式,當(dāng)創(chuàng)建所述第一同步分組時(shí),由所述第一網(wǎng)絡(luò)單元定義的子流標(biāo)識(shí)符歸因于所述補(bǔ)充子流并且被插入所述第二類型的報(bào)頭的第二字段中,并且在所述中間網(wǎng)絡(luò)組件接收到包括其值與所述隨機(jī)序列號(hào)的值相等的第一字段的第一同步分組時(shí),所述中間網(wǎng)絡(luò)組件將插入所述第二類型的報(bào)頭的所述第二字段中的由所述第一網(wǎng)絡(luò)單元定義的所述子流標(biāo)識(shí)符與所述中間路徑關(guān)聯(lián),使得所述第一網(wǎng)絡(luò)單元在所述數(shù)據(jù)分組傳遞階段期間發(fā)送的每個(gè)分組使用所述中間通信路徑。

根據(jù)一個(gè)實(shí)施方式,當(dāng)創(chuàng)建所述第一同步分組時(shí),所述中間子流與所述第一網(wǎng)絡(luò)的地址關(guān)聯(lián),所述地址已經(jīng)被所述現(xiàn)有數(shù)據(jù)分組子流使用,所述第一網(wǎng)絡(luò)單元的地址的標(biāo)識(shí)符被插入所述第二類型的報(bào)頭的第三字段中,并且當(dāng)所述第一同步分組被所述中間網(wǎng)絡(luò)組件接收時(shí),所述中間網(wǎng)絡(luò)組件將所述第一網(wǎng)絡(luò)單元的地址的標(biāo)識(shí)符與所述子流標(biāo)識(shí)符關(guān)聯(lián)。

根據(jù)一個(gè)實(shí)施方式,當(dāng)創(chuàng)建所述第一類型的報(bào)頭時(shí),所述中間網(wǎng)絡(luò)組件確定與屬于發(fā)送路徑的通信路徑關(guān)聯(lián)的端口號(hào)的第一集合中的第一端口號(hào),所述發(fā)送路徑用于發(fā)送所述第一類型的報(bào)頭被插入其中的所述分組,并且所述中間網(wǎng)絡(luò)組件將表示所述第一端口號(hào)的信息插入所述第一類型的報(bào)頭中,所述信息表示所述中間網(wǎng)絡(luò)組件用來識(shí)別在所述三次握手過程的背景下經(jīng)由所述中間網(wǎng)絡(luò)組件在所述源和所述接收器之間交換的分組的所述第一端口號(hào)。

根據(jù)一個(gè)實(shí)施方式,所述目的地是第一網(wǎng)絡(luò)單元或第二網(wǎng)絡(luò)單元,并且當(dāng)所述目的地是所述第二網(wǎng)絡(luò)單元時(shí),所述第二網(wǎng)絡(luò)單元實(shí)現(xiàn)以下步驟:創(chuàng)建第三類型的報(bào)頭,所述第三類型的報(bào)頭包括表示所述第一端口號(hào)的信息;獲得意圖用于所述第一網(wǎng)絡(luò)單元的分組;將所述第一類型的所述報(bào)頭插入所得到的所述分組中;以及在所述第一網(wǎng)絡(luò)單元的方向上發(fā)送所述分組,使得所述第一網(wǎng)絡(luò)單元使用與所述第一端口號(hào)對(duì)應(yīng)的目的地端口與所述中間網(wǎng)絡(luò)組件通信。

根據(jù)一個(gè)實(shí)施方式,所述第一同步分組被發(fā)送到與所述第一端口號(hào)對(duì)應(yīng)的所述中間網(wǎng)絡(luò)組件的端口,在與所述第一端口號(hào)對(duì)應(yīng)的所述中間網(wǎng)絡(luò)組件的所述端口上接收所述第一同步分組使所述中間網(wǎng)絡(luò)組件能夠確定所述第一同步分組與用于創(chuàng)建所述補(bǔ)充數(shù)據(jù)分組子流的過程相關(guān)并且依此推導(dǎo)出必須使用所述中間通信路徑來發(fā)送所述第一同步分組。

根據(jù)一個(gè)實(shí)施方式,當(dāng)創(chuàng)建插入所述第一同步分組中的所述第二類型的報(bào)頭時(shí),所述中間網(wǎng)絡(luò)組件將表示取決于所述第一端口號(hào)的本地端口號(hào)的第一集合的信息插入所述第二類型的所述報(bào)頭中,所述多個(gè)網(wǎng)絡(luò)單元中的使所述第一同步分組經(jīng)過的每個(gè)網(wǎng)絡(luò)單元定義通過表示包括在由所述第二類型的所述報(bào)頭中接收的本地端口號(hào)的集合的信息表示的端口號(hào)的集合中的本地端口號(hào)的第二集合,并且用表示所述本地端口號(hào)的所述第二集合來替換表示所述第二類型的所述報(bào)頭中包含的本地端口號(hào)的集合的所述信息。

根據(jù)一個(gè)實(shí)施方式,所述接收確認(rèn)分組被發(fā)送到與所述第一端口號(hào)對(duì)應(yīng)的所述中間網(wǎng)絡(luò)組件的端口,在與所述第一端口號(hào)對(duì)應(yīng)的所述中間網(wǎng)絡(luò)組件的所述端口上接收所述接收確認(rèn)分組使所述中間組件能夠確定所述接收確認(rèn)分組與用于創(chuàng)建所述補(bǔ)充數(shù)據(jù)分組子流的過程相關(guān)并且依此推導(dǎo)出必須使用所述中間通信路徑來發(fā)送所述接收確認(rèn)分組。

根據(jù)一個(gè)實(shí)施方式,為了關(guān)閉所述補(bǔ)充子流,所述中間網(wǎng)絡(luò)組件執(zhí)行以下步驟:獲得其目的地是所述第一或第二網(wǎng)絡(luò)單元并且與所述傳送協(xié)議兼容的數(shù)據(jù)分組;創(chuàng)建第四類型的報(bào)頭,所述第四類型的報(bào)頭表示關(guān)閉所述補(bǔ)充數(shù)據(jù)子流的請(qǐng)求,將所述第四類型的報(bào)頭插入所述分組中;在所述目的地的方向上發(fā)送所述分組,以致使由所述第一或第二網(wǎng)絡(luò)單元發(fā)起關(guān)閉所述補(bǔ)充數(shù)據(jù)子流的過程。

根據(jù)一個(gè)實(shí)施方式,當(dāng)創(chuàng)建了所述第四類型的報(bào)頭時(shí),多個(gè)信息條目被插入所述第四類型的報(bào)頭中,所述多個(gè)信息條目包括與所述補(bǔ)充數(shù)據(jù)分組子流關(guān)聯(lián)的地址的標(biāo)識(shí)符、與所述補(bǔ)充數(shù)據(jù)子流關(guān)聯(lián)的子流的標(biāo)識(shí)符和指示哪個(gè)網(wǎng)絡(luò)單元必須發(fā)起用于關(guān)閉所述補(bǔ)充數(shù)據(jù)分組子流的過程的值,使用這多個(gè)信息條目,以關(guān)閉所述第一網(wǎng)絡(luò)單元和所述第二網(wǎng)絡(luò)單元處的補(bǔ)充子流。

根據(jù)一個(gè)實(shí)施方式,當(dāng)創(chuàng)建了所述第四類型的報(bào)頭時(shí),多個(gè)信息條目被插入所述第四類型的報(bào)頭中,所述多個(gè)信息條目包括與所述補(bǔ)充數(shù)據(jù)分組子流關(guān)聯(lián)的地址的標(biāo)識(shí)符、表示第一端口號(hào)的信息和指示哪個(gè)網(wǎng)絡(luò)單元必須發(fā)起用于關(guān)閉所述補(bǔ)充數(shù)據(jù)分組子流的過程的值,使用所述多個(gè)信息條目以關(guān)閉所述第一網(wǎng)絡(luò)單元和所述第二網(wǎng)絡(luò)單元處的補(bǔ)充子流。

根據(jù)一個(gè)實(shí)施方式,所述連接的集合包括單路徑連接,并且所述中間網(wǎng)絡(luò)組件中繼單路徑連接的流中的多路徑連接的子流或者封裝單路徑連接的流中的多路徑連接的子流,所述三次握手過程的所述第一步驟和所述第三步驟和/或所述三次握手過程的所述第二步驟是由中間網(wǎng)絡(luò)組件實(shí)現(xiàn)的。

根據(jù)本發(fā)明的第二方面,本發(fā)明涉及一種能夠使用適于多路徑通信模式的傳輸協(xié)議來創(chuàng)建補(bǔ)充數(shù)據(jù)分組子流作為網(wǎng)絡(luò)連接中的現(xiàn)有數(shù)據(jù)分組子流的補(bǔ)充的中間網(wǎng)絡(luò)組件類型的裝置,所述網(wǎng)絡(luò)連接被稱為多路徑網(wǎng)絡(luò)連接,所述多路徑網(wǎng)絡(luò)連接在包括多個(gè)網(wǎng)絡(luò)單元的通信網(wǎng)絡(luò)中使用,所述多個(gè)網(wǎng)絡(luò)單元中的第一個(gè)網(wǎng)絡(luò)單元使用連接集合,所述連接集合包括經(jīng)由所述裝置與所述多個(gè)網(wǎng)絡(luò)單元中的第二個(gè)網(wǎng)絡(luò)單元通信的所述多路徑網(wǎng)絡(luò)連接。所述裝置包括在打開從所述裝置開始并且在所述第二網(wǎng)絡(luò)單元的方向上的中間通信路徑之后使用的以下裝置:用于獲得意圖用于所述第一或第二網(wǎng)絡(luò)單元并且與所述傳輸協(xié)議兼容的分組的裝置;用于創(chuàng)建第一類型的報(bào)頭的裝置,所述第一類型的報(bào)頭表示創(chuàng)建所述補(bǔ)充數(shù)據(jù)分組子流的請(qǐng)求,所述補(bǔ)充數(shù)據(jù)分組子流意圖用于在創(chuàng)建所述補(bǔ)充數(shù)據(jù)分組子流之后,在數(shù)據(jù)分組傳遞階段中使用中間通信路徑;用于將所述第一類型的所述報(bào)頭插入所述分組中的裝置;用于在所述分組的目的地的方向上發(fā)送所述分組,以致使由所述第一或第二網(wǎng)絡(luò)單元發(fā)起在所述多路徑網(wǎng)絡(luò)連接的背景下創(chuàng)建所述補(bǔ)充數(shù)據(jù)分組子流的過程。

根據(jù)本發(fā)明的第三方面,本發(fā)明涉及一種通信系統(tǒng),所述通信系統(tǒng)包括根據(jù)第二方面所述的中間網(wǎng)絡(luò)組件類型的至少一個(gè)裝置和多個(gè)網(wǎng)絡(luò)單元,所述多個(gè)網(wǎng)絡(luò)單元包括第一網(wǎng)絡(luò)單元和第二網(wǎng)絡(luò)單元,所述第一網(wǎng)絡(luò)單元和所述第二網(wǎng)絡(luò)單元能夠使用適于多路徑通信模式的傳輸協(xié)議利用包括被稱為多路徑網(wǎng)絡(luò)連接的連接的連接集合進(jìn)行通信,所述第一網(wǎng)絡(luò)單元包括在打開從所述中間網(wǎng)絡(luò)組件類型的所述裝置且在所述第二網(wǎng)絡(luò)單元的方向上的所述中間通信路徑之后使用的以下裝置:用于創(chuàng)建第一同步分組并且經(jīng)由所述中間網(wǎng)絡(luò)組件類型的所述裝置在所述第二網(wǎng)絡(luò)單元的方向上發(fā)送第一同步分組的裝置;用于創(chuàng)建接收確認(rèn)分組并且響應(yīng)于源自所述第二網(wǎng)絡(luò)單元的第二同步分組經(jīng)由所述中間網(wǎng)絡(luò)組件類型的所述裝置在所述第二網(wǎng)絡(luò)單元的方向上發(fā)送所述接收確認(rèn)分組的裝置;所述第二網(wǎng)絡(luò)單元包括在打開所述中間通信路徑之后使用的以下裝置:用于創(chuàng)建第二同步分組并且經(jīng)由所述中間網(wǎng)絡(luò)組件類型的所述裝置在所述第一網(wǎng)絡(luò)單元的方向上發(fā)送所述第二同步分組的裝置,所述第二同步分組能夠確認(rèn)所述第一同步分組的接收;至少一個(gè)分組包括第二類型的報(bào)頭,所述第二類型的報(bào)頭包括致使在所述補(bǔ)充數(shù)據(jù)分組子流的背景下在數(shù)據(jù)分組傳遞階段期間使用所述中間通信路徑的信息。

根據(jù)本發(fā)明的第四方面,本發(fā)明涉及一種計(jì)算機(jī)程序產(chǎn)品,所述計(jì)算機(jī)程序產(chǎn)品包含用于由裝置通過所述裝置的處理器實(shí)現(xiàn)根據(jù)第一方面所述的方法的指令。

根據(jù)本發(fā)明的第五方面,本發(fā)明涉及一種存儲(chǔ)裝置,所述存儲(chǔ)裝置存儲(chǔ)包含以下指令的計(jì)算機(jī)程序,當(dāng)所述指令由裝置的處理器執(zhí)行時(shí),由所述裝置實(shí)現(xiàn)根據(jù)第一方面所述的方法。

通過閱讀以下對(duì)示例實(shí)施方式的描述,將更清楚以上提到的本發(fā)明的特征以及其它特征,所述描述是針對(duì)附圖給出的,在其中:

圖1示意性地示出了當(dāng)創(chuàng)建包括初始子流和附加子流的mptcp連接時(shí)的mptcp協(xié)議的實(shí)現(xiàn)方式的示例,

圖2a示意性地示出了通過mptcp協(xié)議來管理源和目的地之間的通信的通信網(wǎng)絡(luò),

圖2b例示了對(duì)當(dāng)前定義的mptcp協(xié)議的某些限制,

圖3示意性地描繪了能夠在源、接收器或中間網(wǎng)絡(luò)組件(inc)中實(shí)現(xiàn)本發(fā)明的裝置,

圖4示意性地例示了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建mptcp子流的方法的示例,mptcp子流包括初始mptcp子流和附加mptcp子流,

圖5示意性地描繪了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中打開新路徑之后創(chuàng)建補(bǔ)充mptcp子流的方法以及隨后實(shí)現(xiàn)根據(jù)本發(fā)明的用于刪除所述補(bǔ)充mptcp子流的方法的示例,

圖6a示意性地描繪了當(dāng)?shù)刂贩g器型(nat)的inc防止創(chuàng)建補(bǔ)充mptcp子流時(shí)在本發(fā)明的背景下實(shí)現(xiàn)的過程,

圖6b示意性地示出了實(shí)現(xiàn)用于刪除鏈接到接收器的同一ip地址的mptcp子流的集合的過程的示例;

圖7a示意性地例示了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建初始mptcp子流的方法的示例,在該網(wǎng)絡(luò)中,能夠?qū)崿F(xiàn)本發(fā)明的源與tcp接收器通信;

圖7b示意性地例示了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建附加mptcp子流的方法的示例,在該網(wǎng)絡(luò)中,能夠?qū)崿F(xiàn)本發(fā)明的源與tcp接收器通信;

圖8示意性地描繪了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中打開新路徑之后創(chuàng)建補(bǔ)充mptcp子流的方法以及隨后實(shí)現(xiàn)根據(jù)本發(fā)明的用于刪除所述補(bǔ)充mptcp子流的方法的示例,在該網(wǎng)絡(luò)中,能夠?qū)崿F(xiàn)本發(fā)明的源與tcp接收器通信,

圖9示意性地描繪了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建初始mptcp子流的方法的示例,在該網(wǎng)絡(luò)中,能夠?qū)崿F(xiàn)mptcp協(xié)議但不能夠?qū)崿F(xiàn)本發(fā)明的源通過實(shí)現(xiàn)本發(fā)明的至少一個(gè)inc與tcp接收器通信,

圖10示意性地描繪了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中打開新中間路徑之后創(chuàng)建補(bǔ)充mptcp子流的方法的示例,在該網(wǎng)絡(luò)中,能夠?qū)崿F(xiàn)mptcp協(xié)議但不能夠?qū)崿F(xiàn)本發(fā)明的源通過實(shí)現(xiàn)本發(fā)明的至少一個(gè)inc與tcp接收器通信,

圖11示意性地描繪了實(shí)現(xiàn)用于在網(wǎng)絡(luò)中刪除補(bǔ)充mptcp子流的方法的示例,該方法由inc發(fā)起,在該網(wǎng)絡(luò)中,能夠?qū)崿F(xiàn)mptcp協(xié)議但不能夠?qū)崿F(xiàn)本發(fā)明的源通過實(shí)現(xiàn)本發(fā)明的至少一個(gè)inc與tcp接收器通信,

圖12a示意性地描繪了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建初始mptcp子流的方法的示例,在該網(wǎng)絡(luò)中,tcp源通過實(shí)現(xiàn)本發(fā)明的inc與tcp接收器通信,實(shí)現(xiàn)本發(fā)明的inc中的兩個(gè)是tcp/mptcp中繼器,

圖12b示意性地描繪了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建附加mptcp子流的方法的示例,在該網(wǎng)絡(luò)中,tcp源通過實(shí)現(xiàn)本發(fā)明的inc與tcp接收器通信,實(shí)現(xiàn)本發(fā)明的inc中的兩個(gè)是tcp/mptcp中繼器,

圖13示意性地描繪了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建mptcp連接的補(bǔ)充mptcp子流的方法的示例,在該網(wǎng)絡(luò)中,tcp源通過實(shí)現(xiàn)本發(fā)明的inc與tcp接收器通信,實(shí)現(xiàn)本發(fā)明的inc中的兩個(gè)是tcp/mptcp中繼器,

圖14a示意性地示出了根據(jù)本發(fā)明的第一實(shí)施方式的包括info_subflow型報(bào)頭的manage_subflow型syn分組報(bào)頭,

圖14b示意性地示出了根據(jù)本發(fā)明的包括info_subflow報(bào)頭的manage_subflow型的syn/ack或ack分組,

圖14c示意性地示出了根據(jù)本發(fā)明修改的syn分組的mp_join報(bào)頭,

圖14d示意性地描繪了根據(jù)本發(fā)明修改的syn/ack或ack分組的mp_join報(bào)頭,

圖14e示意性地示出了根據(jù)本發(fā)明的包括add_subflow報(bào)頭的manage_subflow型報(bào)頭,

圖14f示意性地示出了根據(jù)本發(fā)明的包括remove_subflow報(bào)頭的manage_subflow型報(bào)頭,

圖14g示意性地示出了根據(jù)本發(fā)明的add_addr2型報(bào)頭,

圖14h示意性地示出了根據(jù)本發(fā)明的第二實(shí)施方式的包括info_subflow型子報(bào)頭的manage_subflow型syn分組報(bào)頭,

圖14i示意性地示出了根據(jù)本發(fā)明的remove_addr型報(bào)頭。

采用使用mptcp協(xié)議的應(yīng)用的示例解釋本發(fā)明。然而,本發(fā)明的原理適用于適于多路徑通信模式的任何其它傳輸協(xié)議。

本發(fā)明屬于網(wǎng)絡(luò)通信領(lǐng)域。除了其它之外,根據(jù)本發(fā)明的一種方法使inc能夠分析mptcp連接的子流,以允許在通信網(wǎng)絡(luò)中打開中間路徑(諸如,例如,打開wan中的路徑)的情況下添加或去除新mptcp子流。為了這樣做,根據(jù)本發(fā)明的inc有能力分析mptcp連接的信令,將用于實(shí)現(xiàn)本發(fā)明的報(bào)頭插入經(jīng)過inc的mptcp分組中,或者創(chuàng)建和發(fā)送能夠?qū)崿F(xiàn)本發(fā)明的用于發(fā)送信息的分組。根據(jù)本發(fā)明的方法在下文中被稱為mptcp+方法。

圖3示意性地例示了在諸如源1001的源中或諸如接收器1006的接收器中或諸如inc1002至1005的inc中能夠?qū)崿F(xiàn)本發(fā)明的裝置21的硬件架構(gòu)的示例。通過通信總線215連接的裝置21包括:處理器或cpu(中央處理單元)210;隨機(jī)存取存儲(chǔ)器ram211;只讀存儲(chǔ)器rom212;存儲(chǔ)單元213或諸如sd(安全數(shù)字)卡讀取器或usb(通用串行總線)密鑰讀取器或硬盤hdd(硬盤驅(qū)動(dòng))的存儲(chǔ)介質(zhì)讀取器;用于與其它設(shè)備交換數(shù)據(jù)的至少一個(gè)通信接口214。通信接口214使裝置21能夠接收數(shù)據(jù)分組,發(fā)送數(shù)據(jù)分組,并且就源或接收器而言,通過例如諸如定點(diǎn)裝置的控制裝置(未示出)從用戶接收指令,從而使用戶能夠操縱顯示裝置(未示出)上的圖形界面。

處理器210能夠執(zhí)行從rom212、外部存儲(chǔ)器(未示出)、存儲(chǔ)介質(zhì)、或通信網(wǎng)絡(luò)加載到ram211中的指令。當(dāng)裝置21通電時(shí),處理器210能夠從ram211讀取指令并且執(zhí)行它們。這些指令形成致使處理器210實(shí)現(xiàn)下文中描述的算法和步驟中的全部或一些的計(jì)算機(jī)程序。

在裝置21的特定實(shí)施方式中,裝置21包括用于加速處理數(shù)據(jù)分組(未示出)的裝置。用于加速處理數(shù)據(jù)分組的裝置連接到通信總線215。用于加速處理數(shù)據(jù)分組的裝置能夠通過接口214非??焖俚亟邮蘸桶l(fā)送數(shù)據(jù)分組,而這些數(shù)據(jù)分組不必由處理器210處理。在必要時(shí),并且特別地,如下文中關(guān)于圖5看到的,當(dāng)通過inc來檢測(cè)新中間路徑時(shí),處理器210可啟用或禁用用于加速處理數(shù)據(jù)分組的裝置。當(dāng)禁用數(shù)據(jù)分組處理裝置時(shí),由處理器210按照減速處理模式來處理由裝置接收到的每個(gè)數(shù)據(jù)分組。

因此,下文中描述的算法和步驟中的全部或一些可通過用諸如dsp(數(shù)字信號(hào)處理器)或微控制器的可編程機(jī)器執(zhí)行指令集以軟件形式實(shí)現(xiàn),或者通過用諸如fpga(現(xiàn)場(chǎng)可編程門陣列)或asic(專用集成電路)的機(jī)器或?qū)S媒M件以硬件形式實(shí)現(xiàn)。

當(dāng)網(wǎng)絡(luò)的所有元件(源、inc、接收器)與mptcp+方法兼容時(shí),mptcp+方法的實(shí)現(xiàn)被特別簡(jiǎn)化。關(guān)于圖4、圖5和圖6來描述這種情況。然而,該狀況不是必須的,并且網(wǎng)絡(luò)中的一些元件與mptcp+方法的不兼容性并不妨礙mptcp+方法的實(shí)現(xiàn)。

因此,源和接收器之間的每個(gè)inc不必須與mptcp+方法兼容。網(wǎng)絡(luò)的至少兩個(gè)元件(源、inc、接收器)與mptcp方法兼容就足夠了,并且至少一個(gè)inc支持mptcp+方法就足夠了。理想地,處于與mptcp方法兼容的所述兩個(gè)網(wǎng)絡(luò)元件之間并且具有多個(gè)輸入/輸出接口的任何網(wǎng)絡(luò)元件應(yīng)該支持mptcp+方法,以保證針對(duì)創(chuàng)建附加子流的請(qǐng)求的路線的唯一性。如果情況不是這樣,則當(dāng)請(qǐng)求由inc創(chuàng)建附加子流時(shí)存在時(shí)間延遲(并且在下文中詳細(xì)地描述),雖然如此允許應(yīng)用本發(fā)明。

可以利用與mptcp協(xié)議兼容但與mptcp+方法不兼容的源使用mptcp+方法。這是因?yàn)?,與mptcp+方法兼容的inc能夠通過將源所生成的mptcp數(shù)據(jù)分組插入與mptcp+方法兼容的報(bào)頭中,補(bǔ)償源與mptcp+方法的任何不兼容性。下文中,關(guān)于圖9、圖10和圖11來描述這種情況。

可以利用與mptcp協(xié)議和mptcp+方法都不兼容的源使用mptcp+方法。然而,在這種情況下,必須將源和與mptcp+方法兼容的tcp/mptcp中繼器或與mptcp+方法兼容的mptcp封裝裝置關(guān)聯(lián)。下文中,關(guān)于圖12a、圖12b和圖13來描述這種情況。

對(duì)于接收器,同樣如此??梢岳门cmptcp協(xié)議兼容但與mptcp+方法不兼容的接收器使用mptcp+方法。這是因?yàn)椋cmptcp+方法兼容的inc能夠通過從與mptcp+方法兼容的數(shù)據(jù)分組中刪除與mptcp+方法兼容的報(bào)頭,補(bǔ)償接收器與mptcp+方法的任何不兼容性。關(guān)于圖9、圖10和圖11來描述這種情況。

可以利用與mptcp協(xié)議和mptcp+方法均不兼容的接收器使用mptcp+方法。然而,在這種情況下,必須將接收器和與mptcp+方法兼容的tcp/mptcp中繼器或與mptcp+方法兼容的mptcp封裝裝置關(guān)聯(lián)。下文中,關(guān)于圖7a、圖7b和圖8來描述這種情況。

圖4示意性地例示了實(shí)現(xiàn)關(guān)于圖1描述的根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建mptcp連接的子流的方法的示例,子流包括初始子流和附加子流,通過源1001發(fā)起這兩個(gè)創(chuàng)建。源1001、接收器1006和inc1002至1005與mptcp協(xié)議和mptcp+方法兼容。在mptcp+方法的背景下發(fā)生mptcp子流的這兩個(gè)創(chuàng)建。

在關(guān)于步驟401至415描述的第一階段中,在第一路徑上創(chuàng)建由第一個(gè)六元組識(shí)別的mptcp子流。這兩個(gè)地址標(biāo)識(shí)符將例如取值“0”。該第一階段在步驟401中開始創(chuàng)建和發(fā)送具有如關(guān)于圖1描述的傳統(tǒng)報(bào)頭mp_capable和包括子報(bào)頭info_subflow的報(bào)頭manage_subflow的syn分組。報(bào)頭manage_subflow是可被插入mptcp分組中并且允許識(shí)別使用mptcp+方法的報(bào)頭。該報(bào)頭可由多個(gè)子報(bào)頭組成。

圖14a描述了包括由源創(chuàng)建的子報(bào)頭info_subflow的manage_subflow型的syn分組報(bào)頭。為了簡(jiǎn)化起見,包括子報(bào)頭info_subflow的報(bào)頭manage_subflow將在下文中被稱為“報(bào)頭info_subflow”。根據(jù)mptcp協(xié)議中使用的術(shù)語被分別稱為kind(種類)、length(長(zhǎng)度)和subtype(子類型)的傳統(tǒng)mptcp報(bào)頭的字段1400、1401和1402在報(bào)頭info_subflow中被發(fā)現(xiàn)。字段subtype1402取允許識(shí)別報(bào)頭manage_subflow的特定值,例如,十六進(jìn)制的值0x09。報(bào)頭info_subflow允許在使用mptcp+方法創(chuàng)建mptcp連接的階段期間在源1001、接收器1006和inc1002至1005之間交換信息。報(bào)頭info_subflow包括字段1403,字段1403根據(jù)mptcp協(xié)議中使用的術(shù)語被稱為subsubt,例如被編碼成四比特,取允許識(shí)別報(bào)頭info_subflow的特定值,例如,十六進(jìn)制的值0x00。字段subsubt1403之后是字段1404和字段1405,字段1404被稱為sf_id,允許識(shí)別mptcp子流,字段1405被稱為addr_id,允許識(shí)別子流的起始處的源的ip地址。在報(bào)頭manage_subflow的情況下,字段sf_id1404和addr_id1405是例如被編碼成四比特的固定大小字段。可選地,報(bào)頭info_subflow可包含字段1406,字段1406被稱為seq_req,被編碼成例如15比特,從而允許在由inc發(fā)送創(chuàng)建mptcp流的請(qǐng)求時(shí)識(shí)別該請(qǐng)求的序列號(hào)。在圖4中的示例中,由源1001發(fā)送請(qǐng)求。因此,在syn分組中沒有字段seq_req1406。

在步驟401中,報(bào)頭info_subflow的字段sf_id1404和addr_id1405被設(shè)置成“0”。

在步驟402期間,inc1002接收syn分組,分析該分組,以確定動(dòng)作是否是必須的并且在接收器1006的方向上傳播syn分組。在分析包含報(bào)頭mp_capable和報(bào)頭info_subflow的syn分組期間,inc1002恢復(fù)關(guān)于源1001的信息,特別是,源1001的ip地址和源1001的端口號(hào)。如果inc還不具有該信息,則inc將它保存在存儲(chǔ)器中并且將它與源的標(biāo)識(shí)符關(guān)聯(lián)。接下來,inc將關(guān)于當(dāng)前正創(chuàng)建的mptcp子流的信息(特別是從報(bào)頭mp_capable中提取的密鑰、子流標(biāo)識(shí)符和地址標(biāo)識(shí)符)與所保存的信息關(guān)聯(lián)。inc還保存指示源1001與mptcp+方法兼容的信息,這是因?yàn)椴淮嬖趫?bào)頭info_subflow的字段seq_req1406,該字段seq_req1406指示由源1001添加報(bào)頭info_subflow。inc1003、1004和1005分別應(yīng)用與步驟402相同的步驟403、404和405。

在接收到syn分組之后,接收器1006在步驟406期間構(gòu)造具有報(bào)頭mp_capable和報(bào)頭info_subflow的syn/ack分組,并且在源1001的方向上發(fā)送該分組。圖14b描述了info_subflow型的syn/ack分組和ack分組報(bào)頭。分別被稱為kind、length、subtype和subsubt的字段1410、1411、1412和1413與關(guān)于圖14a描述的syn分組的那些字段相同。這些字段之后是被稱為typeoflink的字段1414,字段1414根據(jù)傳輸協(xié)議的傳統(tǒng)術(shù)語例如被編碼成6比特,從而給出關(guān)于第一鏈路的指示。例如,字段typeoflink1414可給出關(guān)于通過該鏈路的傳送時(shí)間的指示、關(guān)于該鏈路的傳送速率的指示、關(guān)于該鏈路的傳送成本的指示等。字段typeoflink1414之后是被稱為a的字段1415和被稱為b的字段1416,從而允許識(shí)別在初始mptcp子流中傳送數(shù)據(jù)期間所使用的加密算法。

在步驟406期間,字段typeoflink1414被設(shè)置成給出關(guān)于第一鏈路的指示的值,并且字段a1415和b1416被分別設(shè)置成允許識(shí)別所使用的加密算法的值。在步驟407中,inc1005分析syn/ack分組,以檢驗(yàn)動(dòng)作是否是必要的并且在源1001的方向上發(fā)送分組。當(dāng)分析包含報(bào)頭mp_capable和報(bào)頭info_subflow的syn/ack分組時(shí),inc1005恢復(fù)關(guān)于接收器1006的信息,該信息包括接收器1006的ip地址和接收器1006的端口號(hào)。如果inc1005還不具有該信息,則inc將它保存在存儲(chǔ)器中并且將它與接收器1006的標(biāo)識(shí)符關(guān)聯(lián)。接下來,inc將關(guān)于正創(chuàng)建的mptcp子流的信息(包括從報(bào)頭mp_capable中提取的密鑰、子流標(biāo)識(shí)符和地址標(biāo)識(shí)符)與所保存的信息關(guān)聯(lián),每個(gè)標(biāo)識(shí)符都取如mptcp協(xié)議所指定的等于“0”的默認(rèn)值。使用密鑰來保護(hù)mptcp補(bǔ)充子流的打開。inc還保存指示接收器1006與mptcp+方法兼容的信息,這可以從報(bào)頭info_subflow中的字段typeoflink1414、a1415和b1416的存在來推導(dǎo)。inc1004、1003和1002分別應(yīng)用與步驟407相同的步驟408、409和410。

在接收到syn/ack分組之后,源1001在步驟411期間構(gòu)造ack分組并且在接收器1006的方向上發(fā)送該ack分組,該分組包含報(bào)頭mp_capable和info_subflow。ack分組的報(bào)頭info_subflow的語法與syn/ack分組的報(bào)頭info_subflow的語法相同。在步驟411期間,從syn/ack分組復(fù)制字段typeoflink1414、a1415和b1416。在步驟412中,inc1002分析ack分組,以檢驗(yàn)動(dòng)作是否是必要的并且在接收器1006的方向上發(fā)送分組。當(dāng)分析ack分組時(shí),inc檢驗(yàn)出關(guān)于連接和初始mptcp子流的所有信息都是一致的。在步驟413、414和415中,inc1003、1004和1005應(yīng)用與步驟412相同的步驟。在接收器1006接收到ack分組之后,打開初始mptcp子流。

在關(guān)于步驟416至430描述的第二階段中,在由第二六元組識(shí)別的第二鏈路上創(chuàng)建附加mptcp子流。應(yīng)該注意,第二六元組的接收器的ip地址可等于第一六元組的接收器的ip地址。該階段在步驟416期間開始由源1001創(chuàng)建包括報(bào)頭mp_join+和報(bào)頭info_subflow的syn分組,隨后發(fā)送。syn分組的報(bào)頭mp_join+類似于syn分組的傳統(tǒng)報(bào)頭mp_join。關(guān)于圖14c描述syn分組的報(bào)頭mp_join+的語法。syn分組的報(bào)頭info_subflow的語法是關(guān)于圖14a描述的語法。

syn分組的報(bào)頭mp_join+包含根據(jù)mptcp協(xié)議的報(bào)頭的典型字段1420、1421、1422,這些字段根據(jù)mptcp協(xié)議的語法被分別稱為kind、length和subtype。字段1422subtype允許識(shí)別報(bào)頭mp_join+。報(bào)頭mp_join+還包括例如被編碼為3比特的被稱為maxsf的字段1423、具有可變大小的被稱為subflow_id的字段1424和具有可變大小的被稱為address_id的字段1425。字段maxsf1423指示分配給字段subflow_id1424和字段address_id1425的比特?cái)?shù),當(dāng)字段maxsf1423被編碼成3位時(shí),比特?cái)?shù)的范圍可從0比特至7比特。字段subflow_id1424允許識(shí)別子流。字段address_id1425允許獨(dú)立于對(duì)應(yīng)ip地址的值識(shí)別創(chuàng)建分組(即,源或目的地)的網(wǎng)絡(luò)裝置的ip地址。即使已經(jīng)在網(wǎng)絡(luò)中由例如地址翻譯裝置修改,字段address_id1425也允許識(shí)別ip地址。應(yīng)該注意,報(bào)頭mp_join+的字段subflow_id1424和字段address_id1425取代如mptcp協(xié)議中定義的報(bào)頭mp_join的字段address_id。此外,報(bào)頭mp_join+包括被稱為“接收器令牌(rt)”的字段1427和被稱為“源隨機(jī)數(shù)(srn)”的字段1428。使用字段rt1427和srn1428來保護(hù)mptcp連接。

在步驟416期間,字段address_id1425被設(shè)置成第二六元組的源的ip地址處的代表值。字段subflow_id1424被設(shè)置成允許表示從第二六元組創(chuàng)建的第一子流的值。例如,字段subflow_id1424取值“0”。當(dāng)創(chuàng)建由源(或分別地,接收器)發(fā)起的附加mptcp子流時(shí),不使用syn分組的報(bào)頭info_subflow的字段sf_id1404和字段addr_id1405。在一個(gè)實(shí)施方式中,這些字段取例如值“0”。

在步驟417期間,inc1002接收syn分組,分析該分組,以確定動(dòng)作是否是必要的并且在接收器1006的方向上傳播syn分組。當(dāng)分析包含報(bào)頭mp_join+和報(bào)頭info_subflow的syn分組時(shí),inc1002恢復(fù)包括源的ip地址和源的端口號(hào)的關(guān)于源的信息。如果inc1002還不具有該信息,則inc將它保存在存儲(chǔ)器中并且將它與源的標(biāo)識(shí)符關(guān)聯(lián)。接下來,inc1002將關(guān)于正創(chuàng)建的附加mptcp子流的信息與所保存的信息關(guān)聯(lián),該關(guān)于正創(chuàng)建的附加mpctcp子流的信息包括接收器令牌和源隨機(jī)數(shù)、從報(bào)頭mp_join+中提取的子流標(biāo)識(shí)符和地址標(biāo)識(shí)符以及密鑰。

當(dāng)在接收到包括報(bào)頭mp_join+的syn分組之前,inc1002已經(jīng)接收到包括報(bào)頭mp_capable的分組(如圖4中的示例中的情況一樣)時(shí),與所保存的信息關(guān)聯(lián)的密鑰是在接收包含報(bào)頭mp_capable的分組的步驟402期間接收的密鑰。

然而,有可能的是,在inc接收到包含報(bào)頭mp_join+的syn分組之前,未接收到包含報(bào)頭mp_capable的syn分組。當(dāng)包含選項(xiàng)mp_capable的syn分組遵循網(wǎng)絡(luò)中的第一路線而包含選項(xiàng)mp_join+的syn分組遵循與第一路線不同的第二路線時(shí),會(huì)出現(xiàn)這種情況。在這種情況下,由inc從接收器令牌和/或源隨機(jī)數(shù)來構(gòu)造與所保存的信息關(guān)聯(lián)的密鑰。

inc1003、1004和1005分別應(yīng)用與步驟417相同的步驟418、419和420。

在接收到syn分組之后,接收器1006在步驟421中構(gòu)造具有報(bào)頭mp_join+和報(bào)頭info_subflow的syn/ack分組,并且在源1001的方向上發(fā)送該分組。關(guān)于圖14d描述mp_join+型的syn/ack和ack分組報(bào)頭。

syn/ack或ack分組的報(bào)頭mp_join+包括字段1430、1431、1432、1433、1434和1435,字段1430、1431、1432、1433、1434和1435被分別稱為與字段1420、1421、1422、1423、1424和1425分別相同的kind、length、subtype、maxsf、subflowid和addressid,與關(guān)于圖14c描述的syn分組的報(bào)頭mp_join+具有相同名稱。此外,報(bào)頭mp_join+包括在mptcp協(xié)議中被已知為hmac的被稱為“sourcesecuritynumber”(源安全編號(hào))的字段1436和被稱為“sourcerandomnumber(srn)”(源隨機(jī)數(shù)(srn))的字段1437。使用字段hmac1436和srn1437來保護(hù)mptcp連接。從在包括報(bào)頭mp_capable或報(bào)頭mp_join+的分組的交換期間在源1001和接收器1006之間交換的密鑰、接收器令牌和/或源隨機(jī)數(shù)信息來計(jì)算字段hmac1436。

syn/ack分組的報(bào)頭info_subflow的語法是關(guān)于圖14b描述的語法。

在步驟421期間,字段address_id1435處于與第二六元組的接收器ip地址對(duì)應(yīng)的值,字段subflow_id1434處于值“0”以表示針對(duì)第二六元組創(chuàng)建的第一子流,報(bào)頭info_subflow的字段typeoflink1414被設(shè)置成給出關(guān)于第二路徑的指示的值并且字段a1415和b1416被分別設(shè)置成允許識(shí)別所使用的加密算法的值。

在步驟422中,inc1005分析syn/ack分組,以檢驗(yàn)動(dòng)作是否是必要的并且在源1001的方向上發(fā)送分組。當(dāng)分析包含報(bào)頭mp_join+和報(bào)頭info_subflow的syn/ack分組時(shí),inc1005恢復(fù)關(guān)于接收器的信息,該信息包括接收器的ip地址和接收器的端口號(hào)。如果inc1005還不具有該信息,則inc將它保存在存儲(chǔ)器中。接下來,inc1005將關(guān)于正創(chuàng)建的mptcp子流的信息(包括從syn/ack分組的報(bào)頭mp_join+中提取的密鑰、源隨機(jī)數(shù)、mptcp子流標(biāo)識(shí)符和接收器地址標(biāo)識(shí)符)與所保存的信息關(guān)聯(lián)。以與步驟417類似的方式,密鑰是當(dāng)inc1005接收到包括報(bào)頭mp_capable的syn/ack分組時(shí)在步驟407期間獲得的密鑰或者由inc1005從源隨機(jī)數(shù)構(gòu)造的密鑰。

inc1004、1003和1002分別應(yīng)用與步驟422相同的步驟423、424和425。

在接收到syn/ack分組之后,源1001在步驟426期間構(gòu)造ack分組并且在接收器1006的方向上發(fā)送ack分組,該分組包含報(bào)頭mp_join+和info_subflow。在步驟426期間,從syn/ack分組復(fù)制字段typeoflink1414、a1415和b1416。在步驟427中,inc1002分析ack分組,以檢驗(yàn)動(dòng)作是否是必要的并且在接收器1006的方向上發(fā)送該分組。當(dāng)分析ack分組時(shí),inc1002檢驗(yàn)出所有關(guān)于連接和附加mptcp子流的信息都是一致的。在步驟428、429和430中,inc1003、1004和1005應(yīng)用與步驟427相同的步驟。在接收器1006接收到ack分組之后,打開附加mptcp子流。

圖4描述了打開初始mptcp子流和附加mptcp子流的階段??赏ㄟ^用其它六元組重復(fù)步驟416至430來創(chuàng)建其它附加mptcp子流,只要源地址和接收器地址是可用的。該階段之后是數(shù)據(jù)分組傳遞階段,數(shù)據(jù)分組傳遞階段的每個(gè)方面都與根據(jù)mptcp協(xié)議的數(shù)據(jù)分組傳遞階段相同。當(dāng)加速處理過程在inc1002至1005中可用時(shí),對(duì)數(shù)據(jù)分組傳遞階段期間發(fā)送的數(shù)據(jù)分組實(shí)現(xiàn)這些處理。

數(shù)據(jù)分組傳遞階段之后是mptcp子流關(guān)閉階段。該關(guān)閉階段在每個(gè)方面都與根據(jù)mptcp協(xié)議的關(guān)閉階段相同。根據(jù)mptcp協(xié)議的關(guān)閉階段可以基于使用如mptcp協(xié)議中定義的fin分組或rst分組。在使用fin分組的情況下,關(guān)閉階段包括由源1001發(fā)送fin分組,之后由接收器1006發(fā)送接收到fin分組的確認(rèn)。以此方式,在源1001處關(guān)閉mptcp子流。接下來,在接收器1006處關(guān)閉mptcp子流。接收器1006將fin分組發(fā)送到源1001。源1001通過向接收器1006發(fā)送接收到fin分組的確認(rèn)來作出響應(yīng)。以此方式,在接收器1006處關(guān)閉mptcp子流。當(dāng)它們經(jīng)過inc1002至1005時(shí),分析fin分組,這使inc能夠刪除與因此在所述inc的存儲(chǔ)器中關(guān)閉的mptcp子流相關(guān)的信息。

關(guān)于圖4描述的mptcp+方法的使用表示由網(wǎng)絡(luò)單元1001發(fā)起的兩個(gè)mptcp子流的創(chuàng)建。在mptcp+方法的另一個(gè)使用中,可以由接收器發(fā)起兩個(gè)子流的創(chuàng)建,這是因?yàn)樵摲椒ㄊ强赡娴摹?/p>

此外,在圖4中的實(shí)現(xiàn)mptcp+方法時(shí)使用的通信網(wǎng)絡(luò)包括源lan上的一個(gè)inc、接收器lan上的一個(gè)lnc和網(wǎng)絡(luò)的wan部分上的兩個(gè)inc。該方法以相同方式按另一種配置起作用,例如,至少一個(gè)inc與關(guān)于lan中的至少一個(gè)的mptcp+方法兼容和/或至少一個(gè)inc與關(guān)于wan的mptcp+方法兼容。

在圖4中的示例中,在網(wǎng)絡(luò)上還未打開中間路徑。圖5示意性地示出實(shí)現(xiàn)根據(jù)本發(fā)明的用于創(chuàng)建補(bǔ)充mptcp子流的方法,并且隨后實(shí)現(xiàn)根據(jù)本發(fā)明的用于在打開圖1中的網(wǎng)絡(luò)中的新路徑之后刪除所述補(bǔ)充mptcp子流的示例。在圖5中的示例中,中間路徑從inc1003開始并且在接收器1006的方向上打開。

在打開中間路徑之后,發(fā)起用于使用中間路徑來創(chuàng)建補(bǔ)充mptcp子流的過程。用于創(chuàng)建mptcp子流的過程包括用于用信號(hào)發(fā)送關(guān)于步驟501至503描述的新中間路徑的打開的過程和關(guān)于步驟504至518描述的三次握手過程。

補(bǔ)充mptcp子流必須共享現(xiàn)有初始或附加mptcp子流的源和接收器ip地址。如果考慮到例如圖5中的示例的實(shí)現(xiàn)是在圖4中的示例的實(shí)現(xiàn)之后,則補(bǔ)充mptcp子流共享例如步驟401至415中創(chuàng)建的初始mptcp子流的源和接收器ip地址。

用信號(hào)發(fā)送打開新中間路徑的過程開始于步驟501,在步驟501期間,inc1003構(gòu)造包括子報(bào)頭add_subflow的報(bào)頭manage_subflow,關(guān)于圖14e描述了該子報(bào)頭的語法。下文中,為了簡(jiǎn)化起見,包括子報(bào)頭add_subflow的報(bào)頭manage_subflow將被稱為“報(bào)頭add_subflow”。報(bào)頭add_subflow包括字段1440、1441、1442和1443,字段1440、1441、1442和1443分別被稱為分別與關(guān)于圖14a描述的報(bào)頭info_subflow的字段kind1400、length4001、subtype1402和subsubt1403相同的kind、length、subtype和subsubt。報(bào)頭add_subflow另外還包括被稱為sf_id的字段1444和被稱為addr_id的字段1445。字段sf_id1444和addr_id1445允許指示包含mptcp子流要復(fù)制的報(bào)頭add_subflow的分組(這里是源1001)的地址。在圖5中的示例中,字段sf_id1444和addr_id1445分別表示源1001的mptcp子流的標(biāo)識(shí)符和源1001的地址的標(biāo)識(shí)符。此外,報(bào)頭add_subflow包括字段1446、字段1447、可選字段1448和字段1449,字段1446被稱為d,例如,具有1比特的長(zhǎng)度,指示源或接收器中的哪個(gè)必須發(fā)起創(chuàng)建補(bǔ)充mptcp子流,字段1447被稱為seq_req,例如,具有15比特的大小,用于識(shí)別哪個(gè)inc發(fā)起子流的創(chuàng)建,可選字段1448被稱為port,例如,具有16比特的大小,從而允許識(shí)別用于發(fā)起創(chuàng)建子流的端口,字段1449被稱為“securitynumber”hmac,用于保護(hù)子流傳送,例如被編碼成32比特。

在步驟501期間,inc1003將字段sf_id1444和addr_id1445設(shè)置成允許識(shí)別哪個(gè)初始或附加mptcp子流必須充當(dāng)創(chuàng)建補(bǔ)充mptcp子流基礎(chǔ)的值。由于在圖5中的示例中,使用的是初始mptcp子流,因此字段sf_id1444和addr_id1445取值“0”。字段d1446取值“0”,以指示源1001發(fā)起創(chuàng)建補(bǔ)充mptcp子流,即,源1001發(fā)送三次握手過程的第一syn分組。字段seq_req1447取由inc1003確定的隨機(jī)值“al1”。seq_req1447的隨機(jī)值“al1”被存儲(chǔ)在inc1003的存儲(chǔ)器中。在這個(gè)示例中,不使用可選字段port1448。

用于用信號(hào)發(fā)送打開新中間路徑的過程繼續(xù)進(jìn)行到步驟502,在步驟502期間,報(bào)頭add_subflow被插入至少一個(gè)分組中并且在源1001的方向上被發(fā)送。在一個(gè)實(shí)施方式中,相同報(bào)頭add_subflow被插入多個(gè)分組中,以確保由源1001很好地接收包括報(bào)頭add_subflow的至少一個(gè)分組。所使用的分組是意圖用于源1001的分組,或者如果不能使用意圖用于源1001的分組,則復(fù)制由imc1003特別創(chuàng)建的dup_ack(復(fù)制確認(rèn))型的接收確認(rèn)分組。意圖用于源1001的分組可以是在源1001和接收器1006之間的通信期間使用的任何類型的分組。

包括報(bào)頭add_subflow的分組可在意圖用于源的現(xiàn)有mptcp子流中、在意圖用于源的多個(gè)現(xiàn)有mptcp子流中、或甚至在意圖用于穿過inc1003的源的所有現(xiàn)有mptcp子流中被傳輸。

意圖用于源1001的任何傳統(tǒng)分組受益于,當(dāng)在inc中可用時(shí),例如由該裝置實(shí)現(xiàn)用于加速處理inc中包括的裝置21的數(shù)據(jù)分組的加速處理過程。該傳統(tǒng)分組因此不由裝置21的處理器210處理,從而防止裝置21向該分組應(yīng)用特定處理。在本發(fā)明的背景下,必須向某些分組應(yīng)用特定處理,以在其中插入報(bào)頭add_subflow或者用這些分組來創(chuàng)建dup_ack分組,以在其中插入add_subflow報(bào)頭。在一個(gè)實(shí)施方式中,當(dāng)inc實(shí)現(xiàn)加速處理過程時(shí),該過程在檢測(cè)到中間路徑的打開時(shí)臨時(shí)中斷。以此方式,由裝置21的處理器210來處理由inc接收到的分組。然后,inc可將報(bào)頭add_subflow插入意圖用于源1001的分組中,或者如果inc不能將報(bào)頭add_subflow插入意圖用于源1001的分組中,則創(chuàng)建包含報(bào)頭add_subflow的dup_ack分組。inc接下來可禁用加速處理過程。這里假定,每個(gè)inc能夠通過實(shí)現(xiàn)網(wǎng)絡(luò)事件監(jiān)測(cè)過程來檢測(cè)中間路徑的出現(xiàn)或消失。

下文中,描述報(bào)頭add_subflow(還有隨后關(guān)于用于關(guān)閉補(bǔ)充mptcp子流的過程描述的報(bào)頭remove_sublow)被插入dup_ack分組中的各種實(shí)施方式。然而,這些實(shí)施方式絕非是限制性的,并且可使用經(jīng)過發(fā)起打開(或分別地,關(guān)閉)補(bǔ)充mptcp子流的任何其它類型的分組來發(fā)送報(bào)頭add_subflow(或分別地,remove_subflow)。

在圖5中的示例中,在處理器210的控制下,inc1003將報(bào)頭add_subflow插入意圖用于源的dup_ack中。接下來,在發(fā)送了包含報(bào)頭add_subflow的dup_ack分組之后,由inc1003的裝置21的處理器210來禁用加速處理過程。

當(dāng)在步驟503期間接收到dup_ack分組時(shí),inc1002將該分組當(dāng)作傳統(tǒng)dup_ack分組對(duì)待并且在源1001的方向上傳播該分組。

在接收到包含報(bào)頭add_subflow的dup_ack分組之后,源1001發(fā)起三次握手過程。三次握手過程在步驟504期間開始創(chuàng)建包含報(bào)頭mp_join+和報(bào)頭info_subflow的syn分組,隨后由源1001發(fā)送。步驟504期間創(chuàng)建的syn分組類似于步驟416期間創(chuàng)建的syn分組。步驟504期間創(chuàng)建的syn分組的報(bào)頭mp_join+的字段address_id1425取與在步驟401期間創(chuàng)建的syn分組相同的地址標(biāo)識(shí)符值。另一方面,為了將初始mptcp子流與補(bǔ)充mptcp子流區(qū)分開,源1001將字段subflow_id1424設(shè)置成和與初始mptcp子流關(guān)聯(lián)的值不同的值。例如,當(dāng)針對(duì)六元組創(chuàng)建第一mptcp子流時(shí),第一mptcp子流默認(rèn)與具有值“0”的mptcp子流標(biāo)識(shí)符關(guān)聯(lián)。當(dāng)針對(duì)同一六元組創(chuàng)建第二mptcp子流時(shí),第二mptcp子流與具有值“1”的mptcp子流標(biāo)識(shí)符關(guān)聯(lián),并且按增量1依次進(jìn)行,直到所有可能的mptcp子流標(biāo)識(shí)符值被用盡。在創(chuàng)建附加mptcp子流的步驟416期間,不使用報(bào)頭info_subflow的字段sf_id1404和addr_id1405。在一個(gè)實(shí)施方式中,這些字段例如取值“0”。此外,由于這里是發(fā)起創(chuàng)建補(bǔ)充mptcp子流的inc,因此在報(bào)頭info_subflow中插入字段seq_req1406。報(bào)頭info_subflow的字段seq_req1406取隨機(jī)值“al1”。

在步驟505至508期間,inc1002至1005接收、分析syn分組并且在接收器1006的方向上傳播syn分組。

步驟505期間使用的分析與步驟402期間使用的分析相同。每個(gè)inc的出發(fā)路徑對(duì)應(yīng)于由報(bào)頭add_subflow中識(shí)別的初始或附加mptcp子流所使用的出發(fā)路徑。

在步驟506期間,inc1003通過讀取報(bào)頭info_subflow的字段seq_req1406來確定該syn分組與用于創(chuàng)建它發(fā)起的補(bǔ)充mptcp子流的過程相關(guān)。憑借該發(fā)現(xiàn),inc1003得知,它必須使用最近打開的中間路徑并且必須使用該中間路徑將syn分組傳播到接收器1006。

步驟507、508期間使用的分析分別與步驟404、405期間使用的分析相同。

在接收到syn分組之后,接收器1006在步驟509期間構(gòu)造具有報(bào)頭mp_join+和報(bào)頭info_subflow的syn/ack分組并且發(fā)送它。在步驟509期間,syn/ack分組的報(bào)頭mp_join+的字段address_id1435取與用于發(fā)送在步驟406期間創(chuàng)建的syn/ack分組的地址對(duì)應(yīng)的地址標(biāo)識(shí)符值。另一方面,為了將初始mptcp子流與補(bǔ)充mptcp子流區(qū)分開,接收器1006通過取例如值“1”,將字段subflow_id1434設(shè)置成和與初始mptcp子流關(guān)聯(lián)的值不同的值。關(guān)于報(bào)頭info_subflow,字段typeofpath1414被設(shè)置成給出關(guān)于所使用路徑的信息的值,并且字段a1415和b1416被分別設(shè)置成允許識(shí)別所使用的加密算法的值。

然后,在三次握手過程中最后的步驟510至518分別與步驟422至430相同。當(dāng)由接收器1006接收到ack分組時(shí),打開補(bǔ)充mptcp子流。

在根據(jù)mptcp+方法打開補(bǔ)充子流之后是使用中間路徑的數(shù)據(jù)分組傳遞階段。當(dāng)加速處理過程在inc1002至1005中可用時(shí),在數(shù)據(jù)分組傳遞階段期間發(fā)送的數(shù)據(jù)分組上實(shí)現(xiàn)這些處理。

當(dāng)該數(shù)據(jù)分組傳遞階段結(jié)束時(shí),實(shí)現(xiàn)關(guān)閉補(bǔ)充mptcp子流的階段??捎稍?001或接收器1006發(fā)起關(guān)閉補(bǔ)充mptcp子流的階段。在這種情況下,關(guān)閉階段在所有方面都與根據(jù)基于fin分組交換和接收到fin分組的確認(rèn)的mptcp協(xié)議的關(guān)閉階段相同。

在一個(gè)實(shí)施方式中,由給予創(chuàng)建補(bǔ)充mptcp子流的請(qǐng)求的inc(即,圖5中的示例中的inc1003)發(fā)起關(guān)閉階段。在這種情況下,關(guān)閉階段遵循mptcp+方法特有的過程。關(guān)于圖5中的步驟519至521和524至543描述該過程。該過程開始于在步驟519期間創(chuàng)建類型remove_subflow的報(bào)頭。關(guān)于圖14f描述報(bào)頭remove_subflow。報(bào)頭remove_subflow與報(bào)頭add_subflow相同。被稱為subsubt的報(bào)頭remove_subflow的字段1453取允許識(shí)別報(bào)頭remove_subflow的值。

與報(bào)頭add_subflow的字段1444和1445類似地被分別稱為sf_id和addr_id的字段1454和1455取允許確定必須關(guān)閉哪個(gè)mptcp子流的值。在圖5中的示例中,它是必須關(guān)閉的補(bǔ)充mptcp子流。字段sf_id1454和addr_id1455因此分別取值“1”和“0”。為了對(duì)準(zhǔn),插入預(yù)留字段1457。與報(bào)頭add_subflow報(bào)頭和remove_subflow的字段1446類似地被稱為d的字段1456取指示源1001必須發(fā)起關(guān)閉補(bǔ)充mptcp子流的過程的值。在這個(gè)示例中,不使用與報(bào)頭add_subflow的字段1448類似地被稱為port的字段1458。

步驟519期間創(chuàng)建的報(bào)頭remove_subflow被插入由inc1003創(chuàng)建的且意圖用于源1001的類型dup_ack的至少一個(gè)接收確認(rèn)分組中。發(fā)送傳輸報(bào)頭remove_subflow的多個(gè)分組確保了報(bào)頭remove_subflow確實(shí)由其接收方(這里是源1001)接收??墒褂貌煌某跏肌⒏郊踊蜓a(bǔ)充子流來發(fā)送傳輸報(bào)頭remove_subflow的每個(gè)分組。當(dāng)接收方在多種情形下接收到同一報(bào)頭remove_subflow時(shí),只考慮首先接收到的報(bào)頭remove_subflow。

inc1002接收包含報(bào)頭remove_subflow的dup_ack分組并且在源1001的方向上發(fā)送該分組。

當(dāng)源1001接收到包含報(bào)頭remove_subflow的dup_ack分組時(shí),它發(fā)起關(guān)閉補(bǔ)充mptcp子流的階段,該階段在每個(gè)方面都與根據(jù)基于fin分組的交換和接收到fin分組的確認(rèn)的mptcp協(xié)議的關(guān)閉階段相同。該階段開始于在步驟524中由源1001在接收器1006的方向上發(fā)送fin分組。在步驟525至528中,inc1002至1005分析fin分組并且在接收器1006的方向上傳播fin分組。在步驟526至528的分析期間,inc1002至1005注意到補(bǔ)充子流正在關(guān)閉。

由接收器1006接收fin分組致使在步驟529期間在源的方向上發(fā)送接收到fin分組的確認(rèn)。在步驟530至533期間,inc1005至1002分析接收到fin分組的確認(rèn)并且在接收器1001的方向上傳播該確認(rèn)。在步驟530至533的分析期間,inc1005至1002注意到由源發(fā)起的關(guān)閉補(bǔ)充子流的階段正在結(jié)束。

在步驟534期間,接收器1006依次發(fā)起關(guān)閉補(bǔ)充mptcp子流的階段。該階段開始于由接收器1006在源1001的方向上發(fā)送fin分組。在步驟535至538期間,inc1005至1002分析fin分組并且在源1001的方向上傳播fin分組。在步驟535至538的分析期間,inc1005至1002確定關(guān)閉補(bǔ)充mptcp子流的階段在進(jìn)行中。

由源接收fin分組致使在步驟539期間在接收器1006的方向上發(fā)送接收到fin分組的確認(rèn)。在步驟540至543期間,inc1002至1005分析接收的確認(rèn)并且在接收器1006的方向上傳播接收的確認(rèn)。在步驟540至543的分析期間,inc1002至1005確定由接收器1006發(fā)起的關(guān)閉補(bǔ)充mptcp子流的階段正在結(jié)束。然后,每個(gè)inc刪除存儲(chǔ)在其存儲(chǔ)器中的對(duì)補(bǔ)充mptcp子流的所有參照。源1001和接收器1006還刪除存儲(chǔ)在它們的相應(yīng)存儲(chǔ)器中的對(duì)補(bǔ)充mptcp子流的所有參照。

由inc創(chuàng)建補(bǔ)充mptcp子流的請(qǐng)求使用分組不受保護(hù)的部分(例如,本發(fā)明的報(bào)頭可被插入其中的tcp分組中的信令)。因此,創(chuàng)建mptcp+子流的所述請(qǐng)求將不成功的概率并不算太小。在一個(gè)實(shí)施方式中,在三次握手過程結(jié)束之后創(chuàng)建補(bǔ)充mptcp+子流時(shí)涉及的每個(gè)inc中啟用時(shí)間延遲。該時(shí)間延遲取預(yù)定持續(xù)時(shí)間d,該預(yù)定持續(xù)時(shí)間d在每個(gè)inc的配置階段期間可以是固定的。在該時(shí)間延遲期間,阻止由inc進(jìn)行mptcp+子流的任何新創(chuàng)建。通過在時(shí)間延遲的時(shí)間段d期間阻止新mptcp+子流的創(chuàng)建,確保在請(qǐng)求創(chuàng)建新mptcp+子流之前,每個(gè)mptcp+子流的創(chuàng)建都已經(jīng)成功。

以上發(fā)現(xiàn),用于創(chuàng)建初始或附加mptcp子流的過程通常是可逆的并且可由源1001或接收器1006發(fā)起。例如,當(dāng)新ip地址被創(chuàng)建或者變成在接收器處可用時(shí),可發(fā)生用于創(chuàng)建由接收器發(fā)起的初始或附加mptcp子流的過程。然而,當(dāng)例如inc實(shí)現(xiàn)防止路由包括報(bào)頭mp_capable和報(bào)頭info_subflow的syn分組的地址翻譯過程時(shí),由接收器發(fā)起的該過程可能要求附加步驟。

圖6a示意性地示出當(dāng)在inc1005實(shí)現(xiàn)地址翻譯過程的情況下網(wǎng)絡(luò)地址翻譯器(nat)型的inc防止在關(guān)于圖1描述的網(wǎng)絡(luò)中創(chuàng)建初始或附加mptcp子流時(shí)在本發(fā)明的背景下實(shí)現(xiàn)的過程。在這個(gè)示例中,在接收器1006上打開新ip地址之后,接收器1006發(fā)起通過在步驟601中創(chuàng)建并發(fā)送包含報(bào)頭mp_capable和報(bào)頭info_subflow的syn分組來創(chuàng)建附加mptcp子流的過程。在步驟602期間,由inc1005接收分組syn。inc1005應(yīng)用地址翻譯過程,由于它未知的地址處于分組的目的地地址字段(這里是源1001的地址)中而導(dǎo)致分組丟失。

在發(fā)送syn分組之后,接收器1006等待接收syn/ack分組。如果在發(fā)送syn分組之后在預(yù)定義時(shí)間t內(nèi)沒有接收到syn/ack分組,則接收器在步驟605中創(chuàng)建包含add_addr2型的報(bào)頭的dup_ack型的至少一個(gè)分組并且在源1001的方向上發(fā)送該至少一個(gè)分組。dup_ack分組可被發(fā)送數(shù)次,以確保它被源1001接收。在一個(gè)實(shí)施方式中,它在每個(gè)現(xiàn)有的初始、附加和補(bǔ)充子流上進(jìn)行發(fā)送。關(guān)于圖14g描述報(bào)頭add_addr2的語法。報(bào)頭add_addr2包括字段1460、1461和1462,字段1460、1461和1462根據(jù)mptcp協(xié)議分別被稱為報(bào)頭典型的kind、length和subtype。這三個(gè)字段之后是字段1463,字段1463被稱為ipver,允許確定下文中描述的包含ip地址的字段1466address_ip的大小。字段ipver1463之后是字段1465,字段1465被稱為addr_id,旨在包含ip地址標(biāo)識(shí)符。字段addr_id1465之后是字段address_ip1466、可選字段1467和字段1468,可選字段1467被稱為port,旨在接收端口號(hào),字段1468被稱為“securitynumber(安全編號(hào))”hmac,用于保護(hù)mptcp子流的傳送。

當(dāng)在步驟605中創(chuàng)建dup_ack分組時(shí),接收器1006將接收器的新ip地址插入字段address_ip1466中并且將該地址的標(biāo)識(shí)符插入字段addr_id1465中。

分組dup_ack由inc1002至1005接收并且重新發(fā)送,而inc1002至1005不必對(duì)該分組執(zhí)行任何動(dòng)作。接下來,由源1001接收dup_ack分組。在接收到包含報(bào)頭add_addr2的dup_ack分組之后,源1001通過在源1001和接收器1006之間交換包括報(bào)頭mp_join+和info_subflow的syn、syn/ack和ack分組來發(fā)起三次握手過程。該過程類似于關(guān)于圖4的步驟416至430描述的過程。然而,在這種情況下,其是源1001能夠在用于創(chuàng)建mptcp子流的六元組中使用的add_addr2分組中找到的接收器1006的新ip地址。

有時(shí),在諸如源或接收器的網(wǎng)絡(luò)單元上,使用過程中的ip地址可能突然變得不可使用。在這種情況下,與該地址有關(guān)的mptcp子流不能再被使用。本發(fā)明提出了允許刪除與ip地址有關(guān)的mptcp子流的集合的過程。

圖6b示意性地示出實(shí)現(xiàn)用于刪除與接收器的ip地址有關(guān)的mptcp連接的每個(gè)子流的過程的示例。該過程依賴于remove_addr型的報(bào)頭。圖14i示意性地示出了根據(jù)本發(fā)明的remove_addr型的報(bào)頭。在報(bào)頭remove_addr中發(fā)現(xiàn)字段1480、1481和1482,字段1480、1481和1482根據(jù)mptcp協(xié)議分別被稱為報(bào)頭典型的kind、length和subtype。字段subtype1482允許識(shí)別報(bào)頭remove_addr。字段subtype1482之后是被稱為reserved的預(yù)留字段1483和被稱為addr_id的字段1484。字段addr_id1484能夠傳輸ip地址的標(biāo)識(shí)符。字段addr_id1484可以例如傳輸已經(jīng)突然變得不可用的ip地址的標(biāo)識(shí)符。

在關(guān)于圖6b描述的示例實(shí)施方式中,假定接收器1006的ip地址消失,而該ip地址被用于多個(gè)mptcp子流。

在步驟610期間,接收器1006創(chuàng)建報(bào)頭remove_addr,其中,不可用ip地址的標(biāo)識(shí)符被插入字段addr_id1484中。接下來,報(bào)頭remove_addr被插入一個(gè)或更多個(gè)dup_ack分組中并且在仍然可用(即,不使用不可用ip地址)的mptcp子流中被發(fā)送到源1001。穿過的每個(gè)inc將分析包含報(bào)頭remove_addr的dup_ack分組,將使用由字段addr_id1484指示的ip地址從其存儲(chǔ)器中刪除對(duì)現(xiàn)有mptcp子流的任何參照。當(dāng)源1001接收到包含報(bào)頭remove_addr的dup_ack分組時(shí),它使用由字段addr_id1484指示的ip地址關(guān)閉每個(gè)子流。以此方式,在源1001、接收器1006和inc1002至1005處決定性地刪除與不可用ip地址有關(guān)的每個(gè)子流。應(yīng)該注意,如果子流的ip地址之一變得不可用,則可由源1001實(shí)現(xiàn)相同的過程。

圖7a示意性地示出了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建被稱為經(jīng)中繼的初始mptcp子流的初始mptcp子流的方法的示例,在網(wǎng)絡(luò)中,能夠?qū)崿F(xiàn)mptcp+方法的源與tcp接收器通信。這里重復(fù)關(guān)于圖1描述的網(wǎng)絡(luò)。為了簡(jiǎn)明的原因,未示出inc1003。在這個(gè)示例中,inc1005是如上所述的tcp/mptcp中繼器。

下文中,用于創(chuàng)建mptcp子流的syn、syn/ack和ack分組分別被稱為mptcpsyn分組、mptcpsyn/ack分組和mptcpack分組。此外,用于創(chuàng)建tcp流的syn、syn/ack和ack分組分別被稱為tcpsyn分組、tcpsyn/ack分組和tcpack分組。

如以下描述的,在這種情況下實(shí)現(xiàn)兩個(gè)三次握手過程。第一個(gè)三次握手過程在源1001和實(shí)現(xiàn)tcp/mptcp中繼器的作用的inc1005中實(shí)現(xiàn)并且允許創(chuàng)建經(jīng)中繼的初始mptcp子流,并且在inc1005和接收器1006之間的第二個(gè)三次握手過程允許創(chuàng)建tcp流,tcp流被稱為中繼tcp流。由源1001直接發(fā)起第一個(gè)三次握手過程,而由源1001利用inc1005間接地發(fā)起第二個(gè)三次握手過程。

在與步驟401相同的步驟701中,源1001創(chuàng)建具有傳統(tǒng)報(bào)頭mp_capable和報(bào)頭info_subflow的mptcpsyn分組并且發(fā)送它。在步驟702和703期間,inc1002和1004實(shí)現(xiàn)分別與步驟402和404相同的步驟。在步驟704中,inc1005接收mptcpsyn分組。

響應(yīng)于mptcpsyn分組,inc1005在步驟706期間構(gòu)造具有報(bào)頭mp_capable和報(bào)頭info_subflow的mptcpsyn/ack分組并且發(fā)送它。由inc1005實(shí)現(xiàn)的步驟706與由接收器1006實(shí)現(xiàn)的步驟406相同。當(dāng)接收到mptcpsyn/ack分組時(shí),inc1004和1002實(shí)現(xiàn)分別與步驟408和410相同的步驟707和708。

響應(yīng)于mptcpsyn/ack分組,源1001在步驟709期間構(gòu)造具有報(bào)頭mp_capable和報(bào)頭info_subflow的mptcpack分組并且發(fā)送它。由源1001實(shí)現(xiàn)的步驟709與步驟411相同。當(dāng)接收到mptcpack分組時(shí),inc1002和1004實(shí)現(xiàn)分別與步驟412和414相同的步驟710和711。由inc1005接收到mptcpack分組結(jié)束源1001和inc1005之間的三次握手過程。然后,在源1001和inc1005之間創(chuàng)建經(jīng)中繼的初始mptcp子流,并且可開始使用該經(jīng)中繼的初始mptcp子流的數(shù)據(jù)傳送。

此外,在步驟704期間,inc1005構(gòu)造tcpsyn分組,將mptcpsyn分組中包含的數(shù)據(jù)插入tcpsyn分組中并且將tcpsyn分組發(fā)送到接收器1006。

響應(yīng)于tcpsyn分組,接收器1006在步驟705期間構(gòu)造tcpsyn/ack分組并且將它發(fā)送到inc1005。

響應(yīng)于tcpsyn/ack分組,inc1005在步驟712期間構(gòu)造tcpack分組并且將它發(fā)送到接收器1006。由接收器1006接收到tcpack分組結(jié)束三次握手過程,使得能夠在inc1005和接收器1006之間創(chuàng)建中繼tcp流。然后,可使用中繼tcp流在inc1005和接收器1006之間通信。

當(dāng)數(shù)據(jù)從源1001被發(fā)送到接收器1006時(shí),inc1005提取經(jīng)中繼的初始mptcp子流的mptcp分組中包含的數(shù)據(jù),然后將它們插入中繼tcp流的tcp分組中。相反,當(dāng)數(shù)據(jù)從接收器1006被發(fā)送到源1001時(shí),inc1005提取中繼tcp流的tcp分組中包含的數(shù)據(jù)并且將它們插入經(jīng)中繼的初始mptcp子流的mptcp分組中。

如在mptcp協(xié)議中說明的,經(jīng)中繼的初始mptcp子流以標(biāo)準(zhǔn)方式釋放(release)。在一個(gè)實(shí)施方式中,經(jīng)中繼的初始mptcp子流的釋放致使與其關(guān)聯(lián)的中繼tcp流的釋放。如在tcp標(biāo)準(zhǔn)中說明的,中繼tcp流以標(biāo)準(zhǔn)方式釋放。

圖7b示意性地示出了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建被稱為經(jīng)中繼的附加mptcp子流的mptct連接的附加子流的方法的示例,在網(wǎng)絡(luò)中,能夠?qū)崿F(xiàn)mptcp+方法的源與tcp接收器通信。這里,重復(fù)關(guān)于圖7a描述的網(wǎng)絡(luò)。

在這個(gè)示例中,第一個(gè)三次握手過程在源1001和實(shí)現(xiàn)tcp/mptcp中繼器的作用的inc1005之間實(shí)現(xiàn)并且允許創(chuàng)建經(jīng)中繼的附加mptcp子流,并且inc1005和接收器1006之間的第二個(gè)三次握手過程允許創(chuàng)建中繼tcp流。然而,不必須創(chuàng)建中繼tcp流以特別地中繼經(jīng)中繼的附加mptcp子流。經(jīng)中繼的附加mptcp子流可在inc1005和接收器1006之間由現(xiàn)有中繼tcp流中繼。

在與步驟416相同的步驟716中,源1001在步驟717和718期間創(chuàng)建具有報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpsyn分組并且發(fā)送它,inc1002和1004實(shí)現(xiàn)分別與步驟417和419相同的步驟。在步驟719中,inc1005接收mptcpsyn分組。

響應(yīng)于mptcpsyn分組,接收器1005在步驟721期間構(gòu)造具有報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpsyn/ack分組并且發(fā)送它。由inc1005實(shí)現(xiàn)的步驟721與由接收器1006實(shí)現(xiàn)的步驟421相同。當(dāng)接收到mptcpsyn/ack分組時(shí),inc1004和1002實(shí)現(xiàn)分別與步驟423和425相同的步驟722和723。

響應(yīng)于mptcpsyn/ack分組,源1001在步驟724期間構(gòu)造具有報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpack分組并且發(fā)送它。由源1001實(shí)現(xiàn)的步驟724與步驟426相同。當(dāng)接收到mptcpack分組時(shí),inc1002和1004實(shí)現(xiàn)分別與步驟427和429相同的步驟725和726。由inc1005接收到mptcpack分組結(jié)束源1001和inc1005之間的三次握手過程。然后,在源1001和inc1005之間創(chuàng)建經(jīng)中繼的附加mptcp子流,并且可開始使用該經(jīng)中繼的附加mptcp子流的數(shù)據(jù)傳送。

此外,在步驟719期間,inc1005構(gòu)造tcpsyn分組,將mptcpsyn分組中包含的數(shù)據(jù)插入tcpsyn分組中并且將tcpsyn分組發(fā)送到接收器1006。

響應(yīng)于tcpsyn分組,接收器1006在步驟720期間構(gòu)造tcpsyn/ack分組并且將它發(fā)送到inc1005。

響應(yīng)于tcpsyn/ack分組,inc1005在步驟722期間構(gòu)造tcpack分組并且將它發(fā)送到接收器1006。由接收器1006接收到tcpack分組結(jié)束三次握手過程,使得能夠在inc1005和接收器1006之間創(chuàng)建中繼tcp流。然后,可使用中繼tcp流在inc1005和接收器1006之間通信。

當(dāng)數(shù)據(jù)從源1001發(fā)送到接收器1006時(shí),inc1005提取經(jīng)中繼的附加mptcp子流的mptcp分組中包含的數(shù)據(jù),然后將它們插入中繼tcp流的tcp分組中。相反,當(dāng)數(shù)據(jù)從接收器1006被發(fā)送到源1001時(shí),inc1005提取中繼tcp流的tcp分組中包含的數(shù)據(jù)并且將它們插入經(jīng)中繼的附加mptcp子流的mptcp分組中。

如在mptcp標(biāo)準(zhǔn)中說明的,經(jīng)中繼的附加mptcp子流以標(biāo)準(zhǔn)方式釋放。在一個(gè)實(shí)施方式中,經(jīng)中繼的附加mptcp子流的釋放致使與其關(guān)聯(lián)的中繼tcp流的釋放。

在一個(gè)實(shí)施方式中,不實(shí)現(xiàn)第二個(gè)三次握手過程。在這個(gè)實(shí)施方式中,通過inc1005和接收器1006之間的現(xiàn)有中繼tcp流(例如,使用關(guān)于圖7a描述的示例的被創(chuàng)建以中繼經(jīng)中繼的初始mptcp子流的中繼tcp流),中繼經(jīng)中繼的附加mptcp子流。在這種情況下,經(jīng)中繼的附加mptcp子流的關(guān)閉不造成中繼mptcp流的關(guān)閉。

圖8示意性地描繪了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在其中能夠?qū)崿F(xiàn)mptcp+方法的源與tcp接收方通信的網(wǎng)絡(luò)中打開新路徑之后創(chuàng)建被稱為經(jīng)中繼的補(bǔ)充mptcp子流的mptcp連接的補(bǔ)充子流的方法以及隨后實(shí)現(xiàn)根據(jù)本發(fā)明的用于刪除所述經(jīng)中繼的補(bǔ)充mptcp子流的方法的示例。這里,重復(fù)關(guān)于圖7a描述的網(wǎng)絡(luò)。在圖8中的示例中,中間路徑從inc1007在接收器1006的方向上打開。

在中間路徑打開之后,發(fā)起關(guān)于步驟801和802描述的用信號(hào)發(fā)送打開新中間路徑的過程。經(jīng)中繼的補(bǔ)充mptcp子流必須共享現(xiàn)有初始或附加mptcp子流的源和接收器ip地址。如果認(rèn)為例如圖8中的實(shí)現(xiàn)遵循圖7a中的實(shí)現(xiàn),則經(jīng)中繼的補(bǔ)充mptcp子流可共享經(jīng)中繼的初始mptcp子流的源和接收器ip地址。

inc1002在與步驟501相同的步驟801期間構(gòu)造add_subflow型的報(bào)頭。

在與步驟502相同的步驟802期間,將報(bào)頭add_subflow插入多個(gè)dup_ack分組中,使用意圖用于源并且經(jīng)過inc1002的不同現(xiàn)有mptcp子流將每個(gè)dup_ack分組發(fā)送到源。

在用信號(hào)發(fā)送打開新中間路徑的過程之后,在源1001和inc1005之間進(jìn)行三次握手過程。關(guān)于步驟803至806、808至810和811至813描述的該三次握手過程使得能夠創(chuàng)建經(jīng)中繼的補(bǔ)充mptcp子流。

在接收到包含報(bào)頭add_subflow的dup_ack分組之后,源1001在與步驟504相同的步驟803期間創(chuàng)建包含報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpsyn分組并且發(fā)送它。步驟803期間創(chuàng)建的mptcpsyn分組的報(bào)頭mp_join+的字段address_id1425取與步驟701期間創(chuàng)建的mptcpsyn分組相同的地址標(biāo)識(shí)符值。另一方面,為了將經(jīng)中繼的初始mptcp子流與經(jīng)中繼的補(bǔ)充mptcp子流區(qū)分開,源1001將字段subflow_id1424設(shè)置成和與初始mptcp子流關(guān)聯(lián)的值不同的值,例如,值“1”。此外,由于這里是inc1002發(fā)起創(chuàng)建經(jīng)中繼的補(bǔ)充mptcp子流,因此在報(bào)頭info_subflow中插入字段seq_req1406。報(bào)頭info_subflow的字段seq_req1406取隨機(jī)值“al2”。

在步驟804和805期間,inc1002和1004接收、分析mptcpsyn分組并且在接收器1006的方向上傳播mptcpssyn分組。步驟804和805期間使用的分析分別與步驟505和507期間使用的分析相同。

在步驟804期間,inc1002通過讀取報(bào)頭info_subflow的字段seq_req1406來確定該syn分組與用于創(chuàng)建在所述seq_req等于“al2”時(shí)它發(fā)起的經(jīng)中繼的補(bǔ)充mptcp子流創(chuàng)建的過程相關(guān)。然后,inc1002得知它必須使用最近打開的中間路徑并且必須使用該中間路徑將mptcpsyn分組傳播到接收器1006。

在步驟806期間接收到mptcpsyn分組之后,inc1005在與由接收器1006實(shí)現(xiàn)的步驟509相同的步驟808期間構(gòu)造具有報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpsyn/ack分組并且發(fā)送它。在步驟808期間,mptcpsyn/ack分組的報(bào)頭mp_join+的字段addr_id1435取與在步驟509期間創(chuàng)建的mptcpsyn/ack分組的報(bào)頭mp_join+中使用的地址標(biāo)識(shí)符值相同的地址標(biāo)識(shí)符值。另一方面,為了將經(jīng)中繼的初始mptcp子流與經(jīng)中繼的補(bǔ)充mptcp子流區(qū)分開,inc1005通過取例如值“1”,將字段subflow_id1434設(shè)置成和與經(jīng)中繼的初始mptcp子流關(guān)聯(lián)的值不同的值。

步驟809和810分別與步驟511和513相同。

步驟811、812和813分別與步驟514、515和517相同。當(dāng)由inc1005接收到mptcpack分組時(shí),打開經(jīng)中繼的補(bǔ)充mptcp子流。

在這個(gè)示例中,經(jīng)中繼的補(bǔ)充mptcp子流由在步驟704、705和712期間創(chuàng)建的中繼tcp流中繼。當(dāng)數(shù)據(jù)從源1001被發(fā)送到接收器1006時(shí),inc1005提取經(jīng)中繼的補(bǔ)充mptcp流的mptcp分組中包含的數(shù)據(jù)并且將它們插入中繼tcp流的tcp分組中。相反,當(dāng)數(shù)據(jù)從接收器1006被發(fā)送到源1001時(shí),inc1005提取中繼tcp流的tcp分組中包含的數(shù)據(jù)并且將它們插入經(jīng)中繼的補(bǔ)充mptcp流的mptcp分組中。

當(dāng)該數(shù)據(jù)分組傳遞階段結(jié)束時(shí),實(shí)現(xiàn)關(guān)閉經(jīng)中繼的補(bǔ)充mptcp子流的階段。

可由源1001或inc1005發(fā)起關(guān)閉經(jīng)中繼的補(bǔ)充mptcp子流的階段。在這種情況下,關(guān)閉階段在每個(gè)方面都與根據(jù)基于fin分組的交換和接收到fin分組的確認(rèn)的mptcp協(xié)議的關(guān)閉階段相同。

在一個(gè)實(shí)施方式中,由inc1002發(fā)起關(guān)閉階段。在這種情況下,關(guān)閉階段遵循與關(guān)于圖5描述的過程類似的過程。該過程先開始于在與步驟519相同的步驟819期間創(chuàng)建remove_subflow子流型的報(bào)頭。

字段sf_id1454和addr_id1455取允許確定必須關(guān)閉哪個(gè)mptcp子流的值。在圖8中的示例中,它是必須被關(guān)閉的經(jīng)中繼的補(bǔ)充mptcp子流。字段sf_id1454和addr_id1455因此分別取值“1”和“0”。報(bào)頭remove_subflow的字段d1456取指示源1001必須開始關(guān)閉經(jīng)中繼的補(bǔ)充mptcp子流的值。在這個(gè)示例中,不使用字段port1458。

步驟819期間創(chuàng)建的報(bào)頭remove_subflow被插入意圖用于源1001的至少一個(gè)dup_ack分組中。在一個(gè)實(shí)施方式中,每個(gè)dup_ack分組在經(jīng)過inc1002的意圖用于源1001的不同mptcp子流中被發(fā)送。

當(dāng)源1001接收到包含意圖用于源的報(bào)頭remove_subflow的分組時(shí),它發(fā)起關(guān)閉經(jīng)中繼的補(bǔ)充mptcp子流的階段,該階段在每個(gè)方面都與根據(jù)基于fin分組的交換和接收到fin分組的確認(rèn)的mptcp協(xié)議的關(guān)閉階段相同。

該階段開始于在步驟823期間由源1001在inc1005的方向上發(fā)送fin分組。在步驟824和825中,inc1002和1004分析fin分組并且在接收器1006的方向上傳播fin分組。

由inc1005接收到fin分組致使在步驟827期間在源1001的方向上發(fā)送接收到fin分組的確認(rèn)。在步驟828和829期間,inc1004和1002分析接收到fin分組的確認(rèn)并且在源1001的方向上傳播接收到fin分組的確認(rèn)。

接下來,在步驟835期間,發(fā)起由inc1005發(fā)起的關(guān)閉補(bǔ)充子流的階段。該階段開始于由inc1005在源1001的方向上發(fā)送fin分組。在步驟836和837期間,inc1004和1002分析fin分組并且在源1001的方向上傳播fin分組。

由源1001接收到fin分組致使在步驟838期間在inc1005的方向上發(fā)送接收到fin分組的確認(rèn)。在步驟839和840期間,inc1002和1004分析接收確認(rèn)并且在inc1005的方向上傳播接收確認(rèn)。當(dāng)由inc1005接收接收到fin分組的確認(rèn)時(shí),刪除經(jīng)中繼的補(bǔ)充mptcp子流。

圖9示意性地示出了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建mptcp連接的初始子流的方法的示例,在網(wǎng)絡(luò)中,能夠?qū)崿F(xiàn)mptcp協(xié)議但不能夠?qū)崿F(xiàn)mptcp+方法的源通過實(shí)現(xiàn)mptcp+方法的至少一個(gè)inc與tcp接收器通信。這里,重復(fù)關(guān)于圖7a描述的網(wǎng)絡(luò)。所創(chuàng)建的初始mptcp子流是由inc1005使用的tcp/mptcp中繼器中繼的初始mptcp子流。在這個(gè)示例中,源1001能夠?qū)崿F(xiàn)mptcp協(xié)議,但不能夠?qū)崿F(xiàn)mptcp+方法。如下文中描述的,其部分與mptcp+方法兼容的inc1002能夠補(bǔ)償源1001與mptcp+方法的不兼容性。

另外,在這個(gè)示例中,假定源1001、接收器1006和inc1002至1005通過多個(gè)通信路徑連接在一起。根據(jù)這些通信路徑,可形成多個(gè)不同傳送路線,以便在源1001和接收器1006之間進(jìn)行通信。為了簡(jiǎn)化起見,發(fā)送路線在下文中被稱為“路線”,通信路徑在下文中被稱為“路徑”。一些路線不涉及每個(gè)inc1002至1005,這可能造成關(guān)于mptcp子流必須采用的路線的不確定性。在僅涉及與mptcp+方法兼容的網(wǎng)絡(luò)單元(源、接收器、inc)的用于創(chuàng)建初始、附加或補(bǔ)充mptcp子流的三次握手過程期間,每個(gè)網(wǎng)絡(luò)單元可明白地確定將由syn、syn/ack和ack分組使用的路徑和路線。為了這樣做,每個(gè)網(wǎng)絡(luò)單元可依賴于子流和報(bào)頭info_subflow和mp_join+中包括的地址標(biāo)識(shí)符和序列號(hào)seq_req,以成功地實(shí)現(xiàn)三次握手過程。

另一方面,與mptcp+方法不兼容的網(wǎng)絡(luò)單元(諸如,圖9中的示例中的源1001)不能夠操縱并使用子流和地址標(biāo)識(shí)符以及序列號(hào)seq_req,這是因?yàn)樵撔畔⑹莔ptcp+方法特有的。如果網(wǎng)絡(luò)單元不支持mptcp+方法并且具有多個(gè)路線可用,然后如果它在三次握手過程期間選擇了錯(cuò)誤的路線來引導(dǎo)分組,則如果分組之一丟失,當(dāng)(并且以上詳述的)inc創(chuàng)建子流時(shí)觸發(fā)的時(shí)間延遲將再次允許重新開始三次握手過程。然而,該解決方案可致使創(chuàng)建mptcp子流的等待時(shí)間。

在關(guān)于圖9描述的示例實(shí)現(xiàn)中,使用特定三次握手過程來創(chuàng)建初始mptcp子流。特定三次握手過程允許首尾相連地控制諸如源1001、接收器1006或inc1002至1005的網(wǎng)絡(luò)單元將要使用哪個(gè)路徑來發(fā)送分組。

當(dāng)由與mptcp協(xié)議兼容但不與mptcp+方法兼容的源或接收器發(fā)起用于創(chuàng)建mptcp子流(初始、附加或補(bǔ)充)的過程時(shí),接收三次握手過程的mptcpsyn分組的與mptcp+方法兼容的第一inc(例如,圖9中的示例中的inc1002)定義本地端口號(hào)的第一集合(諸如,端口號(hào)的范圍),并且將包括表示所述本地端口號(hào)的第一集合的信息的報(bào)頭info_subflow插入mptcpsyn分組中。該本地端口號(hào)的第一集合對(duì)應(yīng)于可由第一inc分配以用于在mptcp子流的背景下通信的端口號(hào)的集合。

根據(jù)下文中詳述的方法,mptcpsyn分組經(jīng)過的每個(gè)網(wǎng)絡(luò)單元根據(jù)本地端口號(hào)的第一集合來定義本地端口號(hào)的第二集合,并且將表示本地端口號(hào)的第二集合的信息插入syn分組的報(bào)頭info_subflow中。mptcpsyn分組經(jīng)過的網(wǎng)絡(luò)單元是除了第一inc外的inc(例如,圖9中的示例的inc1004)。由網(wǎng)絡(luò)單元定義的本地端口號(hào)的第二集合均對(duì)應(yīng)于可由所述網(wǎng)絡(luò)單元分配以用于在mptcp子流的背景下通信的端口號(hào)的集合。特定三次握手過程使用改編后的syn分組報(bào)頭info_subflow,改編后的syn分組報(bào)頭info_subflow被稱為改編報(bào)頭info_subflow。關(guān)于圖14h描述改編報(bào)頭info_subflow。改編報(bào)頭info_subflow允許指定端口號(hào)的范圍。在改編報(bào)頭info_subflow中可發(fā)現(xiàn)字段1470、1471和1472,字段1470、1471和1472被分別稱為傳統(tǒng)mptcp報(bào)頭的kind、length和subtype。改編報(bào)頭info_subflow還包括字段1473,字段1473被稱為subsubt,例如被編碼成四比特,取允許識(shí)別改編報(bào)頭info_subflow的特定值。字段subsubt1473之后是預(yù)留字段1474和字段1475,預(yù)留字段1474被稱為reserved,例如被編碼成四比特,字段1475被稱為addr_id,例如被編碼成四比特,允許識(shí)別發(fā)起mptcp子流的打開的網(wǎng)絡(luò)單元的ip地址。報(bào)頭info_subflow還包括字段1476和1477,字段1476和1477被分別稱為port_first和port_last,例如被編碼成十六比特,表示端口號(hào)的范圍。

在步驟901中,源1001創(chuàng)建具有傳統(tǒng)報(bào)頭mp_capable的mptcpsyn分組并且發(fā)送它。

在步驟902中,inc1002接收在步驟902期間創(chuàng)建的mptcpsyn分組。由于接收到的mptcpsyn分組不包含報(bào)頭info_subflow,因此inc1002將表示源1001與mptcp+方法不兼容的事實(shí)的信息保存在存儲(chǔ)器中。此外,inc1002將它是在從源1001通向inc1006的路線上與mptcp+方法兼容的第一inc的事實(shí)的信息保存在存儲(chǔ)器中。

另外,在步驟902期間,inc1002分配端口號(hào)的范圍,允許識(shí)別將被用于與接收器1006通信的路徑。所述范圍的端口號(hào)可允許識(shí)別現(xiàn)有路徑,或用于識(shí)別可從inc1002打開的未來路徑。每個(gè)路徑與所分配的端口號(hào)的范圍的子部分關(guān)聯(lián)。例如,inc1002可給五個(gè)路徑分配從值“80”到值“5080”的端口號(hào)的范圍,兩個(gè)現(xiàn)有路徑包括用于在接收器1006的方向上發(fā)送mptcpsyn分組的路徑和可在未來打開的三個(gè)假想路徑。所述范圍接下來被劃分成五個(gè)子部分。從值“80”到值“1079”的第一子部分與用于在接收器1006的方向上發(fā)送mptcpsyn分組的路徑關(guān)聯(lián)。從值“1080”到值“2079”的第二子部分與第二現(xiàn)有路徑關(guān)聯(lián)。為這些假想路徑分配三個(gè)其它子部分。

接下來,inc1002將關(guān)于圖14h描述的改編報(bào)頭info_subflow插入mptcpsyn分組中。在步驟902期間,改編報(bào)頭info_subflow的字段addr_id1475取允許識(shí)別用于發(fā)送mptcpsyn分組的源1001的ip地址的值,例如,字段addr_id1475取值“0”。字段port_first1475取由inc1002分配的端口號(hào)的范圍的、與用于在接收器1006的方向上發(fā)送mptcpsyn分組的路徑對(duì)應(yīng)的子部分的最小值。字段port_last1477取由inc1002分配的端口號(hào)的范圍的、與用于在接收器1006的方向上發(fā)送mptcpsyn分組的路徑對(duì)應(yīng)的子部分的最小值。再次以從值“80”到值“5080”的端口號(hào)的范圍為例,字段port_first1476取值“80”并且字段port_last1477取值“1079”。

在步驟903期間,inc1004接收包括由inc1002引入的改編報(bào)頭info_subflow的mptcpsyn分組。inc1004保存在報(bào)頭info_subflow中由字段port_first1475和port_last1477指示的端口號(hào)的范圍。由inc1004保存的范圍被劃分成多個(gè)子部分,每個(gè)子部分對(duì)應(yīng)于允許與接收器1006通信的現(xiàn)有或假想路徑。如在inc1002的情況下,inc1004可將該范圍劃分成五個(gè)子部分,兩個(gè)子部分對(duì)應(yīng)于包括用于向inc1005發(fā)送mptcpsyn分組的路徑的現(xiàn)有路徑和三個(gè)假想路徑。inc1004修改mptcpsyn分組的字段port_first1476和port_last1477,以指示用于發(fā)送mptcpsyn分組的端口號(hào)的范圍的子部分。再次以從值“80”到值“5080”的端口號(hào)的范圍為例,字段port_first1476保持不變并且字段port_last1477取值“279”。接下來,在接收器1006的方向上發(fā)送這樣修改的mptcpsyn分組。

在步驟904中,inc1005接收mptcpsyn分組。在步驟906中,inc1005構(gòu)造具有報(bào)頭mp_capable和報(bào)頭info_subflow的mptcpsyn/ack分組并且在源1001的方向上發(fā)送它。報(bào)頭info_subflow是關(guān)于圖14b描述的報(bào)頭。步驟906期間創(chuàng)建的報(bào)頭info_subflow的字段與步驟706期間創(chuàng)建的報(bào)頭info_subflow的對(duì)應(yīng)字段相同。

當(dāng)接收到mptcpsyn/ack分組時(shí),inc1004實(shí)現(xiàn)與步驟707類似的步驟907。

在步驟908中,inc1002接收mptcpsyn/ack分組。通過咨詢報(bào)頭info_subflow以及在步驟902期間在存儲(chǔ)器中保存的信息,inc1002依此推導(dǎo)出該分組意圖用于與mpctp+方法不兼容的源1001。為了供應(yīng)適于源1001的syn/ack分組,inc1002從mptcpsyn/ack分組中刪除報(bào)頭info_subflow。如此修改的syn/ack分組被發(fā)送到源1001。

應(yīng)該注意,在步驟908的一個(gè)實(shí)現(xiàn)中,inc1002不刪除報(bào)頭info_subflow。在這種情況下,源1001忽略報(bào)頭info_subflow。

響應(yīng)于mptcpsyn/ack分組,源1001在步驟909期間構(gòu)造具有報(bào)頭mp_capable的mptcpack分組并且發(fā)送它。

在步驟910期間,inc1002接收mptcpack分組并且將報(bào)頭info_subflow插入mptcpack分組中。報(bào)頭info_subflow是關(guān)于圖14b描述的報(bào)頭。

在步驟911期間,類似于步驟711,inc1004接收mptcpack分組。

由inc1005接收到mptcpack分組結(jié)束用于創(chuàng)建經(jīng)中繼的初始mptcp子流的三次握手過程。所述經(jīng)中繼的初始mptcp子流使用:在源1001和inc1002之間,步驟901期間被用于發(fā)送沒有manage_subflow報(bào)頭的mptcpsyn分組的路徑;在inc1002和inc1004之間,在步驟902期間被用于發(fā)送包括含有表示第一端口號(hào)范圍的信息的改編報(bào)頭info_subflow的mptcpsyn分組的路徑;以及在inc1004和inc1005之間,在步驟903期間被用于重新發(fā)送包括其中表示端口號(hào)的范圍的信息被修改的改編報(bào)頭info_subflow的mptcpsyn分組的路徑。

由inc1005在步驟904期間接收到mptcpsyn分組致使觸發(fā)包括與步驟705、705和712相同的步驟904、905和912的被用于創(chuàng)建中繼tcp流的三次握手過程。

使用與經(jīng)中繼的初始mptcp子流對(duì)應(yīng)的路徑,如在mptcp標(biāo)準(zhǔn)中說明的,以標(biāo)準(zhǔn)方式進(jìn)行經(jīng)中繼的初始mptcp子流的釋放。在一個(gè)實(shí)施方式中,經(jīng)中繼的初始mptcp子流的釋放致使與中繼tcp流的釋放。如在tcp標(biāo)準(zhǔn)中說明的,中繼tcp流的釋放以標(biāo)準(zhǔn)方式進(jìn)行。

圖10示意性地描繪了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中打開新路徑之后創(chuàng)建mptcp連接的補(bǔ)充子流的方法的示例,在網(wǎng)絡(luò)中,能夠?qū)崿F(xiàn)mptcp協(xié)議但不能夠?qū)崿F(xiàn)本發(fā)明的源通過實(shí)現(xiàn)本發(fā)明的至少一個(gè)inc與tcp接收器通信。這里重復(fù)關(guān)于圖7a描述的網(wǎng)絡(luò)并且假定圖10的示例實(shí)現(xiàn)遵循關(guān)于圖9描述的經(jīng)中繼的初始mptcp子流的創(chuàng)建。在圖10的示例中創(chuàng)建的補(bǔ)充子流因此是經(jīng)中繼的補(bǔ)充mptcp子流,其共享關(guān)于圖9描述的示例實(shí)施方式中創(chuàng)建的經(jīng)中繼的初始mptcp子流的源和接收器ip地址。

在圖10中的示例中,中間路徑從inc1002開始并且在接收器1006的方向上打開。

在中間路徑打開之后,發(fā)起關(guān)于步驟1101和1102描述的用信號(hào)發(fā)送新中間路徑的打開的過程。inc1002在步驟1101期間構(gòu)造add_subflow型的報(bào)頭。步驟1101期間構(gòu)造的報(bào)頭add_subflow與步驟801期間構(gòu)造的報(bào)頭add_subflow的不同之處僅在于存在可選字段port。端口號(hào)被包括在端口號(hào)的范圍的、與可用于步驟902中定義的經(jīng)中繼的補(bǔ)充mptcp子流的路徑對(duì)應(yīng)的子部分中。例如,如果介于值“2080”和值“3079”之間的端口號(hào)的范圍的子部分對(duì)應(yīng)于未使用的路徑,則端口號(hào)取值“2080”。

在步驟1102期間,inc1002確定誰的包含報(bào)頭add_subflow的dup_ack分組應(yīng)該被發(fā)送。事實(shí)上,必須將這些分組發(fā)送到能夠響應(yīng)于這些分組的目的地。換句話講,該目的地必須與mptcp+方法兼容。在關(guān)于圖10描述的示例中使用的網(wǎng)絡(luò)中,源1001和接收器1006與mptcp+方法不兼容。僅inc1005與mptcp+方法兼容,這是因?yàn)樗鼘?shí)現(xiàn)與mptcp方法兼容的tcp/mptcp中繼器的作用。將步驟1101期間構(gòu)造的報(bào)頭add_subflow插入例如多個(gè)dup_ack分組中,使用意圖用于inc1005并且經(jīng)過inc1002的不同現(xiàn)有mptcp子流將每個(gè)dup_ack分組發(fā)送到inc1005。

在接收到包含報(bào)頭add_subflow的所述dup_ack分組中的至少一個(gè)之后,inc1005在與步驟605類似的步驟1103中創(chuàng)建如關(guān)于圖14g描述的包含add_addr2型的報(bào)頭的dup_ack型的至少一個(gè)分組并且發(fā)送它。報(bào)頭add_addr2的字段addr_id1465和address_ip1466分別取值“0”,對(duì)應(yīng)于當(dāng)在步驟902期間發(fā)送mptcpsyn分組時(shí)字段addr_id1475和報(bào)頭info_subflow中使用的地址標(biāo)識(shí)符以及與該標(biāo)識(shí)符對(duì)應(yīng)的ip地址。步驟902期間在字段addr_id1475中使用的地址標(biāo)識(shí)符的使用允許向源1001指示待創(chuàng)建的經(jīng)中繼的補(bǔ)充mptcp子流是關(guān)于圖9描述的示例實(shí)施方式中創(chuàng)建的經(jīng)中繼的初始mptcp子流的補(bǔ)充子流。此外,inc1005將可選字段port1467插入報(bào)頭add_addr2中并且向報(bào)頭add_addr2的字段port1467賦予報(bào)頭add_subflow的字段port1448(即,具有端口號(hào)“2080”的端口)的值。

在用于用信號(hào)發(fā)送新中間路徑的打開的過程之后,在源1001和inc1005之間進(jìn)行三次握手過程。關(guān)于步驟1104至1107、1109至1111和1112至1114描述的該三次握手過程使得能夠創(chuàng)建使用新路徑的經(jīng)中繼的補(bǔ)充mptcp子流。該三次握手過程是特定三次握手過程。

在接收到包含報(bào)頭add_addr2的dup_ack分組中的至少一個(gè)之后,源1001在步驟1104期間創(chuàng)建包含傳統(tǒng)報(bào)頭mp_join的mptcpsyn分組并且發(fā)送它,如在mptcp標(biāo)準(zhǔn)中描述的。包含報(bào)頭mp_join的syn分組被發(fā)送到inc1002的目的地端口,該目的地端口的端口號(hào)對(duì)應(yīng)于在由源1001接收的報(bào)頭add_addr2的字段port(即,具有端口號(hào)“2080”的端口)中指示的端口號(hào)。

在步驟1105期間,inc1002在與報(bào)頭add_addr2中指示的端口號(hào)對(duì)應(yīng)的目的地端口(即,具有端口號(hào)“2080”的端口)上接收包含報(bào)頭mp_join的mptcpsyn分組。該目的地端口上的接收致使inc1002能夠確定存在與發(fā)起其創(chuàng)建的經(jīng)中繼的補(bǔ)充mptcp子流有關(guān)的mptcpsyn分組。然后,inc1002構(gòu)造改編報(bào)頭info_subflow和報(bào)頭mp_join+。報(bào)頭mp_join+的字段address_id1425取與步驟902期間創(chuàng)建的mptcpsyn分組的改編報(bào)頭info_subflow的字段addr_id1405相同的地址標(biāo)識(shí)符值。不使用報(bào)頭mp_join+的字段subflow_id1424并且字段subflow_id1424取任何值,例如,值“0”。這是因?yàn)椋谠撌纠?,因?yàn)榭捎帽硎径丝谔?hào)的信息來識(shí)別子流,所以不再為了識(shí)別子流而必須使用字段subflow_id1424。定義取決于在報(bào)頭add_addr2中指示的端口號(hào)的本地端口號(hào)的集合,并且由inc1002將該集合保存在存儲(chǔ)器中。字段port_first1476取屬于端口號(hào)值的范圍的、與報(bào)頭add_addr2中指示的端口號(hào)的值相同的子部分的端口號(hào)值。例如,字段port_first1476取在報(bào)頭add_addr2中指示的端口號(hào)的值。字段port_last1477取包括在端口號(hào)的范圍的、與分組add_addr2中指示的端口號(hào)相同的的子部分中的端口號(hào)值。例如,如果字段port_first1476取報(bào)頭add_addr2中指示的值“2080”,則字段port_last1477取值“3079”。這樣創(chuàng)建的報(bào)頭mp_join+和info_subflow被用于將報(bào)頭mp_join布置在步驟1105期間接收的mptcpsyn分組中。然后,使用新路徑在接收器1006的方向上發(fā)送這樣修改的mptcpsyn分組。

在步驟1106期間,inc1004接收包含報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpsyn分組。mptcpsyn分組的接收向inc1004指示創(chuàng)建經(jīng)中繼的補(bǔ)充mptcp子流的階段在進(jìn)行中。inc1004定義包括在由mptcpsyn分組的字段port_first1476和port_last1477指示的端口號(hào)的范圍中的本地端口號(hào)的集合。隨后,inc1004用表示由inc1004定義的本地端口號(hào)的集合的值來替換mptcpsyn分組的字段port_first1476和port_last1477的值。例如,如果由inc1004接收到的端口號(hào)的范圍位于值“2080”和值“3079”之間,則inc1004可將字段port_first1476的值固定于“2080”并且將字段port_last1477的值固定于“2279”。接下來,在接收器1006的方向上發(fā)送這樣修改的mptcpsyn分組。

在步驟1107中,inc1005接收mptcpsyn分組。

在步驟1109中,inc1005構(gòu)造具有報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpsyn/ack分組并且在源1001的方向上發(fā)送該分組。不使用報(bào)頭mp_join+的字段subflow_id1434并且字段subflow_id1434取任何值,例如,值“0”。報(bào)頭info_subflow的字段typeoflink1414和字段a1415和b1416分別給出關(guān)于新路徑的指示和關(guān)于所使用的加密算法的指示。

當(dāng)接收到mptcpsyn/ack分組時(shí),inc1004實(shí)現(xiàn)與步驟907類似的步驟。

在步驟1111期間,inc1002接收mptcpsyn/ack分組。通過咨詢報(bào)頭info_subflow和在步驟902和1105中在存儲(chǔ)器中保存的信息,inc1002得知,該分組必須被發(fā)送到與mpctp+方法不兼容的源1001。因此,在步驟1111期間,inc1002刪除mptcpsyn/ack分組的報(bào)頭mp_join+和info_subflow并且用傳統(tǒng)的報(bào)頭mp_join替換它們。接下來,inc1002將這樣修改的mptcpsyn/ack分組發(fā)送到源1001。

應(yīng)該注意,在步驟1111的實(shí)現(xiàn)中,inc1002不用報(bào)頭mp_join替換報(bào)頭mp_join+和info_subflow。在這種情況下,源1001忽略與mptcp+方法有關(guān)的報(bào)頭和字段。

在步驟1112中,響應(yīng)于接收到mptcpsyn/ack分組,源1001將具有傳統(tǒng)報(bào)頭mp_join的mptcpack分組發(fā)送到inc1002的目的地端口,在源1001接收的報(bào)頭add_addr2的字段port中指示該目的地端口的端口號(hào)。

在步驟1113中,當(dāng)在報(bào)頭add_addr2的字段port1467中指示其端口號(hào)的目的地端口上接收到mptcpack分組時(shí),inc1002得知存在與它發(fā)起的經(jīng)中繼的補(bǔ)充mptcp子流有關(guān)的mptcpack分組。在步驟1113期間,由inc1002構(gòu)造報(bào)頭mp_join+和報(bào)頭info_subflow。從步驟1111期間接收的mptcpsyn/ack分組的對(duì)應(yīng)字段復(fù)制字段typeoflink1414、a1415和b1416。接下來,用報(bào)頭mp_join+和info_subflow來替換mptcpack分組的報(bào)頭mp_join。這樣修改的mptcpack分組使用新路徑在接收器1006的方向上被發(fā)送。

在步驟1114中,inc1004接收mptcpack分組。接下來,將mptcpack分組重新發(fā)送到inc1005,這結(jié)束三次握手過程。

這樣創(chuàng)建的經(jīng)中繼的補(bǔ)充mptcp子流由現(xiàn)有tcp流(諸如,例如,在步驟904、905和912期間創(chuàng)建的中繼tcp流)中繼。

圖11示意性地示出了實(shí)現(xiàn)用于在網(wǎng)絡(luò)中刪除由inc發(fā)起的mptcp連接的補(bǔ)充子流的方法的示例,在該網(wǎng)絡(luò)中,能夠?qū)崿F(xiàn)mptcp協(xié)議但不能夠?qū)崿F(xiàn)mptcp+方法的源通過實(shí)現(xiàn)mptcp+方法的至少一個(gè)inc與tcp接收器通信。這里重復(fù)關(guān)于圖7描述的網(wǎng)絡(luò)并且假定圖11中的示例實(shí)現(xiàn)遵循關(guān)于圖10描述的經(jīng)中繼的補(bǔ)充mptcp子流的創(chuàng)建。

在關(guān)于圖11描述的示例中,由發(fā)起創(chuàng)建補(bǔ)充子流的請(qǐng)求的inc(即,inc1002)發(fā)起關(guān)閉階段。在這種情況下,關(guān)閉階段遵循與關(guān)于圖5中的步驟519至521和524至543描述的mptcp+方法特有的過程類似的過程。該過程開始于在步驟1120期間創(chuàng)建remove_subflow型的報(bào)頭。

每個(gè)報(bào)頭remove_subflow的字段sf_id1454取默認(rèn)值,例如,“0”。這是因?yàn)樵趫D11中的示例中,待刪除的mtpcp子流的識(shí)別使用由inc1002用于發(fā)送經(jīng)中繼的補(bǔ)充mptcp子流的端口號(hào),而不是字段sf_id1454的值。

報(bào)頭remove_subflow的字段addr_id1455取與在步驟1101期間由inc1002構(gòu)造的報(bào)頭add_subflow的字段addr_id1445相同的值。

報(bào)頭remove_subflow的字段d取向源1001指示必須發(fā)起關(guān)閉經(jīng)中繼的補(bǔ)充mptcp子流的過程的值。在這個(gè)示例中,字段port1458取例如用于步驟1110期間的示例的由inc1002用于發(fā)送經(jīng)中繼的補(bǔ)充pmptcp子流的端口的值。

在步驟1122中,將步驟1120期間創(chuàng)建的報(bào)頭remove_subflow插入經(jīng)過inc1002并且意圖用于inc1005的至少一個(gè)dup_ack分組中,inc1005是圖11中的網(wǎng)絡(luò)中的能夠?qū)Π瑘?bào)頭remove_subflow的分組作出響應(yīng)的唯一實(shí)體。在一個(gè)實(shí)施方式中,每個(gè)dup_ack分組在經(jīng)過inc1002的意圖用于源1001的不同mptcp子流中被發(fā)送。

當(dāng)inc1005接收到包含報(bào)頭remove_subflow的dup_ack分組時(shí),inc1005發(fā)起關(guān)閉補(bǔ)充mptcp子流的階段。該階段開始于在步驟1123中由inc1005在inc1002的方向上發(fā)送fin分組。inc1005使用報(bào)頭remove_subflow的字段port1458中指示的端口號(hào)來識(shí)別待刪除的mptcp子流。

在步驟1124中,inc1004分析fin分組并且在inc1002的方向上傳播fin分組。

在步驟1125中,inc1002在由報(bào)頭remove_subflow的字段port1458指示的端口上接收fin分組。在該端口上接收到fin分組向inc1002指示刪除由其創(chuàng)建被發(fā)送的經(jīng)中繼的補(bǔ)充mptcp子流的階段在進(jìn)行中。

在步驟1126期間,響應(yīng)于接收到源自inc1002的fin分組,源1001發(fā)送在報(bào)頭remove_subflow的字段port1458中指示的inc1002的端口上接收到fin分組的確認(rèn)。

在步驟1127階段,inc1002接收在報(bào)頭remove_subflow的字段port1458中指示的inc1002的端口上接收到fin分組的確認(rèn)并且將該分組重新發(fā)送到inc1004。

在步驟1128中,inc1004接收接收到fin分組的確認(rèn)并且將它重新發(fā)送到inc1005。步驟1128結(jié)束在inc1005處刪除經(jīng)中繼的補(bǔ)充mptcp子流的過程。

接下來,由源1001發(fā)起關(guān)閉經(jīng)中繼的補(bǔ)充mptcp子流的階段。該階段開始于在步驟1129期間由源1001在inc1005的方向上發(fā)送fin分組。

在步驟1130中,inc1002接收fin分組并且將它重新發(fā)送到inc1004。在步驟1131中,inc1004接收fin分組并且將它重新發(fā)送到inc1005。

在步驟1134期間,響應(yīng)于接收到fin分組,inc1005在inc1002的方向上發(fā)送接收到fin分組的確認(rèn)。

在步驟1135期間,inc1004接收接收到fin分組的確認(rèn)并且將它重新發(fā)送到inc1002。

在步驟1136期間,inc1002接收接收到fin分組的確認(rèn),該確認(rèn)向inc1002指示刪除經(jīng)中繼的補(bǔ)充mptcp子流的階段正在結(jié)束。另外,inc1002得知它必須將接收到fin分組的確認(rèn)發(fā)送到源1001。

由源1001接收到fin分組的確認(rèn)的接收結(jié)束刪除經(jīng)中繼的補(bǔ)充mptcp子流的過程。

圖12a示意性地示出了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建初始mptcp子流的方法的示例,在網(wǎng)絡(luò)中,tcp源通過實(shí)現(xiàn)mptcp+方法的inc與tcp接收器通信,實(shí)現(xiàn)mptcp+方法的inc中的兩個(gè)是tcp/mptcp中繼器。

在關(guān)于圖12a描述的示例中,重新使用關(guān)于圖1描述的網(wǎng)絡(luò)。然而,在圖12a的示例中,源1001和接收器1006與mptcp協(xié)議和mptcp+方法不兼容并且使用tcp協(xié)議進(jìn)行通信。inc1002和1005是tcp/mptcp中繼器并且與mptcp+方法兼容。

此外,這里假定在源1001和接收器1006之間只存在一條路線,使得在網(wǎng)絡(luò)單元將使用的路徑上絕無任何不明確。這個(gè)示例中使用的syn分組的報(bào)頭info_subflow因此是關(guān)于圖14a描述的報(bào)頭。

在步驟1200中,源1001開始第一個(gè)三次握手過程,以便在源1001和inc1002之間創(chuàng)建tcp流。為此目的,源1001將tcpsyn分組發(fā)送到inc1002。在步驟1209中,inc1002將tcpsyn/ack分組發(fā)送到源1001。在源1001和inc1002之間創(chuàng)建tcp流的第一個(gè)三次握手過程結(jié)束于步驟1210,在步驟1210期間,源1001將tcpack分組發(fā)送到inc1002。這樣創(chuàng)建的tcp流是中繼tcp流,這是因?yàn)槿缦挛闹忻枋龅?,它允許在源1001和inc1002之間中繼從mptcp子流發(fā)布的數(shù)據(jù)。在源1001和inc1002之間創(chuàng)建的中繼tcp流被稱為源中繼tcp流。

在由源1001接收到在步驟1200期間發(fā)送的tcpsyn分組之后,inc1002發(fā)起第二個(gè)三次握手過程,以便創(chuàng)建初始mptcp子流。該初始mptcp子流使用例如與關(guān)于圖4通過步驟401至415描述的在創(chuàng)建初始mptcp子流中使用的六元組相同的六元組。在關(guān)于圖12a描述的示例的情況下,初始mptcp子流是首先由源中繼tcp流中繼的初始mptcp子流,并且如下文中描述的,被inc1005和接收器1006之間的中繼tcp流中繼,該中繼tcp流被稱為接收器中繼tcp流。該第二個(gè)三次握手過程開始于步驟1201,創(chuàng)建具有報(bào)頭mp_capable和報(bào)頭info_subflow的mptcpsyn分組并且發(fā)送它。在圖12a中的示例中,從mptcp連接的角度來看,inc1002表現(xiàn)得如同源一樣。報(bào)頭mp_capable和info_subflow因此與由源1001在步驟401期間構(gòu)造的報(bào)頭mp_capable和info_subflow相同。

此外,在步驟1201期間,inc1002進(jìn)行源中繼mptcp流和正創(chuàng)建的經(jīng)中繼的初始mptcp流之間的關(guān)聯(lián)。通過進(jìn)行該關(guān)聯(lián),inc1002確保由inc1002接收到的每個(gè)tcp分組被切換成經(jīng)中繼的初始mptcp子流并且由inc1002接收的每個(gè)mptcp分組被切換成源中繼tpc流。

一旦被創(chuàng)建,包含報(bào)頭mp_capable和info_subflow的mptcpsyn分組就在接收器1006的方向上被發(fā)送。

在與步驟403相同的步驟1202中,inc1003接收包含報(bào)頭mp_capable和info_subflow的mptcpsyn分組并且在接收器1006的方向上重新發(fā)送它們。在與步驟404相同的步驟1203中,inc1004接收包含報(bào)頭mp_capable和info_subflow的mptcpsyn分組并且在接收器1006的方向上重新發(fā)送它們。

在步驟1204中,inc1005接收包含報(bào)頭mp_capable和info_subflow的mptcpsyn分組并且確定該分組意圖用于接收器1006。然后,inc1005使用第三個(gè)三次握手過程來創(chuàng)建接收器中繼tcp流。該過程包括:在步驟1204期間將tcpsyn分組發(fā)送到接收器1006,響應(yīng)于tcpsyn分組由接收器1006在步驟1205期間發(fā)送tcpsyn/ack分組,以及由inc1005在步驟1214期間發(fā)送接收到tcpsyn/ack分組的確認(rèn)。以與inc1002已進(jìn)行源中繼tcp流和經(jīng)中繼的初始mptcp流之間的關(guān)聯(lián)相同的方式,在步驟1204期間,inc1005進(jìn)行接收器中繼tcp流和經(jīng)中繼的初始mptcp子流之間的關(guān)聯(lián)。通過進(jìn)行該關(guān)聯(lián),inc1005確保由inc1005接收的每個(gè)tcp分組被切換成經(jīng)中繼的初始mptcp子流并且由inc1005接收的每個(gè)mptcp分組被切換成接收器中繼tcp流。

在步驟1206期間,在接收到包含報(bào)頭mp_capable和info_subflow的mptcpsyn分組之后,inc1005構(gòu)造包含報(bào)頭mp_capable和報(bào)頭info_subflow的mptcpsyn/ack分組。在關(guān)于圖12a描述的示例中,inc1005表現(xiàn)得如同接收器一樣。報(bào)頭mp_capable和info_subflow因此與由接收器1006在步驟406期間構(gòu)造的報(bào)頭mp_capable和info_subflow相同。

一旦被創(chuàng)建,就在源1001的方向上發(fā)送包含報(bào)頭mp_capable和info_subflow的mptcpsyn/ack分組。

在與步驟408相同的步驟1207中,inc1004接收包含報(bào)頭mp_capable和info_subflow的mptcpsyn/ack分組并且在源1001的方向上重新發(fā)送它。在與步驟409相同的步驟1208中,inc1003接收包含報(bào)頭mp_capable和info_subflow的mptcpsyn/ack分組并且在源1001的方向上重新發(fā)送它。

在步驟1211期間,在接收到包含報(bào)頭mp_capable和info_subflow的mptcpsyn/ack分組之后,inc1002構(gòu)造包含分別與在步驟411期間構(gòu)造的報(bào)頭mp_capable和報(bào)頭info_subflow相同的報(bào)頭mp_capable和報(bào)頭info_subflow的mptcpack分組。

在與步驟413相同的步驟1212中,inc1003接收包含報(bào)頭mp_capable和info_subflow的mptcpack分組并且在接收器1006的方向上重新發(fā)送它。在與步驟404相同的步驟1203中,inc1004接收包含報(bào)頭mp_capable和info_subflow的mptcpack分組并且在接收器1006的方向上重新發(fā)送它。

允許創(chuàng)建經(jīng)中繼的初始mptcp子流的三次握手過程結(jié)束于由inc1005接收到包含報(bào)頭mp_capable和info_subflow的mptcpack分組。

然后,源1001和接收器1006可使用源1001和inc1002之間的源中繼tcp流、inc1002和inc1005之間的經(jīng)中繼的初始mptcp子流以及inc1005和接收器1006之間的接收器中繼tcp流進(jìn)行通信。

圖12b示意性地示出了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建附加mptcp子流的方法的示例,在網(wǎng)絡(luò)中,tcp源通過實(shí)現(xiàn)mptcp+方法的inc與tcp接收器通信,實(shí)現(xiàn)mptcp+方法的inc中的兩個(gè)是tcp/mptcp中繼器。

在關(guān)于圖12描述的示例中,重新使用關(guān)于圖1描述的網(wǎng)絡(luò)。如在圖12a的示例中一樣,源1001和接收器1006與mptcp協(xié)議和mptcp+方法不兼容并且使用tcp協(xié)議進(jìn)行通信。inc1002和1005是tcp/mptcp中繼器并且與mptcp+方法兼容。

另外,假定關(guān)于圖12b描述的實(shí)施方式遵循關(guān)于圖12a描述的實(shí)施方式,使得在圖12b中的示例中創(chuàng)建的附加mptcp子流是屬于與經(jīng)中繼的初始mptcp子流相同的mptcp連接的附加mptcp子流,經(jīng)中繼的初始mptcp子流的創(chuàng)建關(guān)于圖12a被描述。附加mptcp流是經(jīng)中繼的附加mptcp子流,這是因?yàn)橐韵旅枋隽耸褂脙蓚€(gè)中繼tcp流來中繼它。

還假定用于中繼經(jīng)中繼的附加mptcp子流的中繼tcp流是在關(guān)于圖12a描述的實(shí)現(xiàn)期間創(chuàng)建的源中繼tcp流和接收器中繼tcp流。換句話講,不特別針對(duì)經(jīng)中繼的附加mtpcp子流創(chuàng)建中繼tcp流。因此,它是被用于中繼經(jīng)中繼的初始tcp子流和經(jīng)中繼的附加mptcp子流的相同中繼mptcp子流。

在步驟1221中,inc1002發(fā)起三次握手過程來創(chuàng)建經(jīng)中繼的附加mptcp子流。經(jīng)中繼的初始mptcp子流使用例如與關(guān)于圖4通過步驟416至430描述的在創(chuàng)建附加mptcp子流中使用的六元組相同的六元組。該第三個(gè)三次握手過程開始于在步驟1221創(chuàng)建具有報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpsyn分組并且發(fā)送它。報(bào)頭mp_capable和info_subflow分別與由源1001在步驟416期間構(gòu)造的報(bào)頭mp_capable和info_subflow相同。

此外,在步驟1221期間,inc1002進(jìn)行源中繼mptcp流和正創(chuàng)建的經(jīng)中繼的附加mptcp流之間的關(guān)聯(lián)。

通過進(jìn)行該關(guān)聯(lián),inc1002確保由inc1002接收的每個(gè)tcp分組被切換成經(jīng)中繼的初始mptcp子流或經(jīng)中繼的附加子流。待使用的mptcp子流的選擇取決于例如表示每個(gè)mptcp子流的使用水平的信息。此外,由inc1002接收的每個(gè)mptcp分組被切換成源中繼tcp流,而無論它是源自經(jīng)中繼的初始mptcp子流還是源自經(jīng)中繼的附加mptcp子流。

一旦被創(chuàng)建,就在接收器1006的方向上發(fā)送包含報(bào)頭mp_join+和info_subflow的mptcpsyn分組。

在與步驟418相同的步驟1222中,inc1003接收包含報(bào)頭mp_join+和info_subflow的mptcpsyn分組并且在接收器1006的方向上重新發(fā)送它。在與步驟419相同的步驟1223中,inc1004接收包含報(bào)頭mp_join+和info_subflow的mptcpsyn分組并且在接收器1006的方向上重新發(fā)送它。

在步驟1226中,inc1004接收包含報(bào)頭mp_join+和info_subflow的mptcpsyn分組并且進(jìn)行接收器中繼tcp流和經(jīng)中繼的附加mptcp流之間的關(guān)聯(lián)。通過進(jìn)行該關(guān)聯(lián),inc1005確保由inc1005接收的每個(gè)tcp分組被切換成經(jīng)中繼的初始mptcp子流或經(jīng)中繼的附加mptcp子流。待使用的mptcp子流的選擇由inc1005例如根據(jù)每個(gè)mptcp子流的使用水平來確定。另外,由inc1005接收的每個(gè)mptcp分組被切換成接收器中繼tcp流。

此外,在步驟1226期間,在接收到包含報(bào)頭mp_join+和info_subflow的mptcpsyn分組之后,inc1005構(gòu)造包含報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpsyn/ack分組。報(bào)頭mp_join+和info_subflow分別與由接收器1006在步驟421期間構(gòu)造的報(bào)頭mp_join+和info_subflow相同。

一旦被創(chuàng)建,就在源1001的方向上發(fā)送包含報(bào)頭mp_join+和info_subflow的mptcpsyn/ack分組。

在與步驟423相同的步驟1227中,inc1004接收包含報(bào)頭mp_join+和info_subflow的mptcpsyn/ack分組并且在源1001的方向上重新發(fā)送它。在與步驟424相同的步驟1228中,inc1003接收包含報(bào)頭mp_join+和info_subflow的mptcpsyn/ack分組并且在源1001的方向上重新發(fā)送它。

在步驟1231期間,在接收到包含報(bào)頭mp_join+和info_subflow的mptcpsyn/ack分組之后,inc1002構(gòu)造包含分別與均由源1001在步驟426期間構(gòu)造的報(bào)頭mp_join+和報(bào)頭info_subflow相同的報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpack分組。

在與步驟428相同的步驟1232中,inc1003接收包含報(bào)頭mp_join+和info_subflow的mptcpack分組并且在接收器1006的方向上重新發(fā)送它。在與步驟429相同的步驟1233中,inc1004接收包含報(bào)頭mp_join+和info_subflow的mptcpack分組并且在接收器1006的方向上重新發(fā)送它。

使得能夠創(chuàng)建經(jīng)中繼的附加mptcp子流的三次握手過程結(jié)束于由inc1005接收到包含報(bào)頭mp_join+和info_subflow的mptcpack分組。

然后,源1001和接收器1006可使用源1001和inc1002之間的源中繼tcp流、inc1002和inc1005之間的經(jīng)中繼的初始mptcp子流和經(jīng)中繼的附加mptcp子流以及inc1005和接收器1006之間的接收器中繼流進(jìn)行通信。

圖13示意性地示出了實(shí)現(xiàn)根據(jù)本發(fā)明的用于在網(wǎng)絡(luò)中創(chuàng)建補(bǔ)充mptcp子流的方法的示例,在網(wǎng)絡(luò)中,tcp源通過實(shí)現(xiàn)mptcp+方法的inc與tcp接收器通信,實(shí)現(xiàn)mptcp+方法的inc中的兩個(gè)是tcp/mptcp中繼器。

在關(guān)于圖13描述的示例中,再次使用關(guān)于圖1描述的網(wǎng)絡(luò)。如在圖12a的示例中,源1001和接收器1006與mptcp協(xié)議和mptcp+方法不兼容并且使用tcp協(xié)議進(jìn)行通信。inc1002和1005是tcp/mptcp中繼器并且與mptcp+方法兼容。

此外,假定關(guān)于圖13描述的實(shí)施方式遵循關(guān)于圖12a和圖12b描述的實(shí)施方式。假定圖13中的示例中創(chuàng)建的補(bǔ)充mptcp子流是經(jīng)中繼的初始mptcp子流的補(bǔ)充mptcp子流,初始mptcp子流的創(chuàng)建關(guān)于圖12a被描述。補(bǔ)充mptcp流是經(jīng)中繼的補(bǔ)充mptcp流,這是因?yàn)橄挛闹忻枋鍪褂脙蓚€(gè)中繼tcp流來中繼它。

還假定被用于中繼經(jīng)中繼的補(bǔ)充mptcp子流的中繼tcp流是在關(guān)于圖12a描述的實(shí)施方式中創(chuàng)建的源中繼tcp流和接收器中繼tcp流。

在圖13中的示例實(shí)施方式中,新中間路徑在接收器1003的方向上從inc1005打開。創(chuàng)建經(jīng)中繼的補(bǔ)充mptcp子流的一個(gè)目的是使用該新中間路徑。

用于創(chuàng)建經(jīng)中繼的補(bǔ)充mptcp子流的方法非常近似于關(guān)于圖5描述的用于創(chuàng)建mptcp子流的方法。這是因?yàn)樵摲椒òㄓ糜谟眯盘?hào)發(fā)送并且打開新中間路徑的過程和inc1002與inc1005之間的三次握手過程,從mptcp連接的角度來看,inc1002表現(xiàn)得如同源一樣,從mptcp連接的角度來看,inc1005表現(xiàn)得如同接收器一樣。

在關(guān)于圖13描述的示例實(shí)施方式中,經(jīng)中繼的補(bǔ)充mptcp子流共享關(guān)于圖12a描述的實(shí)施方式中創(chuàng)建的經(jīng)中繼的初始mptcp子流的源和接收器ip地址以及源和接收器端口號(hào)。

在步驟1300中,inc1003開始通過構(gòu)造add_subflow型的報(bào)頭來用信號(hào)發(fā)送中間路徑的打開的過程。

在步驟1301期間,inc1003將字段sf_id1444和addr_id1445設(shè)置成允許識(shí)別哪個(gè)初始或附加mptcp子流必須充當(dāng)用于創(chuàng)建經(jīng)中繼的補(bǔ)充mptcp子流的基礎(chǔ)的值。由于在圖13中的示例中,使用經(jīng)中繼的初始mptcp子流,因此字段sf_id1444和addr_id1445取與經(jīng)中繼的初始mptcp子流對(duì)應(yīng)的值。字段d1446取值“0”,以指示inc1002發(fā)起補(bǔ)充mptcp子流的創(chuàng)建。字段seq_req1447取由inc1003確定的隨機(jī)值“al3”。字段seq_req1447的隨機(jī)值“al3”被存儲(chǔ)在inc1003的存儲(chǔ)器中。在這個(gè)示例中,不使用報(bào)頭add_subflow的可選字段port1448,這是因?yàn)椴淮嬖陉P(guān)于在inc1002和inc1005之間將遵循的路線的不明確性。

用于用信號(hào)發(fā)送打開新中間路徑的過程繼續(xù)進(jìn)行至步驟1301,在步驟1301期間,報(bào)頭add_subflow被插入意圖用于源1001的至少一個(gè)dup_ack分組中。在一個(gè)實(shí)施方式中,使用意圖用于源1001的多個(gè)現(xiàn)有mptcp子流,將報(bào)頭add_subflow插入經(jīng)過inc1003的多個(gè)dup_ack分組中。

在接收到包含報(bào)頭add_subflow的dup_ack分組中的至少一個(gè)之后,inc1002將經(jīng)中繼的補(bǔ)充mptcp子流與源中繼tcp流關(guān)聯(lián)。通過進(jìn)行該關(guān)聯(lián),inc1002確保由inc1002接收的每個(gè)tcp分組被切換成mptcp子流(經(jīng)中繼的初始、經(jīng)中繼的附加或經(jīng)中繼的補(bǔ)充)中的一個(gè)。待使用的mptcp子流的選擇也可取決于表示每個(gè)mptcp子流的使用水平的信息。另外,由inc1002接收的每個(gè)mptcp分組被切換成源中繼tcp流,而無論它是源自經(jīng)中繼的初始mptcp子流、源自經(jīng)中繼的附加mptcp子流還是源自經(jīng)中繼的補(bǔ)充mptcp子流。

此外,在步驟1302期間,inc1002發(fā)起三次握手過程來創(chuàng)建經(jīng)中繼的補(bǔ)充mptcp子流。三次握手過程開始于在步驟1302期間由inc1002創(chuàng)建包含報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpsyn分組,并且然后進(jìn)行發(fā)送。

步驟1221期間創(chuàng)建的mptcpsyn分組非常類似于步驟504期間創(chuàng)建的mptcpsyn分組。僅報(bào)頭info_subflow的字段seq_req1406的值是不同的,并且取隨機(jī)值“al3”。

在與步驟506相同的步驟1303中,inc1003接收包含報(bào)頭mp_join+和info_subflow的mptcpsyn分組。通過讀取報(bào)頭info_subflow的字段seq_req1406的值,inc1003確定該分組與用于創(chuàng)建其發(fā)起的經(jīng)中繼的補(bǔ)充mptcp子流的過程有關(guān),并且依此推導(dǎo)出必須使用新中間路徑將該分組重新發(fā)送到inc1005。

在與步驟507相同的步驟1304中,inc1004接收包含報(bào)頭mp_join+和info_subflow的mptcpsyn分組并且將它重新發(fā)送到inc1005。

在接收到包含報(bào)頭mp_join+和info_subflow的mptcpsyn分組之后,inc1005在步驟1305期間構(gòu)造具有報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpsyn/ack分組并且發(fā)送它。步驟1305期間創(chuàng)建的syn/ack分組與步驟509期間創(chuàng)建的syn/ack分組相同。

在與步驟511和512分別相同的步驟1306和1307期間,inc1004和1003接收包括報(bào)頭mp_join+和info_subflow的mptcpsyn/ack分組并且將它重新發(fā)送到inc1002。

在步驟1308期間,inc1002創(chuàng)建包括報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpack分組。報(bào)頭mp_join+和info_subflow分別與由源1001在步驟514期間構(gòu)造的報(bào)頭mp_join+和info_subflow相同。

在與步驟516和517分別相同的步驟1309和1310期間,inc1003和1004接收包括報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpack分組并且使用新中間路徑將它重新發(fā)送到inc1005。當(dāng)inc1005接收到包括報(bào)頭mp_join+和報(bào)頭info_subflow的mptcpack分組時(shí),用于創(chuàng)建經(jīng)中繼的補(bǔ)充mptcp子流的方法結(jié)束。

然后,源1001和接收器1006可使用源1001和inc1002之間的源中繼tcp流、inc1002和inc1005之間的經(jīng)中繼的初始mptcp子流、經(jīng)中繼的附加mptcp子流和經(jīng)中繼的補(bǔ)充mptcp子流、以及inc1005和接收器1006之間的接收器中繼流進(jìn)行通信。

在關(guān)于圖12a、圖12b和圖13描述的示例實(shí)施方式中,可以用能夠?qū)崿F(xiàn)封裝的網(wǎng)絡(luò)單元替換每個(gè)tcp/mptcp中繼器。在這種情況下,不是被中繼,而是每個(gè)tcp流被封裝在由多個(gè)mptcp子流構(gòu)成的mptcp連接中。使用能夠?qū)崿F(xiàn)封裝的網(wǎng)絡(luò)單元對(duì)用于創(chuàng)建mptcp子流的方法沒有影響。

在特定實(shí)施方式中,用能夠?qū)崿F(xiàn)將mptcp子流封裝在tcp流中的網(wǎng)絡(luò)單元來替換這些tcp/mptcp中繼器。

在該特定實(shí)施方式中,每個(gè)封裝后的tcp流被稱為“待封裝的tcp流”,并且用于封裝tcp流的每個(gè)mptcp子流(初始、附加或補(bǔ)充)被稱為“封裝mptcp子流(初始、附加或補(bǔ)充)”。

用于創(chuàng)建初始封裝mptcp子流、和附加封裝mptcp子流和補(bǔ)充封裝mptcp子流的三次握手過程分別與關(guān)于圖12a、圖12b和圖13描述的用于創(chuàng)建初始中繼的mptcp子流、附加中繼的mptcp子流和補(bǔ)充中繼的mptcp子流的三次握手過程。然而,在這種情況下,只要?jiǎng)?chuàng)建了封裝,就建立初始封裝mptcp子流和附加封裝mptcp子流。在使用能夠?qū)崿F(xiàn)將多個(gè)tcp連接封裝在mptcp連接中的網(wǎng)絡(luò)單元的特定實(shí)施方式中,僅inc1002和1005具有不同行為。這是因?yàn)椋皇怯蒻ptcp子流中繼tcp流和由tcp流中繼mptcp子流,而是inc1002和1005將tcp流封裝在mptcp子流中并且解封裝mptcp流的這些tcp流。

源1001和接收器1006接下來可以顯然地使用在inc1002和inc1005之間配置的mptcp型的封裝,在從源1001到接收器1006的方向上通信。

當(dāng)前第1頁1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
文化| 襄城县| 黄骅市| 大埔区| 铜山县| 永城市| 吉安市| 醴陵市| 赤峰市| 靖宇县| 林州市| 延津县| 长子县| 佳木斯市| 雅江县| 泗洪县| 镇巴县| 微山县| 玛曲县| 邻水| 迁西县| 双峰县| 格尔木市| 泌阳县| 岳池县| 定安县| 五家渠市| 东乡| 永登县| 吉隆县| 固始县| 囊谦县| 垫江县| 阳信县| 大方县| 清苑县| 卢龙县| 双峰县| 高雄县| 澄迈县| 永靖县|