Индустрия сетевых технологий появилась более 50 лет назад и за это время она претерпела колоссальные изменения. Однако ее наиболее бурное развитие началось в 90-х годах, когда после массового внедрения сети Ethernet в коммерческие и частные вычислительные инфраструктуры появилась потребность в высокоскоростных решениях для передачи данных между серверами в рамках одного кластера. По началу первые системы, предлагающие такие возможности, были крайне низкоэффективны и проприетарны, но с приходом эпохи RDMA все изменилось — появились технологии, обеспечивающие прямой доступ к данным без взаимодействия с CPU, снижая задержки. Одной из таких технологий стала RoCE, которая стала ключевым решением в Ethernet-сетях и не дала протоколу InfiniBand стать монополистом на рынке сетевого оборудования. В этой статье мы поговорим о том, что такое протокол RoCE, в чем его особенности, какие версии RoCE существуют и чем он лучше аналогов.
Что такое RoCE?
RoCE (RDMA over Converged Ethernet) — это протокол передачи данных, который позволяет получить прямой доступ к памяти, не задействуя центральный процессор и ядро операционной системы (Zero-copy, Kernel bypass), при этом способный работать поверх сетей Ethernet, что отличает его от собрата в лице InfiniBand. RoCE обеспечивает более низкие задержки при передаче данных, чем его прямой аналог в лице iWARP, минимизирует нагрузку на CPU, а также обеспечивает пропускную способность наравне с протоколом InfiniBand (800 Гбит/с). Примечательно, что протокол RoCE v1 впервые появился в 2010 году из-под крыла торговой ассоциации InfiniBand (IBTA), которая ответственна за выпуск одноименного, проприетарного сетевого протокола Infiniband для сектора HPC. Этот шаг был направлен на то, чтобы представить рынку RDMA-решение, которое будет совместимо с более массовыми Ethernet-сетями. После нескольких лет доработки, IBTA также представила обновленную версию протокола RoCE v2, который и стал наиболее массовой реализацией RoCE.
Разница между стеками RoCE v1 и RoCE v2. Источник: .
Версии RoCE
Но в чем же отличие двух версий RoCE и почему именно RoCE v2 стала популярной? Рассмотрим их особенности и отличия:
RoCE v1
RoCE v1 — первая версия протокола, использующая шифровку пакетов Ethertype 0x8915 и работающая на базе L2 Ethernet, вследствие чего RoCE v1 ограничивал длину кадра протокола Ethernet: 1500 байт для обычного кадра и 9000 байт для Jumbo Frame кадра (наибольшие пакеты данных). Кроме того, домен RoCE v1 ограничен одним широковещательным доменом (одним VLAN или одной подсетью L2), то есть для подключения устройств в единую систему они должны находиться только в пределах одной локальной сети и передавать трафик по одному каналу, вследствие чего сеть будет сильно перегружаться. Другими словами, RoCE v1 не поддерживает IP-домены и работает только с MAC-адресами, вследствие чего не используются все возможности Ethernet-сети.
Также для корректной работы RoCE v1 необходимо отключать контроль трафика Ethernet flow control (IEEE 802.3x), а также включать функции Priority-based Flow Control (802.1Qbb) и маркировку пакетов (ECN) для работы Lossless Ethernet.
Lossless Ethernet — это расширение стандартного Ethernet, которое гарантирует доставку пакетов без потерь даже в условиях перегрузки сети. Это критически важно для протоколов, чувствительных к потерям пакетов (например, RoCE v2, iSCSI, FCoE), где повторная передача данных увеличивает задержки и снижает производительность. При отключении функций Lossless Ethernet, все преимущества протокола RoCE v2 нивелируются — задержки значительно увеличиваются и возрастает нагрузка на CPU для повторной отправки пакетов.
В противном случае пакеты данных будут утеряны из-за угрозы переполнения буфера, что вызывает микропаузы. Последнее является особенно серьезной проблемой, поскольку кластерные системы конвергентны и все устройства работают с единой задержкой, а микропаузы нарушают этот баланс и сильно снижают производительность.
Форматы пакетов протоколов RoCEv1 и RoCEv2. Источник: .
RoCE v2
RoCE v2 — вторая версия протокола (после экспериментальной версии RoCE v1.5), которая лишена недостатков RoCE v1 и привносит новые возможности. Например, RoCE v2 поддерживает передачу данных поверх протоколов UDP/IPv4 или UDP/IPv6, а также обеспечивает маршрутизацию через уровень L3 Ethernet, тем самым устраняя ограничения по масштабируемости L2. Примечательно, что для корректной передачи пакетов RoCE v2 также требует Lossless Ethernet, но из-за поддержки маршрутизации обеспечение бесконфликтной среды требует более сложной настройки QOS. Например, по-прежнему нужно включать PFC и ECN (DCB для дата-центров), а также необходимы коммутаторы с поддержкой алгоритмов CC (Congestion Control) для предотвращения перегрузки сети путем снижения скорости передачи данных. Также протокол RoCE v2 по умолчанию использует порт UDP 4791, но он может быть сконфигурирован под требования определенной вычислительной инфраструктуры.
Примечательно, что протокол RoCE v2 может работать без наличия сетевого коммутатора в системе, однако при соблюдении ряда условностей:
Серверы должны быть подключены по системе “точка-точка”, то есть напрямую друг к другу с помощью Ethernet-кабеля.
Можно подключить не более двух серверов.
Необходимо настроить IP-адреса серверов так, чтобы они находились в одной подсети.
Размеры пакетов (MTU) должен быть одинаковыми.В случае, если сетевые карты настроены на разные размеры пакетов, часть данных будет утеряна. Для максимальной производительности рекомендуется настраивать SmartNIC на пакеты по 9014 байт.
Оба сервера должны быть оборудованы сетевыми картами с поддержкой RDMA. Настройка QoS (ETS, PFC и DCB) не требуется. Тем не менее, для выстраивания полноценных кластеров, коммутатор жизненно необходим.
Архитектура сетевой инфраструктуры на базе RoCEv2. Источник: .
Предлагаем вам ознакомиться с подробной таблицей, в которой описаны отличия сетевых технологий RoCE и традиционным Ethernet-протоколом TCP/IP.
Критерий
RoCE v2
TCP/IP
Принцип работы
Прямой доступ к памяти (RDMA), минуя ОС и CPU. Данные копируются напрямую между буферами приложений
Данные проходят через стек ОС (ядро → пользовательское пространство), требуя копирования и обработки CPU.
Задержка (Latency)
1–5 мкс (микросекунд) благодаря обходу ядра ОС
80–100 мкс из-за накладных расходов стека и копирования данных
Нагрузка на CPU
Минимальная (0–5%). Операции выполняются сетевой картой (NIC)
Высокая (до 100% при больших нагрузках). CPU обрабатывает заголовки, контрольные суммы, ретрансмиссии
Надежность
Требует lossless Ethernet (PFC + ECN). Без настройки возможны потери пакетов
Встроенные механизмы (ретрансмиссии, ACK). Устойчив к потерям в ненадежных сетях
Масштабируемость
Высокая в L3-сетях, но требует однородной инфраструктуры (DCB, ECN)
Отличная в гетерогенных сетях (интернет, WAN), но нагрузка на CPU ограничивает плотность соединений
Топология сети
Только в дата-центрах с поддержкой Data Center Bridging (PFC, ECN)
Универсальная (LAN, WAN, интернет). Работает на любом Ethernet-оборудовании
Накладные расходы
Минимальные (инкапсуляция в UDP/IP + заголовок RDMA)
Высокие (заголовки TCP + IP, контрольные суммы, ACK-пакеты)
Веб-сервисы, стриминг, файловые передачи (FTP), IoT
Сложность настройки
Высокая: требуется настройка PFC, ECN, DCQCN на коммутаторах и NIC
Низкая: стандартные настройки Ethernet/IP
RoCE vs. аналоги
Мы рассказали вам о главных особенностях протокола RoCE и даже сравнили его со стандартными Ethernet-протоколами. Однако, каковы преимущества RoCE в сравнении с его прямыми RDMA-аналогами, такими как Infiniband и iWARP.
InfiniBand — по-началу проприетарный протокол Infiniband во всем превосходил RoCE, включая показатели задержки и пропускной способности. Однако, со временем ситуация поменялась — RoCE стал эквивалентен Infiniband по пропускной способности, достигая вплоть до 800 Гбит/с, но RoCE все еще уступает по задержкам (1 мкс у Infiniband против 2-5 мкс у RoCE). Благодаря таким впечатляющим характеристикам, а также большей доступности и широкого выбора совместимого оборудования, RoCE широко распространен в коммерческих инфраструктурах, но в секторе HPC все же доминирует протокол InfiniBand.
iWARP — RoCE более совершенная технология передачи данных, чем iWARP, поскольку появилась значительно позднее и обладает лучшими характеристиками. В частности, RoCE обеспечивает кратно меньшие задержки, чем iWARP, задержки которого достигают 10–50 мкс. Помимо этого, пропускная способность iWARP ограничена 200 Гбит/с, что в 4 раза меньше пропускной способности RoCE. Однако, iWARP все же может похвастаться определенным преимуществом — для его работы не требуется интеграция какого-либо дополнительного, совместимого оборудования, поскольку он может свободно функционировать поверх существующей инфраструктуры TCP.
Сравнение стеков протоколов InfiniBand, RoCE v1/v2 и iWARP. Источник: .
Сферы применения RoCE
Рассмотрим несколько сфер, в которых использование протокола RoCE будет наиболее эффективным:
Сравнение традиционной связи сервер-сервер (слева) с связью сервер-сервер RoCE (справа). Источник: .
Облачные хранилища
RoCE критически важен для ускорения работы NVMe over Fabrics (NVMe-oF), обеспечивая прямой доступ к удаленным SSD с задержками в несколько микросекунд — на порядок ниже решений на базе TCP/IP (100+ мкс). Кроме того, RoCE обеспечивает более 1 миллиона IOPS (4K случайное чтение), что в 10-20 раз выше, чем у протоколов TCP/IP. Технология реализует механизм zero-copy, исключая копирование данных между буферами ядра ОС и приложением, что снижает нагрузку на CPU до 30%. В распределенных системах хранения, таких как Ceph, интеграция RoCE через librbd ускоряет операции чтения/записи в 3–5 раз. Промышленные решения типа Pure Storage FlashBlade и VAST Data используют RoCE для достижения пропускной способности 100+ Гбит/с на узел при работе с NVMe-oF.
RoCE может выступать в качестве RDMA-транспорта для NVMe over Fabrics (NVMe-oF). Источник: .
Искусственный интеллект и машинное обучение
В распределенных GPU-кластерах RoCE обеспечивает сверхнизкую задержку синхронизации данных (2–5 мкс) через NVIDIA GPUDirect RDMA, позволяя тысячам GPU обмениваться данными без участия CPU. Это позволяет значительно сократить время на обучение нейросетей, особенно на базе архитектур ResNet-50 или BERT. В кластерах масштаба NVIDIA DGX SuperPOD RoCE является базовой технологией для горизонтального масштабирования, обеспечивая пропускную способность до 800 Гбит/с между узлами. Помимо этого, в NVIDIA DGX часто интегрируют сопроцессоры DPU, которые поддерживают RoCE вследствие работы на базе Ethernet-сетей.
Перемещение трафика RoCE в сетевой инфраструктуре дата-центра. Источник: .
Виртуализация
Для миграции виртуальных машин RoCE минимизирует задержки до миллисекунд за счет высокой пропускной способности и устранения накладных расходов на обработку сетевого стека. В средах VMware vSphere поддержка RDMA (через vRDMA) ускоряет vMotion, а в Kubernetes CNI-плагины на базе RoCE (например, Multus) обеспечивают изолированные низколатентные сети для контейнеров. Технология также интегрируется с Hyper-V SMB Direct, ускоряя доступ к удаленным дискам в 4 раза.
Финансовый сектор
В высокочастотном трейдинге (HFT) RoCE снижает сетевую задержку до минимальных значений, что на 90% меньше задержек типичных Ethernet-решений. Это позволяет обрабатывать рыночные данные и исполнять ордера в разы быстрее конкурентов. Системы на базе сетевых карт AMD, Broadcom и Mellanox используют RoCEv2 для детерминированной доставки пакетов в рамках одной стойки. Пропускная способность в 800 Гбит/с гарантирует обработку свыше 1 млн транзакций в секунду без потерь.
Проблемы RoCE
Несмотря на все преимущества протокола RoCE, у него все-таки есть недостаток, который может стать главной причиной выбора таких аналогов, как InfiniBand и iWARP.
Безопасность
Основная уязвимость RoCE — отсутствие сквозного шифрования. Данные передаются в открытом виде, что критично для публичных облаков и многопользовательских сред. Попытки добавить TLS поверх RoCE (например, через адаптацию OpenSSL) разрушают ключевые преимущества технологии: задержка возрастает на 40–60% из-за криптографических вычислений на CPU, а нагрузка на процессор достигает 80% при 100 Gbps, полностью нивелируя эффект offload. Однако решения вроде, Nvidia BlueField и AMD Pensando, частично решают проблему выполнения криптографических операций благодаря наличию специальных программируемых ядер, интегрированных в аппаратную составляющую сетевой карты с поддержкой RoCE. Еще один фактор, негативно влияющий на безопасность использования протокола RoCE — необходимость отключения функции Ethernet flow control.
Выводы
Технология RoCE — это инновационное сетевое решение с поддержкой функций RDMA, благодаря которому коммерческие вычислительные инфраструктуры смогли получить возможность выстраивания высокопроизводительных кластеров, при этом сохраняя баланс между стоимостью оборудования, его производительностью и минимизируя задержки. Этот протокол — действительно лучшая альтернатива проприетарному InfiniBand, несмотря на ряд незначительных минусов, вроде усложненной настройки.
Продолжная использовать наш сайт, вы даете согласие на использование файлов Cookie, пользовательских данных (IP-адрес, вид операционной системы, тип браузера, сведения о местоположении, источник, откуда пришел на сайт пользователь, с какого сайта или по какой рекламе, какие страницы
открывает и на какие страницы нажимает пользователь) в целях функционирования сайта, проведения статистических исследований и обзоров. Если вы не хотите, чтобы ваши данные обрабатывались, покиньте сайт.