[發(fā)明專(zhuān)利]進(jìn)程間通信方法、裝置、設(shè)備、系統(tǒng)及存儲(chǔ)介質(zhì)在審
| 申請(qǐng)?zhí)枺?/td> | 202110606085.8 | 申請(qǐng)日: | 2021-05-31 |
| 公開(kāi)(公告)號(hào): | CN113326151A | 公開(kāi)(公告)日: | 2021-08-31 |
| 發(fā)明(設(shè)計(jì))人: | 黃帥;劉亞萍;張碩 | 申請(qǐng)(專(zhuān)利權(quán))人: | 派日科技(廣州)有限公司 |
| 主分類(lèi)號(hào): | G06F9/54 | 分類(lèi)號(hào): | G06F9/54;G06F21/60 |
| 代理公司: | 廣州三環(huán)專(zhuān)利商標(biāo)代理有限公司 44202 | 代理人: | 陳志明 |
| 地址: | 510700 廣東省廣州市黃埔區(qū)*** | 國(guó)省代碼: | 廣東;44 |
| 權(quán)利要求書(shū): | 查看更多 | 說(shuō)明書(shū): | 查看更多 |
| 摘要: | |||
| 搜索關(guān)鍵詞: | 進(jìn)程 通信 方法 裝置 設(shè)備 系統(tǒng) 存儲(chǔ) 介質(zhì) | ||
本申請(qǐng)涉及進(jìn)程間通信技術(shù)領(lǐng)域,公開(kāi)了進(jìn)程間通信方法、裝置、設(shè)備、系統(tǒng)及存儲(chǔ)介質(zhì),其中方法應(yīng)用于發(fā)送端時(shí)包括:向Rsocket庫(kù)發(fā)送進(jìn)程間通信請(qǐng)求,所述Rsocket庫(kù)根據(jù)所述進(jìn)程間通信請(qǐng)求通過(guò)Helper進(jìn)程建立發(fā)送端套接字應(yīng)用與接收端套接字應(yīng)用間的共享內(nèi)存通道;通過(guò)所述共享內(nèi)存通道與接收端進(jìn)行數(shù)據(jù)通信。本發(fā)明使得發(fā)送端和接收端通過(guò)該共享內(nèi)存通道進(jìn)行通信,從而不需要通過(guò)Rsocket庫(kù)的sbuf進(jìn)行數(shù)據(jù)拷貝,避免存在兩次拷貝開(kāi)銷(xiāo)和因PCIE通信導(dǎo)致的延遲開(kāi)銷(xiāo),有益于提高進(jìn)程間通信性能。
技術(shù)領(lǐng)域
本申請(qǐng)涉及進(jìn)程間通信技術(shù)領(lǐng)域,尤其涉及進(jìn)程間通信方法、裝置、設(shè)備、系統(tǒng)及存儲(chǔ)介質(zhì)。
背景技術(shù)
隨著計(jì)算機(jī)技術(shù)的發(fā)展,應(yīng)用的功能和復(fù)雜度也越來(lái)越高,應(yīng)用除了需要與遠(yuǎn)端主機(jī)上的應(yīng)用進(jìn)行通信外,往往也需要與本地主機(jī)內(nèi)的其他應(yīng)用進(jìn)行通信。
套接字允許網(wǎng)絡(luò)上的兩個(gè)不同主機(jī)間的應(yīng)用進(jìn)行通信,也支持同一個(gè)主機(jī)內(nèi)的進(jìn)程間進(jìn)行通信。當(dāng)需要在同一個(gè)主機(jī)內(nèi)進(jìn)行進(jìn)程間通信時(shí),發(fā)送方將套接字的IP地址指定為本機(jī)中的任意一個(gè)IP地址,接收方則需要綁定一個(gè)端口號(hào),發(fā)送方則通過(guò)IP地址和端口號(hào)的方式得以跟接收方進(jìn)行通信。
Rsocket庫(kù)(RDMA socket API,RDMA的套接字應(yīng)用程序調(diào)用接口)是一個(gè)在RDMA網(wǎng)絡(luò)上提供套接字接口的協(xié)議,是linux-rdma小組提供的librdmacm的庫(kù)的一部分,也是屬于OFED庫(kù)的一部分。Rsockets的主要工作是實(shí)現(xiàn)在RDMA提供的接口Verbs語(yǔ)義上適配所有的套接字調(diào)用,以便使用RDMA網(wǎng)絡(luò)。
使用Rsocket庫(kù)進(jìn)行同一個(gè)主機(jī)內(nèi)的進(jìn)程間通信時(shí),通信過(guò)程如圖1所示,發(fā)送端和接收端的套接字應(yīng)用將socket請(qǐng)求傳遞給Rsocket庫(kù),Rsocket庫(kù)將socket請(qǐng)求轉(zhuǎn)為對(duì)應(yīng)的RDMA資源請(qǐng)求,并通過(guò)OFED庫(kù)傳遞給OFED內(nèi)核庫(kù),OFED內(nèi)核庫(kù)處理Rsocket庫(kù)傳來(lái)的RDMA資源請(qǐng)求,將RDMA資源請(qǐng)求構(gòu)造為RDMA硬件資源請(qǐng)求,傳遞給RDMA網(wǎng)卡。RDMA網(wǎng)卡獲取到RDMA硬件資源請(qǐng)求后,在網(wǎng)卡內(nèi)部分配對(duì)應(yīng)的RDMA硬件資源給OFED內(nèi)核庫(kù);OFED內(nèi)核庫(kù)對(duì)RDMA硬件資源進(jìn)一步處理為RDMA資源,將RDMA資源傳遞回OFED庫(kù);OFED庫(kù)將RDMA資源傳遞給Rsocket庫(kù);Rsocket庫(kù)將對(duì)應(yīng)的RDMA資源轉(zhuǎn)為socket資源,將socket資源返回給發(fā)送端和接收端的套接字應(yīng)用。隨后,發(fā)送端的套接字應(yīng)用將發(fā)送緩存地址傳遞給Rsocket庫(kù),Rsocket庫(kù)接收到發(fā)送緩存地址后將數(shù)據(jù)從發(fā)送緩存拷貝到Rsocket庫(kù)的sbuf中,RDMA網(wǎng)卡訪問(wèn)sbuf的數(shù)據(jù),將數(shù)據(jù)發(fā)送到接收端的RDMA網(wǎng)卡上,接收端的RDMA網(wǎng)卡將數(shù)據(jù)拷貝到Rsocket庫(kù)的rbuf中,Rsocket庫(kù)將數(shù)據(jù)從rbuf中拷貝到接收端的套接字應(yīng)用的接收緩存中。
上述的通信過(guò)程中,發(fā)送端套接字應(yīng)用需要將數(shù)據(jù)從發(fā)送端套接字應(yīng)用的發(fā)送緩存拷貝到Rsocket庫(kù)的sbuf中,以便網(wǎng)卡能夠?qū)?shù)據(jù)從sbuf中發(fā)送到接收端的Rsocket庫(kù)的rbuf中,并再將數(shù)據(jù)從rbuf中拷貝到接收端套接字應(yīng)用的接收緩存中,這樣發(fā)送和接收都存在一次拷貝,一次傳輸過(guò)程總共存在兩次拷貝開(kāi)銷(xiāo),而且數(shù)據(jù)經(jīng)由RDMA網(wǎng)卡轉(zhuǎn)發(fā)后到達(dá)接收端套接字應(yīng)用的Rsocket庫(kù)的rbuf中,存在PCIE通信導(dǎo)致的延遲開(kāi)銷(xiāo)。在傳輸大量數(shù)據(jù)時(shí),拷貝開(kāi)銷(xiāo)和PCIE延遲開(kāi)銷(xiāo)會(huì)明顯對(duì)傳輸性能造成影響。
發(fā)明內(nèi)容
本申請(qǐng)實(shí)施例的目的在于,提供一種進(jìn)程間通信方法、裝置、設(shè)備、系統(tǒng)及存儲(chǔ)介質(zhì),能夠使得發(fā)送端和接收端通過(guò)該共享內(nèi)存通道進(jìn)行通信,從而不需要通過(guò)Rsocket庫(kù)的sbuf進(jìn)行數(shù)據(jù)拷貝,避免存在兩次拷貝開(kāi)銷(xiāo)和因PCIE通信導(dǎo)致的延遲開(kāi)銷(xiāo),有益于提高進(jìn)程間通信性能。
為達(dá)到上述目的,本發(fā)明采用如下技術(shù)方案:
本發(fā)明第一方面提供了進(jìn)程間通信方法,所述方法應(yīng)用于發(fā)送端,所述方法包括:
該專(zhuān)利技術(shù)資料僅供研究查看技術(shù)是否侵權(quán)等信息,商用須獲得專(zhuān)利權(quán)人授權(quán)。該專(zhuān)利全部權(quán)利屬于派日科技(廣州)有限公司,未經(jīng)派日科技(廣州)有限公司許可,擅自商用是侵權(quán)行為。如果您想購(gòu)買(mǎi)此專(zhuān)利、獲得商業(yè)授權(quán)和技術(shù)合作,請(qǐng)聯(lián)系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110606085.8/2.html,轉(zhuǎn)載請(qǐng)聲明來(lái)源鉆瓜專(zhuān)利網(wǎng)。
- 同類(lèi)專(zhuān)利
- 專(zhuān)利分類(lèi)
- 一種進(jìn)程自動(dòng)恢復(fù)方法
- 進(jìn)程啟動(dòng)方法及內(nèi)核、進(jìn)程
- 一種進(jìn)程間的通信方法和裝置
- 進(jìn)程解析裝置、進(jìn)程解析方法和進(jìn)程解析程序
- 32位進(jìn)程和64位進(jìn)程交叉注入方法及裝置
- 一種應(yīng)用進(jìn)程控制方法及裝置
- 插件下載方法及裝置
- 進(jìn)程間的數(shù)據(jù)傳輸方法和裝置
- 進(jìn)程監(jiān)視裝置、進(jìn)程監(jiān)視方法和進(jìn)程監(jiān)視程序
- 一種基于動(dòng)態(tài)監(jiān)測(cè)的進(jìn)程優(yōu)化調(diào)度方法
- 通信裝置、通信系統(tǒng)、通信方法、通信程序、通信電路
- 通信設(shè)備、通信系統(tǒng)、通信方法、通信程序、通信電路
- 通信設(shè)備、通信系統(tǒng)、通信方法、通信程序、通信電路
- 通信設(shè)備、通信系統(tǒng)、通信方法、通信程序、通信電路
- 通信設(shè)備、通信方法、通信電路、通信系統(tǒng)
- 通信設(shè)備、通信系統(tǒng)、通信方法、通信程序、通信電路
- 通信終端、通信系統(tǒng)、通信方法以及通信程序
- 通信終端、通信方法、通信裝備和通信系統(tǒng)
- 通信裝置、通信程序、通信方法以及通信系統(tǒng)
- 通信裝置、通信系統(tǒng)、通信方法及計(jì)算機(jī)可讀取的記錄介質(zhì)
- 一種數(shù)據(jù)庫(kù)讀寫(xiě)分離的方法和裝置
- 一種手機(jī)動(dòng)漫人物及背景創(chuàng)作方法
- 一種通訊綜合測(cè)試終端的測(cè)試方法
- 一種服裝用人體測(cè)量基準(zhǔn)點(diǎn)的獲取方法
- 系統(tǒng)升級(jí)方法及裝置
- 用于虛擬和接口方法調(diào)用的裝置和方法
- 線程狀態(tài)監(jiān)控方法、裝置、計(jì)算機(jī)設(shè)備和存儲(chǔ)介質(zhì)
- 一種JAVA智能卡及其虛擬機(jī)組件優(yōu)化方法
- 檢測(cè)程序中方法耗時(shí)的方法、裝置及存儲(chǔ)介質(zhì)
- 函數(shù)的執(zhí)行方法、裝置、設(shè)備及存儲(chǔ)介質(zhì)
- 光源裝置、照明裝置、液晶裝置和電子裝置
- 預(yù)測(cè)裝置、編輯裝置、逆預(yù)測(cè)裝置、解碼裝置及運(yùn)算裝置
- 圖像形成裝置、定影裝置、遮光裝置以及保持裝置
- 打印裝置、讀取裝置、復(fù)合裝置以及打印裝置、讀取裝置、復(fù)合裝置的控制方法
- 電子裝置、光盤(pán)裝置、顯示裝置和攝像裝置
- 光源裝置、照明裝置、曝光裝置和裝置制造方法
- 用戶(hù)裝置、裝置對(duì)裝置用戶(hù)裝置、后端裝置及其定位方法
- 遙控裝置、通信裝置、可變裝置及照明裝置
- 透鏡裝置、攝像裝置、處理裝置和相機(jī)裝置
- 抖動(dòng)校正裝置、驅(qū)動(dòng)裝置、成像裝置、和電子裝置





