RDMA over Converged Ethernet

RDMA over Converged Ethernet (RoCE) ist ein Netzwerkprotokoll, das den Remote Direct Memory Access (RDMA) über ein Ethernet-Netzwerk ermöglicht. Es gibt mehrere RoCE-Versionen. RoCE v1 ist ein Protokoll der Ethernet-Verbindungsschicht und ermöglicht daher die Kommunikation zwischen zwei beliebigen Hosts innerhalb derselben Ethernet-Broadcast-Domäne. RoCE v2 ist ein Protokoll der Internetschicht, was bedeutet, dass RoCE-v2-Pakete geroutet werden können. Obwohl das RoCE-Protokoll von den Eigenschaften eines konvergierten Ethernet-Netzwerks profitiert, kann es auch in einem herkömmlichen oder nicht konvergierten Ethernet-Netzwerk eingesetzt werden. Das RoCE-Protokoll wird von der InfiniBand Trade Association (IBTA) veröffentlicht und gepflegt.

Hintergrund

Netzwerkintensive Anwendungen wie vernetzte Speichersysteme oder Cluster-Computing erfordern eine Netzwerkinfrastruktur mit hoher Bandbreite und geringer Latenz. Die Vorteile von RDMA gegenüber anderen Netzwerk-APIs wie Berkeley-Sockets sind eine geringere Latenz, eine geringere CPU-Auslastung und eine höhere Bandbreite. Das RoCE-Protokoll ermöglicht geringere Latenzen als sein Vorgänger, das iWARP-Protokoll. Es gibt RoCE-HCAs (Host Channel Adapter) mit einer Latenz von nur 1,3 Mikrosekunden, während die niedrigste bekannte iWARP-HCA-Latenz im Jahr 2011 bei 3 Mikrosekunden lag.

RoCE-Familie

RoCE-Kopfzeilenformat

Die RoCE-Versionen unterscheiden sich in Schicht 3 und Schicht 4 des OSI-Modells. Alle RoCE-Versionen unterstützen RDMA-Funktionalität über dieselben zugrunde liegenden InfiniBand-Nachrichten. Diese Nachrichten befinden sich im Base Transport Header (BTH), im Extended Transport Header (ETH) und in der Nutzlast, gefolgt von einer invarianten zyklischen Redundanzprüfung, die der Datenintegrität dient.

RoCE v1

Das RoCE-v1-Protokoll ist ein Ethernet-Protokoll der Verbindungsschicht mit dem Ethertype 0x8915. Das bedeutet, dass die Rahmenlängenbeschränkungen des Ethernet-Protokolls gelten: 1500 Byte für einen regulären Ethernet-Frame und 9000 Byte für einen Jumbo-Frame.

RoCE v1.5

RoCE v1.5 ist ein seltenes, experimentelles und nicht standardisiertes Protokoll, das auf dem IP-Protokoll basiert. RoCE v1.5 nutzt das IP-Protokollfeld, um seinen Datenverkehr von anderen IP-Protokollen wie TCP und UDP zu unterscheiden. Der für die Protokollnummer verwendete Wert ist nicht festgelegt und bleibt der Entscheidung des Anwenders überlassen.

RoCE v2

Das RoCE-v2-Protokoll läuft entweder auf dem UDP/IPv4- oder dem UDP/IPv6-Protokoll. Die UDP-Zielportnummer 4791 wurde für RoCE v2 reserviert. Da RoCE-v2-Pakete routbar sind, wird das RoCE-v2-Protokoll manchmal auch als „Routable RoCE“ oder „RRoCE“ bezeichnet. Obwohl die Zustellreihenfolge von UDP-Paketen im Allgemeinen nicht garantiert ist, schreibt die RoCE-v2-Spezifikation vor, dass Pakete mit demselben UDP-Quellport und derselben Zieladresse nicht neu angeordnet werden dürfen. Darüber hinaus definiert RoCE v2 einen Mechanismus zur Überlastungskontrolle, der die IP-ECN-Bits zur Markierung und CNP-Frames für die Bestätigungsbenachrichtigung nutzt. Die Softwareunterstützung für RoCE v2 befindet sich noch im Aufbau. Mellanox OFED 2.3 oder höher bietet RoCE-v2-Unterstützung, ebenso wie der Linux-Kernel v4.5.

RoCE im Vergleich zu InfiniBand

Sowohl InfiniBand als auch RoCE sind umfassende Netzwerkstandards und keine einzelnen Protokolle. InfiniBand spezifiziert jedoch die Transportschicht als „InfiniBand Transport Layer“, die auch von RoCE genutzt wird. Dies kann zu Verwechslungen zwischen den beiden Standards führen, da RoCE die obersten Schichten von InfiniBand implementiert, nicht jedoch den Rest der Architektur.

