Pull to refresh

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

Reading time 2 min
Views 34K


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

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

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

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

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

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




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

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



Для эксперимента разработчикам пришлось вручную внести изменения в ядро Linux, добавив туда поддержку MPTCP.
Tags:
Hubs:
+23
Comments 58
Comments Comments 58

Articles