[发明专利]基于Rsockets协议的零拷贝数据传输方法在审
申请号: | 202110399487.5 | 申请日: | 2021-04-14 |
公开(公告)号: | CN113064846A | 公开(公告)日: | 2021-07-02 |
发明(设计)人: | 黄旺;刘亚萍;张硕 | 申请(专利权)人: | 中南大学;鹏城实验室 |
主分类号: | G06F13/28 | 分类号: | G06F13/28;H04L29/06 |
代理公司: | 湖南企企卫知识产权代理有限公司 43257 | 代理人: | 任合明 |
地址: | 410083 *** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 rsockets 协议 拷贝 数据传输 方法 | ||
本发明公开了一种基于Rsockets协议的零拷贝数据传输方法,目的是消除拷贝开销。技术方案是先构建由基于Rsockets协议的RDMA传输系统,内存管理模块,内存处理模块,工作请求模块组成的零拷贝数据传输系统。发送端和接收端套接字应用创建RDMA资源,内存管理模块和内存处理模块配合创建缓存池,建立对缓存池的内存映射,发送端套接字应用从发送缓存发送数据,内存管理模块和内存处理模块处理后得到物理地址和页个数,工作请求模块构造对应工作请求,RDMA网卡执行工作请求将数据发送到接收端缓存池,接收端内存管理模块将接收缓存与缓存池中数据物理地址建立内存映射,数据成功到达。本发明实现了零拷贝数据传输。
技术领域
本发明涉及网络传输领域,特别涉及以RDMA(Remote Direct Memory Access,远程直接内存访问)为核心的高速数据传输方法。
背景技术
RDMA能够将数据从发送方的内存中直接传送到接收方的内存中,无需操作系统的参与,消耗的CPU资源也非常低。RDMA技术最早是出现在InfiniBand网络上,后面为了能够在以太网上使用RDMA技术,InfiniBand行业协会又提出了RoCE(RDMA over ConvergedEthernet,基于融合以太网的RDMA)技术。但与TCP/IP网络不同的是RoCE并不使用TCP/IP协议栈,而是主要继承了InfiniBand的通信协议,这导致RoCE无法直接在以TCP/IP网络为基础的数据中心部署,大部分的数据中心仍然以套接字(Socket)为核心的应用在运行,如果让套接字应用都改为RDMA应用,这将是一个庞大且复杂的工程。RoCE网络协议有类似OSI网络模型的物理层,链路层,网络层和传输层。物理层,链路层,网络层,传输层的协议都实现到网卡硬件上,避免操作系统的参与。而上层的软件部分,由OFA(Open Fabric Alliance)组织负责提供的统一的软件栈OFED(OpenFabrics Enterprise Distribution),该软件栈包括驱动,RDMA内核模块,RDMA库等功能。OFED提供的RDMA库称为Verbs。通过Verbs可以实现RDMA网络传输。下面介绍通过Verbs实现RDMA传输的主要方法。
RDMA网络传输方法则具体包括如下步骤:
第一步,获取RDMA设备链表,并选择其中一个RDMA设备,获取驱动传递上来的设备句柄。
第二步,通过Verbs创建相应的RDMA资源,具体为创建保护域(ProtectionDomain),保护域用于限制其他QP(Queue Pair)访问保护域内的内存和数据。创建完成队列(Completion Queue),完成队列用于通知每次RDMA传输的结果。创建队列对QP(QueuePair),队列对分为发送队列(Send Queue,SQ)和接收队列(Receive Queue,RQ),通过将传输任务发布到相关队列中,让网卡进行RDMA传输工作,发送数据例如SEND,WRITE,READ的工作请求发布到QP的发送队列中,接收发送方通过SEND操作发送的数据,需要提前将RECEVIE操作的工作请求发布到QP的接收队列中。注册内存区域(Memory Region),将需要发送或接收数据的内存信息及对应的物理地址信息注册到网卡中,并设置访问权限,由网卡计算并返回对应的key值,此后网卡在访问相关内存区域时,先获取到对应的key值,才会进行正确访问。
第三步,设置QP的状态为准备发送状态(即RTS(即Ready To Send))或准备接收状态(RTR(即Ready To Receive)),设置QP的相关属性包括发送队列长度,接收队列长度。如果是发送方,则将QP的状态设置为RTS,网卡才可以发送数据,而接收方则需要QP的状态为RTR,网卡就可以接收数据。在设置QP的状态过程中,发送方和接收方需要交换队列对序号(即QPN(Queue Pair Number))和包序号(即PSN(Packet Sequence Number))。
第四步,设置工作请求,并将工作请求发布到QP中,具体根据工作请求类型来决定发布到发送队列还是接收队列。并通知网卡有请求发送到QP中,请求网卡处理数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中南大学;鹏城实验室,未经中南大学;鹏城实验室许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110399487.5/2.html,转载请声明来源钻瓜专利网。
- 上一篇:一种具备防振功能的继电器
- 下一篇:基于情景构建的应急预案生成方法及系统