Разница между IPoIB и TCP над Infiniband - PullRequest
37 голосов
/ 19 мая 2011

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

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

1 Ответ

66 голосов
/ 21 мая 2011

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

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

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

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

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

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

...