从RDMA over TCP的协议栈来看,最上面三层构成iWARP协议族,用来保证高速网络的互操作性。
然而,RDMA over Converged Ethernet (RoCE)是一种网络协议,允许应用通过以太网实现远程内存访问。目前RoCE有两个协议版本。
RoCE v1是一种链路层协议,允许在同一个广播域下的任意两台主机直接访问。
RoCE v2是一种Internet层协议,即可以实现路由功能。虽然RoCE协议这些好处都是基于融合以太网的特性,但是RoCE协议也可以使用在传统以太网网络或者非融合以太网络中。
目前,虽然IB、以太网RoCE、以太网iWARP这三种RDMA技术使用统一的API,但它们有着不同的物理层和链路层。在以太网解决方案中,RoCE相对于iWARP来说有着明显的优势,这些优势体现在延时、吞吐率和 CPU负载。RoCE被很多主流的方案所支持,并且被包含在Windows服务软件中。
RDMA技术基于传统网络的概念,但与IP网络又有些不同。最关键的不同是RDMA提供了一种消息服务, 利用这种服务,应用程序可以直接访问远程计算机上的虚拟内存。消息服务可以用来进行网络中进程间通信(IPC)、远程服务器通信和在一些上层协议的协助下与存储设备进行数据传递。上层应用协议ULPs(Upper Layer Protocols)有很多,例如iSCSI的RDMA扩展(iSER)、SCSI RDMA协议(SRP)等,主流的SMB、Samba 、Lustre、ZFS等也支持RDMA。
RoCE和InfiniBand,一个定义了如何在以太网上运行RDMA,而另一个则定义了如何在IB网络中运行RDMA。RoCE期望能够将IB的应用(主要是基于集群的应用)迁移到融合以太网中,而在其他应用中,IB网络仍将能够提供比RoCE更高的带宽和更低的时延。RoCE和IB协议的技术区别:




