Многопутевый TCP

редактировать

Многопутевый TCP ( MPTCP) - это постоянная работа рабочей группы Многопутевого TCP ( IETF) Инженерной группы Интернета (IETF), цель которой - позволить соединению по протоколу управления передачей (TCP) использовать несколько путей для максимального использования ресурсов и увеличения избыточности.

В январе 2013 года IETF опубликовала спецификацию Multipath в качестве экспериментального стандарта в RFC 6824. В марте 2020 года она была заменена спецификацией Multipath TCP v1 в RFC 8684.

СОДЕРЖАНИЕ
  • 1 Преимущества
  • 2 Пользовательский интерфейс
  • 3 Реализация
  • 4 сценария использования
  • 5 Опции многопутевого TCP
  • 6 Работа протокола
    • 6.1 Упрощенное описание
    • 6.2 Подробная спецификация
  • 7 Контроль перегрузки
  • 8 альтернатив
    • 8.1 Протокол передачи управления потоком
    • 8.2 IMS SIP
    • 8.3 Многолучевой QUIC
    • 8.4 Другие протоколы и эксперименты
  • 9 RFC
  • 10 См. Также
  • 11 Источники
  • 12 Внешние ссылки
Преимущества

Избыточность, предлагаемая Multipath TCP, обеспечивает обратное мультиплексирование ресурсов и, таким образом, увеличивает пропускную способность TCP до суммы всех доступных каналов канального уровня вместо использования одного, как того требует стандартный TCP. Многопутевый TCP обратно совместим со стандартным TCP.

Многопутевый TCP особенно полезен в контексте беспроводных сетей; использование Wi-Fi и мобильной сети является типичным вариантом использования. В дополнение к увеличению пропускной способности за счет обратного мультиплексирования, ссылки могут добавляться или удаляться по мере того, как пользователь входит или выходит из зоны покрытия, без нарушения сквозного TCP-соединения.

Таким образом, проблема передачи канала связи решается путем абстракции на транспортном уровне без каких-либо специальных механизмов на сетевом или канальном уровнях. Функциональность хэндовера затем может быть реализована на оконечных точках, не требуя специальных функций в подсетях - в соответствии с принципом непрерывности Интернета.

Многопутевый TCP также дает преимущества в производительности в средах центров обработки данных. В отличие от связывания каналов Ethernet с использованием агрегации каналов 802.3ad, Multipath TCP может сбалансировать одно TCP-соединение через несколько интерфейсов и достичь очень высокой пропускной способности.

Многопутевый TCP вызывает ряд новых проблем. С точки зрения сетевой безопасности, многопутевая маршрутизация вызывает фрагментацию данных между путями, что приводит к тому, что брандмауэры и сканеры вредоносных программ становятся неэффективными, когда они видят трафик только по одному пути. Кроме того, расшифровка SSL станет неэффективной из-за протоколов сквозного шифрования.

Пользовательский интерфейс

Для облегчения развертывания Multipath TCP представляет тот же интерфейс сокетов, что и TCP. Это означает, что любое стандартное приложение TCP может использоваться поверх многопутевого TCP, фактически распределяя данные по нескольким подпотокам.

Многопутевый TCP в стеке протоколов

Некоторым приложениям может быть полезен расширенный API для управления лежащим в основе стеком Multipath TCP. Было предложено два различных API, чтобы предоставить приложениям некоторые функции стека Multipath TCP: API, расширяющий Netlink в Linux, и усовершенствованный API сокетов.

Реализация

В июле 2013 года рабочая группа MPTCP сообщила о пяти независимых реализациях Multipath TCP, включая эталонную реализацию в ядре Linux.

В настоящее время доступны следующие реализации :

В июле 2014 года Oracle сообщила, что разрабатывается реализация на Solaris. В июне 2015 года работы продолжаются.

Во время встречи рабочей группы MPTCP на IETF 93 Сон Хун Сео объявил, что с середины июня KT развернула коммерческий сервис, который позволяет пользователям смартфонов достигать скорости 1 Гбит / с с помощью прокси-сервиса MPTCP. Tessares использует реализацию ядра Linux для развертывания сетей гибридного доступа.

Постоянно прилагаются усилия по продвижению новой реализации Multipath TCP в основное ядро ​​Linux,

Случаи применения

Многопутевый TCP был разработан для обеспечения обратной совместимости с обычным TCP. Таким образом, он может поддерживать любое приложение. Однако в некоторых конкретных развертываниях используется возможность одновременного использования разных путей.

