TTL - это что такое?

TTL — что это такое? TTL расшифровывается как Time to Live. То есть время жизни пакета, отведённое ему в момент перехода от начального узла к конечному. В стандарте IPv4 для отражения TTL выделено восьмиразрядное поле в заголовке. Проходя через многочисленные узлы к адресату, значение пакета каждый раз уменьшается на 1 единицу. Это сделано с целью ограничить время его присутствия в узлах конкретным числом. А это, в свою очередь, позволяет избежать перегрузок в сетях.

По задумке авторов технологии, время жизни пакета теряет 1 единицу каждую секунду. Но благодаря высоким скоростям соединения и количеству маршрутизаторов и узлов уменьшение происходит гораздо быстрее.

Что произойдёт, если значение TTL достигнет нуля? Пакет исчезнет, и отправитель получит сообщение о том, что время жизни его истекло, а значит, нужно попытаться снова. Максимальное значение, которое способно отразить восьмиразрядное поле, составляет 255. Для операционных систем есть значения по умолчанию. Например TTL в Windows равен 128, а в Linux и производных — Mac, Android — 64.

В среде DNS имеется свой TTL, и он отражает актуальность кэшированных данных. Но речь в статье будет не о нем.

Для чего применяется TTL и в каких сферах

Время жизни пакета активно используют различные провайдеры интернета, например Yota. Тем самым они пытаются ограничить доступ к потреблению чрезмерного трафика при раздаче Wi-Fi. Это происходит за счет того, что пакет, переходя от устройства, получающего трафик на раздающее, уменьшает TTL, в итоге к провайдеру приходит значение меньше или в случае с Windows больше ожидаемого.

Для примера можно описать процесс работы смартфона на базе "Андроида". Устройство отправляет запрос на получение данных с определенного сайта. Вместе с ним посылается TTL, значение которого 64. Провайдер знает, что это стандартная для данного устройства цифра времени жизни пакета, поэтому свободно позволяет ему получать доступ к Сети.

Теперь устройство начинает раздавать Wi-Fi и становится своего рода маршрутизатором. Подключившийся смартфон работает на платформе Windows, и его TTL, пройдя через раздающее устройство, будет 127. Провайдер встретит этот пакет и поймет, что его интернет раздается. Поэтому и заблокирует содиненение.

Возможности изменения TTL на различных устройствах

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

Стоит отметить, что некоторые провайдеры блокируют доступ не только по TTL, но и отслеживают посещение сайтов. И если ресурс никак не связан со смартфоном, т. е. не нужен ему, соединение обрывается.

Изменить TTL можно несколькими способами, которые будут описаны далее.

Изменение TTL на устройствах на платформе "Андроид"

Самым простым способом изменения времени жизни пакета на устройствах "Андроид" будет использование специализированного программного обеспечения. Например, очень эффективный продукт — TTL Master. Он может изменить время жизни пакета раздающего аппарата на то, которое получается в результате прохода данных. Например, при раздаче Wi-Fi на устройство с Windows нужно установить значение 127, а на Андроид или Linux — 63.

Программа бесплатна, и ее легко можно найти в официальном магазине Google Play. Однако для ее функционирования требуются права root на устройстве.

Интерфейс программы прост — в верхней части отображено текущее значение параметра. Чуть ниже расположены заготовки для операционных систем Windows и остальных. Также можно установить желаемое значение вручную. Чуть ниже находится кнопка с возможностью перейти из приложения сразу в настройки модема. В некоторых версиях доступно решение через iptables, для чего есть определённый пункт.

В настройках есть возможность установить запуск и смену времени жизни автоматически при загрузке устройства. Некоторые версии "Андроида" позволяют произвести сразу после смены значения запуск точки доступа. Есть поддержка русского языка.

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

Также можно попробовать метод изменения системных файлов вручную для смены значения времени жизни пакета. Для этого понадобятся root-права. Сначала надо перейти в режим полета, то есть сделать так, чтобы телефон потерял Сеть.

Затем воспользоваться любым проводником, который способен редактировать файлы. В нем надо перейти по пути proc/sys/net/ipv4. В этом каталоге интересует файл с именем ip_default_ttl. Он содержит значение 64, которое нужно изменить на 63.

Далее нужно вывести телефон из режима полета, чтобы он снова зарегистрировался в Сети. Теперь можно раздать беспроводной интернет и попробовать подключить устройство на базе iOS или "Андроида", то есть с TTL 64.

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

