Разница между IPoIB и TCP через Infiniband

Может ли кто-нибудь объяснить концепции IPoIB и TCP через infiniband? Я понимаю общую концепцию и скорости передачи данных, обеспечиваемые нативным infiniband, но не совсем понимаю, как TCP и IPoIB вписываются в них. Зачем они вам нужны и что они делают? Какая разница, когда кто-то говорит, что его сеть использует IPoIB или TCP с infiniband? Какой лучше? У меня нет сильного опыта работы в сети, поэтому было бы неплохо, если бы вы могли уточнить.

Спасибо за помощь.


person jitihsk    schedule 18.05.2011    source источник
comment
IP — это протокол сетевого уровня (уровень 3), TCP — это транспортный уровень протокол уровня (уровень 4), поэтому TCP часто работает поверх IP (который обычно работает поверх Ethernet или Infiniband, как вы упомянули).   -  person Andre Holzner    schedule 22.05.2011


Ответы (1)


Адаптеры InfiniBand («HCA») предоставляют несколько расширенных функций, которые можно использовать через собственный программный интерфейс «verbs»:

  1. Передача данных может быть инициирована непосредственно из пользовательского пространства на оборудование, минуя ядро ​​и избегая накладных расходов на системный вызов.
  2. Адаптер может обрабатывать все сетевые протоколы разбивки большого сообщения (даже много мегабайт) на пакеты, генерации/обработки ACK, повторной передачи потерянных пакетов и т. д. без использования ЦП ни отправителя, ни получателя.

IPoIB (IP-over-InfiniBand) — это протокол, который определяет, как отправлять IP-пакеты через IB; и, например, в Linux есть драйвер «ib_ipoib», который реализует этот протокол. Этот драйвер создает сетевой интерфейс для каждого порта InfiniBand в системе, благодаря чему HCA действует как обычная сетевая карта.

IPoIB не в полной мере использует возможности HCA; сетевой трафик проходит через обычный стек IP, что означает, что для каждого сообщения требуется системный вызов, а центральный процессор должен обрабатывать разбиение данных на пакеты и т. д. Однако это означает, что приложения, использующие обычные сокеты IP, будут работать поверх полная скорость канала IB (хотя ЦП, вероятно, не сможет запустить стек IP достаточно быстро, чтобы использовать канал IB QDR 32 Гбит/с).

Поскольку IPoIB предоставляет обычный интерфейс IP NIC, поверх него можно запускать сокеты TCP (или UDP). При использовании последних систем возможна пропускная способность TCP более 10 Гбит/с, но при этом будет сжигаться значительное количество ресурсов ЦП. На ваш вопрос, на самом деле нет разницы между IPoIB и TCP с InfiniBand — оба они относятся к использованию стандартного стека IP поверх оборудования IB.

Настоящая разница заключается в использовании IPoIB с обычным приложением для сокетов и использованием собственного InfiniBand с приложением, которое было закодировано непосредственно для собственного интерфейса глаголов IB. Нативное приложение почти наверняка получит гораздо более высокую пропускную способность и меньшую задержку, при этом затрачивая меньше ресурсов ЦП на работу в сети.

person Roland    schedule 21.05.2011