文章目录
为什么需要RDMA
以太网工作流程
以太网socket通信流程如下图

以太网缺点
1、send/recv等系统调用,导致系统需要在用户态和内核态之间进行切换,增加传输延时。
2、发送数据时需要将数据从用户态拷贝到内核态,这也是需要消耗大量时间。
3、CPU全程参与数据包的解析与封装,对CPU来说负担很大。
上述的数据从用户态拷贝到内核态,为什么?
因为用户态一些非连续的虚拟内存的数据,物理空间不连续,而网卡传输数据不支持非连续数据的访问。所以要将用户态非连续物理内存的数据拷贝到物理空间连续的内核态。
有上述缺点,引出RDMA

RDMA优点
1、数据传输时没有系统调用,不需要用户态和内核态的切换。
2、省去了内核态与用户态之间的拷贝。
3、数据包的解析与封装,由网卡完成,降低CPU的负载。
这也对应了上述以太网通信的缺点。
限制
1、需要RDMA硬件网卡。
2、网卡需要对非连续数据的封装与解析。