本發(fā)明實(shí)施例涉及通信技術(shù)領(lǐng)域,尤其涉及一種報(bào)文的傳輸方法及裝置。
背景技術(shù):
遠(yuǎn)程直接數(shù)據(jù)存取(remotedirectmemoryaccess,簡稱rdma)是為了解決網(wǎng)絡(luò)傳輸中服務(wù)器端數(shù)據(jù)處理的延遲而產(chǎn)生的。
現(xiàn)有技術(shù)將rdma承載在以太網(wǎng)幀或用戶數(shù)據(jù)報(bào)協(xié)議(userdatagramprotocol,簡稱udp)報(bào)文中,由于rdma是為承載在可靠的ib網(wǎng)絡(luò)上,ib網(wǎng)絡(luò)是可靠的不會(huì)丟包的,所以rdma的上層協(xié)議并沒有防丟包機(jī)制。而傳統(tǒng)的以太網(wǎng)是根據(jù)盡力而為的理念設(shè)計(jì),一旦擁塞或者設(shè)備故障,丟包是常見的情況。由于udp是不可靠快速傳輸方式,將rdma承載在udp報(bào)文中,同樣無法保證rdma的可靠傳輸。
技術(shù)實(shí)現(xiàn)要素:
本發(fā)明實(shí)施例提供一種報(bào)文的傳輸方法及裝置,以rdma的傳輸可靠性。
本發(fā)明實(shí)施例的一個(gè)方面是提供一種報(bào)文的傳輸方法,包括:
接收第一服務(wù)器發(fā)送的報(bào)文,對所述報(bào)文進(jìn)行識別;
若識別出所述報(bào)文為承載有遠(yuǎn)程直接數(shù)據(jù)存取rdma的以太網(wǎng)幀,則將所述以太網(wǎng)幀的以太類型標(biāo)識修改為rocev2的值;
將所述報(bào)文的優(yōu)先級設(shè)置為最高級別的優(yōu)先級。
本發(fā)明實(shí)施例的另一個(gè)方面是提供一種報(bào)文的傳輸裝置,包括:
接收模塊,用于接收第一服務(wù)器發(fā)送的報(bào)文;
識別模塊,用于對所述報(bào)文進(jìn)行識別;
修改模塊,用于當(dāng)識別模塊識別出所述報(bào)文為承載有遠(yuǎn)程直接數(shù)據(jù)存取rdma的以太網(wǎng)幀時(shí),將所述以太網(wǎng)幀的以太類型標(biāo)識修改為rocev2的值;
設(shè)置模塊,用于將所述報(bào)文的優(yōu)先級設(shè)置為最高級別的優(yōu)先級。
本發(fā)明實(shí)施例提供的報(bào)文的傳輸方法及裝置,通過接收第一服務(wù)器發(fā)送的報(bào)文,如果該報(bào)文為承載有遠(yuǎn)程直接數(shù)據(jù)存取rdma的以太網(wǎng)幀,則將以太網(wǎng)幀的以太類型標(biāo)識修改為rocev2的值,并將該報(bào)文的優(yōu)先級設(shè)置為最高級別的優(yōu)先級,確保每個(gè)rocev2的報(bào)文不丟包,提高了rdma的傳輸可靠性。
附圖說明
圖1為本發(fā)明實(shí)施例提供的報(bào)文的傳輸方法流程圖;
圖2為本發(fā)明實(shí)施例提供的報(bào)文的傳輸方法適用的網(wǎng)絡(luò)結(jié)構(gòu)圖;
圖3為本發(fā)明另一實(shí)施例提供的報(bào)文的傳輸方法流程圖;
圖4為本發(fā)明實(shí)施例提供的報(bào)文的傳輸裝置的結(jié)構(gòu)圖;
圖5為本發(fā)明另一實(shí)施例提供的報(bào)文的傳輸裝置的結(jié)構(gòu)圖。
具體實(shí)施方式
圖1為本發(fā)明實(shí)施例提供的報(bào)文的傳輸方法流程圖。本發(fā)明實(shí)施例針對rdma的傳輸可靠性低,提供了報(bào)文的傳輸方法,該方法具體步驟如下:
步驟s101、接收第一服務(wù)器發(fā)送的報(bào)文,對所述報(bào)文進(jìn)行識別。
為了讓承載到udp上的rdma即rocev2(也就是增強(qiáng)roce)保證不丟包,本文提出一種rocev2采用udp和以太幀進(jìn)行流量映射解決無丟包的方法。
本方法的基本思路是將承載rocev2的udp報(bào)文映射成以太幀,然后將此類以太幀采用dcb的無丟包機(jī)制保證udp報(bào)文的不丟包。
如圖2所示,s1表示第一服務(wù)器,s2表示第二服務(wù)器,s1和s2之間由多個(gè)交換機(jī)或路由器,其中,21-26為以太網(wǎng)交換機(jī)或路由器。以太網(wǎng)交換機(jī)或路由器21接收到s1發(fā)送給s2的報(bào)文,并將該報(bào)文發(fā)送給下一跳交換機(jī)或路由器,下一跳交換機(jī)或路由器再將該報(bào)文發(fā)送給再下一跳交換機(jī)或路由器,直到將該報(bào)文轉(zhuǎn)發(fā)給s2。
當(dāng)以太網(wǎng)交換機(jī)或路由器21接收到s1發(fā)送給s2的報(bào)文時(shí),對該報(bào)文進(jìn)行識別,識別該報(bào)文是否為rocev2的默認(rèn)端口號的報(bào)文,或者是否為ib網(wǎng)絡(luò)層報(bào)文,該報(bào)文具體可以是udp報(bào)文,則可以通過udp報(bào)文的目的端口號來對該報(bào)文進(jìn)行識別,或者通過udp的載荷類型對該報(bào)文進(jìn)行識別。
具體的,該報(bào)文為承載有rocev2的udp報(bào)文。
步驟s102、若識別出所述報(bào)文為承載有遠(yuǎn)程直接數(shù)據(jù)存取rdma的以太網(wǎng)幀,則將所述以太網(wǎng)幀的以太類型標(biāo)識修改為rocev2的值。
如果識別出該報(bào)文為承載有遠(yuǎn)程直接數(shù)據(jù)存取rdma的以太網(wǎng)幀,則將該以太網(wǎng)幀的以太類型標(biāo)識修改為rocev2的值,例如以太類型標(biāo)識為ipv4的類型0x0800,可將其修改為0x8916的rocev2值。
ib即為infiniband架構(gòu),infiniband技術(shù)不是用于一般網(wǎng)絡(luò)連接的,它的主要設(shè)計(jì)目的是針對服務(wù)器端的連接問題的。因此,infiniband技術(shù)將會(huì)被應(yīng)用于服務(wù)器與服務(wù)器(比如復(fù)制,分布式工作等),服務(wù)器和存儲設(shè)備(比如san和直接存儲附件)以及服務(wù)器和網(wǎng)絡(luò)之間(比如lan,wans和theinternet)的通信。
步驟s103、將所述報(bào)文的優(yōu)先級設(shè)置為最高級別的優(yōu)先級。
另外,以太網(wǎng)交換機(jī)或路由器21還啟動(dòng)dcb機(jī)制,dcb是ieee提出的數(shù)據(jù)中心橋接技術(shù),dcb使得以太網(wǎng)可以承載兩種不同類型的數(shù)據(jù)流。同時(shí)由于ets可以為某種流量提供最小帶寬保證,因而除了將普通數(shù)據(jù)流和高優(yōu)先級數(shù)據(jù)流融合到一起之外,采用了dcb技術(shù)的網(wǎng)絡(luò)還可以用來承載計(jì)算業(yè)務(wù)。dcb提供了一種以太網(wǎng)的無丟包技術(shù),解決了rocev1的丟包問題,dcb本質(zhì)的方法是在以太報(bào)文中根據(jù)上層報(bào)文的類型采用不同的優(yōu)先級機(jī)制,從而保證高優(yōu)先級報(bào)文不丟包。
以太網(wǎng)交換機(jī)或路由器21將經(jīng)過該以太網(wǎng)交換機(jī)或路由器21的rocev2的報(bào)文流的優(yōu)先級設(shè)置為最高,根據(jù)pfc和ets的機(jī)制,每個(gè)rocev2的報(bào)文將會(huì)被確保無丟包。
本實(shí)施例通過接收第一服務(wù)器發(fā)送的報(bào)文,如果該報(bào)文為承載有遠(yuǎn)程直接數(shù)據(jù)存取rdma的以太網(wǎng)幀,則將以太網(wǎng)幀的以太類型標(biāo)識修改為rocev2的值,并將該報(bào)文的優(yōu)先級設(shè)置為最高級別的優(yōu)先級,確保每個(gè)rocev2的報(bào)文不丟包,提高了rdma的傳輸可靠性。
圖3為本發(fā)明另一實(shí)施例提供的報(bào)文的傳輸方法流程圖。如圖3所示,本實(shí)施例提供的報(bào)文的傳輸方法的步驟如下:
步驟s301、接收第一服務(wù)器發(fā)送的報(bào)文,對所述報(bào)文進(jìn)行識別。
步驟s302、若識別出所述報(bào)文為承載有遠(yuǎn)程直接數(shù)據(jù)存取rdma的以太網(wǎng)幀,則將所述以太網(wǎng)幀的以太類型標(biāo)識修改為rocev2的值。
步驟s303、將所述報(bào)文的優(yōu)先級設(shè)置為最高級別的優(yōu)先級。
步驟s301-步驟s303分別與步驟s103-步驟s103一致,具體過程此處不再贅述。
步驟s304、將所述報(bào)文轉(zhuǎn)發(fā)給下一跳路由器或交換機(jī)。
以太網(wǎng)交換機(jī)或路由器21可進(jìn)一步將報(bào)文轉(zhuǎn)發(fā)給下一跳以太網(wǎng)交換機(jī)或路由器23,以太網(wǎng)交換機(jī)或路由器23同樣可以將該報(bào)文中的以太類型設(shè)置為rocev2,并將該報(bào)文的優(yōu)先級設(shè)置為最高優(yōu)先級,采用dcb機(jī)制進(jìn)行無丟包保護(hù)。
以太網(wǎng)交換機(jī)或路由器23可進(jìn)一步將報(bào)文轉(zhuǎn)發(fā)給下一跳以太網(wǎng)交換機(jī)或路由器22,下一跳以太網(wǎng)交換機(jī)或路由器22可進(jìn)一步將報(bào)文轉(zhuǎn)發(fā)給下一跳以太網(wǎng)交換機(jī)或路由器25,下一跳以太網(wǎng)交換機(jī)或路由器25可進(jìn)一步將報(bào)文轉(zhuǎn)發(fā)給下一跳以太網(wǎng)交換機(jī)或路由器26,每經(jīng)過一個(gè)以太網(wǎng)交換機(jī)或路由器,該以太網(wǎng)交換機(jī)或路由器均可將該報(bào)文的以太類型設(shè)置為rocev2,并將該報(bào)文的優(yōu)先級設(shè)置為最高優(yōu)先級,直到將該報(bào)文轉(zhuǎn)發(fā)給從第一服務(wù)器s1到第二服務(wù)器s2的鏈路中最后一個(gè)路由器或交換機(jī)26,由最后一個(gè)路由器或交換機(jī)26將所述報(bào)文的rocev2的值恢復(fù)為以太類型標(biāo)識,例如,將該標(biāo)志設(shè)置回ipv4的ox0800,然后將所述報(bào)文轉(zhuǎn)發(fā)給所述第二服務(wù)器s2。
另外,在網(wǎng)絡(luò)節(jié)點(diǎn)服務(wù)器發(fā)送rocev2報(bào)文的時(shí)候,我們也可以在網(wǎng)絡(luò)節(jié)點(diǎn)服務(wù)器s1端增加一個(gè)模塊,該模塊負(fù)責(zé)對該設(shè)備接收到的報(bào)文進(jìn)行識別,并將該報(bào)文中以太幀中的以太類型標(biāo)識進(jìn)行修改為新的rocev2的值。這樣可以避免第一跳交換機(jī)或者第一跳路由器進(jìn)行大量的報(bào)文識別的工作。第一跳交換機(jī)或者第一跳路由器可以在收到該報(bào)文的時(shí)候直接按照dcb的相關(guān)機(jī)制進(jìn)行最高優(yōu)先級處理。
本發(fā)明實(shí)施例通過接收第一服務(wù)器發(fā)送的報(bào)文,如果該報(bào)文為承載有遠(yuǎn)程直接數(shù)據(jù)存取rdma的以太網(wǎng)幀,則將以太網(wǎng)幀的以太類型標(biāo)識修改為rocev2的值,并將該報(bào)文的優(yōu)先級設(shè)置為最高級別的優(yōu)先級,確保每個(gè)rocev2的報(bào)文不丟包,提高了rdma的傳輸可靠性。
圖4為本發(fā)明實(shí)施例提供的報(bào)文的傳輸裝置的結(jié)構(gòu)圖。本發(fā)明實(shí)施例提供的報(bào)文的傳輸裝置可以執(zhí)行報(bào)文的傳輸方法實(shí)施例提供的處理流程,如圖4所示,報(bào)文的傳輸裝置40包括:接收模塊41、識別模塊42、修改模塊43、設(shè)置模塊44,其中,接收模塊41用于接收第一服務(wù)器發(fā)送的報(bào)文;識別模塊42用于對所述報(bào)文進(jìn)行識別;修改模塊43用于當(dāng)識別模塊識別出所述報(bào)文為承載有遠(yuǎn)程直接數(shù)據(jù)存取rdma的以太網(wǎng)幀時(shí),將所述以太網(wǎng)幀的以太類型標(biāo)識修改為rocev2的值;設(shè)置模塊44用于將所述報(bào)文的優(yōu)先級設(shè)置為最高級別的優(yōu)先級。
本發(fā)明實(shí)施例通過接收第一服務(wù)器發(fā)送的報(bào)文,如果該報(bào)文為承載有遠(yuǎn)程直接數(shù)據(jù)存取rdma的以太網(wǎng)幀,則將以太網(wǎng)幀的以太類型標(biāo)識修改為rocev2的值,并將該報(bào)文的優(yōu)先級設(shè)置為最高級別的優(yōu)先級,確保每個(gè)rocev2的報(bào)文不丟包,提高了rdma的傳輸可靠性。
圖5為本發(fā)明另一實(shí)施例提供的報(bào)文的傳輸裝置的結(jié)構(gòu)圖。在上述實(shí)施例的基礎(chǔ)上,所述報(bào)文為承載有rocev2的udp報(bào)文。
該報(bào)文的傳輸裝置40還包括:發(fā)送模塊45,發(fā)送模塊45用于將所述報(bào)文轉(zhuǎn)發(fā)給下一跳路由器或交換機(jī)。另外,發(fā)送模塊45還用于將所述報(bào)文轉(zhuǎn)發(fā)給從第一服務(wù)器到第二服務(wù)器的鏈路中最后一個(gè)路由器或交換機(jī),由所述最后一個(gè)路由器或交換機(jī)將所述報(bào)文的rocev2的值恢復(fù)為以太類型標(biāo)識,并將所述報(bào)文轉(zhuǎn)發(fā)給所述第二服務(wù)器。識別模塊42具體用于根據(jù)udp報(bào)文的目的端口號,對所述報(bào)文進(jìn)行識別。
本發(fā)明實(shí)施例提供的報(bào)文的傳輸裝置可以具體用于執(zhí)行上述圖1所提供的方法實(shí)施例,具體功能此處不再贅述。
本發(fā)明實(shí)施例通過接收第一服務(wù)器發(fā)送的報(bào)文,如果該報(bào)文為承載有遠(yuǎn)程直接數(shù)據(jù)存取rdma的以太網(wǎng)幀,則將以太網(wǎng)幀的以太類型標(biāo)識修改為rocev2的值,并將該報(bào)文的優(yōu)先級設(shè)置為最高級別的優(yōu)先級,確保每個(gè)rocev2的報(bào)文不丟包,提高了rdma的傳輸可靠性。
綜上所述,本發(fā)明實(shí)施例通過接收第一服務(wù)器發(fā)送的報(bào)文,如果該報(bào)文為承載有遠(yuǎn)程直接數(shù)據(jù)存取rdma的以太網(wǎng)幀,則將以太網(wǎng)幀的以太類型標(biāo)識修改為rocev2的值,并將該報(bào)文的優(yōu)先級設(shè)置為最高級別的優(yōu)先級,確保每個(gè)rocev2的報(bào)文不丟包,提高了rdma的傳輸可靠性。
在本發(fā)明所提供的幾個(gè)實(shí)施例中,應(yīng)該理解到,所揭露的裝置和方法,可以通過其它的方式實(shí)現(xiàn)。例如,以上所描述的裝置實(shí)施例僅僅是示意性的,例如,所述單元的劃分,僅僅為一種邏輯功能劃分,實(shí)際實(shí)現(xiàn)時(shí)可以有另外的劃分方式,例如多個(gè)單元或組件可以結(jié)合或者可以集成到另一個(gè)系統(tǒng),或一些特征可以忽略,或不執(zhí)行。另一點(diǎn),所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些接口,裝置或單元的間接耦合或通信連接,可以是電性,機(jī)械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上??梢愿鶕?jù)實(shí)際的需要選擇其中的部分或者全部單元來實(shí)現(xiàn)本實(shí)施例方案的目的。
另外,在本發(fā)明各個(gè)實(shí)施例中的各功能單元可以集成在一個(gè)處理單元中,也可以是各個(gè)單元單獨(dú)物理存在,也可以兩個(gè)或兩個(gè)以上單元集成在一個(gè)單元中。上述集成的單元既可以采用硬件的形式實(shí)現(xiàn),也可以采用硬件加軟件功能單元的形式實(shí)現(xiàn)。
上述以軟件功能單元的形式實(shí)現(xiàn)的集成的單元,可以存儲在一個(gè)計(jì)算機(jī)可讀取存儲介質(zhì)中。上述軟件功能單元存儲在一個(gè)存儲介質(zhì)中,包括若干指令用以使得一臺計(jì)算機(jī)設(shè)備(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)設(shè)備等)或處理器(processor)執(zhí)行本發(fā)明各個(gè)實(shí)施例所述方法的部分步驟。而前述的存儲介質(zhì)包括:u盤、移動(dòng)硬盤、只讀存儲器(read-onlymemory,rom)、隨機(jī)存取存儲器(randomaccessmemory,ram)、磁碟或者光盤等各種可以存儲程序代碼的介質(zhì)。
本領(lǐng)域技術(shù)人員可以清楚地了解到,為描述的方便和簡潔,僅以上述各功能模塊的劃分進(jìn)行舉例說明,實(shí)際應(yīng)用中,可以根據(jù)需要而將上述功能分配由不同的功能模塊完成,即將裝置的內(nèi)部結(jié)構(gòu)劃分成不同的功能模塊,以完成以上描述的全部或者部分功能。上述描述的裝置的具體工作過程,可以參考前述方法實(shí)施例中的對應(yīng)過程,在此不再贅述。
最后應(yīng)說明的是:以上各實(shí)施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制;盡管參照前述各實(shí)施例對本發(fā)明進(jìn)行了詳細(xì)的說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對其中部分或者全部技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的范圍。