Смена TTL на компьютере с операционными системами Windows

Если нужно раздать интернет со смартфона "Андроид" на компьютер под управлением Windows, то придется немного подкорректировать значения реестра. Этот способ будет актуален, когда телефон не имеет рут и обойти блокировку на нем не получается.

Запуск реестра в линейке операционных систем можно осуществить через пункт меню «Пуск» «Выполнить». В нем надо ввести Regedit и нажать ОК. В открывшемся окне появятся две области. В левой находится древовидная структура, а в правой - значения. Нужно найти ветку HKEY_LOCAL_MACHINE \SYSTEM\CurrentControlSet\Services\Tcpip\Parameters. Для Windows 8 Tcpip может быть заменён на Tcpip6.

В окне со значениями надо создать новое. Это делается щелчком правой кнопкой мыши. В контекстном меню выбирается «Создать», затем новый параметр DWORD, и присваивается название Default TTL. Что это? Это будет статичный параметр для постоянного значения времени жизни. Затем снова щелчок правой кнопкой, и выбрать «Изменить». Тип счисления должен быть десятичным, а значение — 65. Таким образом, система будет передавать время жизни пакета в 65, то есть на один больше чем у "Андроида". То есть, проходя сквозь смартфон, он потеряет одну единицу, и провайдер не заметит подвоха. После внесённых изменений нужно перезагрузить компьютер.

Теперь можно раздавать интернет на "Андроид", не используя особых программных средств и приспособлений.

Изменение на Linux

Как осуществляется смена TTL на компьютере с операционными системами Linux? Для Linux смена времени жизни пакета меняется одной строкой в терминале: sudo iptables -t mangle -A POSTROUTING -j TTL --ttl-set 65

Изменение времени жизни пакета на модемах

Изменить TTL модема можно с помощью смены IMEI. Это такой идентификационный код, уникальный для каждого устройства, имеющего доступ к сотовым сетям. Вся проблема в том, что универсального способа нет. Это связано с тем, что для каждого отдельно взятого модема должна быть своя прошивка, которая сменит IMEI.

На сайте 4PDA имеется подборка решения для смены времени жизни на модемах от разных производителей и моделей. Также там можно найти подробные реализации данной задачи.

Смена времени жизни пакета на iOS

С помощью твика TetherMe можно сменить на iOS TTL. Что это такое? Это deb-приложение, которое разблокирует режим модема на устройствах с iOS на борту. Дело в том, что Apple позволяет некоторым операторам сотовой сети блокировать функцию "Режим модема" на уровне симки. Данное приложение даёт возможность его активировать и использовать телефон в качестве модема.

Изменение TTL в MacOS

MacOS по умолчанию обладает временем жизни 64. Если требуется его изменить, нужно в терминале ввести команду: sudo sysctl -w net.inet.ip.ttl=65.

Однако при таком подходе значение после перезагрузки снова изменится на 64. Поэтому необходимо выполнить ряд манипуляций. В корне диска существует каталог etc. Он скрытый, но в него нужно попасть. Там создаётся файл sysctl.conf. В нем нужно прописать всего одну строчку — net.inet.ip.ttl=65. Ну и естественно, сохранить.

Для отображения данной скрытой папки в Findere надо перейти в основной диск и нажать сочетание клавиш cmd+shift+G. В появившемся окне вводится имя искомой папки, после чего она найдется.

Выводы

Существует такое понятие, как USB TTL конвертер. Однако к контексту статьи он не имеет никакого отношения, и не стоит путать его с временем жизни пакета. USB TTL конвертер — своего рода переходник для создания соединений между устройствами USB и логикой TTL.

В статье было подробно объяснено про TTL — что это такое и для чего нужен. Несколько способов его изменения позволят обойти ограничение по блокировке трафика на некоторых провайдерах. Это даёт возможность использовать интернет повсеместно.

Реализация на разных устройствах отличается, можно сделать это как с помощью программных средств, так и изменяя системные файлы вручную. Некоторые модемы придётся прошивать, причём под каждый свою версию ПО.

Данными инструкциями можно обойти блокировку многих провайдеров, предоставляющих доступ в интернет посредством сотовой сети.

Комментарии
Спасибо огромное! А что если скажем установить ТТЛ в реестре виндовс меньше чем 64. Скажем 44. как на это отреагирует оператор?