Apple использует Multipath TCP для поддержки приложения Siri на iPhone. Siri отправляет образцы голоса через сеанс HTTPS на серверы Apple. Эти серверы отвечают информацией, запрошенной пользователями. По словам инженеров Apple, основными преимуществами Multipath TCP для этого приложения являются:

  • Обратная связь с пользователем (время до первого слова) на 20% быстрее в 95-м процентиле
  • 5-кратное сокращение количества сбоев в сети

Другое развертывание использует Multipath TCP для агрегирования пропускной способности различных сетей. Например, несколько типов смартфонов, особенно в Корее, используют Multipath TCP для связи Wi-Fi и 4G через прокси-серверы SOCKS. Другим примером являются сети гибридного доступа, которые развертываются операторами сетей, желающими объединить сети xDSL и LTE. В этом развертывании Multipath TCP используется для эффективного балансирования трафика через xDSL и сеть LTE.

При стандартизации конвергентных фиксированных и мобильных сетей связи 3GPP и BBF взаимодействуют, чтобы обеспечить функцию ATSSS (выбор трафика доступа, переключение, разделение) для поддержки многолучевых сеансов, например, путем применения многопутевого TCP как в пользовательском оборудовании (UE), так и в резидентном шлюзе. (RG) и на сетевой стороне.

Параметры многопутевого TCP

Многопутевый TCP использует параметры, которые подробно описаны в RFC 6824. Все параметры многопутевого TCP кодируются как параметры TCP с типом параметра 30, зарезервированным IANA.

Параметр Multipath TCP имеет вид (30), длину (переменную), а остальная часть содержимого начинается с 4-битного поля подтипа, для которого IANA создала и будет поддерживать подреестр под названием «Подтипы опций MPTCP» под Реестр «Параметры протокола управления передачей (TCP)». Эти поля подтипа определены следующим образом:

Ценить Условное обозначение Имя
0x0 MP_CAPABLE Возможность многолучевого распространения
0x1 MP_JOIN Присоединиться к подключению
0x2 DSS Сигнал последовательности данных (подтверждение данных и отображение последовательности данных)
0x3 ADD_ADDR Добавить адрес
0x4 REMOVE_ADDR Удалить адрес
0x5 MP_PRIO Изменить приоритет подпотока
0x6 MP_FAIL Отступать
0x7 MP_FASTCLOSE Быстрое закрытие
0xf (ЧАСТНЫЙ) Частное использование на контролируемых испытательных стендах

Значения от 0x8 до 0xe в настоящее время не присвоены.

Работа протокола

Упрощенное описание

Разница между TCP и MPTCP

Основная идея многопутевого TCP состоит в том, чтобы определить способ установления соединения между двумя хостами, а не между двумя интерфейсами (как это делает стандартный TCP).

Например, у Алисы есть смартфон с интерфейсами 3G и WiFi (с IP-адресами 10.11.12.13 и 10.11.12.14), а у Боба есть компьютер с интерфейсом Ethernet (с IP-адресом 20.21.22.23).

В стандартном TCP соединение должно быть установлено между двумя IP-адресами. Каждое TCP-соединение идентифицируется четырьмя кортежами (исходный и целевой адреса и порты). Учитывая это ограничение, приложение может создать только одно TCP-соединение по одной ссылке. Многопутевый TCP позволяет соединению использовать несколько путей одновременно. Для этого Multipath TCP создает одно TCP-соединение, называемое подпотоком, по каждому пути, который необходимо использовать.

Целью различных операций протокола (определенных в RFC 6824) является:

  • обрабатывать, когда и как добавлять / удалять пути (например, если соединение потеряно из-за некоторого контроля перегрузки)
  • чтобы быть совместимым с устаревшим оборудованием TCP (например, с некоторыми брандмауэрами, которые могут автоматически отклонять TCP-соединения, если порядковый номер не является последовательным)
  • для определения стратегии справедливого контроля перегрузки между разными ссылками и разными хостами (особенно с теми, которые не поддерживают MPTCP)
Пример полного сеанса MPTCP

Многопутевый TCP добавляет новые механизмы к TCP-передачам:

  • Система подпотока, используемая для сбора нескольких стандартных TCP-соединений (путей от одного хоста к другому). Подпотоки идентифицируются во время трехстороннего установления связи TCP. После рукопожатия приложение может добавлять или удалять некоторые подпотоки (подтипы 0x3 и 0x4).
  • Опция MPTCP DSS содержит порядковый номер данных и номер подтверждения. Это позволяет получать данные из нескольких подпотоков в исходном порядке без какого-либо повреждения (подтип сообщения 0x2)
  • Модифицированный протокол повторной передачи обеспечивает контроль перегрузки и надежность.

Подробная спецификация

Подробная спецификация протокола представлена ​​в RFC 8684. Несколько обзорных статей содержат введение в протокол.

Контроль перегрузки

