[发明专利]一种基于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.vipzhuanli.com/pat/books/202110255648.3/2.html,转载请声明来源钻瓜专利网。