μTP (Micro Transport Protocol)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 12:46, 23 ноября 2016.

Micro Transport Protocol или μTP (иногда также uTP) является открытым UDP на основе варианта протокола P2P-обмена файлами BitTorrent, предназначенного для смягчения недостаточной задержки и другие вопросы управления перегрузками в обычных торрентах с использованием TCP, обеспечивая при этом надежную доставку заказа.

Визуализация μTP

Он был разработан для автоматического замедления скорости, с которой пакеты данных передаются между пользователями P2P торрент-файлообменника, когда он сталкивается с другими приложениями. Например, протокол должен автоматически разрешать совместное использование ADSL линии приложением BitTorrent и веб-браузером.

μTP предназначен для более быстрого скачивания, так как работает по протоколу UDP, в котором обмен данными происходит быстрее, чем через протокол TCP. Ускорение достигается за счёт того, что торрент-клиент берёт на себя выполнение нужных функций, отсутствующих в UDP, например, клиент перепроверяет целостность данных и, если блок неверен, скачивает его заново. Также, провайдерам намного сложнее блокировать передачу данных через μTP, благодаря отсутствию строгих, формализованных отличий UDP пакетов обычного трафика (формируемого, к примеру, сетевыми играми) от трафика, формируемого протоколом μTP, в отличие от TCP пакетов, по содержанию полей которых можно делать вывод о их принадлежности к p2p трафику. [1]

Провайдерам сложнее блокировать передачу данных через μTP благодаря тому, что UDP пакеты протокола μTP похожи на трафик, формируемый (к примеру) сетевыми играми. Трафик p2p, передаваемый по TCP, часто блокируется или урезается по сигнатурам. Но на настоящее время (начало 2015 года) разработаны относительно надёжные методики выявления трафика uTP вне зависимости от переменных полей в пакетах протокола. [2]

Развитие

μTP впервые возник из исследований в Internet2 на QoS, он был адаптирован для использования в качестве фоновой транспортировки протокола по Plicto, который был основан Станиславом Шалуновом. Позднее он был приобретен компанией BitTorrent, Inc. в 2006 году, и дальнейшее развитие μTP получил в рамках программы развития своего нового владельца. Он был впервые представлен в бета-ветви μTorrent 1.8.x и освещался в альфа сборках μTorrent 1.9.

Полноценная работа протокола возможна при работе с версией µTorrent 2.0. Работа µTP между µTorrent 1.8.1 невозможна.

Исходный код реализации протокола μTP был открыт для разработчиков в мае 2010 года.

Реализация μTP, которая была использована в μTorrent позже была переделана в "libutp" библиотеку и была выпущена публикация, лицензированная MIT.

Первый клиент бесплатного программного обеспечения, который осуществит µTP, был KTorrent 4.0.[3]

Главные особенности μTP

Алгоритм управления перегрузкой, используемый μTP, известный также, как низкая дополнительная задержка фона транспорта (LEDBAT), стремится уменьшить задержку, вызванную приложениями, использующими протокол при максимальной пропускной способности, когда задержка ещё не является чрезмерной. Кроме того, информация от μTP контроллера перегруженности может быть использована, чтобы выбрать скорость передачи TCP соединений. Структура и цели LEDBAT были описаны в интернет-проекте, но детали реализации μTP отличаются от проекта.

Скрыто uTP появился в µTorrent версии 1.8, но умел принимать только входящие uTP-соединения, инициировать их сам — не умел. Впервые это научилась альфа-версия 1.9, потом стало возможным включить это и в новых версиях 1.8 ключиком bt.transp_disposition. Его значение от версии к версии менялось, но сейчас сложились следующие:

1 — разрешить инициировать исходящие TCP-соединения,
2 — разрешить инициировать исходящие uTP-соединения,
4 — разрешить принимать входящие TCP-соединения,
8 — разрешить принимать входящие uTP-соединения.

Таким образом, 13 (1+4+8), значение по умолчанию в последних версиях 1.8, означает возможность принимать все виды соединений, но самостоятельно устанавливать только TCP. 15 (значение по умолчанию в 2.0) разрешает все виды как исходящих, так и входящих соединений. Чтобы запретить uTP вообще (если он вызывает какие-либо проблемы) надо поставить 5 (1+4). Стоит ли ставить 15 в 1.8 — вопрос спорный, на официальном форуме пишут что поддержка uTP в версии 2.0 намного лучше, поэтому скорость в 1.8 может быть хуже, чем по TCP. [4]

µTP состоит из двух частей: развивающаяся схема, и алгоритм управления перегрузками, который менее агрессивен чем тот из TCP.

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

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

Примечания

  1. Материал из Википедии — свободной энциклопедии - μTorrent - Режим доступа [1]
  2. Материал из электронного ресурса - Про µTP в новых версиях µTorrent: что это, как, зачем? - Режим доступа [2]
  3. Материал из электронного ресурса - Про µTP в новых версиях µTorrent: что это, как, зачем? - Режим доступа [3]
  4. Материал из электронного ресурса - Про µTP в новых версиях µTorrent: что это, как, зачем? - Режим доступа [4]