本技術(shù)涉及通信,尤其涉及一種擁塞檢測方法及裝置。
背景技術(shù):
1、遠程直接內(nèi)存訪問(remote?direct?memory?access,rdma)通信依賴無損網(wǎng)絡(luò),需要網(wǎng)換機特殊網(wǎng)絡(luò)配置支持,例如交換機配置基于優(yōu)先級流量控制(priority-based?flowcontrol,pfc)和顯示擁塞通知(explicit?congestion?notification,ecn),但是數(shù)據(jù)中心的交換機、網(wǎng)卡廠家眾多(交換機、網(wǎng)卡型號版本和規(guī)格不統(tǒng)一),在同一上rdma網(wǎng)絡(luò)中要支持相同的ecn和流控算法例如dcqcn算法時,配置管理復(fù)雜,在數(shù)據(jù)中心落地困難。
技術(shù)實現(xiàn)思路
1、本技術(shù)實施例提供的一種擁塞檢測方法及裝置,用于提供一種無需交換機、網(wǎng)卡配置的無損網(wǎng)絡(luò)通信的擁塞檢測方法。
2、第一方面,本技術(shù)提供一種擁塞檢測方法,該方法可以應(yīng)源端設(shè)備,源端設(shè)備可以是服務(wù)器等計算設(shè)備,源端設(shè)備和目的端設(shè)備之間建立有遠程直接內(nèi)存訪問(remotedirect?memory?access,rdma)連接,該方法包括:源端設(shè)備(或源端設(shè)備中的組件如處理器)在用戶態(tài)下生成第一探測報文,該第一探測報文用于檢測源端設(shè)備與所述目的端設(shè)備之間的網(wǎng)絡(luò)擁塞情況,源端設(shè)備可通過該rdma通信連接向目標端設(shè)備發(fā)送第一探測報文,相應(yīng)的,目的端設(shè)備在接收到第一探測報文之后,可基于該第一探測報文生成第二探測報文,并向源端設(shè)備發(fā)送該第二探測報文。源端設(shè)備根據(jù)通過該rdma通信連接接收到的來自目的端設(shè)備的第二探測報文確定源端設(shè)備和目的端設(shè)備之間的網(wǎng)絡(luò)擁塞情況。
3、通過上述方法,源端設(shè)備在用戶態(tài)下生成用于檢測與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞程度的第一探測報文,并通過與目的端設(shè)備之間的rdma連接將該第一探測報文發(fā)送至目的端設(shè)備,源端設(shè)備根據(jù)目的端設(shè)備針對第一探測報文返回的第二探測報文確定與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞程度,該擁塞檢測方法可以在源端設(shè)備的用戶態(tài)下實現(xiàn),不需要交換機和網(wǎng)卡支持擁塞檢測功能,對交換機和網(wǎng)卡的要求更低??晒?jié)省rdma通信的無損網(wǎng)絡(luò)搭建及維護的人工成本和設(shè)備成本,實施便捷、應(yīng)用性強。
4、在一種可能的設(shè)計中,第一探測報文是由源端設(shè)備中運行于用戶態(tài)的第一中間庫生成的,第二探測報文為目的端設(shè)備中運行于用戶態(tài)下的第二中間庫基于第一探測報文生成的。其中,第一中間庫可以是位于源端設(shè)備的網(wǎng)絡(luò)通信驅(qū)動層(如包括網(wǎng)卡驅(qū)動)與應(yīng)用程序?qū)?包括一個或多個用戶態(tài)應(yīng)用程序)之間的一層,類似的,第二中間庫可以是位于目的端設(shè)備的硬件驅(qū)動層與運行在用戶態(tài)下的應(yīng)用程序之間的一層。
5、通過上述方法,源端設(shè)備通過第一中間庫生成第一探測報文,由于第一中間庫位于應(yīng)用程序?qū)优c網(wǎng)絡(luò)通信驅(qū)動層之間,應(yīng)用程序生成的數(shù)據(jù)需通過第一中間庫、網(wǎng)絡(luò)通信驅(qū)動層與外部設(shè)備(如目的端設(shè)備)通信,因此,基于第一中間庫可以針對多種應(yīng)用程序的數(shù)據(jù)分別發(fā)起網(wǎng)絡(luò)擁塞檢測,統(tǒng)一了對業(yè)務(wù)層的擁塞檢測方式,并且,由第一中間庫生成擁塞探測報文時,源端設(shè)備的處理器(如cpu)不需要切換到內(nèi)核態(tài),可以大幅度降低cpu開銷及時延,在目的端設(shè)備由第二中間庫生成第二探測報文具有相同的效果,如此可降低整個系統(tǒng)的cpu開銷及時延,提升rdma網(wǎng)絡(luò)中的擁塞檢測效率。另外,由于不需要源端設(shè)備和目的端設(shè)備的網(wǎng)卡來生成探測報文,因此,本技術(shù)的方法進一步釋放了對網(wǎng)卡的要求。
6、在一種可能的設(shè)計中,源端設(shè)備與目的端設(shè)備之間建立的rdma連接包括第一中間庫和第二中間庫之間建立的rdma連接;該架構(gòu)下的一種方式包括,源端設(shè)備中的第一中間庫通過與第二中間庫之間的rdma連接向第二中間庫發(fā)送第一探測報文,并通過該rdma連接接收第二中間庫發(fā)送的第二探測報文;之后,第一中間庫根據(jù)所述第二探測報文確定源端設(shè)備與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞情況。
7、通過上述方法,第一中間庫通過與第二中間庫的rdma連接通信,第一中間庫基于接收到的第二探測報文檢測源端設(shè)備與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞情況,源端設(shè)備的處理器不需要切換到內(nèi)核態(tài)來確定網(wǎng)絡(luò)擁塞情況,可以大幅度降低cpu開銷及時延,提升rdma網(wǎng)絡(luò)中的擁塞檢測效率。另外,由于不需要源端設(shè)備和目的端設(shè)備的網(wǎng)卡確定網(wǎng)絡(luò)擁塞情況,因此,本技術(shù)的方法進一步釋放了對網(wǎng)卡的要求。
8、在一種可能的設(shè)計中,第二探測報文包括第一業(yè)務(wù)的業(yè)務(wù)擁塞信息,具體如目的端設(shè)備在第一探測報文中添加填充信息后得到第二探測報文,填充信息包括第一業(yè)務(wù)的業(yè)務(wù)擁塞信息,業(yè)務(wù)擁塞信息用于指示目的端設(shè)備中運行的第一業(yè)務(wù)的數(shù)據(jù)在目的端設(shè)備的擁塞程度;之后,源端設(shè)備在根據(jù)第二探測報文確定源端設(shè)備與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞情況時,可以根據(jù)第一業(yè)務(wù)的業(yè)務(wù)擁塞信息確定源端設(shè)備與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞情況。
9、通過上述方法,目的端設(shè)備可確定第一業(yè)務(wù)的擁塞程度,并通過第二探測報文攜帶用于指示該擁塞程度的業(yè)務(wù)擁塞信息,如此,源端設(shè)備可以獲知道目的端設(shè)備中業(yè)務(wù)的擁塞程度,從而根據(jù)目的端設(shè)備中業(yè)務(wù)的擁塞程度來確定源端設(shè)備與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞程度,可以實現(xiàn)業(yè)務(wù)粒度級別的擁塞檢測。現(xiàn)有技術(shù)中要實現(xiàn)業(yè)務(wù)粒度的擁塞檢測需依賴特定交換機配置,對交換機的要求高,本技術(shù)不需要依賴特定交換機配置即可實現(xiàn)。
10、在一種可能的設(shè)計中,第一探測報文包括第一時間信息,第一時間信息用于指示第一探測報文的發(fā)送時間,即源端設(shè)備發(fā)送第一探測報文的時間,第二探測報文包括第一時間信息;
11、源端設(shè)備在根據(jù)第二探測報文確定源端設(shè)備與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞情況時,可根據(jù)第一探測報文的rtt確定網(wǎng)絡(luò)擁塞情況,其中,第一探測報文的rtt是根據(jù)第一探測報文的發(fā)送時間和第二探測報文的接收時間(即源端設(shè)備接收第二探測報文的時間)確定的?;蛘?,源端設(shè)備可根據(jù)第一探測報文的往返時間(round?trip?time,rtt)和第一業(yè)務(wù)的業(yè)務(wù)擁塞信息確定源端設(shè)備與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞情況。
12、通過上述方法,根據(jù)第一探測報文的rtt來確定源端設(shè)備與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞程度是一種比較準確、直觀的度量方式,本技術(shù)可在計算設(shè)備的用戶態(tài)下實現(xiàn)該方式,以得到準確的擁塞檢測結(jié)果,在此基礎(chǔ)上還可以結(jié)合業(yè)務(wù)擁塞程度來度量源端設(shè)備與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞程度,以實現(xiàn)業(yè)務(wù)粒度的擁塞檢測,提供一種多維度、細粒度的擁塞檢測方法。且這兩種方式均不依賴特定交換機和網(wǎng)卡配置,對交換機和網(wǎng)卡的要求更低,適用網(wǎng)絡(luò)更廣泛。
13、在一種可能的設(shè)計中,源端設(shè)備在根據(jù)第二探測報文確定源端設(shè)備與所述目的端設(shè)備之間的網(wǎng)絡(luò)擁塞情況時,可根據(jù)第二探測報文確定網(wǎng)絡(luò)擁塞度量值,網(wǎng)絡(luò)擁塞度量值用于指示源端設(shè)備與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞情況;
14、源端設(shè)備在根據(jù)第二探測報文確定源端設(shè)備與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞情況之后,還可以根據(jù)度量算法將該網(wǎng)絡(luò)擁塞度量值轉(zhuǎn)換為速率參數(shù),源端設(shè)備使用該速率參數(shù)控制源端設(shè)備向目的端設(shè)備發(fā)送數(shù)據(jù)的發(fā)包速率。
15、通過上述方法,源端設(shè)備根據(jù)擁塞檢測結(jié)果即源端設(shè)備與目的端設(shè)備之間的網(wǎng)絡(luò)擁塞程度確定速率參數(shù),根據(jù)該速率參數(shù)控制源端設(shè)備向目的端設(shè)備發(fā)送數(shù)據(jù)的發(fā)包速率,避免丟包,在計算設(shè)備的用戶態(tài)下實現(xiàn)擁塞檢測和流速控制,不需要對交換機和網(wǎng)卡進行配置即可實現(xiàn)rdma的無損通信,對交換機和網(wǎng)卡的類型和功能要求更低,同時可降低rdma通信的無損網(wǎng)絡(luò)搭建調(diào)度人工和設(shè)備成本。
16、在一種可能的設(shè)計中,源端設(shè)備在向目的端設(shè)備發(fā)送第一業(yè)務(wù)的數(shù)據(jù)之前,還可以將第一業(yè)務(wù)的通信模式調(diào)整為rdma通信模式,如由tcp通信模式調(diào)整為rdma通信模式,之后,源端設(shè)備在向目的端設(shè)備發(fā)送第一業(yè)務(wù)的數(shù)據(jù)時,使用rdma通信模式向目標端設(shè)備發(fā)送第一業(yè)務(wù)的數(shù)據(jù)報文。
17、通過上述方法,源端設(shè)備將業(yè)務(wù)的通信模式調(diào)整為rdma通信模式,使用rdma通信模式存取業(yè)務(wù)數(shù)據(jù),由于計算設(shè)備在用戶態(tài)下進行擁塞檢測和流速控制便可實現(xiàn)rdma的無損通信,因此,該方法適用的網(wǎng)絡(luò)更加廣泛,遷移性更好,無需更改現(xiàn)有網(wǎng)絡(luò)的軟硬件配置便可實現(xiàn)rdma通信,相對tcp通信,可達到低時延、高吞吐量和低cpu開銷的效果。
18、第二方面,本技術(shù)還提供了一種擁塞檢測裝置,該裝置具有實現(xiàn)上述第一方面所描述的方法的功能,有益效果可以參見第一方面的描述,此處不再贅述。功能可以通過硬件實現(xiàn),也可以通過硬件執(zhí)行相應(yīng)的軟件實現(xiàn)。硬件或軟件包括一個或多個與上述功能相對應(yīng)的模塊。在一個可能的設(shè)計中,該裝置的結(jié)構(gòu)中包括發(fā)送模塊、接收模塊、確定模塊,可選的,還可包括通信模式轉(zhuǎn)換模塊。這些模塊可以實現(xiàn)上述第一方面方法示例的功能,具體參見方法示例中的詳細描述,此處不做贅述。
19、第三方面,本技術(shù)還提供了一種計算設(shè)備。該計算設(shè)備的結(jié)構(gòu)中包括處理器和存儲器,存儲器用于存儲指令和/或數(shù)據(jù)。存儲器與處理器耦合,處理器執(zhí)行所述存儲器中存儲的程序指令時,可以實現(xiàn)上述第一方面描述的方法。計算設(shè)備的結(jié)構(gòu)中還包括通信接口,用于與其他設(shè)備進行通信,如發(fā)送第一探測報文、接收第二探測報文等。
20、第四方面,本技術(shù)還提供一種計算機可讀存儲介質(zhì),計算機可讀存儲介質(zhì)中存儲有指令,當其在計算機上運行時,使得計算機執(zhí)行上述第一方面以及第一方面的各個可能的設(shè)計中的方法。
21、第五方面,本技術(shù)還提供一種包含指令的計算機程序產(chǎn)品,當其在計算機上運行時,使得計算機執(zhí)行上述第一方面以及第一方面的各個可能的設(shè)計中的方法。
22、第六方面,本技術(shù)還提供一種計算芯片,芯片與存儲器相連,芯片用于讀取并執(zhí)行存儲器中存儲的軟件程序,執(zhí)行上述第一方面以及第一方面的各個可能的實現(xiàn)方式中的方法。
23、上述第二方面至第六方面中任一方面的有益效果描述,請參照上述第一方面中任一可能的實現(xiàn)方式中的技術(shù)效果描述,本技術(shù)這里不再重復(fù)贅述。