آر.دی.ام.ای روی اترنت همگرا

**آر. دی.ام. اِی روی اترنت همگرا (** **)** یا **روی اترنت (** (**)** یک پروتکل شبکه‌ای است که امکان دسترسی مستقیم به حافظه از راه دور (RDMA) را از طریق شبکه اترنت فراهم می‌کند. این کار را با کپسوله کردن یک بسته انتقال InfiniBand (IB) روی اترنت انجام می‌دهد. چندین نسخه از RoCE وجود دارد. RoCE v1 یک پروتکل لایه پیوند اترنت است و از این رو امکان ارتباط بین هر دو میزبان در یک دامنه پخش اترنت را فراهم می‌کند. RoCE v2 یک پروتکل لایه اینترنت است و این بدین معنی است که بسته‌های RoCE v2 را می‌توان مسیریابی کرد. با اینکه پروتکل RoCE از مزایای اترنت همگرا سود می‌برد ولی این پروتکل می‌تواند به روی سیستم‌های سنتی و اترنت‌های ناهمگرا بکار گرفته شوند.

## پیش‌زمینه
برنامه‌های کاربردی مترکز برشبکه مثل ذخیره‌سازی تحت شبکه یا خوشه‌های کامپیوتر به یک زیرساخت شبکه ای با تأخیر کم و پهنای باند بزرگ نیاز دارند. از مزایای کنترل از راه دور بر روی باقی شبکه واسط‌های برنامه‌نویسی کاربردی همچون سوکت‌های برکلی می‌توان به تأخیر کمتر، پهنای باند بیشتر و انباشتگی کمتر پردازنده اشاره کرد. پروتکل RoCE تاخیرهای کمتری نسبت به پروتکل معماری واسط مجازی ایجاد می‌کند.

## ورژن یک دسترسی مستقیم حافظه از راه دور به روی اترنت همگرا (RoCE v1)
RoCE v1 یک پروتکل لایه پیوند اترنت با نوع اتر 0x8915 می‌باشد. این بدان معنی است که محدودیت‌های طول فریم پروتکل اترنت مثل ۱۵۰۰ بایت برای یک فریم اترنت معمولی و ۹۰۰۰ بایت برای یک فریم جامبو تأثیرگذارند.

## ورژن یک و نیم دسترسی مستقیم حافظه از راه دور به روی اترنت همگرا (5.RoCE v1)
RoCE v1.5 یک پروتکل غیرمعمول، آزمایشی و غیراستاندارد است که بر اساس پروتکل اینترنت شکل گرفته است. RoCE v1.5 از زمینه‌های پروتکل اینترنت برای تمییز قائل شدن بین ترافیک خود با دیگر پروتکل‌های اینترنت همچون TCP و UDP استفاده می‌کند. مقدار مورد استفاده برای عدد پروتکل مشخص نشده‌است و انتخاب آن بر عهدهٔ توسعه‌دهندگان گذاشته شده‌است.

## ورژن دو دسترسی مستقیم حافظه از راه دور به روی اترنت همگرا (RoCE v2)
پروتکل RoCE v2 بر پایه یکی از دو پروتکل‌های UDP/IPv4 یا UDP/IPv6 وجود دارد. پورت مقصد شمارهٔ ۴۷۹۱ پروتکل UDP برای RoCE v2 رزرو شده‌است. از آنجایی که بسته‌های این پروتکل قابل مسیریابی هستند، به این پروتکل نیز RoCE قابل مسیریابی یا به اختصار RRoCE گفته می‌شود. با اینکه تضمینی وجود ندارد که به طورکلی بسته‌های پروتکل UDP با حفظ ترتیب به مقصد برسند ولی RoCE v2 ملزم می‌کند که بسته‌ها با پورت‌های مبدأ و مقصد یکسان نباید تغییری در ترتیب آنها ایجاد شود. علاوه بر این، RoCEv2 یک مکانیزم کنترل تراکم را تعریف می‌کند که از بیت‌های IP ECN برای علامت‌گذاری و از فریم‌های CNP برای اعلان تصدیق استفاده می‌کند. پشتیبانی نرم‌افزاری RoCE v2 هنوز در حال توسعه می‌باشد. Mellanox OFED 2.3 یا بالاتر و Linux Kernel نسخه ۴٫۵ از RoCE v2 پشتیبانی می‌کنند.

## مقایسه RoCE و InfiniBand
RoCE نحوه اجرای دسترسی مستقیم حافظه از راه دور از طریق اترنت را تعریف می‌کند در حالی که معماری InfiniBand نحوه اجرای دسترسی مستقیم به حافظه از را دور را به روی شبکه InfiniBand تعریف می‌کند. انتظار می‌رفت که RoCE برنامه‌های InfiniBand را که عمدتاً مبتنی بر خوشه‌ها هستند، روی یک بستر اترنت همگرای مشترک بیاورد. برخی دیگر انتظار داشتند که InfiniBand پهنای باند بالاتر و تأخیر کمتری نسبت به آنچه که بر روی اترنت ممکن است را ارائه دهد.

تفاوت‌های فنی بین پروتکل‌های RoCE و InfiniBand عبارتند از:
* کنترل جریان سطح پیوند: InfiniBand از یک الگوریتم مبتنی بر اعتبار برای تضمین ارتباط بدون تلفات HCA به HCA استفاده می‌کند. RoCE در بالای اترنت اجرا می‌شود. پیاده‌سازی‌ها ممکن است برای دستیابی به ویژگی‌های عملکردی مشابه InfiniBand به شبکه اترنت بدون تلفات نیاز داشته باشند. اترنت بدون تلفات معمولاً از طریق کنترل جریان اترنت یا کنترل جریان اولویت (PFC) پیکربندی می‌شود. پیکربندی یک شبکه اترنت پل‌سازی مرکز داده (DCB) می‌تواند پیچیده‌تر از پیکربندی شبکه InfiniBand باشد.
* کنترل ازدحام: Infiniband کنترل تراکم را بر اساس علامت گذاری FECN/BECN تعریف می‌کند، RoCEv2 یک پروتکل کنترل تراکم را تعریف می‌کند که از ECN برای علامت‌گذاری همان‌طور که در سوئیچ‌های استاندارد پیاده‌سازی شده‌است و از فریم‌های CNP برای تأیید استفاده می‌کند.
* سوئیچ‌های InfiniBand معمولاً تأخیر کمتری نسبت به سوئیچ‌های اترنت دارند. تأخیر پورت به پورت برای یک نوع خاص سوئیچ اترنت ۲۳۰ است ns در مقابل 100 ns برای یک سوئیچ InfiniBand با تعداد پورت یکسان.

## RoCE در مقابل iWARP
در حالی که پروتکل‌های RoCE نحوه اجرای RDMA را با استفاده از فریم‌های اترنت و UDP/IP تعریف می‌کنند، پروتکل iWARP نحوه انجام RDMA را بر روی یک انتقال اتصال‌گرا مانند پروتکل کنترل انتقال (TCP) تعریف می‌کند. RoCE v1 محدود به یک دامنه پخش اترنت است. بسته‌های RoCE v2 و iWARP قابل مسیریابی هستند. نیازهای حافظه تعداد زیادی اتصال به همراه کنترل‌های جریان و قابلیت اطمینان TCP منجر به مشکلات مقیاس‌پذیری و عملکرد در هنگام استفاده از iWARP در مراکز داده در مقیاس بزرگ و برای برنامه‌های کاربردی در مقیاس بزرگ (به عنوان مثال، شرکت‌های مقیاس بزرگ، محاسبات ابری، برنامه‌های وب ۲٫۰) می‌شود. و غیره). همچنین، چندپخشی در مشخصات RoCE تعریف شده است در حالی که مشخصات iWARP فعلی نحوه انجام RDMA چندپخشی را تعریف نمی‌کند.

