本技術(shù)涉及通信,尤其涉及一種數(shù)據(jù)傳輸方法及裝置。
背景技術(shù):
1、傳統(tǒng)的數(shù)據(jù)中心網(wǎng)絡(luò)通常采用以太網(wǎng)技術(shù)組成多跳對(duì)稱的網(wǎng)絡(luò)架構(gòu),使用傳輸控制協(xié)議/網(wǎng)際協(xié)議(transmission?control?protocol/internet?protocol,tcp/ip)進(jìn)行數(shù)據(jù)傳輸。然而傳統(tǒng)的tcp/ip網(wǎng)絡(luò)雖然技術(shù)成熟,但是無(wú)法適應(yīng)高性能計(jì)算業(yè)務(wù)需求,因此遠(yuǎn)程直接數(shù)據(jù)存取(remote?direct?memory?access,rdma)技術(shù)逐漸代替了tcp/ip技術(shù)成為高性能計(jì)算網(wǎng)絡(luò)的首選協(xié)議。采用rdma協(xié)議在網(wǎng)絡(luò)無(wú)損狀態(tài)下可以滿速率傳輸數(shù)據(jù),但是一旦發(fā)生丟包現(xiàn)象,rdma協(xié)議無(wú)法實(shí)現(xiàn)tcp協(xié)議可以實(shí)現(xiàn)的精準(zhǔn)重傳,使得傳輸性能會(huì)急劇下降。
2、因此,為了降低rdma協(xié)議傳輸數(shù)據(jù)的丟包率實(shí)現(xiàn)無(wú)損網(wǎng)絡(luò)傳輸,相關(guān)技術(shù)中提出了基于優(yōu)先級(jí)的流量控制(priority-based?flow?control,pfc)技術(shù),在發(fā)生網(wǎng)絡(luò)擁塞問(wèn)題時(shí),下游網(wǎng)絡(luò)設(shè)備向上游網(wǎng)絡(luò)設(shè)備發(fā)送反壓通知報(bào)文,指示上游網(wǎng)絡(luò)設(shè)備暫停發(fā)送某一個(gè)或者多個(gè)數(shù)據(jù)流,直至擁塞解除,從而避免擁塞造成的丟包問(wèn)題。但是,由于pfc會(huì)阻止某一個(gè)優(yōu)先級(jí)的全部流量,因此流向其他端口的流量也有可能被阻隔,導(dǎo)致設(shè)備的帶寬利用率較低。
技術(shù)實(shí)現(xiàn)思路
1、本技術(shù)提供一種數(shù)據(jù)傳輸方法及裝置,用于解決目前實(shí)現(xiàn)無(wú)損網(wǎng)絡(luò)方案中存在帶寬利用率低的問(wèn)題。
2、第一方面,本技術(shù)提供一種數(shù)據(jù)傳輸方法,該方法應(yīng)用于源端網(wǎng)絡(luò)設(shè)備,源端網(wǎng)絡(luò)設(shè)備為用于傳輸?shù)谝粩?shù)據(jù)流的多個(gè)網(wǎng)絡(luò)設(shè)備中與源端設(shè)備連接的網(wǎng)絡(luò)設(shè)備,第一數(shù)據(jù)流由源端設(shè)備發(fā)往目的端設(shè)備,多個(gè)網(wǎng)絡(luò)設(shè)備連接控制設(shè)備,所述方法包括:
3、接收來(lái)自目的端網(wǎng)絡(luò)設(shè)備的擁塞通知;所述目的端網(wǎng)絡(luò)設(shè)備為所述多個(gè)網(wǎng)絡(luò)設(shè)備中與所述目的端設(shè)備連接的網(wǎng)絡(luò)設(shè)備,所述擁塞通知為所述目的端網(wǎng)絡(luò)設(shè)備在屬于第一數(shù)據(jù)流的數(shù)據(jù)量大于預(yù)設(shè)的門限值時(shí)發(fā)送的;
4、根據(jù)所述擁塞通知將用于傳輸?shù)谝粩?shù)據(jù)流的帶寬由第一帶寬縮小為第二帶寬;
5、向所述控制設(shè)備發(fā)送帶寬縮小通知;所述帶寬縮小通知用于指示所述控制設(shè)備按照所述第一數(shù)據(jù)流從所述源端設(shè)備發(fā)往所述目的端設(shè)備的傳輸順序,逐跳指示所述多個(gè)網(wǎng)絡(luò)設(shè)備中除所述源端設(shè)備外的其他網(wǎng)絡(luò)設(shè)備縮小傳輸?shù)谝粩?shù)據(jù)流的帶寬。
6、在一些實(shí)施例中,在接收來(lái)自目的端網(wǎng)絡(luò)設(shè)備的擁塞通知之前,所述方法還包括:
7、接收來(lái)自所述控制設(shè)備的帶寬縮小規(guī)則;其中,所述帶寬縮小規(guī)則包括在收到所述擁塞通知后的帶寬縮小量。
8、第二方面,本技術(shù)提出了另一種數(shù)據(jù)傳輸方法,所述方法應(yīng)用于控制設(shè)備,所述控制設(shè)備連接用于傳輸?shù)谝粩?shù)據(jù)流的多個(gè)網(wǎng)絡(luò)設(shè)備,所述第一數(shù)據(jù)流由源端設(shè)備發(fā)往目的端設(shè)備,所述方法包括:
9、獲取所述多個(gè)網(wǎng)絡(luò)設(shè)備傳輸?shù)谝粩?shù)據(jù)流的流量;
10、當(dāng)目的端網(wǎng)絡(luò)設(shè)備傳輸?shù)谝粩?shù)據(jù)流的出口流量大于第一閾值,且所述多個(gè)網(wǎng)絡(luò)設(shè)備中其他網(wǎng)絡(luò)設(shè)備傳輸?shù)谝粩?shù)據(jù)流的流量大于第二閾值時(shí),按照所述第一數(shù)據(jù)流從所述源端設(shè)備發(fā)往所述目的端設(shè)備的傳輸順序的逆順序,逐跳通知所述多個(gè)網(wǎng)絡(luò)設(shè)備將傳輸所述第一數(shù)據(jù)流的帶寬由第一帶寬放大至第三帶寬;
11、其中,所述目的端網(wǎng)絡(luò)設(shè)備為所述多個(gè)網(wǎng)絡(luò)設(shè)備中與所述目的端設(shè)備連接的網(wǎng)絡(luò)設(shè)備。
12、在一些實(shí)施例中,所述通知所述多個(gè)網(wǎng)絡(luò)設(shè)備將傳輸所述第一數(shù)據(jù)流的帶寬由第一帶寬放大至第三帶寬,包括:
13、按照所述第一數(shù)據(jù)流從所述源端設(shè)備發(fā)往所述目的端設(shè)備的傳輸順序的逆順序,從所述目的端網(wǎng)絡(luò)設(shè)備開(kāi)始逐跳發(fā)送帶寬放大通知;其中,所述帶寬放大通知用于指示所述多個(gè)網(wǎng)絡(luò)設(shè)備將傳輸所述第一數(shù)據(jù)流的帶寬由第一帶寬放大至第三帶寬。
14、在一些實(shí)施例中,在獲取所述多個(gè)網(wǎng)絡(luò)設(shè)備傳輸?shù)谝粩?shù)據(jù)流的流量之前,所述方法還包括:
15、向所述多個(gè)網(wǎng)絡(luò)設(shè)備分別發(fā)送流量上報(bào)通知;其中,所述流量上報(bào)通知中包括上報(bào)周期,所述流量上報(bào)通知用于指示所述多個(gè)網(wǎng)絡(luò)設(shè)備按照所述上報(bào)周期向所述控制設(shè)備上報(bào)傳輸?shù)谝粩?shù)據(jù)流的流量。
16、第三方面,本技術(shù)提出了一種數(shù)據(jù)傳輸裝置,所述裝置為源端網(wǎng)絡(luò)設(shè)備,或者所述裝置應(yīng)用于所述源端網(wǎng)絡(luò)設(shè)備;所述源端網(wǎng)絡(luò)設(shè)備為用于傳輸?shù)谝粩?shù)據(jù)流的多個(gè)網(wǎng)絡(luò)設(shè)備中與源端設(shè)備連接的網(wǎng)絡(luò)設(shè)備,所述第一數(shù)據(jù)流由所述源端設(shè)備發(fā)往目的端設(shè)備,所述多個(gè)網(wǎng)絡(luò)設(shè)備分別連接控制設(shè)備,所述裝置包括:
17、通信單元,用于接收來(lái)自目的端網(wǎng)絡(luò)設(shè)備的擁塞通知;所述目的端網(wǎng)絡(luò)設(shè)備為所述多個(gè)網(wǎng)絡(luò)設(shè)備中與所述目的端設(shè)備連接的網(wǎng)絡(luò)設(shè)備,所述擁塞通知為所述目的端網(wǎng)絡(luò)設(shè)備在屬于第一數(shù)據(jù)流的數(shù)據(jù)量大于預(yù)設(shè)的門限值時(shí)發(fā)送的;
18、處理單元,用于根據(jù)所述擁塞通知將用于傳輸?shù)谝粩?shù)據(jù)流的帶寬由第一帶寬縮小為第二帶寬;
19、所述通信單元,還用于向所述控制設(shè)備發(fā)送帶寬縮小通知;所述帶寬縮小通知用于指示所述控制設(shè)備按照所述第一數(shù)據(jù)流從所述源端設(shè)備發(fā)往所述目的端設(shè)備的傳輸順序,逐跳指示所述多個(gè)網(wǎng)絡(luò)設(shè)備中除所述源端設(shè)備外的其他網(wǎng)絡(luò)設(shè)備縮小傳輸?shù)谝粩?shù)據(jù)流的帶寬。
20、在一些實(shí)施例中,所述通信單元,還用于:
21、接收來(lái)自所述控制設(shè)備的帶寬縮小規(guī)則;其中,所述帶寬縮小規(guī)則包括在收到所述擁塞通知后的帶寬縮小量。
22、第四方面,本技術(shù)提出了另一種數(shù)據(jù)傳輸裝置,所述裝置為控制設(shè)備,或者所述裝置應(yīng)用于所述控制設(shè)備,所述裝置連接用于傳輸?shù)谝粩?shù)據(jù)流的多個(gè)網(wǎng)絡(luò)設(shè)備,所述第一數(shù)據(jù)流由源端設(shè)備發(fā)往目的端設(shè)備,所述裝置包括:
23、獲取單元,用于獲取所述多個(gè)網(wǎng)絡(luò)設(shè)備傳輸?shù)谝粩?shù)據(jù)流的流量;
24、所述處理單元,還用于在目的端網(wǎng)絡(luò)設(shè)備傳輸?shù)谝粩?shù)據(jù)流的出口流量大于第一閾值,且所述多個(gè)網(wǎng)絡(luò)設(shè)備中其他網(wǎng)絡(luò)設(shè)備傳輸?shù)谝粩?shù)據(jù)流的流量大于第二閾值時(shí),按照所述第一數(shù)據(jù)流從所述源端設(shè)備發(fā)往所述目的端設(shè)備的傳輸順序的逆順序,逐跳通知所述多個(gè)網(wǎng)絡(luò)設(shè)備將傳輸所述第一數(shù)據(jù)流的帶寬由第一帶寬放大至第三帶寬;其中,所述目的端網(wǎng)絡(luò)設(shè)備為所述多個(gè)網(wǎng)絡(luò)設(shè)備中與所述目的端設(shè)備連接的網(wǎng)絡(luò)設(shè)備。
25、在一些實(shí)施例中,所述處理單元,在通知所述多個(gè)網(wǎng)絡(luò)設(shè)備將傳輸所述第一數(shù)據(jù)流的帶寬由第一帶寬放大至第三帶寬時(shí),具體用于:
26、按照所述第一數(shù)據(jù)流從所述源端設(shè)備發(fā)往所述目的端設(shè)備的傳輸順序的逆順序,從所述目的端網(wǎng)絡(luò)設(shè)備開(kāi)始逐跳發(fā)送帶寬放大通知;其中,所述帶寬放大通知用于指示所述多個(gè)網(wǎng)絡(luò)設(shè)備將傳輸所述第一數(shù)據(jù)流的帶寬由第一帶寬放大至第三帶寬。
27、在一些實(shí)施例中,所述處理單元,還用于:
28、向所述多個(gè)網(wǎng)絡(luò)設(shè)備分別發(fā)送流量上報(bào)通知;其中,所述流量上報(bào)通知中包括上報(bào)周期,所述流量上報(bào)通知用于指示所述多個(gè)網(wǎng)絡(luò)設(shè)備按照所述上報(bào)周期向所述控制設(shè)備上報(bào)傳輸?shù)谝粩?shù)據(jù)流的流量。
29、第五方面,提供了一種電子設(shè)備,所述電子設(shè)備包括控制器和存儲(chǔ)器。存儲(chǔ)器用于存儲(chǔ)計(jì)算機(jī)執(zhí)行指令,控制器執(zhí)行存儲(chǔ)器中的計(jì)算機(jī)執(zhí)行指令以利用控制器中的硬件資源執(zhí)行第一方面或第二方面任一種可能實(shí)現(xiàn)的方法的操作步驟。
30、第六方面,提供一種計(jì)算機(jī)可讀存儲(chǔ)介質(zhì),計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中存儲(chǔ)有指令,當(dāng)其在計(jì)算機(jī)上運(yùn)行時(shí),使得計(jì)算機(jī)執(zhí)行上述各方面的方法。
31、本技術(shù)提出在某一個(gè)數(shù)據(jù)流的傳輸通道發(fā)生網(wǎng)絡(luò)擁塞問(wèn)題時(shí),從數(shù)據(jù)流傳輸?shù)脑炊司W(wǎng)絡(luò)設(shè)備開(kāi)始逐跳縮小各網(wǎng)絡(luò)設(shè)備的傳輸帶寬,使得流入數(shù)據(jù)傳輸通道的數(shù)據(jù)量減少,從而緩解網(wǎng)絡(luò)擁塞問(wèn)題實(shí)現(xiàn)無(wú)損網(wǎng)絡(luò)傳輸。相較于傳統(tǒng)的實(shí)現(xiàn)無(wú)損網(wǎng)絡(luò)的方案中存在的帶寬利用率低的問(wèn)題,本技術(shù)的方案會(huì)針對(duì)每個(gè)數(shù)據(jù)流的實(shí)時(shí)傳輸情況,彈性調(diào)整每個(gè)數(shù)據(jù)流的傳輸通道中各個(gè)網(wǎng)絡(luò)設(shè)備的傳輸帶寬,在降低丟包率實(shí)現(xiàn)無(wú)損網(wǎng)絡(luò)的基礎(chǔ)上保障了網(wǎng)絡(luò)設(shè)備的帶寬利用率。