目录
作者:bandaoyu 链接;https://blog.csdn.net/bandaoyu/article/details/117560876
一、RoCE帧结构
RoCE帧结构
https://www.jianshu.com/p/85e7309c6187
RoCE v1和RoCE v2
RoCE将IB传输的流量封装到下面两种以太网帧中:
l RoCE v1 - RoCE v1协议被定义为带有以太网头部的IB帧。 它使用以太网类型0x8915并且可以选择启用或者关闭VLAN标签。常规的以太网MTU也适用于RoCE帧。
l RoCE v2 - RoCE协议的直接扩展使得流量能在3层IP环境下运行。将RoCE中的GRH头部替换成IP头部,使用UDP类型和专用的目的UDP端口(4791)。UDP源端口域用来携带一个模糊的流标识符,使得网络设备能够实现包的转发优化(例如ECMP),同时对于协议头部的格式保持无关性。
在RoCE中,infiniband的链路层协议头被去掉,用来表示地址的GUID被转换成以太网的MAC。Infiniband依赖于无损的物理传输,RoCE也同样依赖于无损的以太传输,这一要求会给以太网的部署带来了成本和管理上的开销。以太网的无损传输必须依靠L2的QoS支持,比如PFC(Priority Flow Control),接收端在buffer池超过阈值时会向发送方发出pause帧,发送方MAC层在收到pause帧后,自动降低发送速率。这一要求,意味着整个传输环节上的所有节点包括end、switch、router,都必须全部支持L2 QoS,否则链路上的PFC就不能在两端发挥有效作用。
RoCEv1帧结构示意图
RoCEv1对应的协议请规范参考InfiniBand™ Architecture Specification Release 1.2.1 Annex
RoCEv2
由于RoCEv1的数据帧不带IP头部(所以不能IP路由),所以只能在L2子网内通信。为了解决此问题,IBTA于2014年提出了RoCE V2,RoCEv2扩展了RoCEv1,将GRH(Global Routing Header)换成UDP header + IP header,扩展后的帧结构如下图所示。
对应一个具体的报文示意图如下图所示。
原文链接:https://blog.csdn.net/bandaoyu/article/details/115346857