標(biāo)志地址進(jìn)行比較,如果第一地址與所述標(biāo)志地址相同,則從所述第一RDMA寫(xiě)請(qǐng)求報(bào)文的協(xié)議擴(kuò)展頭中獲取第二地址,對(duì)第一 RDMA寫(xiě)請(qǐng)求報(bào)文的凈荷進(jìn)行處理得到處理后得到的結(jié)果數(shù)據(jù);
[0034]反饋模塊,用于利用所述第二地址和所述結(jié)果數(shù)據(jù)構(gòu)造第二RDMA寫(xiě)請(qǐng)求報(bào)文,并利用所述第二地址將所述第二 RDMA寫(xiě)請(qǐng)求報(bào)文寫(xiě)到所述第二電子設(shè)備中所述第二地址對(duì)應(yīng)的存儲(chǔ)區(qū)域中。
[0035]結(jié)合第二方面,在第一種可能的實(shí)現(xiàn)方式中,所述裝置還包括:
[0036]標(biāo)志地址獲取模塊,用于當(dāng)?shù)谝浑娮釉O(shè)備和第二電子設(shè)備協(xié)商建立RDMA連接時(shí),接收到第二電子設(shè)備發(fā)起的RDMA建鏈請(qǐng)求報(bào)文,在響應(yīng)報(bào)文中攜帶第一電子設(shè)備的屬性標(biāo)志;其中,該屬性標(biāo)志用于標(biāo)示所述第一電子設(shè)備對(duì)于接收到的RDMA寫(xiě)請(qǐng)求報(bào)文直接處理不進(jìn)行緩存;接收第二電子設(shè)備反饋的所述標(biāo)志地址;其中,所述標(biāo)志地址是所述第二電子設(shè)備根據(jù)所述響應(yīng)報(bào)文中的屬性標(biāo)志構(gòu)造的地址;將所述標(biāo)志地址記錄在建立地RDMA連接對(duì)應(yīng)的上下文信息中。
[0037]結(jié)合第二方面的第一種可能的實(shí)現(xiàn)方式,在第二種可能的實(shí)現(xiàn)方式中,該裝置還包括:
[0038]標(biāo)識(shí)地址獲取模塊,用于從所述第一RDMA寫(xiě)請(qǐng)求報(bào)文中獲取所述RDMA連接對(duì)應(yīng)的連接號(hào);利用所屬連接號(hào)查詢所述RDMA連接對(duì)應(yīng)的上下文信息,從所述上下文信息中獲取所述標(biāo)志地址。
[0039]上述技術(shù)方案中的一個(gè)或兩個(gè),至少具有如下技術(shù)效果:
[0040]本發(fā)明實(shí)施例所提供的方法和裝置中,第一電子設(shè)備可以是全硬件構(gòu)造,接收RDMA寫(xiě)請(qǐng)求報(bào)文后可以直接進(jìn)行處理,不需要按照標(biāo)準(zhǔn)的RDMA協(xié)議進(jìn)行緩存,所以第一電子設(shè)備端并不需要傳遞存儲(chǔ)RDMA寫(xiě)請(qǐng)求報(bào)文的地址給第二電子設(shè)備。進(jìn)而第二電子設(shè)備在將RDMA寫(xiě)請(qǐng)求報(bào)文發(fā)送給第一電子設(shè)備的時(shí)候,可以構(gòu)造第一電子設(shè)備端存儲(chǔ)RDMA寫(xiě)請(qǐng)求報(bào)文的一個(gè)虛假地址。同時(shí)由于報(bào)文都是由第二電子設(shè)備發(fā)送到第一電子設(shè)備再到第二電子設(shè)備的交互,所以第二電子設(shè)備可以在將報(bào)文凈荷傳遞給第一電子設(shè)備的同時(shí),將自身空閑地址一起傳給第一電子設(shè)備,作為第一電子設(shè)備返回報(bào)文給第二電子設(shè)備時(shí)的存儲(chǔ)地址,通過(guò)上述方法節(jié)省了兩次地址傳遞的交互流程。省去了不必要的地址傳輸,降低了主機(jī)和設(shè)備之間報(bào)文交互的延時(shí)和節(jié)省了傳輸帶寬。
【附圖說(shuō)明】
[0041]圖1為現(xiàn)有技術(shù)中主機(jī)之間建立一個(gè)隊(duì)列對(duì)進(jìn)行通信的示意圖;
[0042]圖2為現(xiàn)有技術(shù)中標(biāo)準(zhǔn)的RDMA寫(xiě)請(qǐng)求操作流程的示意圖;
[0043]圖3為本發(fā)明實(shí)施例提供一種遠(yuǎn)程直接存儲(chǔ)器存取的方法示意圖;
[0044]圖4為本發(fā)明實(shí)施例所提供方法應(yīng)用到實(shí)際場(chǎng)景中的流程示意圖;
[0045]圖5為本發(fā)明實(shí)施例提供一種遠(yuǎn)程直接存儲(chǔ)器存取的裝置的結(jié)構(gòu)示意圖;
[0046]圖6為本發(fā)明實(shí)施例提供的另一種遠(yuǎn)程直接存儲(chǔ)器存取的裝置的結(jié)構(gòu)示意圖;
[0047]圖7為本發(fā)明實(shí)施例提供的另一種遠(yuǎn)程直接存儲(chǔ)器存取的裝置的結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0048]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0049]下面結(jié)合說(shuō)明書(shū)附圖對(duì)本發(fā)明實(shí)施例作進(jìn)一步詳細(xì)描述。
[0050]如圖3所示,本發(fā)明實(shí)施例提供一種遠(yuǎn)程直接存儲(chǔ)器存取的方法,該方法應(yīng)用于第一電子設(shè)備中,第一電子設(shè)備與第二電子設(shè)備之間建立有遠(yuǎn)程直接存儲(chǔ)器存取RDMA連接,該方法包括:
[0051]本實(shí)施例所提供的方法主要應(yīng)用于第一電子設(shè)備和第二電子設(shè)備之間通信的應(yīng)用場(chǎng)景,其中報(bào)文交互都是有第二電子設(shè)備發(fā)給第一電子設(shè)備進(jìn)行處理,并且第一電子設(shè)備處理完成后直接返回給第二電子設(shè)備的通信場(chǎng)景中。
[0052]步驟301,第一電子設(shè)備通過(guò)所述RDMA連接接收到第二電子設(shè)備發(fā)送的第一 RDMA寫(xiě)請(qǐng)求報(bào)文后,從該第一 RDMA寫(xiě)請(qǐng)求報(bào)文的RDMA協(xié)議頭中獲取第一地址;
[0053]在現(xiàn)有技術(shù)的方案中,第一地址的作用是標(biāo)示第一RDMA寫(xiě)請(qǐng)求報(bào)文寫(xiě)入第一電子設(shè)備時(shí)的存儲(chǔ)地址,但是在本發(fā)明實(shí)施例中,因?yàn)榈谝籖DMA寫(xiě)請(qǐng)求報(bào)文是直接進(jìn)行處理的報(bào)文并不需要第一電子設(shè)備對(duì)其進(jìn)行緩存,所以在實(shí)現(xiàn)第一 RDMA寫(xiě)請(qǐng)求報(bào)文的處理時(shí),并不需要緩存地址;在該情況下,為了減少處理流程,本發(fā)明實(shí)施例中提供的第一地址是第二電子設(shè)備構(gòu)造的虛假地址,該第一地址的作用是用于標(biāo)示第一電子設(shè)備接收到第一 RDMA寫(xiě)請(qǐng)求報(bào)文后直接進(jìn)行處理,并不需要進(jìn)行緩存。
[0054]步驟302,將所述第一地址與預(yù)存的標(biāo)志地址進(jìn)行比較,如果第一地址與所述標(biāo)志地址相同,則從所述第一RDMA寫(xiě)請(qǐng)求報(bào)文的協(xié)議擴(kuò)展頭中獲取第二地址,并對(duì)第一RDMA寫(xiě)請(qǐng)求報(bào)文的凈荷進(jìn)行處理得到處理后得到的結(jié)果數(shù)據(jù);
[0055]在該實(shí)施例中,在RDMA協(xié)議頭中解析出的第一地址如果與第一電子設(shè)備本地存儲(chǔ)的標(biāo)志地址相同,則說(shuō)明該第一地址是虛假地址,第一電子設(shè)備則不需要對(duì)第一RDMA寫(xiě)請(qǐng)求報(bào)文進(jìn)行緩存;進(jìn)一步,在處理完第一 RDMA寫(xiě)請(qǐng)求報(bào)文后,也不需要再與第二電子設(shè)備交互獲取反饋結(jié)果數(shù)據(jù)的存儲(chǔ)地址,因?yàn)榈诙娮釉O(shè)備在發(fā)送第一 RDMA寫(xiě)請(qǐng)求報(bào)文之前,就已經(jīng)申請(qǐng)了存儲(chǔ)結(jié)果數(shù)據(jù)的地址并攜帶在第一RDMA寫(xiě)請(qǐng)求報(bào)文中,所以第一電子設(shè)備檢測(cè)到與標(biāo)志地址相同的第一地址后,還可以從第一 RDMA寫(xiě)請(qǐng)求報(bào)文的擴(kuò)展協(xié)議頭中獲取到第二電子設(shè)備存儲(chǔ)結(jié)果數(shù)據(jù)的第二地址。
[0056]步驟303,用所述第二地址和所述結(jié)果數(shù)據(jù)構(gòu)造第二RDMA寫(xiě)請(qǐng)求報(bào)文,并利用所述第二地址將所述第二 RDMA寫(xiě)請(qǐng)求報(bào)文寫(xiě)到所述第二電子設(shè)備中所述第二地址對(duì)應(yīng)的存儲(chǔ)區(qū)域中。
[0057]因?yàn)榈诙刂肥菙y帶在第一RDMA寫(xiě)請(qǐng)求報(bào)文中的,所以第一電子設(shè)備在反饋結(jié)果數(shù)據(jù)的時(shí)候,可以直接將第二地址和所述結(jié)果數(shù)據(jù)構(gòu)造第二 RDMA寫(xiě)請(qǐng)求報(bào)文,并利用第二地址將第二 RDMA寫(xiě)請(qǐng)求報(bào)文寫(xiě)入第二電子設(shè)備。
[0058]本發(fā)明實(shí)施例中,第一電子設(shè)備可以是全硬件構(gòu)造,接收RDMA寫(xiě)請(qǐng)求報(bào)文后可以直接進(jìn)行處理,不需要按照標(biāo)準(zhǔn)的RDMA協(xié)議進(jìn)行緩存,所以第一電子設(shè)備端并不需要傳遞存儲(chǔ)RDMA寫(xiě)請(qǐng)求報(bào)文的地址給第二電子設(shè)備。進(jìn)而第二電子設(shè)備在將RDMA寫(xiě)請(qǐng)求報(bào)文發(fā)送給第一電子設(shè)備的時(shí)候,可以構(gòu)造第一電子設(shè)備端存儲(chǔ)RDMA寫(xiě)請(qǐng)求報(bào)文的一個(gè)虛假地址。同時(shí)由于報(bào)文都是由第二電子設(shè)備發(fā)送到第一電子設(shè)備再到第二電子設(shè)備的交互,所以第二電子設(shè)備可以在將報(bào)文凈荷傳遞給第一電子設(shè)備的同時(shí),將自身空閑地址一起傳給第一電子設(shè)備,作為第一電子設(shè)備返回報(bào)文給第二電子設(shè)備時(shí)的存儲(chǔ)地址,通過(guò)上述方法節(jié)省了兩次地址傳遞的交互流程。省去了不必要的地址傳輸,降低了主機(jī)和設(shè)備之間報(bào)文交互的延時(shí)和節(jié)省了傳輸帶寬。
[0059]在本發(fā)明實(shí)施例中,第一電子設(shè)備和第二電子設(shè)備可以通過(guò)協(xié)商的方式實(shí)現(xiàn)標(biāo)志地址的識(shí)別,則