网站首页 > 编程文章 正文
以太网技术目前在全球互联的因特网中始终占据主导地位,但在高带宽、低延时的专有网络中却透露出许多弊端。随着网络融合概念的兴起,在IETF发布了的DCB(Data Center Bridging)标准中,基于RDMA/Infiniband的无损链路得以解决,以太网终于在专有网络领域内拥有了自己的标准,同时也提出了RoCE(RDMA over Converged Ethernet)的概念。
经过版本的升级(从RoCEv1到RoCEv2),10Gb及以上的新型NIC和switch基本都集成了RoCE支持。
RoCEv1
??2010年4月,IBTA发布了RoCE,此标准是作为Infiniband Architecture Specification的附加件发布的,所以也称为IBoE(InfiniBand over Ethernet)。这时的RoCE标准是在以太链路层之上用IB网络层代替了TCP/IP网络层,所以不支持IP路由功能。RoCE V1协议在以太层的typeID是0x8915。
??在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 A16: RoCE
RoCEv1报文内容示意图
RoCEv2
??由于RoCEv1的数据帧不带IP头部,所以只能在L2子网内通信。为了解决此问题,IBTA于2014年提出了RoCE V2,RoCEv2扩展了RoCEv1,将GRH(Global Routing Header)换成UDP header + IP header,扩展后的帧结构如下图所示。
RoCEv2帧结构
对应一个具体的报文示意图如下图所示。
RoCEv2报文示意图
针对RoCE v1和RoCE v2,以下两点值得注意:
- RoCE v1(Layer 2)运作在Ehternet Link Layer(Layer 2)所以Ethertype 0x8915,所以正常的Frame大小为1500 bytes,而Jumbo Frame则是9000 bytes。
- RoCE v2(Layer 3)运作在UDP/IPv4或UDP/IPv6之上(Layer 3),采用UDP Port 4791进行传输。因为 RoCE v2的封包是座落在 Layer 3之上可进行路由,所以有时又会称为「Routable RoCE」或简称「RRoCE」。
Soft-RoCE
??Linux内核在4.9通过软件的实现了RoCEv2,即Soft-RoCE。不同于RoCE,softRoCE适用于任何以太环境,无需依赖NIC、switch、L2QoS等支持。
??softRoCE的目标是在所有支持以太网的设备上都可以部署RDMA传输,其实现可分成两部分,对上通过librxe与RDMA stack(libibverbs)耦合,对下通过rxe.ko与linux stack layer3耦合,用户通过某个eth NIC的UDP隧道为虚拟的RDMA设备传输RoCE数据。
Soft-RoCE通信示意图
??在性能敏感的虚拟化场景,VM环境需要直接访问底层硬件。借助于softRoCE,底层的网卡硬件也不需要暴露在VM环境就可以使用挂载的虚拟RoCE设备。
??通过在节点上安装soft-RoCE,它就可以与支持RoCE的节点或者是同样安装有soft-RoCE的节点建立RDMA传输。尽管在传统以太上,one-copy甚至zero-copy的方案已经出现多个,但个人认为soft-RoCE的 最大意义是使得不具备RDMA NIC的数据中心用最小的成本构建起高效的RDMA网络,所以softRoCE作为RoCE方案的重要补充,已经逐渐成为RDMA生态(IBTA)下一步开发的标准构件。
网络要求
&RoCE可以运行在无损网络环境和有损网络环境中,如果运行在有损网络环境中,称为弹性RoCE(Resilient RoCE);如果运行在无损网络环境中,称为无损RoCE(Lossless RoCE)。
- 弹性RoCE网络 - 可以发送RoCE流的有损网络环境,即无需开启PFC/ECN的网络环境
https://community.mellanox.com/s/article/introduction-to-resilient-roce---faq - 无损RoCE网络 - 网络中开启PFC流控功能,确保网络的无损特性
https://community.mellanox.com/s/article/roce-v2-considerations#jive_content_id_Resilient_RoCE
??
总结:尽管RoCE对链路层和物理层存在特殊依赖,但是在部署新型的数据中心时,对于较新型switch、NIC、SOC基本上都会集成网络融合DCB和RDMA支持。所以在新建Data Center、SAN时,性能最优的RoCE是最佳选择。而在旧DC、SAN扩容或者成本敏感型的优化时,仅需要RNIC的iWRAP或者完全不依赖任何硬件的softRoCE更加适
文章摘自微信公众号:架构师技术联盟
参考文献:
https://www.cnblogs.com/echo1937/p/7018266.html
http://hustcat.github.io/roce-protocol/
RoCE: An Ethernet-InfiniBand Love Story
InfiniBand? Architecture Specification Release 1.2.1 Annex A16: RoCE
InfiniBand? Architecture Specification Release 1.2.1 Annex A17: RoCEv2
RoCEv2 CNP Packet Format Example
作者:北春南秋链接:https://www.jianshu.com/p/85e7309c6187
- 上一篇: RoCE协议(roce协议交换机配置)
- 下一篇: RoCE是什么(roce是什么牌子的卫浴)
猜你喜欢
- 2024-10-22 Mellanox 以太网卡推动实现阿里巴巴的高性能网络解决方案
- 2024-10-22 RoCE是什么(roce是什么牌子的卫浴)
- 2024-10-22 RoCE协议(roce协议交换机配置)
你 发表评论:
欢迎- 06-24一个老爸画了超级有爱的365幅画 | 父亲节献礼
- 06-24产品小白看魏则西事件——用产品思维审视百度推广
- 06-24某教程学习笔记(一):13、脚本木马原理
- 06-24十大常见web漏洞——命令执行漏洞
- 06-24初涉内网,提权那些事(内网渗透提权)
- 06-24黑客命令第16集:47种最常见的**网站方法2/2
- 06-24铭说 | 一句话木马的多种变形方式
- 06-24Java隐藏的10倍效率技巧!90%程序员不知道的魔法方法(附代码)
- 最近发表
- 标签列表
-
- spire.doc (70)
- instanceclient (62)
- solidworks (78)
- system.data.oracleclient (61)
- 按键小精灵源码提取 (66)
- pyqt5designer教程 (65)
- 联想刷bios工具 (66)
- c#源码 (64)
- graphics.h头文件 (62)
- mysqldump下载 (66)
- libmp3lame (60)
- maven3.3.9 (63)
- 二调符号库 (57)
- git.exe下载 (68)
- diskgenius_winpe (72)
- pythoncrc16 (57)
- solidworks宏文件下载 (59)
- qt帮助文档中文版 (73)
- satacontroller (66)
- hgcad (64)
- bootimg.exe (69)
- android-gif-drawable (62)
- axure9元件库免费下载 (57)
- libmysqlclient.so.18 (58)
- springbootdemo (64)
本文暂时没有评论,来添加一个吧(●'◡'●)