RoCE definiert, wie RDMA über Ethernet durchgeführt wird, während die InfiniBand-Architekturspezifikation festlegt, wie RDMA über ein InfiniBand-Netzwerk durchgeführt wird. Von RoCE wurde erwartet, dass es InfiniBand-Anwendungen, die überwiegend auf Clustern basieren, auf eine gemeinsame, konvergierte Ethernet-Struktur überführt. Andere gingen davon aus, dass InfiniBand weiterhin eine höhere Bandbreite und geringere Latenz bieten wird als dies über Ethernet möglich ist.

Die technischen Unterschiede zwischen den Protokollen RoCE und InfiniBand sind:

RoCE im Vergleich zu iWARP

Während die RoCE-Protokolle festlegen, wie RDMA über Ethernet- und UDP/IP-Frames durchgeführt wird, definiert das iWARP-Protokoll, wie RDMA über einen verbindungsorientierten Transport wie das Transmission Control Protocol (TCP) durchgeführt wird. RoCE v1 ist auf eine einzige Ethernet-Broadcast-Domäne beschränkt. RoCE-v2- und iWARP-Pakete sind routbar. Der Speicherbedarf einer großen Anzahl von Verbindungen sowie die Fluss- und Zuverlässigkeitskontrollen von TCP führen zu Skalierbarkeits- und Leistungsproblemen, wenn iWARP in großen Rechenzentren und für groß angelegte Anwendungen (z. B. große Unternehmen, Cloud Computing, Web-2.0-Anwendungen usw.) eingesetzt wird. Zudem ist Multicast in der RoCE-Spezifikation definiert, während die aktuelle iWARP-Spezifikation nicht festlegt, wie Multicast-RDMA durchgeführt werden soll.

Die Zuverlässigkeit bei iWARP wird durch das Protokoll selbst gewährleistet, da TCP zuverlässig ist. RoCE v2 hingegen nutzt UDP, das zwar einen weitaus geringeren Overhead und eine bessere Leistung aufweist, jedoch keine inhärente Zuverlässigkeit bietet. Daher muss die Zuverlässigkeit zusätzlich zu RoCE v2 implementiert werden. Eine Lösung besteht darin, konvergente Ethernet-Switches zu verwenden, um das lokale Netzwerk zuverlässig zu machen. Dies erfordert die Unterstützung von konvergentem Ethernet auf allen Switches im lokalen Netzwerk und verhindert, dass RoCE-v2-Pakete über ein Weitverkehrsnetz wie das Internet übertragen werden, das nicht zuverlässig ist. Eine weitere Lösung besteht darin, das RoCE-Protokoll um Zuverlässigkeitsfunktionen zu erweitern („Reliable RoCE“), wobei RoCE um einen Handshake-Vorgang ergänzt wird, um Zuverlässigkeit auf Kosten der Leistung zu gewährleisten.

Die Frage, welches Protokoll besser ist, hängt vom Anbieter ab. Chelsio empfiehlt und unterstützt ausschließlich iWARP. Mellanox, Xilinx und Broadcom empfehlen und unterstützen ausschließlich RoCE/RoCE v2. Intel unterstützte ursprünglich iWARP, unterstützt nun aber sowohl iWARP als auch RoCE v2. Andere Anbieter aus der Netzwerkbranche bieten Unterstützung für beide Protokolle an, darunter Marvell, Microsoft, Linux und Kazan. Cisco unterstützt sowohl RoCE als auch sein eigenes VIC-RDMA-Protokoll.

Beide Protokolle sind standardisiert, wobei iWARP der von der IETF (Internet Engineering Task Force) definierte Standard für RDMA über TCP ist und RoCE der von der IBTA definierte Standard für RDMA über Ethernet.

Kritik

Einige Aspekte, die in der RoCE-Spezifikation hätten definiert werden können, wurden ausgelassen. Dazu gehören:

Darüber hinaus kann kein Protokoll, das über IP läuft, davon ausgehen, dass das zugrunde liegende Netzwerk eine garantierte Reihenfolge gewährleistet, genauso wenig wie es davon ausgehen kann, dass es nicht zu einer Überlastung kommen kann.

Es ist bekannt, dass der Einsatz der primären Flusskontrolle (PFC) zu einem netzwerkweiten Deadlock führen kann.

Anbieter

Zu den Anbietern von RoCE-fähigen Geräten zählen unter anderem:

