[发明专利]一种Linux操作系统下基于RDMA的数据传输方法及装置有效
申请号: | 202110255647.9 | 申请日: | 2021-03-09 |
公开(公告)号: | CN112948318B | 公开(公告)日: | 2022-12-06 |
发明(设计)人: | 宋江波;周耀辉;吴军疆 | 申请(专利权)人: | 西安奥卡云数据科技有限公司 |
主分类号: | G06F15/173 | 分类号: | G06F15/173;G06F9/50;G06F12/02 |
代理公司: | 西安维赛恩专利代理事务所(普通合伙) 61257 | 代理人: | 李明全 |
地址: | 710000 陕西省西安市西咸*** | 国省代码: | 陕西;61 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 linux 操作系统 基于 rdma 数据传输 方法 装置 | ||
1.一种Linux操作系统下基于RDMA的数据传输方法,其特征在于,包括以下步骤:
根据待数据传输的进程,确定所述进程对应的用户态内存空间地址;
将所述用户态内存空间地址与内核态内存空间地址均映射到同一物理内存空间地址中;
启动所述进程将待传输数据写入到用户态内存空间地址,生成数据包并通过网卡发送至远端服务器;
构建本地事件,获取写入所述待传输数据的第一应用程序对应的第一通信标识码;
向所述第一应用程序发送数据传输完成信息;
确定所述进程对应的用户态内存空间地址包括:
申请固定大小的内存空间,并注册给网卡的DMA,作为所述内核态内存空间地址;
构建连接报文并发送至远端服务器;所述连接报文包括所述内核态内存空间地址的起始地址和终止地址、本端服务器在数据传输网络中的唯一标识、以及本端应用程序的通信标识码;
接收远端服务器发来的连接报文并解析,得到远端服务器注册给网卡的DMA的内核态内存空间地址的起始地址和终止地址、以及远端服务器应用程序的通信标识码;
所述数据包包括本端服务器注册给网卡的DMA的内核态内存空间地址的第一起始地址、远端服务器注册给其网卡的DMA的内核态内存空间地址的第二起始地址、所述待传输数据的起始地址相对于所述第一起始地址的第一偏移量、所述待传输数据的起始地址相对于第二起始地址的第二偏移量、所述待传输数据的大小位、本端服务器中写入所述待传输数据的第一应用程序的第一通信标识码和远端服务器读取所述待传输数据的第二应用程序的第二通信标识码;
将所述用户态内存空间地址与内核态内存空间地址均映射到同一物理内存空间地址中包括:
将所述用户态内存空间地址映射到所述物理内存空间地址,且将所述内核态内存空间地址映射到同一所述物理内存空间地址;
或者,将所述用户态内存空间地址映射到所述内核态内存空间地址,再将所述内核态内存空间地址映射到物理内存地址;
或者,将所述内核态内存空间地址映射到所述用户态内存空间地址,在将所述用户态内存空间地址映射到物理内存地址。
2.如权利要求1所述的一种Linux操作系统下基于RDMA的数据传输方法,其特征在于,该方法还包括:
当所述内核态内存空间地址接收到数据时,获取该数据在所述内核态内存空间地址中的偏移位和大小位;
将所述偏移位和大小位发送至用户态的应用程序;
用户态的所述应用程序根据所述偏移位和大小位在所述用户态内存空间地址中读取数据;
在所述内核态内存空间地址中删除所述数据。
3.如权利要求1所述的一种Linux操作系统下基于RDMA的数据传输方法,其特征在于,生成数据包并通过所述网卡发送至远端服务器之后还包括:
所述远端服务器的网卡接收所述数据包;
解析所述数据包,获取所述第二通信标识码、第二偏移量和数据长度,并构建远端事件;
根据所述远端事件将所述数据包发送至所述第二应用程序;
所述第二应用程序解析所述数据包,获取所述第二偏移量和数据长度接收所述待传输数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于西安奥卡云数据科技有限公司,未经西安奥卡云数据科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110255647.9/1.html,转载请声明来源钻瓜专利网。