RDMA (Remote Direct Memory Access) 全称为 远程直接内存访问
其出现的目的:为了解决网络传输中服务端数据处理的延迟而产生的。其将数据直接从一台计算机的内存传输到另一台计算机,无需双方操作系统的介入。这允许高吞吐、低延迟的网络通信,尤其适合在大规模并行计算机集群中使用。RDMA通过网络把资料直接传入计算机的存储区,将数据从一个系统快速移动到远程系统存储器中,而不对操作系统造成任何影响,这样就不需要用到多少计算机的处理能力。它消除了外部存储器复制和上下文切换的开销,因而能解放内存带宽和CPU周期用于改进应用系统性能。
调用栈:
传统tcp/ip数据流动方式:
进程 buffer (用户空间)-> socket buffer(内核空间) -> 添加包头(内核空间)-> NIC buffer (网卡设备)-> 网络->接收端反向解析<--
特点:各层次分工完善,但是数据在传输过程中出现多次拷贝;产生延迟较高,也一定程度上浪费了内存和计算资源;