Einzelnachweise

  1. 1 2 roland: Two notes on IBoE. In: digitalvampire.org. 6. Dezember 2010, abgerufen am 6. Oktober 2026 (englisch).
  2. 1 2 3 Supplement to InfiniBand Architecture Specification Volume 1 Release 1.2.1. (PDF; 199 KB) In: infinibandta.org. 2010, archiviert vom Original (nicht mehr online verfügbar) am 9. März 2016; abgerufen am 6. Oktober 2026 (englisch).
  3. 1 2 3 Supplement to InfiniBand Architecture Specification Volume 1 Release 1.2.1. (PDF; 573 KB) In: infinibandta.org. 2010, archiviert vom Original (nicht mehr online verfügbar) am 17. September 2020; abgerufen am 6. Oktober 2026 (englisch).
  4. 1 2 ophirmaor: RoCE v2 Considerations. In: mellanox.com. 29. April 2014, archiviert vom Original (nicht mehr online verfügbar) am 10. April 2018; abgerufen am 6. Oktober 2026 (englisch).
  5. ↑ ophirmaor: RDMA/RoCE and Storage Solutions. In: mellanox.com. 19. August 2015, archiviert vom Original (nicht mehr online verfügbar) am 18. April 2016; abgerufen am 6. Oktober 2026 (englisch).
  6. 1 2 InfiniBand – A low-latency, high-bandwidth interconnect. In: infinibandta.org. Abgerufen am 6. Oktober 2026 (englisch).
  7. ↑ Don Cameron, Greg Regnier: The Virtual Interface Architecture. Intel Press, Hillsboro, USA 2002, ISBN 978-0-9712887-0-6.
  8. ↑ Michael Feldman: RoCE: An Ethernet-InfiniBand Love Story. In: hpcwire.com. 22. April 2010, abgerufen am 6. Oktober 2026 (englisch).
  9. ↑ Mellanox End-to-End Lowest Latency Ethernet Solution for Financial Services. (PDF; 1,50 MB) In: mellanox.com. 2011, archiviert vom Original (nicht mehr online verfügbar) am 26. März 2012; abgerufen am 6. Oktober 2026 (englisch).
  10. ↑ RoCE vs. iWARP Competitive Analysis Brief. In: mellanox.com. November 2010, archiviert vom Original (nicht mehr online verfügbar) am 29. November 2011; abgerufen am 6. Oktober 2026 (englisch).
  11. ↑ Chelsio Delivers Low Latency Server Connectivity With T4 Adapter. In: chelsio.com. 25. Mai 2011, archiviert vom Original (nicht mehr online verfügbar) am 27. Juli 2011; abgerufen am 6. Oktober 2026 (englisch).
  12. ↑ Service Name and Transport Protocol Port Number Registry. In: iana.org. 30. September 2026, abgerufen am 6. Oktober 2026 (englisch).
  13. ↑ RoCE Status and Plans. (PDF; 829 KB) In: ietf.org. November 2013, abgerufen am 6. Oktober 2026 (englisch).
  14. ↑ ophirmaor: RoCEv2 CNP Packet Format Example. In: mellanox.com. 29. Oktober 2015, archiviert vom Original (nicht mehr online verfügbar) am 15. Oktober 2018; abgerufen am 6. Oktober 2026 (englisch).
  15. ↑ ophirmaor: Understanding RoCEv2 Congestion Management. In: mellanox.com. 5. Oktober 2015, archiviert vom Original (nicht mehr online verfügbar) am 15. Oktober 2018; abgerufen am 6. Oktober 2026 (englisch).
  16. ↑ Linus Torvalds: Kernel GIT. In: git.kernel.org. 23. Januar 2016, abgerufen am 6. Oktober 2026 (englisch).
  17. ↑ Rick Merritt: New converged network blends Ethernet, Infiniband. In: eetimes.com. 19. April 2010, abgerufen am 6. Oktober 2026 (englisch).
  18. ↑ Sean Michael Kerner: InfiniBand Moving to Ethernet? In: enterprisenetworkingplanet.com. 29. April 2010, archiviert vom Original (nicht mehr online verfügbar) am 27. Dezember 2011; abgerufen am 6. Oktober 2026 (englisch).
  19. ↑ Mellanox Releases New Automation Software to Reduce Ethernet Fabric Installation Time from Hours to Minutes. In: mellanox.com. 2. Juni 2014, archiviert vom Original (nicht mehr online verfügbar) am 3. März 2016; abgerufen am 6. Oktober 2026 (englisch).
  20. ↑ SX1036. In: mellanox.com. Archiviert vom Original (nicht mehr online verfügbar) am 22. April 2014; abgerufen am 6. Oktober 2026 (englisch).
  21. ↑ IS5024 36-port Non-blocking Remotely-managed 40Gb/s InfiniBand Switch System. In: mellanox.com. Archiviert vom Original (nicht mehr online verfügbar) am 22. April 2014; abgerufen am 6. Oktober 2026 (englisch).
  22. ↑ Mohammad J. Rashti, Ryan E. Grant, Ahmad Afsahi, Pavan Balaji: iWARP Redefined: Scalable Connectionless Communication over High-Speed Ethernet. (PDF; 291 KB) In: queensu.ca. Archiviert vom Original (nicht mehr online verfügbar) am 10. August 2017; abgerufen am 6. Oktober 2026 (englisch).
  23. ↑ H. Shah, J. Pinkerton, R. Recio, P. Culley: Direct Data Placement over Reliable Transports. In: RFC 5041. Oktober 2007, doi:10.17487/RFC5041.
  24. ↑ C. Bestler, R. Stewart: Stream Control Transmission Protocol (SCTP) Direct Data Placement (DDP) Adaptation. In: RFC 5043. Oktober 2007, doi:10.17487/RFC5043.
  25. ↑ P. Culley, U. Elzur, R. Recio, S. Bailey, J. Carrier: Marker PDU Aligned Framing for TCP Specification. In: RFC 5044. Oktober 2007, doi:10.17487/RFC5044.
  26. ↑ Intel Ethernet 800 Series. In: intel.com. Archiviert vom Original (nicht mehr online verfügbar) am 22. April 2021; abgerufen am 6. Oktober 2026 (englisch).
  27. 1 2 John Kim: RoCE vs. iWARP – The Next “Great Storage Debate”. In: sniaesfblog.org. Archiviert vom Original (nicht mehr online verfügbar) am 20. Mai 2019; abgerufen am 6. Oktober 2026 (englisch).
  28. ↑ Benefits of Remote Direct Memory Access Over Routed Fabrics. (PDF; 3,02 MB) In: cisco.com. 2018, abgerufen am 6. Oktober 2026 (englisch).
  29. ↑ Eli Cohen: IB/core: Add VLAN support for IBoE. In: kernel.org. 26. August 2010, abgerufen am 6. Oktober 2026 (englisch).
  30. ↑ Eli Cohen: RDMA/cm: Add RDMA CM support for IBoE devices. In: kernel.org. 13. Oktober 2010, abgerufen am 6. Oktober 2026 (englisch).
  31. ↑ M. Crawford: Transmission of IPv6 Packets over Ethernet Networks. In: RFC 2464. Dezember 1998, doi:10.17487/RFC2464.
  32. ↑ Shuihai Hu et al.: Deadlocks in Datacenter Networks: Why Do They Form, and How to Avoid Them. In: HotNets '16: Proceedings of the 15th ACM Workshop on Hot Topics in Networks. Association for Computing Machinery, Atlanta, USA 9. November 2016, S. 92–98, doi:10.1145/3005745.3005760 (microsoft.com [PDF; 2,8 MB; abgerufen am 6. Oktober 2026]).
  33. ↑ Alex Shpiner et al.: Unlocking Credit Loop Deadlocks. In: HotNets '16: Proceedings of the 15th ACM Workshop on Hot Topics in Networks. Association for Computing Machinery, Atlanta, USA 9. November 2016, S. 85–91, doi:10.1145/3005745.3005768 (researchgate.net [abgerufen am 6. Oktober 2026]).
  34. ↑ Radhika Mittal et al.: Revisiting Network Support for RDMA. In: Computer Science. 21. Juni 2018, doi:10.48550/arXiv.1806.08159.
  35. ↑ Dylan Martin: Nvidia: Mellanox Deal May Not Close Until Early 2020. In: crn.com. 14. November 2019, abgerufen am 6. Oktober 2026 (englisch).
  36. ↑ Reshmi Amarnath: Israel’s AI Ecosystem Comes Together to Toast NVIDIA’s Proposed Mellanox Acquisition. In: nvidia.com. 27. März 2019, archiviert vom Original (nicht mehr online verfügbar) am 27. März 2019; abgerufen am 6. Oktober 2026 (englisch).
  37. ↑ Grovf Inc. Releases Low Latency RDMA RoCE V2 FPGA IP Core for Smart NICs. In: yahoo.com. 19. November 2021, abgerufen am 6. Oktober 2026 (englisch).