iWARP — это протокол компьютерной сети , который реализует прямой удаленный доступ к памяти (RDMA) для эффективной передачи данных по сетям Интернет-протокола. Вопреки некоторым мнениям, [1] iWARP не является аббревиатурой. [2]
Поскольку iWARP основан на протоколах стандарта Internet Engineering Task Force (IETF), учитывающих перегрузку , таких как протокол управления передачей (TCP) и протокол передачи управления потоком (SCTP), он предъявляет мало требований к сети и может быть успешно развернут в сети. широкий спектр сред.
В 2007 году IETF опубликовал пять запросов на комментарии (RFC), определяющих iWARP:
Эти RFC основаны на спецификациях Консорциума RDMA для RDMA через TCP. [3] На спецификации консорциума RDMA влияют более ранние стандарты RDMA, включая архитектуру виртуального интерфейса (VIA) и InfiniBand (IB).
С 2007 года IETF опубликовал три дополнительных RFC, которые поддерживают и расширяют iWARP:
Основным компонентом протокола iWARP является протокол прямого размещения данных (DDP), который обеспечивает фактическую передачу без копирования. Сам DDP не осуществляет передачу; базовый протокол (TCP или SCTP) делает это.
Однако TCP не учитывает границы сообщений; он отправляет данные в виде последовательности байтов без учета блоков данных протокола (PDU). В этом отношении сам DDP может лучше подходить для SCTP, и IETF действительно предложил стандарт RDMA вместо SCTP. [4] Для запуска DDP через TCP требуется настройка, известная как кадрирование с выравниванием по маркеру PDU (MPA), чтобы гарантировать границы сообщений.
Более того, DDP не предназначен для прямого доступа. Вместо этого отдельный протокол RDMA (RDMAP) предоставляет услуги для чтения и записи данных. Таким образом, вся спецификация RDMA over TCP на самом деле представляет собой RDMAP over DDP либо MPA/TCP, либо SCTP. Все эти протоколы могут быть реализованы аппаратно.
В отличие от IB, iWARP обеспечивает только надежную подключенную связь, поскольку это единственная услуга, предоставляемая TCP и SCTP. В спецификации iWARP отсутствуют другие функции IB, такие как операция «Отправка с немедленными данными». С помощью RFC 7306 IETF работает над сокращением этих упущений.
Поскольку реализация стека TCP в ядре может рассматриваться как узкое место, протокол обычно реализуется в аппаратных контроллерах сетевого интерфейса RDMA (rNIC). Поскольку простые потери данных редки в сильно связанных сетевых средах, механизмы исправления ошибок TCP могут выполняться программным обеспечением, в то время как более часто выполняемые соединения обрабатываются строго логикой, встроенной в rNIC. Точно так же соединения часто полностью устанавливаются программным обеспечением, а затем передаются на оборудование. Более того, обработка конкретных деталей протокола iWARP обычно изолирована от реализации TCP, что позволяет использовать rNIC как для разгрузки RDMA, так и для разгрузки TCP (при поддержке традиционных приложений TCP/IP на основе сокетов). Часть аппаратной реализации, используемая для реализации протокола TCP, известна как механизм разгрузки TCP (TOE).
TOE сам по себе не предотвращает копирование на стороне приема и должен быть объединен с оборудованием RDMA для получения результатов с нулевым копированием. Спецификация RDMA/TCP представляет собой набор различных проводных протоколов, предназначенных для аппаратной реализации (хотя кажется возможным эмулировать ее в программном обеспечении для совместимости, но без повышения производительности).
iWARP — это протокол, а не реализация, но он определяет поведение протокола с точки зрения допустимых для протокола операций, известных как глаголы. Таким образом, iWARP не имеет единого стандартного интерфейса программирования. Однако программные интерфейсы, как правило, очень близко соответствуют глаголам.
Было предложено несколько программных интерфейсов, включая OpenFabrics Verbs, Network Direct, uDAPL, kDAPL, IT-API и RNICPI. Реализации некоторых из этих интерфейсов доступны для разных платформ, включая Windows и Linux.
Сетевые услуги, реализованные через iWARP, включают те, которые предлагаются в OpenFabrics Enterprise Distribution (OFED) OpenFabrics Alliance для операционных систем Linux и Microsoft Windows через Network Direct.
Популярные поставщики оборудования с поддержкой iWarp включают: