- PVSM.RU - https://www.pvsm.ru -

Многопутевая (multipath) модификация для протокола TCP: первый эксперимент

Многопутевая (multipath) модификация для протокола TCP: первый эксперимент

В TCP/IP мы устанавливаем соединение с определённым IP-адресом, после чего обмениваемся пакетами только с этим адресом. Разработчики нового расширения для протокола Multipath TCP (RFC 6824 [1]) предлагают снять это историческое ограничение. По их мнению, использование многопутевой (multipath) модификации TCP упростит использование этого протокола во многих прикладных задачах, таких как прозрачное перенаправление трафика с одного устройства на другое и балансировка нагрузки.

Многопутевая модификация Multipath TCP или MPTCP позволяет легко подключать сервер сразу к нескольким каналам Ethernet, а на смартфоне использовать одновременно WiFi и 3G, да и вообще появляется много других интересных возможностей.

Конечно, под Linux и сейчас можно вручную распределить трафик по нескольким каналам, но это не слишком эффективно: см. статью «Объединение пропускной способности двух интернет-каналов и простая отказоустойчивость [2]»

Если соединение установлено по Multipath TCP (MPTCP), то возможен обмен пакетами с несколькими адресами/интерфейсами одновременно, в рамках одного соединения. В то же время соединение MPTCP сохраняет обратную совместимость со старыми версиями TCP и допускает подключение устройства по обычному TCP. Другими словами, если ваш компьютер поддерживает MPTCP, то вы можете подключиться к трём провайдерам без поддержки MPTCP — и установить соединение с другим клиентом MPTCP на тройной скорости.

Разработчики MPTCP приводят типичные примеры его использования (pdf) [3].

  • Увеличение скорости доступа за счёт подключения к нескольким провайдерам (например, подключение сервера по нескольким интерфейсам).
  • Улучшение качества мобильной связи за счёт подключения к нескольким точкам доступа одновременно.
  • Одновременное использование WiFi и 3G.

Многопутевая (multipath) модификация для протокола TCP: первый эксперимент

Естественно, есть и много других вариантов. Подключать каналы по разным интерфейсам и пропускать трафик по всем этим каналам одновременно — очень удобно, не говоря уже о значительной прибавке в скорости.

Один из авторов спецификаций MPTCP с коллегами недавно провёл первый эксперимент MPTCP [4], установив прямое соединение между двумя серверами HP DL380p G7. В каждом из них было установлено по три двухпортовые карточки Intel 82599EB 10Gb Ethernet, так что в итоге канал состоял из шести параллельных кабелей 10Gb. В результате, на единственном TCP-соединении была зафиксирована скорость 51,8 Гбит/с.

Для эксперимента разработчикам пришлось вручную внести изменения в ядро Linux [5], добавив туда поддержку MPTCP.

Автор: alizar

Источник [6]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/tcp/30407

Ссылки в тексте:

[1] RFC 6824: https://tools.ietf.org/html/rfc6824

[2] Объединение пропускной способности двух интернет-каналов и простая отказоустойчивость: http://habrahabr.ru/post/54748/

[3] примеры его использования (pdf): https://www.usenix.org/system/files/conference/nsdi12/nsdi12-final125.pdf

[4] первый эксперимент MPTCP: http://multipath-tcp.org/pmwiki.php?n=Main.50Gbps

[5] внести изменения в ядро Linux: http://github.com/multipath-tcp/mptcp

[6] Источник: http://habrahabr.ru/post/174271/