1.本技術(shù)涉及通信領(lǐng)域,并且更具體地涉及通信領(lǐng)域中的傳輸數(shù)據(jù)的方法和裝置。
背景技術(shù):2.多路徑傳輸控制協(xié)議(multipath transmission control protocol,mptcp)是通過(guò)多個(gè)路徑并發(fā)傳輸?shù)膫鬏攨f(xié)議。通過(guò)mptcp可以建立一個(gè)mptcp會(huì)話的多個(gè)子通道,這樣,可以通過(guò)多個(gè)子通道傳輸一個(gè)mptcp會(huì)話的傳輸控制協(xié)議(transmission control protocol,tcp)報(bào)文。通常情況下,客戶端可以根據(jù)本地策略控制多個(gè)子通道上數(shù)據(jù)流量的傳輸,在一些場(chǎng)景中,服務(wù)端期望接收端按照服務(wù)端的策略控制多個(gè)子通道上數(shù)據(jù)流量的傳輸,例如在擁塞或者切換運(yùn)營(yíng)商場(chǎng)景下,服務(wù)端期望客戶端按照服務(wù)端的期望傳輸數(shù)據(jù)流量?,F(xiàn)有技術(shù)中,服務(wù)端可以在當(dāng)前子通道上向客戶端發(fā)送用于子流限速的tcp選項(xiàng),客戶端接收到用于子流限速的tcp選項(xiàng)時(shí),客戶端對(duì)接收tcp選項(xiàng)的當(dāng)前子通道上的數(shù)據(jù)流量進(jìn)行限速,但是這樣會(huì)容易丟包,傳輸性能較差,或者有可能將當(dāng)前子通道上的數(shù)據(jù)流量切換到其他的一個(gè)或多個(gè)子通道上,若存在多個(gè)子通道,客戶端可以根據(jù)本地策略在多個(gè)子通道中選擇一個(gè)子通道傳輸切換后的數(shù)據(jù)流量,這樣客戶端仍然無(wú)法按照服務(wù)端期望的網(wǎng)絡(luò)入口來(lái)選擇子通道,從而無(wú)法滿足服務(wù)端主動(dòng)導(dǎo)航的需求。
技術(shù)實(shí)現(xiàn)要素:3.本技術(shù)實(shí)施例提供了一種傳輸數(shù)據(jù)的方法和裝置,能夠提高傳輸性能。也能滿足服務(wù)端主動(dòng)導(dǎo)航的需求。
4.第一方面,提供了一種傳輸數(shù)據(jù)的方法,第一設(shè)備通過(guò)第一子通道接收第二設(shè)備發(fā)送的第一傳輸控制協(xié)議tcp選項(xiàng),所述第一tcp選項(xiàng)包括目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí),所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)用于標(biāo)識(shí)所述第二設(shè)備向所述第一設(shè)備提供服務(wù)的目標(biāo)網(wǎng)絡(luò)入口;
5.所述第一設(shè)備根據(jù)所述第一tcp選項(xiàng)中的所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)確定第二子通道;
6.所述第一設(shè)備將所述第一子通道上的待傳輸數(shù)據(jù)切換到所述第二子通道上向所述第二設(shè)備傳輸。
7.上述方案中,第二設(shè)備可以是服務(wù)端,第一設(shè)備可以是客戶端,這樣,客戶端可以將接收第一tcp選項(xiàng)的第一子通道上的數(shù)據(jù)切換到服務(wù)端期望的目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)對(duì)應(yīng)的第二子通道上傳輸,例如在擁塞或者切換運(yùn)營(yíng)商場(chǎng)景下,可以避免第一子通道上的數(shù)據(jù)丟失,也能滿足服務(wù)端的主動(dòng)導(dǎo)航需求。
8.可選地,該方法應(yīng)用于mptcp場(chǎng)景中。
9.可選地,第一子通道和第二子通道可以是一個(gè)mptcp會(huì)話對(duì)應(yīng)的兩個(gè)子通道。
10.可選地,第一設(shè)備可以是服務(wù)端,第二設(shè)備可以是客戶端,這樣,服務(wù)端可以將接收第一tcp選項(xiàng)的第一子通道上的數(shù)據(jù)切換到客戶端期望的目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)對(duì)應(yīng)的第二子通通道上傳輸,例如在擁塞或者切換運(yùn)營(yíng)商場(chǎng)景下,可以避免第一子通通道上的數(shù)據(jù)
丟失,也能滿足客戶端主動(dòng)導(dǎo)航的需求。
11.可選地,第一設(shè)備可以向第二設(shè)備發(fā)送tcp數(shù)據(jù)報(bào)文或者tcp控制報(bào)文,tcp數(shù)據(jù)報(bào)文或者tcp控制報(bào)文攜帶第一tcp選項(xiàng)。具體地,tcp數(shù)據(jù)報(bào)文的報(bào)文頭或者tcp控制報(bào)文的報(bào)文頭可以攜帶第一tcp選項(xiàng)。
12.可選地,所述第一子通道上的待傳輸數(shù)據(jù)可以是第一設(shè)備發(fā)起的某一個(gè)應(yīng)用的數(shù)據(jù)。
13.其中,所述第一設(shè)備將所述第一子通道上的待傳輸數(shù)據(jù)切換到所述第二子通道上向所述第二設(shè)備傳輸,包括:第一設(shè)備將第一子通道上的待傳輸數(shù)據(jù)按照第二子通道的封裝格式和序列號(hào)準(zhǔn)則生成第一tcp數(shù)據(jù)報(bào)文向第二設(shè)備發(fā)送。
14.可選地,第一子通道和第二子通道上的tcp數(shù)據(jù)報(bào)文的封裝格式可以不同,也可以相同,本技術(shù)不予限制。
15.在一種可能的實(shí)現(xiàn)方式中,所述第一tcp選項(xiàng)包括第一字段和第二字段,所述第一字段取值為第一取值,所述第二字段用于承載所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí),所述第一取值用于指示所述第二字段承載的所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)用于確定所述第二子通道,在所述第一設(shè)備根據(jù)所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)確定第二子通道之前,所述方法還包括:所述第一設(shè)備根據(jù)所述第一字段的所述第一取值確定所述第二字段承載的所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)用于確定所述第二子通道。
16.例如,第一取值可以是協(xié)議規(guī)定的或者是預(yù)設(shè)的。
17.可選地,第一字段和第二字段在第一tcp選項(xiàng)中的位置為預(yù)設(shè)的固定位置,協(xié)議可以規(guī)定第一字段和第二字段在第一tcp選項(xiàng)中的位置,這樣,第一設(shè)備和第二設(shè)備能夠根據(jù)協(xié)議規(guī)定確定第一字段和第二字段的位置。
18.在一種可能的實(shí)現(xiàn)方式中,所述目標(biāo)網(wǎng)絡(luò)入口對(duì)應(yīng)一個(gè)或多個(gè)子通道;其中,所述第一設(shè)備根據(jù)所述第一tcp選項(xiàng)中的所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)確定第二子通道,包括:所述第一設(shè)備根據(jù)本地策略在所述一個(gè)或多個(gè)子通道中確定所述第二子通道。
19.在上述方案中,若目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)對(duì)應(yīng)一個(gè)子通道,則該子通道為第二子通道;若目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)對(duì)應(yīng)多個(gè)子通道,第一設(shè)備可以根據(jù)本地策略在多個(gè)子通道中選擇一個(gè)子通道作為第二子通道。
20.在一種可能的實(shí)現(xiàn)方式中,所述第一設(shè)備通過(guò)第一子通道接收第二設(shè)備發(fā)送的第一tcp選項(xiàng),包括:所述第一設(shè)備通過(guò)所述第一子通道接收所述第二設(shè)備發(fā)送的第二tcp數(shù)據(jù)報(bào)文,所述第二tcp數(shù)據(jù)報(bào)文包括所述第一tcp選項(xiàng)。
21.例如,第二tcp數(shù)據(jù)報(bào)文的報(bào)文頭攜帶第一tcp選項(xiàng),第二tcp數(shù)據(jù)報(bào)文的報(bào)文體包括數(shù)據(jù)部分,該數(shù)據(jù)部分為客戶端發(fā)起某個(gè)應(yīng)用時(shí),服務(wù)端反饋的該應(yīng)用對(duì)應(yīng)的數(shù)據(jù)。
22.在一種可能的實(shí)現(xiàn)方式中,所述第一設(shè)備通過(guò)第一子通道接收第二設(shè)備發(fā)送的第一tcp選項(xiàng),包括:所述第一設(shè)備通過(guò)所述第一子通道接收所述第二設(shè)備發(fā)送的第一tcp控制報(bào)文,所述第一tcp控制報(bào)文包括所述第一tcp選項(xiàng)。
23.例如,第一tcp控制報(bào)文可以是任何一個(gè)服務(wù)端向客戶端發(fā)送的tcp控制報(bào)文,例如tcp數(shù)據(jù)報(bào)文的應(yīng)答報(bào)文或者?;顖?bào)文等。
24.在一種可能的實(shí)現(xiàn)方式中,在所述第一設(shè)備將所述第一子通道上的待傳輸?shù)臄?shù)據(jù)切換到所述第二子通道上之后,所述方法還包括:所述第一設(shè)備維持所述第一子通道不斷
開??蛻舳撕头?wù)端可以維持第一子通道不斷開時(shí),客戶端和服務(wù)端可以通過(guò)第一子通道發(fā)送tcp?;顖?bào)文。這樣,當(dāng)切換至第二子通道上的原本在第一子通道上傳輸?shù)暮罄m(xù)數(shù)據(jù)需要切換回第一子通道時(shí),能夠迅速切換回至第一子通道,避免客戶端和服務(wù)端需要重新建立第一子通道所帶來(lái)的時(shí)延。
25.在一種可能的實(shí)現(xiàn)方式中,所述方法還包括:所述第一設(shè)備在所述第一子通道上接收來(lái)自所述第二設(shè)備的第二tcp控制報(bào)文,所述第二tcp控制報(bào)文包括第二tcp選項(xiàng),所述第二tcp選項(xiàng)用于撤銷所述第一tcp選項(xiàng);
26.所述第一設(shè)備根據(jù)所述第二tcp選項(xiàng)在所述第一子通道上繼續(xù)傳輸?shù)谌齮cp數(shù)據(jù)報(bào)文,所述第三tcp數(shù)據(jù)報(bào)文為所述第一子通道上待傳輸?shù)膖cp數(shù)據(jù)報(bào)文。
27.在上述方案中,第二設(shè)備發(fā)送了第一tcp選項(xiàng)之后,在一些場(chǎng)景中,第二設(shè)備確定不需要將第一子通道上的數(shù)據(jù)切換到第二子通道,則需要將第一子通道的數(shù)據(jù)切換回來(lái),則第二設(shè)備可以在第一子通道上發(fā)送第二tcp控制報(bào)文,第二tcp控制報(bào)文包括的第二tcp選項(xiàng)用于將在第二子通道傳輸?shù)脑驹诘谝蛔油ǖ郎蟼鬏數(shù)臄?shù)據(jù)切換回第一子通道,這樣,可以提高導(dǎo)航的靈活性。
28.在一種可能的實(shí)現(xiàn)方式中,所述第二tcp選項(xiàng)與所述第一tcp選項(xiàng)的格式相同,所述第二tcp選項(xiàng)中的第三字段的取值為第二取值,所述第二取值用于指示撤銷所述第一tcp選項(xiàng),除了所述第一tcp選項(xiàng)的所述第一字段和所述第二tcp選項(xiàng)的所述第三字段之外,所述第一tcp選項(xiàng)和所述第二tcp選項(xiàng)的其他字段相同以及所述其他字段的取值也相同。
29.在上述方案中,若第一tcp選項(xiàng)與第二tcp選項(xiàng)的格式相同,可以簡(jiǎn)化設(shè)計(jì)。
30.可選地,第一tcp選項(xiàng)與第二tcp選項(xiàng)的格式也可以不同,本技術(shù)不予限制。
31.可選地,第一tcp選項(xiàng)的所述第一字段和所述第二tcp選項(xiàng)的所述第三字段可以為同一字段或者不同的字段,本技術(shù)不予限制。
32.在一種可能的實(shí)現(xiàn)方式中,所述方法還包括:所述第一設(shè)備刪除所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)對(duì)應(yīng)的導(dǎo)航信息,所述導(dǎo)航信息為所述第一設(shè)備根據(jù)所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)生成的用于確定所述第二子通道的信息。
33.在上述方案中,若維持所述第一子通道不斷開,第一設(shè)備在將第一子通道上待傳輸?shù)臄?shù)據(jù)切換到第二子通道上所需要的導(dǎo)航信息刪除,這樣可以節(jié)省存儲(chǔ)導(dǎo)航信息的開銷。
34.在一種可能的實(shí)現(xiàn)方式中,在所述第一設(shè)備將所述第一子通道上的待傳輸?shù)臄?shù)據(jù)切換到所述第二子通道上之后,若所述第一子通道斷開,所述方法還包括:
35.所述第一設(shè)備刪除所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)對(duì)應(yīng)的導(dǎo)航信息和所述第一子通道的配置信息,所述導(dǎo)航信息為所述第一設(shè)備根據(jù)所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)生成的用于確定所述第二子通道的信息。
36.可選地,第一子通道的配置信息可以為標(biāo)識(shí)第一子通道的信息和/或配置第一子通道所占的資源等信息。
37.在上述方案中,若第一子通道斷開,則第一設(shè)備可以刪除導(dǎo)航信息以及第一子通道的配置信息并釋放資源,從而可以節(jié)省開銷。
38.第二方面,提供了一種傳輸數(shù)據(jù)的方法,包括:第二設(shè)備確定目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí),所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)用于標(biāo)識(shí)所述第二設(shè)備向所述第一設(shè)備提供服務(wù)的目標(biāo)網(wǎng)絡(luò)
入口;所述第二設(shè)備生成第一傳輸控制協(xié)議tcp選項(xiàng),所述第一tcp選項(xiàng)包括所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí);所述第二設(shè)備通過(guò)第一子通道向第一設(shè)備發(fā)送所述第一tcp選項(xiàng),所述第一tcp選項(xiàng)中的所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)用于所述第一設(shè)備確定第二子通道;所述第二設(shè)備在所述第二子通道上接收來(lái)自所述第一設(shè)備的第一tcp數(shù)據(jù)報(bào)文,所述第一tcp數(shù)據(jù)報(bào)文的數(shù)據(jù)部分為所述第一子通道上待傳輸?shù)臄?shù)據(jù)部分。
39.在一種可能的實(shí)現(xiàn)方式中,所述方法還包括:
40.所述第二設(shè)備確定源網(wǎng)絡(luò)入口,所述源網(wǎng)絡(luò)入口為所述第二設(shè)備向所述第一設(shè)備提供服務(wù)的網(wǎng)絡(luò)入口,所述源網(wǎng)絡(luò)入口對(duì)應(yīng)一個(gè)或多個(gè)子通道;
41.所述第二設(shè)備在所述一個(gè)或多個(gè)子通道中確定所述第一子通道。
42.在一種可能的實(shí)現(xiàn)方式中,所述第一tcp選項(xiàng)包括第一字段和第二字段,所述第一字段取值為第一取值,所述第二字段用于承載所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí),所述第一取值用于指示所述第二字段承載的所述目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)用于所述第一設(shè)備確定所述第二子通道。
43.在一種可能的實(shí)現(xiàn)方式中,所述第二設(shè)備通過(guò)第一子通道向第一設(shè)備發(fā)送所述第一tcp選項(xiàng),包括:
44.所述第一設(shè)備通過(guò)所述第一子通道向所述第二設(shè)備發(fā)送第二tcp數(shù)據(jù)報(bào)文,所述第二tcp數(shù)據(jù)報(bào)文包括所述第一tcp選項(xiàng);或者
45.所述第一設(shè)備通過(guò)所述第一子通道向所述第二設(shè)備發(fā)送第一tcp控制報(bào)文,所述第一tcp控制報(bào)文包括所述第一tcp選項(xiàng)。
46.在一種可能的實(shí)現(xiàn)方式中,在所述第一設(shè)備將所述第一子通道上的待傳輸?shù)牡谝籺cp數(shù)據(jù)報(bào)文切換到所述第二子通道上之后,所述第一子通道不斷開,所述方法還包括:
47.所述第二設(shè)備在所述第一子通道上向所述第一設(shè)備發(fā)送第二tcp控制報(bào)文,所述第二tcp控制報(bào)文包括第二tcp選項(xiàng),所述第二tcp選項(xiàng)用于撤銷所述第一tcp選項(xiàng)。
48.在一種可能的實(shí)現(xiàn)方式中,所述第二tcp選項(xiàng)與所述第一tcp選項(xiàng)的格式相同,所述第二tcp選項(xiàng)中的第三字段的取值為第二取值,所述第二取值用于指示撤銷所述第一tcp選項(xiàng),除了所述第一tcp選項(xiàng)的所述第一字段和所述第二tcp選項(xiàng)的所述第三字段之外,所述第一tcp選項(xiàng)和所述第二tcp選項(xiàng)的其他字段相同以及所述其他字段的取值也相同。
49.在一種可能的實(shí)現(xiàn)方式中,在所述第二設(shè)備在所述第二子通道上接收來(lái)自所述第一設(shè)備的第一tcp數(shù)據(jù)報(bào)文之后,若所述第一子通道斷開,所述方法還包括:
50.所述第二設(shè)備刪除所述第一子通道的配置信息。
51.第三方面,本技術(shù)提供了一種裝置,該裝置包含在電子設(shè)備中,該裝置具有實(shí)現(xiàn)上述各方面及上述各方面的可能實(shí)現(xiàn)方式中電子設(shè)備行為的功能。功能可以通過(guò)硬件實(shí)現(xiàn),也可以通過(guò)硬件執(zhí)行相應(yīng)的軟件實(shí)現(xiàn)。硬件或軟件包括一個(gè)或多個(gè)與上述功能相對(duì)應(yīng)的模塊或單元。例如,顯示模塊或單元、檢測(cè)模塊或單元、處理模塊或單元等。
52.第四方面,本技術(shù)提供了一種電子設(shè)備,包括:一個(gè)或多個(gè)處理器;存儲(chǔ)器;多個(gè)應(yīng)用程序;以及一個(gè)或多個(gè)計(jì)算機(jī)程序。其中,一個(gè)或多個(gè)計(jì)算機(jī)程序被存儲(chǔ)在存儲(chǔ)器中,一個(gè)或多個(gè)計(jì)算機(jī)程序包括指令。當(dāng)指令被電子設(shè)備執(zhí)行時(shí),使得電子設(shè)備執(zhí)行上述任一方面任一項(xiàng)可能的實(shí)現(xiàn)中的傳輸數(shù)據(jù)的方法。
53.可選地,該電子設(shè)備還可以包括:觸摸顯示屏和/或攝像頭,其中,觸摸顯示屏包括
觸敏表面和顯示器;
54.第五方面,本技術(shù)提供了一種電子設(shè)備,包括一個(gè)或多個(gè)處理器和一個(gè)或多個(gè)存儲(chǔ)器。該一個(gè)或多個(gè)存儲(chǔ)器與一個(gè)或多個(gè)處理器耦合,一個(gè)或多個(gè)存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)程序代碼,計(jì)算機(jī)程序代碼包括計(jì)算機(jī)指令,當(dāng)一個(gè)或多個(gè)處理器執(zhí)行計(jì)算機(jī)指令時(shí),使得電子設(shè)備執(zhí)行上述任一方面任一項(xiàng)可能的實(shí)現(xiàn)中的傳輸數(shù)據(jù)的方法。
55.第六方面,本技術(shù)提供了一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),包括計(jì)算機(jī)指令,當(dāng)計(jì)算機(jī)指令在電子設(shè)備上運(yùn)行時(shí),使得電子設(shè)備執(zhí)行上述任一方面任一項(xiàng)可能的安全訪問(wèn)數(shù)據(jù)的方法。
56.第七方面,本技術(shù)提供了一種計(jì)算機(jī)程序產(chǎn)品,當(dāng)計(jì)算機(jī)程序產(chǎn)品在電子設(shè)備上運(yùn)行時(shí),使得電子設(shè)備執(zhí)行上述任一方面任一項(xiàng)可能的傳輸數(shù)據(jù)的方法。
附圖說(shuō)明
57.圖1是本技術(shù)實(shí)施例提供的系統(tǒng)框架圖。
58.圖2是本技術(shù)實(shí)施例提供的電子設(shè)備的示意性框圖。
59.圖3是本技術(shù)實(shí)施例提供的傳輸數(shù)據(jù)的方法示意圖。
60.圖4是本技術(shù)實(shí)施例提供的第一tcp選項(xiàng)的格式示意圖。
61.圖5是本技術(shù)實(shí)施例提供的客戶端與服務(wù)端之間的子通道示意圖。
62.圖6是本技術(shù)實(shí)施例提供的另一傳輸數(shù)據(jù)的方法示意圖。
63.圖7是本技術(shù)實(shí)施例提供的add-addr選項(xiàng)的格式示意圖。
64.圖8是本技術(shù)實(shí)施例提供的第一tcp選項(xiàng)賦值后的示意圖。
65.圖9是本技術(shù)實(shí)施例提供的tcp確認(rèn)報(bào)文賦值后的格式示意圖。
66.圖10是本技術(shù)實(shí)施例提供的撤銷第一tcp選項(xiàng)的示意圖。
具體實(shí)施方式
67.下面將結(jié)合本技術(shù)實(shí)施例中的附圖,對(duì)本技術(shù)實(shí)施例中的技術(shù)方案進(jìn)行描述。
68.mptcp傳輸能夠充分利用帶寬資源,并且能夠調(diào)度多路徑上的數(shù)據(jù)流量傳輸,從而可以控制擁塞,mptcp也能解決重傳的問(wèn)題。如圖1所示為本技術(shù)實(shí)施例提供的系統(tǒng)框架圖??蛻舳撕头?wù)端可以通過(guò)三次握手建立一個(gè)子流,依次類推可以建立多個(gè)子流,服務(wù)端和客戶端可以通過(guò)建立多個(gè)子流傳輸tcp報(bào)文,服務(wù)端和客戶端可以通過(guò)四次握手關(guān)閉子流。其中,若服務(wù)端向客戶端發(fā)送tcp報(bào)文,服務(wù)端可以稱為發(fā)送端,客戶端稱為接收端;若客戶端向服務(wù)端發(fā)送tcp報(bào)文,客戶端稱為發(fā)送端,服務(wù)端稱為接收端。
69.其中,客戶端可以指用戶設(shè)備(user equipment,ue)、接入終端、用戶單元、用戶站、移動(dòng)站、移動(dòng)臺(tái)、遠(yuǎn)方站、遠(yuǎn)程終端、移動(dòng)設(shè)備、用戶終端、終端、無(wú)線通信設(shè)備、用戶代理或用戶裝置。例如,終端設(shè)備可以是手機(jī)(mobile phone)、平板電腦(pad)、帶收發(fā)功能的電腦、虛擬現(xiàn)實(shí)(virtual reality,vr)終端設(shè)備、增強(qiáng)現(xiàn)實(shí)(augmented reality,ar)終端設(shè)備、工業(yè)控制(industrial control)中的無(wú)線終端、無(wú)人駕駛(self driving)中的無(wú)線終端、遠(yuǎn)程醫(yī)療(remote medical)中的無(wú)線終端、智能電網(wǎng)(smart grid)中的無(wú)線終端、運(yùn)輸安全(transportation safety)中的無(wú)線終端、智慧城市(smart city)中的無(wú)線終端、智慧家庭(smart home)中的無(wú)線終端、可穿戴設(shè)備、車載設(shè)備等。
70.服務(wù)端,也可以稱為服務(wù)器,服務(wù)端可以是為客戶端服務(wù)的,服務(wù)端可以向服務(wù)端提供資源以及保存客戶端數(shù)據(jù)等。
71.示例性的,圖2是本技術(shù)實(shí)施例提供的一例電子設(shè)備200的結(jié)構(gòu)示意圖。電子設(shè)備200可以是客戶端或服務(wù)端,電子設(shè)備200可以是包括處理器210、存儲(chǔ)器220和通信模塊230等。
72.其中,處理器210可以包括一個(gè)或多個(gè)處理單元,存儲(chǔ)器220用于存儲(chǔ)程序代碼和數(shù)據(jù)。在本技術(shù)實(shí)施例中,處理器210可執(zhí)行存儲(chǔ)器220存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,用于對(duì)電子設(shè)備200的動(dòng)作進(jìn)行控制管理。
73.通信模塊230可以用于電子設(shè)備200的各個(gè)內(nèi)部模塊之間的通信、或者電子設(shè)備200和其他外部電子設(shè)備之間的通信等。示例性的,如果電子設(shè)備200通過(guò)有線連接的方式和其他電子設(shè)備通信,通信模塊230可以包括接口等,例如usb接口,usb接口可以是符合usb標(biāo)準(zhǔn)規(guī)范的接口,具體可以是mini usb接口,micro usb接口,usb type c接口等。usb接口可以用于連接充電器為電子設(shè)備200充電,也可以用于電子設(shè)備200與外圍設(shè)備之間傳輸數(shù)據(jù)。也可以用于連接耳機(jī),通過(guò)耳機(jī)播放音頻。該接口還可以用于連接其他電子設(shè)備,例如ar設(shè)備等。
74.或者,通信模塊230可以包括音頻器件、射頻電路、藍(lán)牙芯片、無(wú)線保真(wireless fidelity,wi-fi)芯片、近距離無(wú)線通訊技術(shù)(near-field communication,nfc)模塊等,可以通過(guò)多種不同的方式實(shí)現(xiàn)電子設(shè)備300與其他電子設(shè)備之間的交互。
75.可選地,電子設(shè)備200還可以包括顯示屏240,顯示屏240可以顯示人機(jī)交互界面中的圖像或視頻等。
76.可選地,電子設(shè)備200還可以包括外設(shè)設(shè)備250,例如鼠標(biāo)、鍵盤、揚(yáng)聲器、麥克風(fēng)等。
77.應(yīng)理解,除了圖2中列舉的各種部件或者模塊之外,本技術(shù)實(shí)施例對(duì)電子設(shè)備200的結(jié)構(gòu)不做具體限定。在本技術(shù)另一些實(shí)施例中,電子設(shè)備200還可以包括比圖示更多或更少的部件,或者組合某些部件,或者拆分某些部件,或者不同的部件布置。圖示的部件可以以硬件,軟件或軟件和硬件的組合實(shí)現(xiàn)。
78.客戶端和服務(wù)端建立的多個(gè)子通道綁定到一個(gè)已有的mptcp會(huì)話上的,客戶端可以選擇任意的子通道進(jìn)行tcp報(bào)文的傳輸??蛻舳嗽谶x擇子通道進(jìn)行tcp報(bào)文的傳輸?shù)倪^(guò)程中,可以根據(jù)本地策略選擇一個(gè)子通道進(jìn)行tcp報(bào)文的傳輸,但是客戶端選擇了發(fā)送tcp報(bào)文的子流之后,服務(wù)端并不知道客戶端選擇了哪個(gè)子通道發(fā)送tcp報(bào)文,換句話說(shuō),這種方式對(duì)于客戶端來(lái)講是可以根據(jù)本地策略控制tcp報(bào)文的發(fā)送,但是對(duì)于服務(wù)端沒(méi)辦法主動(dòng)引導(dǎo)客戶端按照服務(wù)端的策略發(fā)送tcp報(bào)文。例如,服務(wù)端根據(jù)網(wǎng)絡(luò)規(guī)劃需要增加網(wǎng)絡(luò)入口時(shí),服務(wù)端希望將來(lái)自客戶端的一些子通道上的tcp報(bào)文調(diào)度到新增加的網(wǎng)絡(luò)入口上,服務(wù)端沒(méi)辦法主動(dòng)引導(dǎo)客戶端將tcp報(bào)文引導(dǎo)到新增加的網(wǎng)絡(luò)入口上;又例如,服務(wù)端需要根據(jù)運(yùn)營(yíng)商的資費(fèi)變化,調(diào)整網(wǎng)絡(luò)入口的流量,希望將一些子通道上傳輸?shù)膖cp報(bào)文切換到服務(wù)端期望的子通道上,服務(wù)端沒(méi)辦法主動(dòng)引導(dǎo)客戶端切換tcp報(bào)文到服務(wù)端期望的子流上?,F(xiàn)有技術(shù)中,服務(wù)端可以在當(dāng)前子通道上向客戶端發(fā)送用于子流限速的tcp選項(xiàng),客戶端接收到用于子流限速的tcp選項(xiàng)時(shí),客戶端對(duì)接收tcp選項(xiàng)的當(dāng)前子通道上的數(shù)據(jù)流量進(jìn)行限速,但是這樣可能會(huì)丟包,傳輸性能較差,或者有可能將當(dāng)前子通道上的數(shù)據(jù)流量切換到其
他的一個(gè)或多個(gè)子通道上,若存在多個(gè)子通道,客戶端可以根據(jù)本地策略在多個(gè)子通道上選擇一個(gè)子通道傳輸切換的數(shù)據(jù)流量,這樣客戶端仍然無(wú)法按照服務(wù)端期望的網(wǎng)絡(luò)入口來(lái)選擇子通道,從而無(wú)法滿足服務(wù)端主動(dòng)導(dǎo)航的需求。
79.下面對(duì)本技術(shù)實(shí)施例用到術(shù)語(yǔ)進(jìn)行解釋。
80.1、子通道,子通道也可以稱為子流或者子鏈路,子通道為雙向通道,一個(gè)子流對(duì)應(yīng)一個(gè)tcp連接,客戶端和服務(wù)端可以通過(guò)三次握手建立一個(gè)子流??蛻舳撕头?wù)端可以通過(guò)四次握手解除一個(gè)子流??梢杂梦逶M源ip地址,目的ip地址,源端口,目的端口和協(xié)議類型標(biāo)識(shí)一個(gè)子通道。
81.2、源地址標(biāo)識(shí)(identity,id)和目的地址標(biāo)識(shí),源ip地址和/或源端口可以映射為源地址標(biāo)識(shí),目的ip地址和/或目標(biāo)端口可以映射為目的地址標(biāo)識(shí)。本技術(shù)實(shí)施例中的,源地址標(biāo)識(shí)(源ip地址和/或源端口)和目的地址標(biāo)識(shí)(目的ip地址和/或目標(biāo)端口)具有相對(duì)的概念。例如,若客戶端向服務(wù)端發(fā)送tcp報(bào)文,以客戶端為參考,則源ip地址為客戶端的ip地址,源端口為客戶端的端口,相應(yīng)的,源地址標(biāo)識(shí)為客戶端的id,目的ip地址為服務(wù)端的ip地址,目的端口為服務(wù)端的ip地址,相應(yīng)的,目的地址標(biāo)識(shí)為服務(wù)端的id。又例如,若服務(wù)端向客戶端向發(fā)送tcp報(bào)文,以服務(wù)端為參考,則源ip為服務(wù)端的ip地址,源端口為服務(wù)端的端口,相應(yīng)的,源地址標(biāo)識(shí)為服務(wù)端的id,目的ip地址為客戶端的ip地址,目的端口為客戶端的ip地址,相應(yīng)的,目的地址標(biāo)識(shí)為客戶端的id。
82.3、mptcp會(huì)話,一個(gè)mptcp會(huì)話對(duì)應(yīng)多個(gè)子通道,即客戶端和服務(wù)端可以通過(guò)多個(gè)子通道傳輸一個(gè)mptcp會(huì)話的數(shù)據(jù)流量,一個(gè)mptcp會(huì)話的數(shù)據(jù)流量也稱為該mptcp會(huì)話的tcp報(bào)文。
83.4、tcp選項(xiàng),tcp報(bào)文頭包括tcp選項(xiàng),一個(gè)tcp選項(xiàng)具有特定的物理意義,在本技術(shù)實(shí)施例中,服務(wù)端可以向客戶端發(fā)送的tcp選項(xiàng)為第一tcp選項(xiàng),第一tcp選項(xiàng)用于為客戶端提供目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí),客戶端根據(jù)第一tcp選項(xiàng)切換子通道。
84.5、add-addr選項(xiàng),add-addr選項(xiàng)用于通告地址,add-addr選項(xiàng)也屬于tcp選項(xiàng),tcp報(bào)文頭可以包括add-addr選項(xiàng)。
85.6、tcp報(bào)文,tcp報(bào)文包括tcp數(shù)據(jù)報(bào)文和tcp控制報(bào)文,tcp數(shù)據(jù)報(bào)文用于傳輸某一應(yīng)用對(duì)應(yīng)的數(shù)據(jù),例如tcp控制報(bào)文可以為tcp數(shù)據(jù)報(bào)文的應(yīng)答報(bào)文、tcp控制報(bào)文也可以為tcp的?;顖?bào)文、tcp控制報(bào)文也可以是建立連接請(qǐng)求的應(yīng)答報(bào)文。
86.下面結(jié)合圖3描述本技術(shù)實(shí)施例提供的傳輸數(shù)據(jù)的方法300,方法300以客戶端給服務(wù)端發(fā)送tcp報(bào)文為例,當(dāng)然,服務(wù)端也可以向客戶端發(fā)送tcp報(bào)文,為了避免贅述,本技術(shù)實(shí)施例對(duì)此不詳細(xì)描述。
87.s310,服務(wù)端和客戶端建立多個(gè)子通道。該多個(gè)子通道為一個(gè)mptcp會(huì)話對(duì)應(yīng)的多個(gè)子通道。
88.不同的子通道對(duì)應(yīng)服務(wù)端不同的網(wǎng)絡(luò)入口和/或?qū)?yīng)客戶端不同的網(wǎng)絡(luò)入口,例如,客戶端有兩個(gè)網(wǎng)絡(luò)入口分別為4g和wifi,服務(wù)端有兩個(gè)運(yùn)營(yíng)商的網(wǎng)絡(luò)入口,分別為移動(dòng)和聯(lián)通,則客戶端的4g網(wǎng)絡(luò)入口與服務(wù)端的移動(dòng)網(wǎng)絡(luò)入口之間可以建立一個(gè)子通道,客戶端的4g網(wǎng)絡(luò)入口與服務(wù)端的聯(lián)通網(wǎng)絡(luò)入口之間可以建立一個(gè)子通道,客戶端的wifi網(wǎng)絡(luò)入口與服務(wù)端的移動(dòng)網(wǎng)絡(luò)入口之間可以建立一個(gè)子通道,客戶端的4g網(wǎng)絡(luò)入口與服務(wù)端的聯(lián)通網(wǎng)絡(luò)入口可以建立一個(gè)子通道。當(dāng)然,不同的子通道對(duì)應(yīng)的服務(wù)端的網(wǎng)絡(luò)入口可以相同,
或者不同的子通道對(duì)應(yīng)的客戶端的網(wǎng)絡(luò)入口可以相同,本技術(shù)實(shí)施例對(duì)此不作限制。
89.在s310的建立子通道的過(guò)程中,服務(wù)器可以向客戶端通過(guò)第三tcp選項(xiàng)通告每個(gè)子通道的目的地址標(biāo)識(shí)(或者通告目的ip地址和目標(biāo)端口),此時(shí)的目的地址標(biāo)識(shí)以客戶端為參考,例如,在服務(wù)端與客戶端建立首個(gè)子通道之后,服務(wù)端可以將其他子通道的目的地址標(biāo)識(shí)通過(guò)add-addr選項(xiàng)通告給客戶端,第三tcp選項(xiàng)包括add-addr選項(xiàng)。
90.可選地,s310中的多個(gè)子通道可以建立一次,執(zhí)行多次s320-s380?;蛘遱310中的多個(gè)子通道可以是動(dòng)態(tài)變化的,當(dāng)有建立子通道的需求時(shí),可以建立一個(gè)子通道。
91.s320,在不同的場(chǎng)景下,服務(wù)端確定目標(biāo)網(wǎng)絡(luò)入口。
92.其中,目標(biāo)網(wǎng)絡(luò)入口為服務(wù)端期望給客戶端提供服務(wù)的網(wǎng)絡(luò)入口,目標(biāo)網(wǎng)絡(luò)入口可以對(duì)應(yīng)一個(gè)或多個(gè)子通道,該一個(gè)或多個(gè)子通道的網(wǎng)絡(luò)入口都為目標(biāo)網(wǎng)絡(luò)入口。若服務(wù)端確定目標(biāo)網(wǎng)絡(luò)入口,則服務(wù)端期望指定的子通道(下面的第一子通道)上的數(shù)據(jù)流量切換到目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)對(duì)應(yīng)的子通道上。
93.可選地,目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)可以是服務(wù)端分配的,例如,目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)可以是目標(biāo)網(wǎng)絡(luò)入口的地址id。
94.可選地,服務(wù)端還可以確定源網(wǎng)絡(luò)入口。其中,源網(wǎng)絡(luò)入口為服務(wù)端當(dāng)前正在給客戶端提供服務(wù)的網(wǎng)絡(luò)入口。源網(wǎng)絡(luò)入口可以對(duì)應(yīng)一個(gè)或多個(gè)子通道,該一個(gè)或多個(gè)子通道的網(wǎng)絡(luò)入口都為源網(wǎng)絡(luò)入口。換句話說(shuō),若服務(wù)端確定目標(biāo)網(wǎng)絡(luò)入口和源網(wǎng)絡(luò)入口,則服務(wù)端期望源網(wǎng)絡(luò)入口對(duì)應(yīng)的子通道上傳輸?shù)臄?shù)據(jù)需要切換到目標(biāo)網(wǎng)絡(luò)入口對(duì)應(yīng)的子通道上。
95.具體地,下面舉例描述s320中的三個(gè)可能的場(chǎng)景:
96.場(chǎng)景一,故障預(yù)防,服務(wù)端的檢測(cè)工具檢測(cè)多個(gè)網(wǎng)絡(luò)入口的網(wǎng)絡(luò)質(zhì)量,例如,可以利用丟包率、時(shí)延和抖動(dòng)等網(wǎng)絡(luò)關(guān)鍵績(jī)效指標(biāo)(key performance indicators,kpi)檢測(cè)多個(gè)網(wǎng)絡(luò)入口的網(wǎng)絡(luò)質(zhì)量。當(dāng)服務(wù)端檢測(cè)到網(wǎng)絡(luò)kpi變差時(shí),服務(wù)端確定可以將網(wǎng)絡(luò)kpi變差的網(wǎng)絡(luò)入口上的數(shù)據(jù)流量切換到網(wǎng)絡(luò)kpi比較好的網(wǎng)絡(luò)入口上,從而可以避免網(wǎng)絡(luò)kpi變差的網(wǎng)絡(luò)入口出現(xiàn)故障,此時(shí)網(wǎng)絡(luò)kpi比較好的網(wǎng)絡(luò)入口即為目標(biāo)網(wǎng)絡(luò)入口,網(wǎng)絡(luò)kpi比較差的網(wǎng)絡(luò)入口為源網(wǎng)絡(luò)入口。
97.場(chǎng)景二,部署新的網(wǎng)絡(luò)入口,由于數(shù)據(jù)流量的增加,為了避免造成擁塞,提高傳輸?shù)目煽啃?,可以增加新的網(wǎng)絡(luò)入口來(lái)分流已經(jīng)存在的網(wǎng)絡(luò)入口上的數(shù)據(jù)流量,新的網(wǎng)絡(luò)入口即為目標(biāo)網(wǎng)絡(luò)入口,例如,服務(wù)端運(yùn)營(yíng)商正在使用移動(dòng)作為服務(wù)端的網(wǎng)絡(luò)入口,由于數(shù)據(jù)流量增加,則可以增加電信網(wǎng)絡(luò)入口,則電信網(wǎng)絡(luò)入口即為目標(biāo)網(wǎng)絡(luò)入口,服務(wù)端運(yùn)營(yíng)商將目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)發(fā)送給服務(wù)端?;蛘咭呀?jīng)存在的網(wǎng)絡(luò)入口的資費(fèi)較高,新的網(wǎng)絡(luò)入口的資費(fèi)較低,則可以將已經(jīng)存在的網(wǎng)絡(luò)入口上的數(shù)據(jù)流量分流到新的網(wǎng)絡(luò)入口上,已經(jīng)存在的網(wǎng)絡(luò)入口為源網(wǎng)絡(luò)入口,新的網(wǎng)絡(luò)入口為目標(biāo)網(wǎng)絡(luò)入口。例如,服務(wù)端的網(wǎng)絡(luò)入口為a運(yùn)營(yíng)商,由于a運(yùn)營(yíng)商的資費(fèi)太貴,b運(yùn)營(yíng)商的資費(fèi)相對(duì)較低,服務(wù)端運(yùn)營(yíng)商則可以將部分或全部a運(yùn)營(yíng)商網(wǎng)絡(luò)入口的數(shù)據(jù)流量分流到b運(yùn)營(yíng)商網(wǎng)絡(luò)入口上,此時(shí)b運(yùn)營(yíng)商網(wǎng)絡(luò)入口即為目標(biāo)網(wǎng)絡(luò)入口,a運(yùn)營(yíng)商網(wǎng)絡(luò)入口即為源網(wǎng)絡(luò)入口服務(wù)端運(yùn)營(yíng)商將目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)發(fā)送給服務(wù)端。
98.場(chǎng)景三,增值服務(wù),多個(gè)網(wǎng)絡(luò)入口可以針對(duì)不同類型的用戶,有的用戶對(duì)網(wǎng)速要求不高,則這些用戶的流量可以在網(wǎng)絡(luò)kpi一般的網(wǎng)絡(luò)入口上,有的用戶對(duì)網(wǎng)速的要求高,例如是vip用戶,則可以將這些用戶的數(shù)據(jù)流量切換到網(wǎng)絡(luò)kpi較好的網(wǎng)絡(luò)入口上,網(wǎng)絡(luò)kpi較
好的網(wǎng)絡(luò)入口即為目標(biāo)網(wǎng)絡(luò)入口,kpi一般的網(wǎng)絡(luò)入口為源網(wǎng)絡(luò)入口。
99.需要說(shuō)明的是,在場(chǎng)景一和場(chǎng)景三中,目標(biāo)網(wǎng)絡(luò)入口和源網(wǎng)絡(luò)入口對(duì)應(yīng)的子通道已經(jīng)通過(guò)s310建立好了;在場(chǎng)景二中,源網(wǎng)絡(luò)入口對(duì)應(yīng)的子通道已經(jīng)通過(guò)s310建立好了,需要增加新的網(wǎng)絡(luò)入口作為目標(biāo)網(wǎng)絡(luò)入口,則需要新建立子通道,建立的方式與s310相同。
100.s330,服務(wù)端生成第一tcp選項(xiàng)。
101.可選地,第一tcp選項(xiàng)包括第一字段和第二字段,第一字段取值為第一取值,第二字段用于承載目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí),第一取值用于指示第二字段承載的目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)用于所述第一設(shè)備確定所述第二子通道。
102.具體地,服務(wù)端生成的第一tcp選項(xiàng)的格式可以如圖4所示,其中,類別(kind)表示第一tcp選項(xiàng)的類別,類別固定為30,30表示該第一tcp選項(xiàng)為mptcp的tcp選項(xiàng);長(zhǎng)度(length)為第一tcp選項(xiàng)的長(zhǎng)度,如總長(zhǎng)度可以為4字節(jié);子類型表示該第一tcp選項(xiàng)為子流導(dǎo)航選項(xiàng)(subflow navigation option),子類型的值可以是協(xié)議規(guī)定的值,具體可以根據(jù)協(xié)議規(guī)定,本技術(shù)實(shí)施例對(duì)此不作限定;第二字段承載目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí),也可以稱為地址標(biāo)識(shí)(address id),用于承載s320中服務(wù)端確定的目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí);b用于指示第一子通道是主鏈路還是備份鏈路,例如b為1表示發(fā)送第一tcp選項(xiàng)的當(dāng)前第一子通道為備份(backup)鏈路,b為0表示發(fā)送第一tcp選項(xiàng)的當(dāng)前第一子通道為主鏈路,具體地,b的定義參考mp_prio選項(xiàng)的定義;e表示確認(rèn),如e為1,表示已經(jīng)收到,通常情況下,在下面的例一的第一tcp應(yīng)答報(bào)文的報(bào)文頭中第一tcp選項(xiàng)可以包括e;r為第一字段,例如r的第一取值0表示通告第一tcp選項(xiàng);r為保留位,默認(rèn)為0。
103.s340,服務(wù)端確定第一子通道。
104.可以對(duì)第一子通道有兩種理解方式:
105.方式一,服務(wù)端可以根據(jù)運(yùn)營(yíng)商的策略確定源網(wǎng)絡(luò)入口,第一子通道為源網(wǎng)絡(luò)入口對(duì)應(yīng)的一個(gè)或多個(gè)子通道中的一個(gè)子通道,例如第一子通道為上述s320中場(chǎng)景一的網(wǎng)絡(luò)kpi比較差的網(wǎng)絡(luò)入口對(duì)應(yīng)的任何一個(gè)子通道;又例如第一子通道為上述s320中的場(chǎng)景二中的已經(jīng)存在的網(wǎng)絡(luò)入口對(duì)應(yīng)的任何一個(gè)子通道;再例如第一子通道為上述s320中的場(chǎng)景三中的kpi一般的網(wǎng)絡(luò)入口對(duì)應(yīng)的任何一個(gè)子通道。
106.可選地,源網(wǎng)絡(luò)入口對(duì)應(yīng)一個(gè)或多個(gè)子通道可以是不同的多個(gè)mptcp會(huì)話對(duì)應(yīng)的子通道,不同的mptcp會(huì)話可以對(duì)應(yīng)不同的客戶端,這樣,服務(wù)端可以引導(dǎo)不同客戶端的不同mptcp會(huì)話的數(shù)據(jù)流量整批切換到服務(wù)端期望的目標(biāo)網(wǎng)絡(luò)入口上。舉例來(lái)說(shuō),源網(wǎng)絡(luò)入口對(duì)應(yīng)5個(gè)子通道,其中客戶端1的mptcp會(huì)話1對(duì)應(yīng)2個(gè)子通道,客戶端2的mptcp會(huì)話2對(duì)應(yīng)3個(gè)子通道,服務(wù)端可以在執(zhí)行s350時(shí),在mptcp會(huì)話1對(duì)應(yīng)2個(gè)子通道分別向客戶端1發(fā)送第一tcp選項(xiàng),在mptcp會(huì)話2對(duì)應(yīng)的3個(gè)子通道上分別向客戶端2發(fā)送第一tcp選項(xiàng)。這樣服務(wù)端可以引導(dǎo)不同客戶端將源網(wǎng)絡(luò)入口的數(shù)據(jù)流量到成批切換到目標(biāo)網(wǎng)絡(luò)入口。在本技術(shù)實(shí)施例中,僅以一個(gè)子通道第一子通道為例描述,例如第一子通道可以是客戶端1的mptcp會(huì)話1對(duì)應(yīng)的2個(gè)子通道中的一個(gè)子通道,此時(shí)方法300中的客戶端即為客戶端1。又例如,第一子通道也可以是客戶端2的mptcp會(huì)話2對(duì)應(yīng)的3個(gè)子通道中的一個(gè)子通道。其他子通道與第一通道類似,為了避免贅述不詳細(xì)描述。
107.可選地,源網(wǎng)絡(luò)入口對(duì)應(yīng)的一個(gè)或多個(gè)子通道可以是一個(gè)mptcp會(huì)話對(duì)應(yīng)的子通道,這樣,服務(wù)端可以引導(dǎo)客戶端將一個(gè)mptcp會(huì)話的數(shù)據(jù)流量切換到服務(wù)端期望的目標(biāo)網(wǎng)
絡(luò)入口上。本技術(shù)實(shí)施例中的第一子通道可以是一個(gè)mptcp會(huì)話對(duì)應(yīng)的一個(gè)或多個(gè)子通道中的一個(gè)子通道,其他的子通道與第一子通道類似,為了避免贅述,不詳細(xì)描述。
108.方式二,第一子通道為服務(wù)端隨機(jī)選擇的一個(gè)子通道,此時(shí)服務(wù)端可以不確定源網(wǎng)絡(luò)入口。
109.可以理解的是,s330和s340的順序沒(méi)有任何限定,s330可以在s340之前或者之后,本技術(shù)實(shí)施例對(duì)此不作限制。
110.s350,服務(wù)端通過(guò)第一子通道向客戶端發(fā)送第一tcp報(bào)文,所述第一tcp報(bào)文包括第一tcp選項(xiàng),客戶端通過(guò)第一子通道接收所述第一tcp報(bào)文,第一tcp選項(xiàng)包括目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)。第一子通道即為待切換的子通道,目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)用于客戶端確定第二子通道。
111.在s350中,第一tcp報(bào)文可以是第二tcp數(shù)據(jù)報(bào)文也可以是第一tcp控制報(bào)文。下面舉例描述:
112.例一,客戶端與服務(wù)端已經(jīng)建立好了第一子通道,服務(wù)端可以通過(guò)第一子通道向客戶端發(fā)送第二tcp數(shù)據(jù)報(bào)文,第二tcp數(shù)據(jù)報(bào)文的報(bào)文頭攜帶第一tcp選項(xiàng),第二tcp數(shù)據(jù)報(bào)文的報(bào)文體包括數(shù)據(jù)部分,該數(shù)據(jù)部分為客戶端發(fā)起某個(gè)應(yīng)用時(shí),服務(wù)端反饋的該應(yīng)用對(duì)應(yīng)的數(shù)據(jù),此時(shí)第一tcp報(bào)文為第二tcp數(shù)據(jù)報(bào)文。
113.例二,客戶端與服務(wù)端已經(jīng)建立好了第一子通道,服務(wù)端可以向客戶端發(fā)送第一tcp控制報(bào)文,第一tcp控制報(bào)文包括第一tcp選項(xiàng),第一tcp控制報(bào)文可以是任何一個(gè)服務(wù)端向客戶端發(fā)送的tcp控制報(bào)文,例如tcp數(shù)據(jù)報(bào)文的應(yīng)答報(bào)文或者?;顖?bào)文等,本技術(shù)實(shí)施例不予限制,此時(shí)第一tcp報(bào)文為第一tcp控制報(bào)文。
114.s360,客戶端獲取第一tcp報(bào)文中的第一tcp選項(xiàng),根據(jù)第一tcp選項(xiàng)中的第一字段的第一取值確定第二字段承載的目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)用于確定第二子通道。并且客戶端可以獲取第一tcp選項(xiàng)中的目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)。
115.具體地,客戶端解析第一tcp報(bào)文的報(bào)文頭,獲取第一tcp選項(xiàng),并解析第一tcp選項(xiàng)中的第一字段和第二字段,根據(jù)第一字段的第一取值確定第一tcp選項(xiàng)為通告第一tcp選項(xiàng),例如圖4中的第一字段的r的第一取值為0,也稱為第一tcp選項(xiàng)為通告子流導(dǎo)航選項(xiàng)。
116.s370,客戶端根據(jù)目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)確定第二子通道。
117.其中,s310建立的多個(gè)子通道中每個(gè)子通道都存在對(duì)應(yīng)的目的地址標(biāo)識(shí)以及源地址標(biāo)識(shí)??蛻舳藢⒍鄠€(gè)子通道中目的地址標(biāo)識(shí)為目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)的確定為待切換至的待選子通道,待選子通道可以是一個(gè)或多個(gè)。換句話說(shuō),客戶端只能根據(jù)目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)確定待切換至的待選子通道的服務(wù)端的網(wǎng)絡(luò)入口,若待選子通道為多個(gè),則客戶端可以根據(jù)本地策略在多個(gè)待選子通道中確定一個(gè)作為第二子通道,例如本地策略可以為往返時(shí)延(round-trip time,rtt)調(diào)度算法或者為其他的算法,本技術(shù)實(shí)施例對(duì)此不作限定。
118.可選地,客戶端可以確定目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)對(duì)應(yīng)的導(dǎo)航信息,客戶端可以保存導(dǎo)航信息。具體地,導(dǎo)航信息用于客戶端確定第二子通道,例如,導(dǎo)航信息可以為目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)對(duì)應(yīng)的一個(gè)或多個(gè)待選子通道的五元組,若存在一個(gè)待選子通道,客戶端可以根據(jù)該待選子通道的五元組鎖定第二子通道;若存在多個(gè)待選子通道,客戶端可以根據(jù)多個(gè)待選子通道的五元組以及預(yù)設(shè)準(zhǔn)則(例如為rrt調(diào)度算法)在多個(gè)子通道中鎖定第二子通道。導(dǎo)航信息還可以是其他的用于確定第二子通道的信息,本技術(shù)實(shí)施例對(duì)此不作限定。又
例如,客戶端可以利用導(dǎo)航信息將tcp數(shù)據(jù)報(bào)文(例如下述的第一tcp數(shù)據(jù)報(bào)文)導(dǎo)航到第二子通道,舉例來(lái)說(shuō),存在三條子流,分別為子流1,子流2,子流3,以客戶端為參考,子流1的網(wǎng)絡(luò)入口地址為ip1,子流2的網(wǎng)絡(luò)入口地址為ip2,子流3的網(wǎng)絡(luò)入口地址為ip3??蛻舳丝梢岳寐酚梢?guī)則可以將一個(gè)mptcp會(huì)話的tcp數(shù)據(jù)報(bào)文分別路由到ip1、ip2、ip3,服務(wù)端在子流3(即為前述的第一子通道)上向客戶端發(fā)送的第一tcp選項(xiàng)中的目標(biāo)網(wǎng)絡(luò)入口標(biāo)識(shí)為ip1,則客戶端可以根據(jù)目標(biāo)網(wǎng)絡(luò)入口標(biāo)識(shí)對(duì)應(yīng)的導(dǎo)航信息可以將發(fā)往ip3的第一tcp數(shù)據(jù)報(bào)文重定向到ip1(子流1為前述的第二子通道),ip3重定向到ip1可以理解為第一tcp數(shù)據(jù)報(bào)文首先被路由到ip3然后才路由到ip1。
119.可選地,客戶端可以保存與目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)對(duì)應(yīng)的待選子通道,若待選子通道為多個(gè),則客戶端可以根據(jù)本地策略在保存的多個(gè)待選子通道中確定第二子通道。
120.可以理解的是,若目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)為第一子通道的目的地址標(biāo)識(shí)(此時(shí)第一子通道的目的地址標(biāo)識(shí)以客戶端為參考),則第二子通道即為第一子通道,換句話說(shuō),當(dāng)在第一子通道上接收到的第一tcp選項(xiàng)中的目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)為第一子通道的目的地址標(biāo)識(shí)時(shí),則不需要切換子通道,繼續(xù)在第一子通道上傳輸tcp數(shù)據(jù)報(bào)文。
121.s380,客戶端將第一子通道上待傳輸?shù)臄?shù)據(jù)切換到第二子通道上向服務(wù)端傳輸,服務(wù)端可以在第二子通道上接收來(lái)自第一設(shè)備的第一tcp數(shù)據(jù)報(bào)文。第一tcp數(shù)據(jù)報(bào)文的數(shù)據(jù)部分為所述第一子通道上待傳輸?shù)臄?shù)據(jù)。
122.具體地,不同子通道的報(bào)文封裝格式不同,序列號(hào)規(guī)則不同,客戶端將第一子通道上待傳輸?shù)臄?shù)據(jù)按照第二子通道的報(bào)文封裝格式以及序列號(hào)規(guī)則封裝成第一tcp數(shù)據(jù)報(bào)文向服務(wù)端發(fā)送??蛇x地,第一tcp數(shù)據(jù)報(bào)文可以包括一個(gè)或多個(gè)tcp數(shù)據(jù)報(bào)文。
123.這樣,客戶端可以將接收第一tcp選項(xiàng)的第一子通道上的數(shù)據(jù)切換到服務(wù)端期望的目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)對(duì)應(yīng)的第二子通道上傳輸,可以實(shí)現(xiàn)精確切換,也能滿足服務(wù)端的導(dǎo)航要求。
124.為了更好的說(shuō)明方法300,下面結(jié)合圖5至圖9進(jìn)行舉例描述,如圖5所示,客戶端通過(guò)wifi和蜂窩網(wǎng)絡(luò)(例如5g或者長(zhǎng)期演進(jìn)(long term evolution,lte)網(wǎng)絡(luò))與服務(wù)器的以太網(wǎng)(ethernet)和wifi建立了四條子通道,分別為《ip1,ip3》,《ip2,ip3》,《ip1,ip4》,《ip2,ip4》,其中《ip1,ip3》為首個(gè)子通道。服務(wù)端部署5g網(wǎng)絡(luò),服務(wù)端可以將子通道《ip2,ip4》上的數(shù)據(jù)流量切換到5g網(wǎng)絡(luò)對(duì)應(yīng)的目的地址ip5上,此時(shí)目標(biāo)網(wǎng)絡(luò)入口為ip5。下面結(jié)合圖6描述方法600。
125.s610,服務(wù)端確定將子通道《ip2,ip4》上的數(shù)據(jù)流量切換到ip5上。換句話說(shuō),s610也可以等同于s320和s310,根據(jù)場(chǎng)景需求確定目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí),即為ip5的標(biāo)識(shí)。
126.例如,服務(wù)端確定子通道網(wǎng)絡(luò)入口ip3、ip4上的網(wǎng)絡(luò)質(zhì)量發(fā)現(xiàn)ip4網(wǎng)絡(luò)入口的質(zhì)量比較差,服務(wù)端又部署了5g網(wǎng)絡(luò),則服務(wù)端確定將子通道《ip2,ip4》上的數(shù)據(jù)流量切換至ip5上。
127.可以理解的是,《ip2,ip4》為前述的第一子通道,若服務(wù)端確定源網(wǎng)絡(luò)入口為ip4,源網(wǎng)絡(luò)入口為ip4的子通道包括《ip1,ip4》,《ip2,ip4》,則《ip2,ip4》為網(wǎng)絡(luò)入口為ip4中的一個(gè)子通道,對(duì)應(yīng)上述s340的方式一;若服務(wù)端沒(méi)有確定源網(wǎng)絡(luò)入口為ip4,則《ip2,ip4》為服務(wù)端隨機(jī)選擇的一個(gè)子通道,對(duì)應(yīng)上述s340的方式二。
128.s620,服務(wù)端與客戶端建立子通道《ip2,ip5》,具體地可以通過(guò)三次握手建立子通
道《ip2,ip5》。
129.在s620的建立子通道《ip2,ip5》過(guò)程中,服務(wù)端可以將ip5的地址通過(guò)add-addr選項(xiàng)(也稱為第三tcp選項(xiàng))通告給客戶端,如可以通過(guò)首子通道《ip1,ip3》將add-addr選項(xiàng)攜帶在tcp控制報(bào)文1的報(bào)文頭中通告給客戶端,也可以通過(guò)其他的子通道《ip2,ip3》,《ip1,ip4》,《ip2,ip4》將add-addr選項(xiàng)攜帶在tcp控制報(bào)文1的報(bào)文頭中通告給客戶端。例如,add-addr選項(xiàng)的格式如圖7所示,類別(kind)表示add-addr選項(xiàng)為mptcp的選項(xiàng),例如為30;長(zhǎng)度(length)為add-addr選項(xiàng)的長(zhǎng)度,例如為16;子類型表示該add-addr選項(xiàng)用于通告地址標(biāo)識(shí),例如為3;rsv為保留位,通常為0;e表示該add-addr選項(xiàng)為通告地址選項(xiàng)還是用于確認(rèn)接收,例如e為0表示add-addr選項(xiàng)為確認(rèn)選項(xiàng),用于確定是否接收到,e為1表示add-addr選項(xiàng)為用于確定接收到;目的地址標(biāo)識(shí)為ip5的地址標(biāo)識(shí),例如可以用20表示;目的地址為服務(wù)端為ip5分配的地址,例如可以用20表示ip5的目的地址標(biāo)識(shí);截短的(truncated)hmac(8字節(jié))表示加密散列的mptcp會(huì)話標(biāo)識(shí),若e為0,則截短的hmac為8字節(jié),若e為1,表示不攜帶截短的hmac的字段。
130.客戶端接收到tcp控制報(bào)文1中攜帶的add-addr選項(xiàng)之后,向服務(wù)端發(fā)送確認(rèn)接收到add-addr選項(xiàng)的tcp控制報(bào)文2,tcp控制報(bào)文2的報(bào)文頭中攜帶add-addr選項(xiàng),tcp控制報(bào)文1的報(bào)文攜帶的add-addr選項(xiàng)和tcp控制報(bào)文2的報(bào)文攜帶的add-addr選項(xiàng)的格式相同,不同點(diǎn)在于tcp控制報(bào)文2的報(bào)文攜帶的add-addr選項(xiàng)中的e為1。
131.s630,服務(wù)端生成第一tcp選項(xiàng),具體地s630參見s330。在方法600中第一tcp選項(xiàng)如圖4所述的格式可以具體賦值,如賦值后如圖8所示,子類型的賦值待定例如可以為0xe,20為ip的目的地址標(biāo)識(shí),也即為目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí),其余參數(shù)參見圖4的描述。
132.s640,服務(wù)端通過(guò)子通道《ip2,ip4》(也即為第一子通道)向客戶端發(fā)送第一tcp報(bào)文,第一tcp報(bào)文包括第一tcp選項(xiàng),客戶端通過(guò)子通道《ip2,ip4》接收第一tcp報(bào)文,第一tcp選項(xiàng)為圖8所示的值。
133.可以理解的是,方法600中的子通道《ip2,ip4》可以是服務(wù)端隨機(jī)選擇的一個(gè)子通道,此時(shí)方法600中服務(wù)端可以不確定子通道《ip2,ip4》。
134.具體地,s640參見s350的描述,為了避免贅述,本技術(shù)實(shí)施例不詳細(xì)描述。
135.s650,客戶端獲取第一tcp報(bào)文中的第一tcp選項(xiàng)。例如,圖8中第一tcp選項(xiàng)r為0,則第一tcp選項(xiàng)為通告子流導(dǎo)航選項(xiàng),獲取第一tcp選項(xiàng)中的20為s620中通告的ip5的標(biāo)識(shí)。
136.可選地,客戶端在接收到第一tcp報(bào)文時(shí),可以向服務(wù)端發(fā)送確定接收到第一tcp報(bào)文的tcp確認(rèn)報(bào)文,tcp確認(rèn)報(bào)文包括的tcp選項(xiàng)與第一tcp選項(xiàng)不同的是e為1,其他的與第一tcp選項(xiàng)相同,tcp確認(rèn)報(bào)文包括的tcp選項(xiàng)如圖9所示。
137.s660,客戶端根據(jù)第一tcp選項(xiàng)中的20確定子通道《ip2,ip5》為第二子通道。
138.s670,客戶端將子通道《ip2,ip4》上待傳輸?shù)臄?shù)據(jù)切換到子通道《ip2,ip5》上傳輸。
139.需要理解的是,方法600描述的是建立第二子通道(《ip2,ip5》)并將第一子通道(《ip2,ip4》)上的數(shù)據(jù)流量直接切換到第二子通道(《ip2,ip5》)上,還可以不建立第二子通道,第二子通道是已經(jīng)建立好的,客戶端根據(jù)第一tcp選項(xiàng)在已經(jīng)建立好的子通道中確定第二子通道,換句話說(shuō),可以不存在s620,《ip2,ip5》是已經(jīng)建立好的子通道,為了避免贅述,本技術(shù)實(shí)施例不詳細(xì)描述。
140.需要說(shuō)明的是,方法300和方法600中,描述的是服務(wù)端向一個(gè)客戶端發(fā)送第一tcp選項(xiàng),服務(wù)端可以向多個(gè)客戶端發(fā)送第一tcp選項(xiàng),服務(wù)端可以通過(guò)每個(gè)客戶端的子通道向客戶端發(fā)送相同的第一tcp選項(xiàng),每個(gè)客戶端接收第一tcp選項(xiàng)之后,根據(jù)目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)確定一個(gè)或多個(gè)待切換至的子通道,在一個(gè)或多個(gè)待切換至的子通道中確定最終要切換至的子通道,這樣,多個(gè)客戶端可以將接收第一tcp選項(xiàng)的子通道上待傳輸?shù)膖cp數(shù)據(jù)報(bào)文切換到服務(wù)端期望的目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)所標(biāo)識(shí)的子通道上,可以實(shí)現(xiàn)大規(guī)模的調(diào)度,從而可以提高導(dǎo)航效率。
141.上述方法300和方法600中描述的是,客戶端將第一子通道中的待傳輸?shù)臄?shù)據(jù)切換到第二子通道,客戶端執(zhí)行完s370或s680之后,第一子通道可以斷開或者客戶端可以維持第一子通道不斷開,下面分別描述斷開和不斷開兩種情況。
142.情況一,若客戶端維持第一子通道不斷開,維持第一子通道不斷開時(shí)客戶端和服務(wù)端可以通過(guò)第一子通道發(fā)送tcp?;顖?bào)文。這樣,當(dāng)切換至第二子通道上的原本在第一子通道上傳輸?shù)暮罄m(xù)數(shù)據(jù)需要切換回第一子通道時(shí),能夠迅速切換回至第一子通道,避免客戶端和服務(wù)端需要重新建立第一子通道所帶來(lái)的時(shí)延。具體地,當(dāng)在執(zhí)行完s380或者s670之后,若服務(wù)端繼續(xù)在第二子通道上向客戶端繼續(xù)發(fā)送第一tcp選項(xiàng),則此時(shí)第一tcp選項(xiàng)包括的目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)為第一子通道的目的地址標(biāo)識(shí)(此時(shí)以客戶端為參考),則客戶端可以將第二子通道上待發(fā)送的原本要在第一子通道上發(fā)送的數(shù)據(jù)切換回至第一子通道,這樣,可以節(jié)省需要重新建立第一子通道的時(shí)長(zhǎng)。
143.此外,若客戶端維持第一子通道不斷開服務(wù)端可以撤銷上述方法300或方法600中的第一tcp選項(xiàng),具體地,服務(wù)端在一些場(chǎng)景中,不需要將客戶端在第一子通道上待發(fā)送的數(shù)據(jù)切換至第二子通道了,服務(wù)端可以撤銷第一tcp選項(xiàng),下面描述以方法300為例,具體地,如圖10所示,撤銷的過(guò)程如圖10中的方法1000所示:
144.s1010,服務(wù)端確定撤銷第一tcp選項(xiàng)。
145.例如,在s320的場(chǎng)景一的故障預(yù)防的中,服務(wù)端檢測(cè)到目標(biāo)網(wǎng)絡(luò)入口的網(wǎng)絡(luò)質(zhì)量變的更差,服務(wù)端在執(zhí)行完方法300之后,服務(wù)端可以確定撤銷第一tcp選項(xiàng)。
146.又例如,在s320的場(chǎng)景二的部署新的網(wǎng)絡(luò)入口中,服務(wù)端在執(zhí)行完方法300之后,確定方法300中切換到第二子通道上的第一tcp數(shù)據(jù)報(bào)文是否穩(wěn)定,若不穩(wěn)定,則可以確定撤銷第一tcp選項(xiàng)。
147.再例如,在s320的場(chǎng)景三的增值服務(wù)中,如果vip用戶變?yōu)榱似胀ㄓ脩?,則可以將這些用戶的數(shù)據(jù),則服務(wù)端可以確定撤銷第一tcp選項(xiàng)。
148.需要說(shuō)明的是,本技術(shù)實(shí)施例提到的撤銷第一tcp選項(xiàng)可以理解為將切換到第二子通道上數(shù)據(jù)切換回第一子通道。
149.s1020,服務(wù)端生成第二tcp選項(xiàng)。
150.其中,第二tcp選項(xiàng)用于撤銷第一tcp選項(xiàng),第二tcp選項(xiàng)中的第三字段的第二取值用于指示撤銷所述第一tcp選項(xiàng)。
151.下面分兩中情況討論第一tcp選項(xiàng)和第二tcp選項(xiàng)。
152.情況一,第一tcp選項(xiàng)的第一字段與第二tcp選項(xiàng)的第三字段為同一字段,此時(shí),第同一字段的不同取值表示不同的物理意義。具體地,第一tcp選項(xiàng)的第一字段的第一取值表示第一tcp選項(xiàng)為通告子流導(dǎo)航選項(xiàng),第三tcp選項(xiàng)的第三字段(第一字段)的第二取值表示
第三tcp選項(xiàng)用于撤銷第一tcp選項(xiàng),第一tcp選項(xiàng)與第三tcp選項(xiàng)除了第一字段的取值不同之外,其他字段都相同,并且這些字段的取值都相同。例如,第三字段為圖4中的r,r的第二取值為1表示撤銷所述第一tcp選項(xiàng),第二tcp選項(xiàng)的格式與第一tcp選項(xiàng)的格式相同,都為圖4所示的格式,第一tcp選項(xiàng)與第二tcp選項(xiàng)的區(qū)別在于,例如第一tcp選項(xiàng)中第一字段r的第一取值為為0,第二tcp選項(xiàng)中的第三字段r的第二取值為1,圖4中第一tcp選項(xiàng)與第二tcp選項(xiàng)的其他字段的完全相同,例如,目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)也相同。
153.情況二,第一tcp選項(xiàng)的第一字段與第二tcp選項(xiàng)的第三字段為不同的字段,此時(shí)可以利用兩個(gè)tcp選項(xiàng)中的不同的字段指示不同的物理意義。具體地,第一tcp選項(xiàng)的第一字段的第一取值表示第一tcp選項(xiàng)為通告子流導(dǎo)航選項(xiàng),第三tcp選項(xiàng)的第三字段的第二取值表示第三tcp選項(xiàng)用于撤銷第一tcp選項(xiàng),除了第一tcp選項(xiàng)的第一字段和第二tcp選項(xiàng)的第三字段之外,其他字段的取值都相同,并且其他字段的取值都相同??蛇x地,第一取值和第二取值可以不同,這樣,可以利用不同字段的不同取值指示不同tcp選項(xiàng)的物理意義??蛇x地,第一取值和第二取值也可以相同,這樣可以利用不同字段的相同取值指示不同tcpu選項(xiàng)的物理意義。例如,第一tcp選項(xiàng)的第一字段為圖4中的r,r的第一取值為0,第二tcp選項(xiàng)的第三字段圖4中的r替換為r’,r’的第二取值為1表示撤銷所述第一tcp選項(xiàng),第二tcp選項(xiàng)的其他的字段(如第二字段)的取值與圖4第一tcp選項(xiàng)的其他字段(如第二字段)的取值相同,例如,目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)也相同。
154.s1030,服務(wù)端在第一子通道上向客戶端發(fā)送第二tcp控制報(bào)文,客戶端在第一子通道上接收服務(wù)端發(fā)送的第二tcp控制報(bào)文,第二tcp控制報(bào)文包括第二tcp選項(xiàng)。
155.s1040,客戶端獲取第二tcp控制報(bào)文中的第二tcp選項(xiàng),根據(jù)第三字段的第二取值確定第二tcp選項(xiàng)為撤銷第一tcp選項(xiàng)。客戶端可以獲取第二tcp選項(xiàng)中第二字段的目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)。
156.例如若針對(duì)上述s1020的情況一,圖4中的第三字段(第一字段)r的第二取值為1,客戶端可以確定撤銷第一tcp選項(xiàng);又例如,若針對(duì)上述s1020的情況二,若r’的第二取值為1,客戶端可以確定撤銷第一tcp選項(xiàng)。
157.具體地,客戶端解析第二tcp報(bào)文的報(bào)文頭,獲取第二tcp選項(xiàng),并解析第二tcp選項(xiàng)中的第三字段和第二字段,客戶端根據(jù)第三字段的第二取值確定撤銷第一tcp選項(xiàng),換句話說(shuō),客戶端撤銷切換到第二字段承載的目標(biāo)網(wǎng)絡(luò)入口的數(shù)據(jù),也稱為第二tcp選項(xiàng)為撤銷子流導(dǎo)航選項(xiàng)。
158.s1050,客戶端根據(jù)第二tcp選項(xiàng)在第一子通道上繼續(xù)傳輸?shù)谌齮cp數(shù)據(jù)報(bào)文,第三tcp數(shù)據(jù)報(bào)文為第一子通道上待傳輸?shù)膖cp數(shù)據(jù)報(bào)文,第三tcp數(shù)據(jù)報(bào)文是按照第一子通道上封裝格式和序列號(hào)準(zhǔn)則生成的。
159.可以將s1050理解為,不用將原本在第一子通道傳輸數(shù)據(jù)再重定向到第二子通道而是直接在第一子通道上繼續(xù)傳輸。例如,存在三條子流,分別為子流1,子流2,子流3,以客戶端為參考,子流1的網(wǎng)絡(luò)入口地址為ip1,子流2的網(wǎng)絡(luò)入口地址為ip2,子流3的網(wǎng)絡(luò)入口地址為ip3??蛻舳丝梢岳寐酚梢?guī)則可以將一個(gè)mptcp會(huì)話的tcp數(shù)據(jù)報(bào)文分別路由到ip1、ip2、ip3,服務(wù)端在子流3(即為前述的第一子通道)上向客戶端發(fā)送的第一tcp選項(xiàng)中的目標(biāo)網(wǎng)絡(luò)入口標(biāo)識(shí)為ip1,則客戶端根據(jù)目標(biāo)網(wǎng)絡(luò)入口標(biāo)識(shí)對(duì)應(yīng)的導(dǎo)航信息可以將發(fā)往ip3的第一tcp數(shù)據(jù)報(bào)文重定向到ip1(子流1為前述的第二子通道),ip3重定向到ip1可以理
解為第一tcp數(shù)據(jù)報(bào)文首先被路由到ip3然后才路由到ip1。服務(wù)端繼續(xù)在子流3上向客戶端發(fā)送第二tcp選項(xiàng),第二tcp選項(xiàng)中的目標(biāo)網(wǎng)絡(luò)入口標(biāo)識(shí)仍然為ip1,則目標(biāo)網(wǎng)絡(luò)入口將發(fā)往ip3的第三tcp數(shù)據(jù)報(bào)文繼續(xù)在發(fā)往ip3,不需要再重定向到ip1。
160.s1060,若客戶端保存了目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)對(duì)應(yīng)的導(dǎo)航信息,客戶端確定需要將導(dǎo)航信息刪除,釋放資源。
161.可以理解的是,s1050與s1060之前的順序不作任何限制,s1050可以在s1060之前或者之后,或者同時(shí)進(jìn)行,本技術(shù)實(shí)施例對(duì)此不作限制。
162.需要說(shuō)明的是,在一些場(chǎng)景中需要撤銷第一tcp選項(xiàng)則需要執(zhí)行方法1000,在一些場(chǎng)景中不需要撤銷第一tcp選項(xiàng),則不需要執(zhí)行方法1000。
163.需要說(shuō)明的是,方法1000撤銷的第一tcp選項(xiàng)為方法300和方法600中的第一tcp選項(xiàng),方法300和方法600中是服務(wù)端生成第一tcp選項(xiàng),則方法1000中服務(wù)端確定撤銷第一tcp選項(xiàng),若客戶端生成第一tcp選項(xiàng),則客戶端確定撤銷第一tcp選項(xiàng),具體實(shí)現(xiàn)過(guò)程與方法1000類似,為了避免贅述,本技術(shù)實(shí)施例不詳細(xì)描述。
164.情況二,第一子通道斷開。分三種情況討論:
165.a)客戶端主動(dòng)斷開第一子通道,客戶端主動(dòng)發(fā)起四次揮手解除第一子通道之后,客戶端可以刪除第一子通道的相關(guān)配置信息,也可以刪除前述s360中的導(dǎo)航信息。當(dāng)然,服務(wù)端也需要?jiǎng)h除第一子通道相關(guān)的配置信息。
166.b)服務(wù)端主動(dòng)斷開第一子通道,服務(wù)端主動(dòng)發(fā)起四次揮手解除第一子通道之后,服務(wù)端需要?jiǎng)h除第一子通道相關(guān)的配置信息。客戶端可以刪除第一子通道的相關(guān)配置信息,也可以刪除前述s360中的導(dǎo)航信息。
167.c)第一子通道被動(dòng)斷開,當(dāng)客戶端和服務(wù)端在預(yù)設(shè)時(shí)長(zhǎng)內(nèi)在第一通道上接收不到tcp保活報(bào)文,則有可能由于網(wǎng)絡(luò)故障導(dǎo)致第一子通道故障了,則服務(wù)端刪除第一子通道的相關(guān)配置信息,服務(wù)端刪除第一子通道的相關(guān)配置信息和s360中的導(dǎo)航信息。
168.需要說(shuō)明的是,在一些場(chǎng)景中第一子通道需要斷開,在一些場(chǎng)景中不需要斷開第一子通道,本技術(shù)實(shí)施例對(duì)此不作限制。
169.可以理解的是,本技術(shù)實(shí)施例中,都是以第一tcp選項(xiàng)包括目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)為例描述,這樣,每執(zhí)行一次本技術(shù)實(shí)施例提供的方法可以將一個(gè)子通道(第一子通道)上的數(shù)據(jù)流量切換到另外一個(gè)子通道(第二子通道)上,第一tcp選項(xiàng)還可以包括源網(wǎng)絡(luò)出口的標(biāo)識(shí),源網(wǎng)絡(luò)出口的標(biāo)識(shí)可以為子通道的源地址標(biāo)識(shí),這樣,可以將多個(gè)子通道上的數(shù)據(jù)流量切換到一個(gè)或多個(gè)子通道上,本技術(shù)實(shí)施例不予限制。例如圖5中,第一tcp選項(xiàng)還可以包括ip2和ip5,ip2為源網(wǎng)絡(luò)出口的標(biāo)識(shí),ip5為目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí),這樣,可以在子通道《ip2,ip4》上發(fā)送第一tcp選項(xiàng),客戶端接收到第一tcp選項(xiàng)之后,將源網(wǎng)絡(luò)出口為ip2的數(shù)據(jù)流量都切換到子通道《ip2,ip5》上,即將子通道《ip2,ip3》和《ip2,ip4》上的數(shù)據(jù)流量切換到子通道上《ip2,ip5》。
170.也可以理解的是,本技術(shù)實(shí)施例中,都是以客戶端向服務(wù)端發(fā)送第一tcp數(shù)據(jù)報(bào)文為例描述,服務(wù)端也可以向客戶端發(fā)送第一tcp數(shù)據(jù)報(bào)文,客戶端可以確定目標(biāo)網(wǎng)絡(luò)入口的標(biāo)識(shí)并生成第一tcp選項(xiàng),并向服務(wù)端發(fā)送攜帶第一tcp選項(xiàng)的tcp報(bào)文,這樣,客戶端可以引導(dǎo)服務(wù)端按照客戶端的期望將第一tcp數(shù)據(jù)發(fā)送到客戶端期望的第二子通道上,為了避免贅述本技術(shù)實(shí)施例對(duì)此不作限制。此外,任何兩個(gè)設(shè)備,其中一個(gè)設(shè)備可以作為發(fā)送第一
tcp數(shù)據(jù)報(bào)文的發(fā)送端,另外一個(gè)設(shè)備可以作為接收第一tcp數(shù)據(jù)報(bào)文的接收端引導(dǎo)發(fā)送第一tcp數(shù)據(jù)報(bào)文的發(fā)送端將數(shù)據(jù)流量引導(dǎo)在接收端期望的網(wǎng)絡(luò)入口上,本技術(shù)實(shí)施例對(duì)發(fā)送端和接收端具體為什么設(shè)備不作任何限定。
171.需要說(shuō)明的是,本技術(shù)實(shí)施例中,第一tcp選項(xiàng)的格式只是舉例描述,本技術(shù)實(shí)施例對(duì)第一tcp選項(xiàng)的格式不作限定。
172.需要說(shuō)明的是,本技術(shù)實(shí)施例中,客戶端在一個(gè)mptcp會(huì)話對(duì)應(yīng)的多個(gè)子通道的哪個(gè)子通道上發(fā)送的tcp數(shù)據(jù)報(bào)文,則該tcp數(shù)據(jù)報(bào)文是按照該子通道的封裝格式和序列號(hào)生成的,每子通道的序列號(hào)準(zhǔn)則需要遵循該mptcp會(huì)話的序列號(hào)準(zhǔn)則。
173.需要說(shuō)明的是,本技術(shù)實(shí)施例中的第一tcp選項(xiàng)、第二tcp選項(xiàng)和add_addr選項(xiàng)的格式僅僅是舉例描述,本技術(shù)對(duì)每個(gè)選項(xiàng)的格式?jīng)]有任何限制,并且每個(gè)選項(xiàng)中的各個(gè)字段之間的位置關(guān)系以及長(zhǎng)度也不限定,各個(gè)選項(xiàng)可以包括本技術(shù)實(shí)施例中提到的更多或者更少的字段,本技術(shù)不予限制。
174.本實(shí)施例可以根據(jù)上述方法示例對(duì)客戶端和服務(wù)端進(jìn)行功能模塊的劃分,例如,可以對(duì)應(yīng)各個(gè)功能劃分各個(gè)功能模塊,也可以將兩個(gè)或兩個(gè)以上的功能集成在一個(gè)處理模塊中。上述集成的模塊可以采用硬件的形式實(shí)現(xiàn)。需要說(shuō)明的是,本實(shí)施例中對(duì)模塊的劃分是示意性的,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式。
175.需要說(shuō)明的是,上述方法實(shí)施例涉及的各步驟的所有相關(guān)內(nèi)容均可以援引到對(duì)應(yīng)功能模塊的功能描述,在此不再贅述。
176.本實(shí)施例提供的客戶端和服務(wù)端,用于執(zhí)行上述傳輸tcp報(bào)文的方法,因此可以達(dá)到與上述實(shí)現(xiàn)方法相同的效果。在采用集成的單元的情況下,客戶端和服務(wù)端分別可以包括處理模塊、存儲(chǔ)模塊和通信模塊。其中,處理模塊可以用于對(duì)客戶端和服務(wù)端的動(dòng)作進(jìn)行控制管理,例如,可以用于支持電子設(shè)備執(zhí)行處理單元執(zhí)行的步驟。存儲(chǔ)模塊可以用于支持客戶端和服務(wù)端執(zhí)行存儲(chǔ)程序代碼和數(shù)據(jù)等。通信模塊,可以用于支持客戶端和服務(wù)端與其他設(shè)備的通信。
177.其中,處理模塊可以是處理器或控制器。其可以實(shí)現(xiàn)或執(zhí)行結(jié)合本技術(shù)公開內(nèi)容所描述的各種示例性的邏輯方框,模塊和電路。處理器也可以是實(shí)現(xiàn)計(jì)算功能的組合,例如包含一個(gè)或多個(gè)微處理器組合,數(shù)字信號(hào)處理(digital signal processing,dsp)和微處理器的組合等等。存儲(chǔ)模塊可以是存儲(chǔ)器。通信模塊具體可以為射頻電路、藍(lán)牙芯片、wi-fi芯片等與其他電子設(shè)備交互的設(shè)備。
178.在一個(gè)實(shí)施例中,當(dāng)處理模塊為處理器,存儲(chǔ)模塊為存儲(chǔ)器時(shí),本實(shí)施例所涉及的電子設(shè)備可以為具有圖2所示結(jié)構(gòu)的設(shè)備。
179.本實(shí)施例還提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),該計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有計(jì)算機(jī)指令,當(dāng)該計(jì)算機(jī)指令在電子設(shè)備上運(yùn)行時(shí),使得電子設(shè)備執(zhí)行上述相關(guān)方法步驟實(shí)現(xiàn)上述實(shí)施例中的安全訪問(wèn)數(shù)據(jù)的方法。
180.本實(shí)施例還提供了一種計(jì)算機(jī)程序產(chǎn)品,當(dāng)該計(jì)算機(jī)程序產(chǎn)品在計(jì)算機(jī)上運(yùn)行時(shí),使得計(jì)算機(jī)執(zhí)行上述相關(guān)步驟,以實(shí)現(xiàn)上述實(shí)施例中的安全訪問(wèn)數(shù)據(jù)的方法。
181.另外,本技術(shù)的實(shí)施例還提供一種裝置,這個(gè)裝置具體可以是芯片,組件或模塊,該裝置可包括相連的處理器和存儲(chǔ)器;其中,存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)執(zhí)行指令,當(dāng)裝置運(yùn)行時(shí),處理器可執(zhí)行存儲(chǔ)器存儲(chǔ)的計(jì)算機(jī)執(zhí)行指令,以使芯片執(zhí)行上述各方法實(shí)施例中的安
全訪問(wèn)數(shù)據(jù)的方法。
182.其中,本實(shí)施例提供的電子設(shè)備、計(jì)算機(jī)存儲(chǔ)介質(zhì)、計(jì)算機(jī)程序產(chǎn)品或芯片均用于執(zhí)行上文所提供的對(duì)應(yīng)的方法,因此,其所能達(dá)到的有益效果可參考上文所提供的對(duì)應(yīng)的方法中的有益效果,此處不再贅述。
183.通過(guò)以上實(shí)施方式的描述,所屬領(lǐng)域的技術(shù)人員可以了解到,為描述的方便和簡(jiǎn)潔,僅以上述各功能模塊的劃分進(jìn)行舉例說(shuō)明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。
184.在本技術(shù)所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過(guò)其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,模塊或單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)裝置,或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過(guò)一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
185.作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是一個(gè)物理單元或多個(gè)物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)不同地方??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。
186.另外,在本技術(shù)各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用軟件功能單元的形式實(shí)現(xiàn)。
187.集成的單元如果以軟件功能單元的形式實(shí)現(xiàn)并作為獨(dú)立的產(chǎn)品銷售或使用時(shí),可以存儲(chǔ)在一個(gè)可讀取存儲(chǔ)介質(zhì)中?;谶@樣的理解,本技術(shù)實(shí)施例的技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分或者該技術(shù)方案的全部或部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該軟件產(chǎn)品存儲(chǔ)在一個(gè)存儲(chǔ)介質(zhì)中,包括若干指令用以使得一個(gè)設(shè)備(可以是單片機(jī),芯片等)或處理器(processor)執(zhí)行本技術(shù)各個(gè)實(shí)施例方法的全部或部分步驟。而前述的存儲(chǔ)介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲(chǔ)器(read only memory,rom)、隨機(jī)存取存儲(chǔ)器(random access memory,ram)、磁碟或者光盤等各種可以存儲(chǔ)程序代碼的介質(zhì)。
188.以上內(nèi)容,僅為本技術(shù)的具體實(shí)施方式,但本技術(shù)的保護(hù)范圍并不局限于此,任何熟悉本技術(shù)領(lǐng)域的技術(shù)人員在本技術(shù)揭露的技術(shù)范圍內(nèi),可輕易想到變化或替換,都應(yīng)涵蓋在本技術(shù)的保護(hù)范圍之內(nèi)。因此,本技術(shù)的保護(hù)范圍應(yīng)以權(quán)利要求的保護(hù)范圍為準(zhǔn)。