قابلیت اطمینان در iWARP توسط خود پروتکل داده شده است، زیرا TCP قابل اعتماد است. از طرف دیگر RoCEv2 از UDP استفاده می‌کند که سربار بسیار کمتر و عملکرد بهتری دارد اما قابلیت اطمینان ذاتی را ارائه نمی‌دهد و بنابراین قابلیت اطمینان باید در کنار RoCEv2 پیاده‌سازی شود. یک راه حل استفاده از سوئیچ‌های اترنت همگرا برای قابل اعتماد کردن شبکه محلی است. این امر مستلزم پشتیبانی همگرای اترنت در تمام سوئیچ‌ها در شبکه محلی است و از انتقال بسته‌های RoCEv2 از طریق یک شبکه گسترده مانند اینترنت که قابل اعتماد نیست جلوگیری می‌کند. راه حل دیگر افزودن قابلیت اطمینان به پروتکل RoCE (یعنی RoCE قابل اعتماد) است که به RoCE دست دادن را اضافه می‌کند تا قابلیت اطمینان را به قیمت عملکرد ارائه دهد.

این سؤال که کدام پروتکل بهتر است به فروشنده بستگی دارد. چلسیو iWARP را توصیه و به‌طور انحصاری پشتیبانی می‌کند. Mellanox, Xilinx و Broadcom RoCE/RoCEv2 را توصیه کرده و منحصراً پشتیبانی می‌کنند. اینتل در ابتدا از iWARP پشتیبانی می‌کرد اما اکنون از iWARP و RoCEv2 پشتیبانی می‌کند. سایر فروشندگان درگیر در صنعت شبکه از هر دو پروتکل مانند Marvell, Microsoft, Linux و Kazan پشتیبانی می‌کنند. سیسکو از RoCE و پروتکل VIC RDMA خود پشتیبانی می‌کند.

