Что такое utp соединения
Что такое uTP(что-то с торрентами свзанное) и как его включить, вродь как это ускоряет закачку.
Это протокол передачи данных. Он не включается пользователем, его использует специальная программа (например uTorrent). И он действительно ускоряет закачку
μTP — переимплементация TCP на основе протокола UDP с измененным контролем за переполнением, который реагирует раньше, чем соответствующий алгоритм в TCP. Таким образом, при увеличении загрузки канала μTP первым замедляется и отдает канал другим приложениям. При использовании TCP канал распределялся равномерно по соединениям, а поскольку у P2P программ обычно на порядок больше соединений, чем у других, они просто забирали под себя весь канал, увеличивая пинг и делая работу других приложений медленной или вообще невозможной.
μTP предназначен для более быстрого скачивания, так как работает по протоколу UDP, в котором обмен данными происходит быстрее, чем через протокол TCP. Ускорение достигается за счёт того, что торрент-клиент берёт на себя выполнение нужных функций, отсутствующих в UDP, например, клиент перепроверяет целостность данных и, если блок неверен, скачивает его заново. Также, провайдерам намного сложнее блокировать передачу данных через μTP, благодаря отсутствию строгих, формализованных отличий UDP пакетов обычного трафика (формируемого, к примеру, сетевыми играми) от трафика формируемого протоколом μTP, в отличие от TCP пакетов, по содержанию полей которых можно делать вывод о их принадлежности к p2p трафику.
μTP — переимплементация TCP на основе протокола UDP с измененным контролем за переполнением, который реагирует раньше, чем соответствующий алгоритм в TCP. Таким образом, при увеличении загрузки канала μTP первым замедляется и отдает канал другим приложениям. При использовании TCP канал распределялся равномерно по соединениям, а поскольку у P2P программ обычно на порядок больше соединений, чем у других, они просто забирали под себя весь канал, увеличивая пинг и делая работу других приложений медленной или вообще невозможной.
μTP предназначен для более быстрого скачивания, так как работает по протоколу UDP, в котором обмен данными происходит быстрее, чем через протокол TCP. Ускорение достигается за счёт того, что торрент-клиент берёт на себя выполнение нужных функций, отсутствующих в UDP, например, клиент перепроверяет целостность данных и, если блок неверен, скачивает его заново. Также, провайдерам намного сложнее блокировать передачу данных через μTP, благодаря отсутствию строгих, формализованных отличий UDP пакетов обычного трафика (формируемого, к примеру, сетевыми играми) от трафика формируемого протоколом μTP, в отличие от TCP пакетов, по содержанию полей которых можно делать вывод о их принадлежности к p2p трафику.
Витая пара: категории, обжим, советы по работе
Несмотря на распространение оптических сетей, медные линии остаются основным типом кабелей на расстояниях до 100 метров. Простые в монтаже и обслуживании, надёжные и очень экономичные. Да, некоторые производители пытаются изменить ситуацию, но в ближайшие лет 15 серьёзных подвижек в этой области ждать не приходится.
Самым распространённым медным кабелем сегодня является витая пара – четыре пары медных или медно-алюминиевых проводника диаметром 0.52мм. Нет сетевого инженера, которой бы не сталкивался с этим кабелем. Рассмотрим основные типы витой пары и как с ней обращаться.
Категорий витой пары
Создателем витой пары считается Александр Белл, предложивший скрученный парный провод для защиты телефонной линии от помех, наводимых соседствующими проводами телеграфа или линий электропередачи. Такая скрученная пара проводов успешно использовалась в течение почти 100 лет, пока не была вытеснена современными типами медного кабеля.
Витая пара. Общий вид
Как и любое телекоммуникационное оборудование для медных кабелей разработаны международные стандарты. В данном случае ISO/IEC 11801. Кроме того, существует норматив EIA/TIA 568, действующий на территории США и его сателлитов. Данные стандарты неоднократно дополнялись и сегодня выделены 8 категорий витой пары:
Типы витой пары
Помимо категорий, медные кабеля различают по конструкции. Выделяют следующие разновидности кабеля:
Различия в характеристиках отнюдь не ограничены конструкцией кабеля. Свою роль играют и материалы, из которых он изготовлен. Так, жилы из чистой меди имеют лучшие характеристики проводимости по сравнению с аналогом из алюминия, покрытого медью. Другое дело, что медный проводник намного дороже алюминиевого.
Следует также различать материалы оболочек. Наиболее ходовой на сегодня остаётся оболочка из поливинилхлорида (ПВХ). Кабель с такой оболочкой маркируется буквами PVC и чаще всего окрашен в серый цвет. Он предназначен для прокладки внутри помещений. Такая оболочка очень дешева, но хорошо горит и имеет ограниченную стойкость к жаре и холоду.
Еще одним популярным материалом для оболочки кабеля является полиэтилен (обозначение PE). Он используется в кабеле для наружной прокладки. Уличная витая пара отлично переносит перепады температур и не боится сырости. В ряде вариантов оснащается несущим тросом. Это позволяет натягивать кабель между опорами, без риска повредить проводники.
Уличный кабель витая пара с тросом
В последние годы набирает популярность витая пара с оболочкой из мало дымного безгалогенного компаунда (маркировка LSZH) для прокладки в помещениях. Она плохо горит и не выделяет вредных веществ. Поэтому если к линиям или помещениям предъявляются строгие требования пожарной безопасности, выбирать следует именно его. Да, он дороже PVC, но долговечнее и безопаснее.
Существуют также более редкие оболочки для кабеля. Например, маркировка FRNC означает, что оболочка кабеля огнеупорна и устойчива к коррозии. Оболочка из полиуретана (PUR) отлично сопротивляется маслу и многократному изгибу. Такие кабеля используются в робототехнике и других сферах с особыми требованиями к проводникам.
Обжим витой пары
Для применения медные кабели должны быть оконечены соответствующими разъемами. Чаще всего применяется 8P8C, более известный как RJ-45. Последнее, кстати, является популярным заблуждением. Настоящий коннектор типа RJ-45 имеет несколько иную форму и несовместим с разъемами своего «тезки».
Что такое utp соединения
Все Тут Online > Технический раздел > Полезные программы > Интернет и безопасность > Разгоняем uTorrent, увеличиваем скорость скачивания с торрентов
Просмотр полной версии : Разгоняем uTorrent, увеличиваем скорость скачивания с торрентов
Некоторые провайдеры в целях уменьшения нагрузки на канал вместо
расширения его вступают на скользкий путь — уменьшения приоритета
торрент трафика. Основная масса торрент трафика проходит через uTP
соединения, которые можно отключить и существенно увеличить
скорость загрузки с торрентов.
Итак, Необходимо запретить принимать и инициировать uTP-соединения.
Делается это следующим образом:
Настройка → Конфигурация → Дополнительно →
bt.transp_disposition
Меняем значение на «5».
Подробное описание значений для «интересующихся»:
1 — разрешить инициировать исходящие TCP-соединения,
2 — разрешить инициировать исходящие uTP-соединения
4 — разрешить принимать входящие TCP-соединения
8 — разрешить принимать входящие uTP-соединения
16 — новый uTP заголовок, который поддерживается только с 2.0 (соединений с 1.8 не будет)
13 (1+4+8) — принимать все виды соединений, но самостоятельно устанавливать только TCP.
15 — разрешить все виды как исходящих так и входящих соединений.
5 (1+4) — запретить uTP вообще
Благодарю! Нужная тема.
Толя, ну уж не знаю… Если нажать несколько кнопок людям лень, чтобы проверить, то что тут и обсуждать то!
Анатолий, отличная тема, сегодня хоть немного наладили инет, завтра настрою попробую.:icon_lex:
Синдикат, надо ровно 3 секунды… значение «5» поставить. Зачем до завтра ждать?
А тех. админ на форуме — самый главный чел, если будешь прислушиваться к его советам, то сэкономишь своё время, деньги и здоровье!
bt.connect_speed — сколько максимум новых соединений можно устанавливать в секунду (можно увеличить),
net.utp_target_delay — пинг при подстройке соединений (можно увеличить),
peer.disconnect_inactive_interval — время в секундах, через сколько закрывается соединение с пиром, с которым нет обмена данными (можно уменьшить), чтобы быстрее определять разрыв соединения и перезапускать его
net.max_halfopen — можно увеличить раза в полтора-два
Можно попробовать запускать саму программу от имени администратора (помогает,когда раздача «краснеет»).
Вообщем… путем подбора дополнительных параметров и использования различных прокси вполне реально разогнать до скорости заявленной провайдером.
Как ни разгоняй отдельно взятую программу — эффекта можно не заметить если предварительно не выполните еще несколько пунктов :
1. максимальное количество одновременных исходящих соединений нужно увеличить. Читать здесь (http://www.vsetutonline.com/forum/showthread.php?t=4954)
3. С помощью Auslogics BoostSpeed (http://www.vsetutonline.com/forum/showthread.php?t=41188&page=2&highlight=Auslogics+BoostSpeed) выполняем Ускорение интернета-Автоматическое (для тех кто это не сделал руками по информации из пункта 2. по команде regedit.exe )
Сделать проверку системы в Auslogics BoostSpeed тоже не будет лишним.
Всем успеха! Надеюсь что моя информация кому то пригодится.
Если все инструкции выполнить, то для 100 мегабитного тарифа скорость должна быть около
12.3 мб/с и она должна быть стабильна при наличии сидов.
Отсюда легко посчитать для любого другого тарифа.
Роутер, как только не настраивал, все равно режет 0.5-1 мб/с, ну и все провода, я после мастеров от провайдера поменял естественно, как впрочем и антенный кабель и заземление к аппаратуре и быт. приборам..
Толя, я не знаю как ещё привлечь наших форумчан к чтению тех. раздела. :icon_dunno:
Музыку качественную из раздела винила тоже не хотят скачивать! Я просто офигиваю, когда читаю, что сжимают!
Из одного из центровых релизов нашего форума «Сборник оцифровок с пластов на 78 оборотов 24/48000 Lossless»
дима привет превратить этот шедевр в мп-3 сколько ставить на конвертирование 192 или 256 ответь спасибо
Федор_Чистяков, если будешь переводить из 24 в 16 bit и не использовать дизеринг, то музыка в тихих местах просто исчезнет! Надо пользоваться исходным музыкальным материалом.
Может тогда не заливать, уделить большее внимание CD по дискографиям? Всё ремастированное под бумбоксы может пойти в ход, раз уж такое дело! Например, CD-диски японцы со звонким звучанием, как раз для русских ушей.
Роутер, как только не настраивал, все равно режет 0.5-1 мб/с, ну и все провода, я после мастеров от провайдера поменял естественно, как впрочем и антенный кабель и заземление к аппаратуре и быт. приборам..
Может тогда не заливать, уделить большее внимание CD
Да просто уже переизбыток инфы со многих источников — естественно происходит спад интереса.
Дмитрий
надо ровно 3 секунды… значение «5» поставить. Зачем до завтра ждать?
Дмитрий, мне не трудно поставить все значения. просто еще не отремонтировали полностью линию, не стабильная связь.
Может даже придется сменить провайдера, прошла неделя и результат ноль, не хотят работать, только гребут бабло.
Буду готовить письмо ген директору Телекома.
Это сработает.
anatol1961, модель роутера очень хорошая, но оперативки 32 mb. У товарища был такой инет отваливался с ним регулярно, так и не разобрались почему, скорей всего из-за провайдера тип подключения IP-o- E.
Синдикат, конечно надо менять, раз такое отношение к клиенту, который ему ежемесячно платит!
Если есть альтернативный провайдер, то как только, так сразу!
anatol1961, модель роутера очень хорошая, но оперативки 32 mb. У товарища был такой инет отваливался с ним регулярно, так и не разобрались почему, скорей всего из-за провайдера тип подключения IP-o- E.
не знаю, что там было, может сам девайс бракованный попался. мой экземпляр без нареканий работает, я ему сразу прошивку обновил на новую (два года назад ) и больше не прикасаюсь. Один раз только сбой был (выходящий ip сам поменял для wi-fi ) из-за отключения электричества и все.
Вот статейку сейчас ещё нашёл, возможно пригодится…
Тонкая настройка BitTorrent-клиента [максимальная скорость, настройка портов и решение проблем] (http://sonikelf.ru/tonkaya-nastrojka-bittorrent-klienta-maksimalnaya-skorost-nastrojka-portov-i-reshenie-problem/)
В статье дана таблица по которой основные настройки можно поменять, в соответствии с типом соединения и скоростью.
Дополнительные настройки как у автора статьи трогать … всё чисто индивидуально, надо подбирать.
bt.transp_disposition = 5
И запрет на uTP-соединения
это всё пока что, по дополнительным.
Я бы не стал ставить дополнительные, как у автора статьи. Экспериментируйте…
anatol1961, скорей всего брак, он самопроизвольно перезагружаться стал через 3 недели после установки, а так Китай рулит и цены нормальные! Вспомнил… ещё вонял он какой-то гадостью сильно. ))
anatol1961, Китай рулит и цены нормальные! Вспомнил… ещё вонял он какой-то гадостью сильно. ))
Может ты перепутал чего, не вонял он ни разу у меня /
Вот такой (http://market.yandex.ru/model.xml?hid=723087&modelid=6515903&clid=502) у меня
anatol1961, да я не перепутал, наверно просто бракованный попался.
Желаю тебе, чтобы твой долго проработал! :icon_drinks:
Зная тягу китайцев к подделке всего — от иголки до самолета, уже ничему не удивляешься…
Покупка китайских товаров как лотерея. Почему бы не поиграть.. тем более что другого выхода практически и нет. 😉
vBulletin® v3.8.2, Copyright ©2000-2018, Jelsoft Enterprises Ltd. Перевод: zCarot
Наш век информационных технологий подарил практически каждому жителю планеты телефон, компьютер с выходом в интернет, телевидение. Однако далеко не каждый знает, благодаря чему может пользоваться этими благами жизни. Это все было бы невозможно без кабеля UTP.
Что такое UTP кабель?
Кабель UTP – один из самых распространенных сейчас видов кабеля для связи. Если расшифровать название кабеля и перевести с английского «unfoiled twisted pair», получится «неэкранированная витая пара». Название «витая пара» — наиболее известное в России название этого вида кабеля.
Кабель предназначен для передачи цифрового или аналогового сигнала от одного устройства к другому. Цифровой сигнал используется в компьютерных сетях, аналоговый – в видеонаблюдении и телефонной связи.
UTP кабель представляет собой две и более изолированные друг от друга жилы-проводники, заключенные оболочку из ПВХ пластиката. Жилы кабеля попарно скручены, за что кабель и получил свое название «витая пара». Каждый виток выполняется на определенном расстоянии от предыдущего, это необходимо для достижения более высокой скорости передачи даже слабого сигнала.
Настройка торрента для оптимальной работы
Данный параметр называется «шаг скрутки».
Категории кабеля UTP
Кабель UTP подразделяется на 7 категорий в зависимости от количества проводниковых пар и полосы используемых частот.
Таким образом, наиболее часто применяемая категория кабеля UTP – это кабель САТ5. Сейчас существует модификация данного кабеля – САТ5е, — этот кабель лучше пропускает высокочастотные сигналы, его полоса частот 125МГц, чего вполне достаточно для высокой скорости передачи данных и вполне устроит любого среднестатистического пользователя. Кроме того, по прочности кабель изготавливают двух видов – для применения на открытом воздухе и для прокладки в помещении. Внешний обычно имеет черный цвет, внутренний – серый или белый.
Для подробного ознакомления со всеми категориями кабеля UTP рекомендуем заглянуть по ссылке: купить UTP кабель.
Вернуться к списку статей
Как правильно подключить интернет кабель к розетке. Схема подключения для RJ 45.
Перед тем как приступить к изменениям, хотелось бы выделить 3 основных момента:
Исправляем настройки при низкой скорости скачивания в торренте
Если вы счастливый обладатель Windows XP, то вам необходимо предварительно внести изменения в файл tcpip.sys с помощью утилиты Half-open limit fix. Она позволяет изменить максимальное количество одновременных полуоткрытых исходящих TCP соединений в системном файле tcpip.sys. Если этого не сделать, то торрент будет забивать весь канал и при этом все остальные приложения не смогут получить доступ в интернет. Включая браузеры. Можно выставить значение равное 100, которое рекомендует автор.
Теперь рассмотрим пример настроек на популярном клиенте uTorrent.
В интернете гуляет сводная таблица настроек скорости:
Выставляем значения в соответствии с данной таблицей. Поля на первом скриншоте пронумерованы и соотнесены с полями на втором и третьем изображениях. В своем примере использовал настройки для 15 Мб\с.
Скорость
Макс. Скорость отдачи — это значение должно быть выставлено в 80% от максимальной скорости по тарифному плану. 0 не рекомендуется ставить, иначе клиент будет использовать всю ширину канала.
Макс. Скорость загрузок — отвечает за быстроту загрузки файлов. Так же указываем 80% от максимальной скорости по тарифу. Опять же 0 не ставим, иначе для серфинга по интернету получим низкую скорость.
Общие настройки ограничения скорости — это настройки для различных протоколов. По умолчанию выбрано только «Применить ограничение к uTP-соединениям». Оставляем как есть.
Максимальное число соединений — Сколько соединений сможет поддерживать наш торрент.
Максимум присоединённых пиров на один торрент — максимальное количество активных пиров на одну закачку\раздачу.
для ADSL и 3G рекомендуется до 20, для соединений больше 10Мбит/с — 50-100, более 100Мбит/с — 100-150, для 1Гбит/с — 250
Число слотов отдачи на один торрент — зависит от качества канала, если достигнута максимальная скорость отдачи, то она будет делиться (уменьшаться) на каждый слот, поэтому рекомендуется выставить значение 20-100 и включить функцию «добавлять слоты, если скорость отдачи Очерёдность
Максимум активных торрентов — максимальное количество активных раздач и загрузок, при достижении данного значения торрент будет останавливать все последующие загрузки и раздачи.
Максимум одновременных загрузок — количество одновременно загружаемых торрентов, выставляется в зависимости от ширины канала. Для тех, кто в основном качает и смотрит фильмы сразу, данный параметр рекомендуется выставить в 1 или 2. Для остальных — согласно ранее приведенной таблицы.
Кэширование
Кэш необходим для хранения в оперативной памяти часто используемых данных, чтобы уменьшить количество обращений к жесткому диску. uTorrent, при стандартных настройках, управляет кэшем автоматически, но можно настроить работу с кэшем и вручную.
Вместо автовыбора использовать указанный размер кэша (в мегабайтах) — данное значение нужно выбирать исходя из ширины канала и скорости вашего диска. Указывать размер кэша, больше 32МБ, нужно при наличии скорости более 100Мбит\с.
При такой скорости указывайте минимум 128 МБ кэша для того, чтобы скорость скачивания не понижалась при нагрузке диска (ведь во время скачивания в торренте его может использовать еще и другие приложения).
Освобождать память, если кэш не используется — выгружаются неиспользуемые части торрентов из кэша, рекомендуется включить, чтобы не забивать память ненужными частями.
Кэшировать запись на диск — включает кэширование записи торрентом, если выключено – тогда работает кэширование операционной системы.
Записывать нетронутые блоки каждые 2 минуты — функция включает запись на диск блоков, которые в течении 2 минут не объединились с другими блоками в больший фрагмент.
Лучше включить и постепенно освобождать кэш.
Записывать завершенные части немедленно — блоки записываются на диск в режиме живой очереди. Рекомендуется выключить при ширине канала больше 100 Мбит/с. Это позволит записывать на диск части торрент-файла не мелкими блоками до 4 Мб, а крупными частями, которые будут объединяться в кэше. А если еще включить функцию последовательного скачивания частей, то можно уже будет смотреть фильмы, что называется в онлайне.
(Делается это с помощью программы bencode editor и добавлением новой записи в файл
C:\Documents and Settings\odmin\Application Data\uTorrent для Windows XP
C:\Users\ \AppData\Roaming\uTorrent\settings.dat для остальных Windows
прописываем новые значения в файле
name: bt.sequential_download
type: Integer
value: 1
Кэшировать чтение с диска — включает кэширование чтения uTorrent, если выключено – работает кэширование операционной системы.
Отключать кэш при низкой скорости отдачи — функция отключает кэширование файлов для медленных раздач. Рекомендуется включить, если компьютер активно используется или недостаточно оперативной памяти.
Удалять устаревшие блоки из кэша — очищает кэш чтения от блоков, которые уже не используются. Рекомендуется выключить, если вы раздаете новые и популярные торренты, то эти блоки могут понадобиться следующему пользователю и таким образом будет меньше обращений к ЖД.
Автоматически увеличивать размер кэша при заполнении — функция позволяет автоматически увеличить размер кэша, если для поддержания скорости торрента необходимо больше памяти.
После всех принятых мер, проблема с низкой скоростью скачивания в торренте, должна уйти.
И в дополнение видео, на котором представлено еще несколько настроек, влияющих на скорость скачивания:
H Torrent/uTP — о протоколе и самодельных DPI в черновиках Recovery Mode
В 2009 году появился Micro Transport Protocol, сокращённо — uTP, можно ознакомится тут.
Суть задумки в том, чтобы не полагаться на TCP Congestion Control, которым под виндой рулить весьма проблематично, а самим управлять загрузкой канала.
uTP выявил много узких мест как у провайдеров так и у пользователей: ещё вчера прекрасно работающие роутеры превратились в тыкву. А некоторые пользователи обнаружили что торренты качаются на все 100 мегабит, не зависимо от тарифа.
Также провайдерам намного сложнее блокировать передачу данных через μTP благодаря отсутствию строгих, формализованных отличий UDP пакетов обычного трафика (формируемого, к примеру, сетевыми играми) от трафика, формируемого протоколом μTP, в отличие от TCP пакетов, по содержанию полей которых можно делать вывод об их принадлежности к p2p-трафику.
https://ru.wikipedia.org/wiki/ΜTorrent
Как не правильно блокировать можно почитать тут: geektimes.ru/post/243305/
и немного ниже 🙂
Жизнь с uTP
В адрес авторов uTP звучала масса упрёков в изобретении TCP с нуля и хождении по всем граблям, в том что они не взяли уже готовые протоколы, и в том что теперь придётся обновляться и расширятся.
С точки зрения разработчиков — выбора особо не было: TCP все провайдеры шейпят и душат, для управления всеми аспектами работы tcp протокола в винде нужны права администратора и скорее всего свой драйвер, многие другие протоколы которые ходят поверх IP (tcp/udp/gre/udplite/. ) вообще провайдерами фильтруются и в винде их так просто не реализовать.
Потому просто взяли и сделали поверх UDP.
Это решение подкосило многие домашние мыльницы и некоторых провайдеров.
Количество трансляций в NAT роутеров стало очень быстро расти.
Для TCP — NAT знает когда соединение установлено и когда оно завершено, а для UDP понятие соединений отсутствует в принципе, поэтому обычно применяются таймеры для удаления старых сессий.
Другим побочным эффектом явилось то, что uTorrent запрашивал больше трафика чем позволял тарифный план провайдера, и от этого страдали даже те провайдеры у которых шейпер был настроен правильно: на хомячка из интернета прилетало ощутимо больше его тарифного плана и этот излишек дропался шейпером. Провайдеры несли финансовые потери от такого DDoS хомяка на самого себя.
Авторы uTorrent позже всё таки научились правильно подстраиваться под канал, но их эксперименты стоили нервов и денег.
Ещё одним неприятным моментом в экспериментах с uTP на начальных этапах было то, что он генерировал большую пакетную нагрузку, отправляя множество мелких UDP пакетов. Позднее авторы научились заполнять пакеты с данными целиком.
Повышение пакетрейта губительно сказывается на WiFi и прочих радиолинках.
В целом, протокол оказал ощутимое влияние как на провайдеров так и на производителей железа, я бы даже сказал что он подготовил почву для HD в ютубе.
Протокол uTP
Версия 0
Начиная с uTorrent 1.8
Версия 1
Начиная с uTorrent 2.0
Типы пакетов
flags из версии 0 превратился в type в версии 1, типы пакетов перечислены выше.
Сначала отправляется SYN на него приходит ответ STATE или RESET.
Завершается соединение на FIN или RESET.
DATA и STATE используются при передаче данных.
connid — идентификатор соединения. В TCP его роль выполняет номер порта (вернее их пара). Номер соединения у двух хостов всегда различается на единицу.
Вообще довольно запутанная и странная схема установления соединения:
>> SYN: connid=34 — запрос на установление соединения
> DATA: connid=35 — передача данных
И эти люди продают мне интернет.
— возникает у меня периодически к голове, когда я читаю провайдерский форум. 🙂
Провайдеры искали способ как быстро нормализовать работу сети и решили фильтровать uTP по сигнатурам пакетов, добавляя их то в ACL коммутаторов то в фаервол BSD/Linux роутера.
«Странность» ситуации в том, что сигнатуры искали анализируя пакеты.
Притом, что код libuTP был открыт 16 мая 2010 года — через 4 месяца после выхода uTorrent 2.0 где uTP был включён.
Спустя пару месяцев «живительные» сигнатуры путём нечеловеческих усилий по анализу пакетов были получены.
Ещё через некоторое время авторы поменяли пару незначительных для протокола начальных значений в SYN пакете и что то рандомизировали (connid, seq_nr — больше не смогли) 🙂
После того как ng_utp был написан стало понятно что проверять корректность работы с помощью tcpdump без правильных сигнатур мягко говоря не удобно — слишком много лишнего приходилось пробегать глазами.
Я ещё раз пробежался по коду libuTP и получились такие сигнатуры, сейчас может быть они уже устарели.
Версия 0
‘udp[17] = 2 and udp[18] = 4 and udp[21:2] = 0 and udp[23] = 0 and udp[24] = 8 and udp[25:4] = 0 and udp[29:4] = 0’
41 = udp hdr len (8) + upd pkt data len
upd header included:
‘(udp[4:2] = 41 and udp[25:2] = 0x0204 and udp[29:4] = 0x00000008 and udp[33:4] = 0 and udp[37:4] = 0)’
— последнее это то что можно скармливать в tcpdump, отличается от первой смещениями и тем что константы объединены чтобы сравнений было меньше. Первая больше для самообразования.
RESET
‘udp[17] = 0 and udp[18] = 3’
31 = udp hdr len (8) + upd pkt data len
upd header included:
‘(udp[4:2] = 31 and udp[25:2] = 0x0003)’
Версия 1
‘udp[0] & 0x0f = 1 and udp[0] & 0xf0 = 0x40 and udp[1] = 2 and udp[18:2] = 0 and udp[20] = 0 and udp[21] = 8 and udp[22:4] = 0 and udp[26:4] = 0’
(udp[0] & 0x0f = 1 and udp[0] & 0xf0 = 0x40) => udp[0] = 0x41
38 = udp hdr len (8) + upd pkt data len
upd header included:
‘(udp[4:2] = 38 and udp[8:2] = 0x4102 and udp[26:4] = 0x00000008 and udp[30:4] = 0 and udp[34:4] = 0)’
RESET
rst — 4 bytes
‘udp[0] & 0x0f = 1 and udp[0] & 0xf0 = 0x30 and udp[1] = 0’
(udp[0] & 0x0f = 1 and udp[0] & 0xf0 = 0x30) => udp[0] = 0x31)
28 = udp hdr len (8) + upd pkt data len
upd header included:
‘(udp[4:2] = 28 and udp[8:2] = 0x3100)’
Обнаружение фильтрации
Проще всего, используя описание протокола, реализовать простенький клиент, который будет устанавливать соединение и пытаться отправлять данные.
По сути нужно симулировать установление соединения, и дальше пытаться слать DATA и STATE пакеты в ответ с ext типа ACK.
Дальше один клиент запускается в интернете, другой у себя и смотрим теряются ли пакеты в 100% случаев или может RESET приходят.
Сходным образом при использовании yota некоторые пакеты из l2tp на завершающем этапе согласования пропадают в 100% случаев. Так было ещё в сентябре.
Заключение
1. То что написано в вики на русском — полнейший бред: uTP имеет достаточно чёткие сигнатуры и легко ловится DPI.
Более того, ловить сигнатуры в TCP ощутимо сложнее, поскольку для гарантированного обнаружения нужно уметь собирать несколько пакетов вместе и уже потом проверять содержимое: клиент может передавать данные по одному байту.
Авторы uTP либо не ставили себе цель сделать протокол без сигнатур либо даже не приблизись к цели.
(На мой взгляд в начале не ставили, а потом было уже поздно и рандомизация отдельных полей не помогает).
Вики на английском более адекватна.
2. Производители различных DPI уже давно добавили сигнатуры для uTP, вряд ли им это было трудно сделать.
4. Для IPv6 код не писал, на всякий случай 😉
5. uTP не лучше TCP для передачи данных, вся проблема в том, что TCP можно хоть как то управлять из приложения только на BSD/Linux — setsockopt(. IPPROTO_TCP, TCP_CONGESTION. ) — основное что требуется, хотя и там более тонкие параметры congestion control для отдельных сокетов не настраиваются.
Говорить про оверхэд в 23/20 байт сейчас уже не актуально, HTTP/2.0 не сильно лучше.
Возможно с приходом кучи готовых либ для HTTP/2.0 торренты пустят и через него, скорее всего это вопрос времени.