# RDMA是什么?
RDMA(Remote Direct Memory Access,远程直接内存访问)是一种高性能的网络通信技术,允许一台计算机直接访问另外一台计算机的内存,而无需直接操作远程系统的CPU或者操作系统。这种技术极大的减少了网络通信的延迟和CPU的开销,同时提高了数据传输的吞吐量。
RDMA的核心思想是通过硬件支持,绕过传统的协议栈如(TCP/IP),直接在用户空间完成数据的读写操作。这使得RDMA成为现代高性能计算机(HPC)、数据中心、云计算和分布式存储中的关键技术。
# RDMA的工作原理
# 零拷贝(Zero-Copy):
数据可以直接从一个系统的内存传输到另一个系统的内存,而无需在内核和用户空间之间进行多次拷贝。例如,发送方的应用程序可以将数据直接写入网卡缓冲区,接收方的应用程序直接从网卡缓冲区读取数据。
# 内核旁路(Kernel Bypass):
RDMA操作通常在用户空间完成,避免了内核的介入,从而减少了上下文切换和中断处理的开销。
# 无CPU干预(CPU Offload):
数据传输过程中由网卡硬件完成,不需要远程主机的CPU参与,降低了CPU的负载。
# 可靠和高效性:
RDMA提供了可靠的传输机制,确保数据的完整性和顺序性,同时保持低延迟和高吞吐。