Набор интернет-протоколов |
---|
Уровень приложения |
Транспортный уровень |
|
Интернет-уровень |
Связующий слой |
|
|
Многопутевый TCP ( MPTCP) - это постоянная работа рабочей группы Многопутевого TCP ( IETF) Инженерной группы Интернета (IETF), цель которой - позволить соединению по протоколу управления передачей (TCP) использовать несколько путей для максимального использования ресурсов и увеличения избыточности.
В январе 2013 года IETF опубликовала спецификацию Multipath в качестве экспериментального стандарта в RFC 6824. В марте 2020 года она была заменена спецификацией Multipath TCP v1 в RFC 8684.
Избыточность, предлагаемая 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 для этого приложения являются:
Другое развертывание использует Multipath TCP для агрегирования пропускной способности различных сетей. Например, несколько типов смартфонов, особенно в Корее, используют Multipath TCP для связи Wi-Fi и 4G через прокси-серверы SOCKS. Другим примером являются сети гибридного доступа, которые развертываются операторами сетей, желающими объединить сети xDSL и LTE. В этом развертывании Multipath TCP используется для эффективного балансирования трафика через xDSL и сеть LTE.
При стандартизации конвергентных фиксированных и мобильных сетей связи 3GPP и BBF взаимодействуют, чтобы обеспечить функцию ATSSS (выбор трафика доступа, переключение, разделение) для поддержки многолучевых сеансов, например, путем применения многопутевого TCP как в пользовательском оборудовании (UE), так и в резидентном шлюзе. (RG) и на сетевой стороне.
Многопутевый 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 состоит в том, чтобы определить способ установления соединения между двумя хостами, а не между двумя интерфейсами (как это делает стандартный 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-передачам:
Подробная спецификация протокола представлена в RFC 8684. Несколько обзорных статей содержат введение в протокол.
Для многопутевого TCP определено несколько механизмов управления перегрузкой. Их главное отличие от классических схем управления перегрузкой TCP заключается в том, что они должны реагировать на перегрузку на разных путях, не проявляя несправедливости к источникам TCP с одним путем, которые могут конкурировать с ними на одном из путей. Четыре схемы управления перегрузкой Multipath TCP в настоящее время поддерживаются реализацией Multipath TCP в ядре Linux.
Протокол передачи управления потоком (SCTP) - это надежный протокол передачи потока дейтаграмм, изначально предназначенный для передачи сигналов электросвязи. Он поддерживает одновременное использование множественных ссылок доступа и позволяет приложению влиять на выбор интерфейса доступа на основе потока дейтаграмм. Он также поддерживает мобильность через повторное согласование доступа. Следовательно, SCTP также является решением транспортного уровня. Он предлагает детализацию потока типа 3 с параллелизмом, но с большим контролем планирования потока, чем Multipath TCP. Он также полностью поддерживает мобильность аналогично многопутевому TCP.
В архитектуре IP Multimedia Subsystem (IMS) протокол инициации сеанса (SIP) может поддерживать одновременное использование нескольких контактных IP-адресов для регистрации одного или нескольких пользовательских агентов IMS. Это позволяет создавать несколько сигнальных трактов IMS. На этих путях сигнализации сигнальные сообщения переносят сообщения протокола описания сеанса (SDP) для согласования потоков мультимедиа. SDP позволяет (повторно) согласовывать потоки одного сеанса мультимедиа по нескольким путям. В свою очередь, это обеспечивает многопутевую транспортировку на прикладном уровне. Таким образом, с этой точки зрения IMS может предложить поддержку многопутевого доступа на прикладном уровне с детализацией потока и одновременным доступом. Расширение многопутевого протокола для транспортного протокола реального времени (RTP) обсуждается в IETF. Многопутевый RTP может предлагать детализацию потока с одновременным доступом и мобильностью (через IMS, сигнализацию SDP или протокол управления RTP). Совсем недавно на конференции IETF в TSVWG (Рабочая группа по транспортной области), получившей название MP-DCCP, обсуждается также предложение о расширении DCCP (протокол управления перегрузкой дейтаграмм) функцией многолучевого распространения.
В настоящее время IETF разрабатывает протокол QUIC, который объединяет функции, традиционно присутствующие в протоколах TCP, TLS и HTTP. Благодаря гибкости и расширяемости QUIC, его можно расширить для поддержки нескольких путей и решения тех же сценариев использования, что и Multipath TCP. Был предложен, реализован и оценен первый проект Multipath QUIC.
На уровне сеанса в рамках проекта «Маршрутизатор мобильного доступа» в 2003 г. проводился эксперимент с объединением нескольких беспроводных подключений с использованием гетерогенных технологий, прозрачно балансируя трафик между ними в ответ на воспринимаемую производительность каждого из них.
Схемы параллельного доступа, используемые для ускорения передачи за счет использования запросов диапазона HTTP для инициирования подключений к нескольким серверам реплицированного содержимого, не эквивалентны многопутевому TCP, поскольку они включают уровень приложений и ограничены содержимым известного размера.