RDMA协议介绍(一)
【摘要】 一、计算机系统回顾 & 总线事务计算机操作系统可以看作是CPU、内存、系统总线、和I/O设备的组合,其中,数组通过总线在上述模块中传输的过程称之为总线事务。我们以网络传输举例介绍总线事务,首先是数据从内存->网络。内存传输到网络需要由cpu参与将数据搬运到寄存器中,再由CPU将数据经过系统总线搬运至网络适配器。类似的,从网络到内存也需要CPU参与,共经历三个步骤:1、网卡通知CPU数据到达;...
一、计算机系统回顾 & 总线事务
计算机操作系统可以看作是CPU、内存、系统总线、和I/O设备的组合,其中,数组通过总线在上述模块中传输的过程称之为总线事务。
我们以网络传输举例介绍总线事务,首先是数据从内存->网络。内存传输到网络需要由cpu参与将数据搬运到寄存器中,再由CPU将数据经过系统总线搬运至网络适配器。
类似的,从网络到内存也需要CPU参与,共经历三个步骤:1、网卡通知CPU数据到达;2、CPU将数据从网卡搬运至CPU寄存器;3、CPU将数据从CPU寄存器搬运至内存。
我们知道,CPU最主要的功能应该是计算,而不是数据搬运,所以我们不希望将CPU耗费在数据搬运上。通过DMA技术,我们就可以实现将数据从一个模块不经过CPU直接搬运到另一个模块:
DMA技术通过DMA控制器,可以将数据直接从内存搬运至DMA控制器的寄存器中,因而绕开了CPU的操作,但是网络传输要经过内核TCP/IP协议栈,还是需要由CPU去封装报文。
因此,RDMA技术应运而生。其原理是利用RDMA网卡对数据进行硬件封装,因此可以像DMA技术一样,将数据直接从内存搬运至RDMA网卡,然后封装报文头后发往网络。
本端节点通过RDMA可以“直接”访问远端节点的内存。所谓直接,指的是可以像访问本地内存一样,绕过传统以太网复杂的TCP/IP网络协议栈读写远端内存,而这个过程对端是不感知的,而且这个读写过程的大部分工作是由硬件而不是软件完成的。
想了解GuassDB(DWS)更多信息,欢迎微信搜索“GaussDB DWS”关注微信公众号,和您分享最新最全的PB级数仓黑科技,后台还可获取众多学习资料~
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)