هر دو پروتکل استاندارد شده‌اند و iWARP استاندارد RDMA بر روی TCP است که توسط IETF تعریف شده است و RoCE استاندارد RDMA روی اترنت است که توسط IBTA تعریف شده‌است.

## نقد
برخی از جنبه‌هایی که می‌توانستند در مشخصات RoCE تعریف شوند، کنار گذاشته شده‌اند. اینها هستند:
* نحوه ترجمه بین GIDهای اولیه RoCE v1 و آدرس‌های MAC اترنت.
* نحوه ترجمه بین GIDهای RoCE v1 ثانویه و آدرس‌های MAC اترنت. مشخص نیست که آیا می‌توان GIDهای ثانویه را در پروتکل RoCE v1 بدون افزودن یک پروتکل حل آدرس خاص RoCE پیاده‌سازی کرد یا خیر.
* نحوه پیاده‌سازی VLAN برای پروتکل RoCE v1. پیاده‌سازی‌های کنونی RoCE v1، VLAN ID را در بایت دوازدهم و سیزدهم از GID شانزده بایتی ذخیره می‌کنند، اگرچه در مشخصات RoCE v1 اصلاً VLANها ذکر نشده‌است.
* نحوه ترجمه بین GIDهای چندپخشی RoCE v1 و آدرس‌های MAC اترنت. پیاده‌سازی‌ها در سال ۲۰۱۰ از همان نقشه‌برداری آدرسی استفاده کردند که برای نگاشت آدرس‌های چندپخشی IPv6 به آدرس‌های MAC اترنت مشخص شده‌است.
* نحوه محدود کردن ترافیک چندپخشی RoCE v1 به زیر مجموعه ای از پورت‌های یک سوئیچ اترنت. از سپتامبر ۲۰۱۳، معادلی از پروتکل Multicast Listener Discovery هنوز برای RoCE v1 تعریف نشده است. علاوه بر این، هر پروتکلی که از طریق IP اجرا می‌شود، نمی‌تواند فرض کند که شبکه زیربنایی دارای سفارش تضمین شده‌است، بیش از آن که فرض کند تراکم نمی‌تواند رخ دهد. مشخص است که استفاده از PFC می‌تواند منجر به یک بن‌بست در سراسر شبکه شود.

## ارائه دهندگان
برخی از فروشندگان تجهیزات دارای قابلیت RoCE عبارتند از:
* Mellanox (acquired by Nvidia in 2020, brand retained)
* Emulex (acquired by Broadcom)
* Broadcom
* QLogic (acquired by Cavium, rebranded)
* Cavium (acquired by Marvell Technology Group, rebranded)
* Huawei
* ATTO Technology
* Dell Technologies
* Intel
* Bloombase
* Xilinx (via FPGA soft IP core)
* Grovf

رده:اترنت
رده:رایانش موازی
رده:فناوری‌های سیستم‌عامل