[發明專利]一種基于RDMA的數據傳輸方法及裝置有效
| 申請號: | 202110255648.3 | 申請日: | 2021-03-09 |
| 公開(公告)號: | CN112954068B | 公開(公告)日: | 2022-09-27 |
| 發明(設計)人: | 宋江波;周耀輝;吳軍疆 | 申請(專利權)人: | 西安奧卡云數據科技有限公司 |
| 主分類號: | H04L67/14 | 分類號: | H04L67/14;H04L67/141;H04L67/01;G06F15/173 |
| 代理公司: | 西安維賽恩專利代理事務所(普通合伙) 61257 | 代理人: | 李明全 |
| 地址: | 710000 陜西省西安市西咸新區秦*** | 國省代碼: | 陜西;61 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 基于 rdma 數據傳輸 方法 裝置 | ||
本發明公開了一種基于RDMA的數據傳輸方法及裝置,向遠端服務器發送連接報文,并與遠端服務器建立數據連接;將待傳輸數據寫入到網卡注冊的DMA內存中;構造數據包并通過網卡發送至遠端服務器;構建本地事件,獲取寫入待傳輸數據的第一應用程序對應的第一通信標識碼;向第一應用程序發送數據傳輸完成信息;本發明通過在構造數據包后構建本地事件,得到第一應用程序的第一通信標識碼,并向第一應用程序返回數據傳輸完成信息,不再需要遠端服務器的返回消息進行確認,可以降低遠端CPU的使用率,提升數據傳輸速率。
技術領域
本發明屬于通訊技術領域,尤其涉及一種基于RDMA的數據傳輸方法。
背景技術
當今是信息時代,網絡傳輸速度是信息時代的基石,網絡通信會占用大量的CPU算力。從而出現了很多高速網卡,以及高速網卡的應用,提出了使用單邊操作方式,也就是遠程直接內存訪問技術(Remote Direct Memory Access,RDMA)。現有的RDMA通用操作方法是:先發消息給對端,然后進行單邊RDMA操作,來同步數據,最后返回消息處理結果。
現有RDMA的消息處理流程,需要先后進行發送通信請求,然后才進行單邊數據傳輸,最后通過返回結果來確認操作完成,CPU需要先后三次操作來確保數據完整。
發明內容
本發明的目的是提供一種基于RDMA的數據傳輸方法及裝置,僅需要消息發起端的CPU參與數據傳輸,降低遠端的CPU消耗。
本發明采用以下技術方案:一種基于RDMA的數據傳輸方法,包括以下步驟:
向遠端服務器發送連接報文,并與遠端服務器建立數據連接;
將待傳輸數據寫入到網卡注冊的DMA內存中;
構造數據包并通過網卡發送至遠端服務器;
構建本地事件,獲取寫入待傳輸數據的第一應用程序對應的第一通信標識碼;
向第一應用程序發送數據傳輸完成信息。
進一步地,與遠端服務器建立數據連接包括:
申請固定大小的內存空間,并注冊給網卡的DMA;
構建連接報文并發送至遠端服務器;連接報文包括內存空間的起始地址和終止地址、本端服務器在數據傳輸網絡中的唯一標識、以及本端應用程序的通信標識碼;
接收遠端服務器發來的連接報文并解析,得到遠端服務器注冊給網卡的DMA的內存空間的起始地址和終止地址、以及遠端服務器應用程序的通信標識碼。
進一步地,數據包包括本端服務器注冊給網卡的DMA的內存空間的第一起始地址、遠端服務器注冊給其網卡的DMA的內存空間的第二起始地址、待傳輸數據起始地址相對于第一起始地址的第一偏移量、待傳輸數據相對于第二起始地址的第二偏移量、待傳輸數據的數據長度、本端服務器中寫入待傳輸數據的第一應用程序的第一通信標識碼和遠端服務器讀取待傳輸數據的第二應用程序的第二通信標識碼。
進一步地,構造數據包并通過網卡發送至遠端服務器之后還包括:
遠端服務器的網卡接收數據包;
解析數據包,獲取第二通信標識碼、第二偏移量和數據長度,并構建遠端事件;
根據遠端事件將數據包發送至第二應用程序;
第二應用程序解析數據包,獲取第二偏移量和數據長度接收待傳輸數據。
進一步地,本地事件包括第一通信標識碼、第一偏移量和數據長度。
進一步地,當需要讀取數據時,待傳輸數據為讀取數據的請求信息;
當遠端服務器獲取讀取數據的請求信息后,對本端服務器進行寫入數據操作。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于西安奧卡云數據科技有限公司,未經西安奧卡云數據科技有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202110255648.3/2.html,轉載請聲明來源鉆瓜專利網。