Для многопутевого TCP определено несколько механизмов управления перегрузкой. Их главное отличие от классических схем управления перегрузкой TCP заключается в том, что они должны реагировать на перегрузку на разных путях, не проявляя несправедливости к источникам TCP с одним путем, которые могут конкурировать с ними на одном из путей. Четыре схемы управления перегрузкой Multipath TCP в настоящее время поддерживаются реализацией Multipath TCP в ядре Linux.

  • Алгоритм связанного увеличения, определенный в RFC 6356
  • Алгоритм оппортунистического связанного увеличения
  • Алгоритм управления перегрузкой на основе задержки wVegas
  • Алгоритм сбалансированного связанного увеличения
Альтернативы

Протокол передачи управления потоком

Основная статья: Протокол передачи управления потоком

Протокол передачи управления потоком (SCTP) - это надежный протокол передачи потока дейтаграмм, изначально предназначенный для передачи сигналов электросвязи. Он поддерживает одновременное использование множественных ссылок доступа и позволяет приложению влиять на выбор интерфейса доступа на основе потока дейтаграмм. Он также поддерживает мобильность через повторное согласование доступа. Следовательно, SCTP также является решением транспортного уровня. Он предлагает детализацию потока типа 3 с параллелизмом, но с большим контролем планирования потока, чем Multipath TCP. Он также полностью поддерживает мобильность аналогично многопутевому TCP.

IMS SIP

Основные статьи: Протокол инициирования сеанса и подсистема IP-мультимедиа

В архитектуре IP Multimedia Subsystem (IMS) протокол инициации сеанса (SIP) может поддерживать одновременное использование нескольких контактных IP-адресов для регистрации одного или нескольких пользовательских агентов IMS. Это позволяет создавать несколько сигнальных трактов IMS. На этих путях сигнализации сигнальные сообщения переносят сообщения протокола описания сеанса (SDP) для согласования потоков мультимедиа. SDP позволяет (повторно) согласовывать потоки одного сеанса мультимедиа по нескольким путям. В свою очередь, это обеспечивает многопутевую транспортировку на прикладном уровне. Таким образом, с этой точки зрения IMS может предложить поддержку многопутевого доступа на прикладном уровне с детализацией потока и одновременным доступом. Расширение многопутевого протокола для транспортного протокола реального времени (RTP) обсуждается в IETF. Многопутевый RTP может предлагать детализацию потока с одновременным доступом и мобильностью (через IMS, сигнализацию SDP или протокол управления RTP). Совсем недавно на конференции IETF в TSVWG (Рабочая группа по транспортной области), получившей название MP-DCCP, обсуждается также предложение о расширении DCCP (протокол управления перегрузкой дейтаграмм) функцией многолучевого распространения.

Многопутевый QUIC

В настоящее время IETF разрабатывает протокол QUIC, который объединяет функции, традиционно присутствующие в протоколах TCP, TLS и HTTP. Благодаря гибкости и расширяемости QUIC, его можно расширить для поддержки нескольких путей и решения тех же сценариев использования, что и Multipath TCP. Был предложен, реализован и оценен первый проект Multipath QUIC.

Другие протоколы и эксперименты

На уровне сеанса в рамках проекта «Маршрутизатор мобильного доступа» в 2003 г. проводился эксперимент с объединением нескольких беспроводных подключений с использованием гетерогенных технологий, прозрачно балансируя трафик между ними в ответ на воспринимаемую производительность каждого из них.

Схемы параллельного доступа, используемые для ускорения передачи за счет использования запросов диапазона HTTP для инициирования подключений к нескольким серверам реплицированного содержимого, не эквивалентны многопутевому TCP, поскольку они включают уровень приложений и ограничены содержимым известного размера.

RFC
  • RFC  6181 - Анализ угроз для расширений TCP для работы с несколькими путями с несколькими адресами
  • RFC  6182 - Рекомендации по архитектуре для разработки многопутевого TCP
  • RFC  6356 - Управление сопряженной перегрузкой для многопутевых транспортных протоколов
  • RFC  6824 - TCP Extensions для многопутевого режима с несколькими адресами (v0; заменен RFC 8684)
  • RFC  6897 - Особенности интерфейса приложения Multipath TCP (MPTCP)
  • RFC  7430 - Анализ остаточных угроз и возможные исправления для многопутевого TCP (MPTCP)
  • RFC  8041 - сценарии использования и опыт работы с многопутевым TCP
  • RFC  8684 - Расширения TCP для многопутевого режима с несколькими адресами (v1)
  • RFC  8803 - протокол преобразования TCP 0-RTT
Смотрите также
использованная литература
внешние ссылки
Последняя правка сделана 2024-01-10 04:18:46
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте