iWARP — это сетевой протокол , реализующий удаленный прямой доступ к памяти (RDMA) для эффективной передачи данных по сетям Интернет-протокола. Вопреки некоторым мнениям, [1] iWARP не является аббревиатурой. [2]
Поскольку iWARP основан на протоколах, учитывающих перегрузки и соответствующих стандартам IETF ( Internet Engineering Task Force ), таких как Transmission Control Protocol (TCP) и Stream Control Transmission Protocol (SCTP), он предъявляет мало требований к сети и может быть успешно развернут в широком диапазоне сред.
В 2007 году IETF опубликовала пять запросов на комментарии (RFC), определяющих iWARP:
Эти RFC основаны на спецификациях RDMA Consortium для RDMA через TCP. [3] Спецификации RDMA Consortium находятся под влиянием более ранних стандартов RDMA, включая Virtual Interface Architecture (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 по TCP на самом деле является RDMAP по DDP по MPA/TCP или SCTP. Все эти протоколы могут быть реализованы на аппаратном уровне.
В отличие от IB, iWARP имеет только надежную подключенную связь, поскольку это единственная услуга, которую предоставляют TCP и SCTP. Спецификация iWARP не включает другие функции IB, такие как операции Send with Immediate Data. С помощью RFC 7306 IETF работает над устранением этих упущений.
Поскольку реализация ядра стека TCP может рассматриваться как узкое место, протокол обычно реализуется в контроллерах сетевого интерфейса RDMA (rNIC). Поскольку простые потери данных редки в тесно связанных сетевых средах, механизмы исправления ошибок TCP могут выполняться программным обеспечением, в то время как более часто выполняемые коммуникации обрабатываются строго логикой, встроенной в rNIC. Аналогично, соединения часто устанавливаются полностью программным обеспечением, а затем передаются оборудованию. Более того, обработка специфических для iWARP деталей протокола обычно изолирована от реализации TCP, что позволяет использовать rNIC как для разгрузки RDMA, так и для разгрузки TCP (для поддержки традиционных приложений TCP/IP на основе сокетов). Часть аппаратной реализации, используемая для реализации протокола TCP, известна как TCP Offload Engine (TOE).
TOE сам по себе не предотвращает копирование на стороне приема и должен быть объединен с оборудованием RDMA для получения результатов нулевого копирования. Спецификация RDMA/TCP представляет собой набор различных проводных протоколов, предназначенных для реализации на оборудовании (хотя представляется возможным эмулировать его на программном обеспечении для совместимости, но без преимуществ производительности).
iWARP — это протокол, а не реализация, но он определяет поведение протокола в терминах операций, которые являются допустимыми для протокола, известных как Verbs. Таким образом, iWARP не имеет единого стандартного интерфейса программирования. Однако интерфейсы программирования, как правило, очень близко соответствуют Verbs.
Было предложено несколько программных интерфейсов, включая OpenFabrics Verbs, Network Direct, uDAPL, kDAPL, IT-API и RNICPI. Реализации некоторых из этих интерфейсов доступны для разных платформ, включая Windows и Linux.
Сетевые службы, реализованные через iWARP, включают те, которые предлагаются в OpenFabrics Enterprise Distribution (OFED) альянсом OpenFabrics Alliance для операционных систем Linux , а также Microsoft Windows через Network Direct.
Популярные поставщики оборудования с поддержкой iWarp: