Что такое ttl при пинге
Что такое время жизни пакета (TTL)
Вероятно, многие из нас обращали внимание на параметр TTL в запущенной команде ping. Расшифровывается TTL как Time to live.
Время жизни пакета это предельное число итераций, которое пакет данных может совершить до своего исчезновения. Выражаясь не так официально, TTL — это число «прыжков» от устройства к устройству, которое может совершить пакет.
Строго говоря, TTL это не только про пакеты данных. Время жизни имеют и другие вещи, например, DNS-записи на серверах. Поэтому не связывайте понятие TTL только с пакетами данных.
Возвращаясь к теме статьи, объясним предназначение времени жизни пакета. Дело в том, что данные в сети имеют свойство зацикливаться, что создаёт своего рода «мусорный» трафик. Поскольку количество «прыжков» между узлами у пакетов ограничено, они не смогут «бродить» по сети вечно.
На самом деле, изначально предполагалось, что TTL пакетов будет измеряться в секундах. Так что это должно было быть время в буквальном смысле слова. Однако позже от этой концепции отказались в пользу простого числа «прыжков» или хопов (hop). На каждом промежуточном узле это число уменьшается на единицу (по умолчанию, хотя настройки можно выставить иначе). Если число «прыжков» у пакета истекло, а адресата он так и не достиг, этот пакет уничтожается, а адресату направляется сообщение о необходимости повторной отправки данных (Time Exceeded). Учтите, что коммутаторы оставшееся число «прыжков» не изменяют, так как действуют на канальном уровне (более низком) модели OSI, а не сетевом.
Время жизни пакета задаётся в соответствующем поле в заголовке IPv4-пакета. В стандарте IPv6 используется уже другое поле Hop Limit. Максимально возможное значение TTL равно 255. В большинстве популярных операционных систем (macOS, Linux, Android, iOS и т.д.) TTL=64. В Windows по умолчанию TTL=128.
TTL и интернет-провайдеры
Достаточно интересно используют TTL пакетов интернет провайдеры для обнаружения несанкционированного подключения устройств. Способ массово стал использоваться со временем распространения мобильного интернета и устройств, которые могут этот интернет не только потреблять, но и раздавать другим (смартфоны, планшеты).
Как это выглядит на практике? Если Вы пользуетесь мобильным интернетом со смартфона, то тот отправляет TTL=64, но, если раздать с него Wi-Fi, то TTL подключенных устройств будет изменяться на единицу. Нагляднее это можно проследить на схеме ниже.
Изменение TTL при раздаче Wi-Fi со смартфона.
Таким образом, оператор видит, что TTL «прыгает» с 64 до 63, а то и до 127 (если это ноутбук с Windows), и делает вывод, что в сеть выходит не одно устройство, а больше. В зависимости от условий предоставления связи, это может привести к блокировке.
Мы не будем в этой статье рассматривать способы обхода блокировок. Скажем лишь, что значение TTL по умолчанию можно изменить. Возьмём для примера Windows. Если вы запустите ping localhost, то увидите, что, как и говорилось ранее, TTL=128.
Для изменения установленного по умолчанию значения TTL нам нужно открыть редактор реестра, пройти в ветку HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters и отредактировать (или создать, если его нет) параметр DefaultTTL. Если у вас 64-битная версия ОС, то тип параметра будет QWORD (64 бита), если 32-битная версия ОС, то тип DWORD (32 бита). Система исчисления — десятичная, а значение можете задать от 1 до 255. Например, 65. Тогда пакеты данных, пройдя через раздающий Wi-Fi смартфон, будут выдавать TTL=64.
Изменение значения TTL в Windows.
После этого перезагрузите компьютер. Снова запустив ping localhost, можно увидеть, что значение TTL изменилось.
Отдельно стоит упомянуть протокол IPv6. Если вы его используете, то нужная вам в реестре ветка: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\TCPIP6\Parameters.
О том, как провернуть подобную настройку в Ubuntu, читайте в статье по этой ссылке.
Что такое TTL в пинге?
TTL — что такое? Время жизни (TTL) — это механизм, используемый для ограничения продолжительности жизни данных в сети. Данные отбрасываются, если истекает заданное значение. Идея создания заключается в том, чтобы предотвратить распространение любого пакета данных на неопределенный срок.
Определение
Что такое TTL? Термин «время жизни» относится к количеству времени или «перескокам», когда пакет устанавливается в сети, прежде чем отбрасывается маршрутизатором. Технология также используется в других контекстах, включая кэширование CDN и кэширование DNS.
TTL является значением в пакете IP-протокола, который сообщает сетевому маршрутизатору, был ли пакет слишком длинным. В IPv6 поле в каждом пакете было переименовано. TTL устанавливается в восьмом двоичном разряде в заголовке пакета и используется для предотвращения бесконечного распространения пакетов в интернете или в другой сети. При пересылке IP-пакета маршрутизаторы должны уменьшать TTL по меньшей мере на один порядок. Если поле пакета достигло нуля, маршрутизатор, обнаруживающий его, отбрасывает пакет и отправляет сообщение ICMP (протокол управления через интернет) обратно на исходный узел.
Как работает технология?
Когда пакет информации создается и отправляется через интернет, существует риск того, что он будет продолжать переходить с маршрутизатора на маршрутизатор на неопределенный срок. Чтобы уменьшить эту возможность, пакеты создаются с истечением срока действия, называемым пределом времени жизни. Пакет TTL также может быть полезен при определении того, как долго он находился в обращении, и позволяет отправителю получать информацию о пути пакета через интернет.
Каждый пакет имеет место, где он хранит числовое значение, определяющее, насколько долго он должен продолжать перемещаться по сети. Каждый раз, когда маршрутизатор получает пакет, он вычитает одно значение из счета TTL и затем передает его в следующее место в сети. Если в любой момент счетчик TTL равен нулю после вычитания, маршрутизатор отбросит пакет и отправит сообщение ICMP обратно на исходный узел.
Техническое описание процесса
IP TTL устанавливается первоначально системой, отправляющей пакет. Его можно разместить в любое значение от 1 до 255. Разные операционные системы устанавливают разные значения по умолчанию. Каждый маршрутизатор, который получает пакет, вычитает не менее 1 из счета. Если счетчик остается больше 0, маршрутизатор перенаправляет пакет, в противном случае он отбрасывает его и отправляет сообщение управления интернет-протоколом (ICMP) обратно на исходный узел, что может вызвать повторную отправку.
Точка ограничения TTL/hop должна поддерживать непрерывный поток пакетов, застрявших в циклах маршрутизации (возможно, из-за некорректных таблиц с данными и засорения сетей). В облаках Multiprotocol Label Switching (MPLS) TTL копируется из IP TTL, когда IP-пакет входит в облако. При выходе значение MPLS TTL копируется в соответствующее поле до тех пор, пока оно меньше значения в поле.
Изменяем TTL
Утилиты ping и traceroute используют значение TTL, чтобы попытаться достичь заданного хост-компьютера или проследить маршрут до этого хоста. Traceroute отправляет поток пакетов с последовательно более высокими TTL, поэтому каждый будет отброшен в свою очередь следующим скачком (маршрутизатором) на пути до места назначения: первый пакет имеет TTL одного и отбрасывается первым маршрутизатором, второй — TTL из двух и отбрасывается следующим маршрутизатором. Время между отправкой пакета и получением ответного ICMP-сообщения используется для вычисления каждого последующего времени перемещения.
В многоадресной рассылке IP TTL управляет областью или диапазоном, в котором может быть перенаправлен пакет. Условно IP ограничивается:
Кэширование TTL и DNS
Что такое TTL в контексте DNS? Значение сообщает локальным серверам, как долго запись должна храниться локально прежде, чем новая копия записи будет восстановлена из DNS. Хранилище записей известно, как DNS-кэш, а акт хранения записей называется кэшированием.
Термин «время жизни» также используется для описания времени, в течение которого запись DNS может быть возвращена из кэша. В этом контексте USB TTL представляет собой числовое значение, заданное в записи DNS на авторитетном DNS-сервере для домена, определяющее количество секунд, за которое сервер кэширования может предоставить свое значение для записи. Когда прошло нужное количество секунд с момента последнего обновления, кэширующий сервер снова выйдет на сервер и получит текущее (и, возможно, измененное) значение для записи. Характерные особенности процесса кеширования, где TTL:
TTL — что такое и как это работает?
В HTTP время жизни отображает количество секунд, для которых может быть возвращен кэшированный веб-контент до запроса сервера. Значение по умолчанию определяется настройками на веб-сервере, но может быть переопределено тегами управления кэшем, которые определяют, какие типы серверов могут кэшировать данные.
Пакет является фундаментальной единицей информационного транспорта во всех современных компьютерных сетях и в других сетях связи. Маршрутизатор представляет собой электронное устройство или программное обеспечение сетевого уровня, которое соединяет локальные или глобальные сети и пересылает пакеты между ними.
Общие значения
Обычно значение составляет 86400 секунд, что составляет 24 часа. Это хорошая отправная точка для большинства записей. Однако вы можете установить более высокий TTL Patch для записей MX или CNAME, поскольку они будут меняться очень редко. Если ваш сервис имеет решающее значение, рекомендуется установить TTL на 1 час (3600 секунд).
Случаи применения
Помимо трассировки пакетов маршрутов через интернет, TTL используется в контексте кэширования информации за определенный период времени. Вместо того, чтобы измерять время в перелетах между маршрутизаторами, каждый из которых может занимать определенное количество часов, некоторые случаи использования сети работают более традиционным образом.
CDN обычно использует TTL PL, чтобы определить, как долго кэшированный контент должен обслуживаться с пограничного сервера CDN, прежде чем новая копия будет извлечена с исходного сервера. Правильно устанавливая время между загрузками сервера происхождения, CDN может обслуживать обновленный контент без непрерывного распространения запросов на исходное. Эта оптимизация позволяет CDN эффективно обслуживать контент ближе к пользователю, уменьшая требуемую пропускную способность от источника.
В контексте записи DNS TTL представляет собой числовое значение, определяющее, как долго сервер кэша DNS может обслуживать запись, прежде чем обратиться к авторитарному DNS-серверу и получить новую копию записи.
Интерпретация TTL в результатах пинга
Я работаю на поставщика услуг VoIP, и я работаю над проблемой с клиентом, у которого есть кабельное подключение к интернету, которое бросает меня в тупик.
Я пингую оба этих маршрутизатора одновременно из одной и той же системы, которая представляет собой систему Linux, подключенную к оптоволокну с (вероятно) уровня (3). Излишне говорить, что никто на планете не знает, сколько узлов существует между здесь и там. Но проверьте результаты пинга.
Проверьте значения TTL. Имеет ли это смысл? Эти устройства находятся рядом друг с другом и подключены к этому модему через отдельные порты коммутатора. Как может появиться еще около 200 прыжков? От пинга других сайтов у меня складывается впечатление, что TTL просто не реализован так, как я думаю. Я сомневаюсь, что между мной и 4.2.2.2, или woot.com, есть 200 прыжков, но я получаю менее 50 результатов TTL от обоих.
Я также замечаю, что один из немногих сайтов, которые я могу найти, который отвечает здравомыслящим TTL, это slashdot, и я могу предположить, что их серверы и маршрутизаторы могут быть немного меньше «того, что мы нашли в гараже», чем обычный веб-сайт, который вроде как заставляет меня чувствовать, что я могу быть на правильном пути с этим последним предположением.
Подводя итог: означает ли TTL для ping что-нибудь надежное?
Излишне говорить, что никто на планете не знает, сколько узлов существует между здесь и там.
Я знаю, сколько узлов. Их ровно 16. Причина, по которой вы получаете разные ответы, заключается в том, что разные операционные системы используют разные начальные значения для TTL. Некоторые устройства используют 255, в то время как другие используют 63. Таким образом, одно из устройств, на которые вы отправляете эхо-запрос, отправляет ответ с TTL, установленным в 255. К тому времени, когда он возвращается к вам, он уменьшается до 239. Это 16 прыжков.
Другое устройство, на которое вы отправляете эхо-запрос, устанавливает TTL равным 63. Поэтому, когда оно вам подходит, значение равно 47
Если вы хотите быть уверены в количестве прыжков между вами и целью, используйте traceroute.
Как изменить TTL в Windows 10 и раздать безлимитный интернет со смартфона на компьютер
Любой современный смартфон может выступать в качестве Wi-Fi роутера, способного раздавать интернет для другого устройства. Воспользоваться подобным функционалом разрешено всем владельцам, но бесплатно такая опция предоставляется далеко не каждому. Часто бывает, что мобильный оператор ограничивает «безлимитный» тариф и взимает дополнительную плату за раздачу интернета со смартфона. Происходит это благодаря TTL, который хорошо контролируется оператором.
Что это за технология и как обойти ограничения – поговорим в сегодняшней статье.
Что такое TTL и зачем он нужен
TTL – это специальный показатель, который встроен в каждое устройство, способное выходить в интернет. Сама аббревиатура расшифровывается как Time To Live – «время жизни IP-пакета». Это набор данных, который передается от пользователя к серверу и обратно. Время в данном случае означает то, сколько может просуществовать пакет без потери информации. Изначально TTL хотели измерять в секундах, откуда и пошло определение.
Значение TTL в компьютерных сетях находится в диапазоне от 0 до 255. Перемещаясь между различными маршрутизаторами, параметр постоянно меняется. Для владельцев устройств на базе iOS и Android начальное значение обычно равняется 64, для Windows – 128. Каждый переход через беспроводной канал уменьшает показатель на 1 единицу. Если произойдет множество скачков от одного клиента к другому, значение становится равным 0 – в таком случае все данные в пакете уничтожаются.
Точное число значений TTL всегда перенаправляется провайдеру, который всегда может узнать, был ли пропущен трафик через сторонние устройства или нет. Таким образом, сотовые операторы могут спокойно контролировать раздачу интернета своих клиентов. Когда владелец смартфона раздает интернет, его значение TTL уменьшается на единицу и равняется 63. Это сразу же становится известно оператору, который в свою очередь начинает принимать меры – обычно взимает дополнительную плату или перекрывает доступ в интернет.
Более детально это выглядит так:
Чтобы обойти блокировку оператора, необходимо увеличить значение TTL на 1 единицу. Так мы получим увеличенное число, которое будет снижаться до исходного. В таком случае оператор не сможет заподозрить клиента в раздаче интернета.
О том, как это сделать, поговорим далее.
Как узнать значение TTL на компьютере
Прежде чем переходить к изменению TTL, необходимо определить, чему оно равняется. В Windows 10 сделать это довольно просто – достаточно ввести нужную команду в командную строку, запущенную от имени администратора. Рассмотрим на примере:
Узнав нужное нам значение, можем переходить к его изменению.
Как изменить TTL в Windows 10
Для редактирования TTL нам потребуется обратиться к редактору реестра – это встроенная утилита, позволяющая корректировать системные настройки. Если вы никогда с ней не работали, то будьте бдительны – корректировка различных параметров может привести к проблемам с Windows.
Перейдем к настройке:
Осталось перезагрузить компьютер, и значение TTL будет изменено на 65. При передаче интернета со смартфона оно изменится на стандартное 64. Оператор сотовой связи ничего не заподозрит, а вы сможете пользоваться раздачей интернета как ни в чем не бывало.
Как раздать интернет на Android-смартфоне
Есть три способа раздачи интернета – через мобильную точку доступа, USB или Bluetooth.
Мобильная точка доступа
Алгоритм действий следующий:
В моем случае выполняется раздача Wi-Fi под именем «Frank» с паролем «12345678». На вашем смартфоне будут указаны другие параметры, но вы всегда можете их поменять. Также в настройках можно отключить вход по паролю – для этого необходимо в верхнем правом углу нажать на троеточие и выбрать «Настройки точки доступа». Затем в блоке «Безопасность» изменить значение на «Открытый».
Раздаем интернет через Bluetooth
Подключиться через Bluetooth вы сможете только в том случае, если ваш ноутбук поддерживает данную технологию. Процесс подключения следующий:
Убедитесь, что ваш телефон и ноутбук не подключены к какой-либо другой сети.
Через USB—подключение
Для подключения через USB нам потребуется простой провод Type-A/C на Type-C/Micro B – в общем тот, который вы обычно используете для зарядки.
Подключаем телефон к компьютеру и выполняем следующие действия:
Вот такими несложными манипуляциями мы смогли подключиться к интернету, который раздается со смартфона на Android.
Как раздать интернет на iOS-устройстве
Раздать интернет на Mac, PC и другие устройства мы также можем через Bluetooth:
После изменения TTL вы можете пользоваться раздачей интернета без каких-либо проблем, если ранее они были. Удачи!
TTL – что это такое и зачем его менять
Раз вы сюда попали, скорее всего вам нужно поменять TTL для обхода ограничений мобильного оператора на раздачу трафика, но вы не понимаете, что такое TTL, и зачем его менять. Постараюсь объяснить.
Понятие TTL
В интернете все передается пакетами – маленькими порциями данных. Они ходят от маршрутизатора к маршрутизатору (то же самое, что от роутера к роутеру) по узлам сети. Например, ваш мобильный телефон тоже может стать роутером, если его использовать для раздачи данных на компьютер и другие устройства.
TTL расшифровывается как Time To Live, то есть время жизни пакета данных в секундах. При прохождении пакета через очередной роутер TTL уменьшается на единицу. Нужно это для того, чтобы пакет бесконечно не гулял по сети, если не сможет дойти до адресата. Роутер, при попадании в который пакет исчерпал свое значение TTL, посылает отправителю сообщение ICMP о том, что данный пакет превысил максимально допустимое время своего пребывания в сети. Максимальное значение TTL=255. Причем разные операционные системы генерируют пакеты с разным TTL.
Если говорить совсем простыми словами…
Представьте себе, что вам 5 лет и вы хотите кушать (вы — пакет). Вы идете к папе и говорите: «Папа, я хочу кушать». Ваш папа смотрит телевизор, согласно таблице маршрутизации о посылает вас к маме. Вы идете к ней и просите «Мамааа, я хочу кушать». Мама болтает с подругой по телефону и согласно своей таблице маршрутизации посылает вас к папе. И так вы ходите как дурак от папы к маме и обратно, туда-сюда, туда-сюда, а все потому что криворукие админы (родители папы и мамы) неправильно настроили таблицу маршрутизации. Чтобы защититься от таких ситуаций придумали понятие TTL (Time To Live), что применительно к нашей ситуации означает количество терпения у мальчика, пока он не скажет «достало» и не упадет перед ногами мамы или папы в беспомощном состоянии. Последний, по правилам (стандарты – это «так заведено в семье»), обязан послать короткий нелестный отзыв адрес того, кто послал мальчика кушать. Это так называемый ICMP-пакет «мальчик сдох»
Ок, так при чем тут операторы? Дело в том, что по полученным от абонента TTL оператор узнает, раздается интернет или нет.
Как операторы узнают, что трафик раздается
Потому что ему от абонента начинают приходить пакеты с разными значениями TTL. На это есть две причины:
- Во-первых, у разных устройств TTL может быть разным. А при раздаче интернета появляется ведь второе устройство – то, на которое мы раздаем интернет. Так у телефона на iOS или Android значение TTL равно 64, а у компьютера на Windows – 128. И при раздаче интернета с телефона на компьютер появится два разных значения TTL: 64 и 128. Оператору уходят пакеты и с TTL=64, и TTL=127 (при отправке пакета с компьютера через раздающий телефон-роутер значение 128 уменьшается на единицу). Во-вторых, даже если TTL устройств одинаков (с телефона на телефон), раздающий телефон опять же уменьшает TTL на 1 как всякий нормальный роутер. И оператору уходят пакеты с разными значениями TTL=64 (если это пакет с раздающего телефона) и TTL=63 (пакет с потребляющего телефона).
Итак оператор получает пакеты с разными значениями:
- TTL пакета с самого телефона. TTL пакета с потребляющего трафик устройства, уменьшенное на единицу при проходе через телефон-роутер.
На всякий случай прикладываю картинки.
Оператор замечает такую ситуацию разброса значений TTL, делает вывод, что происходит раздача трафика и принимает карательные меры в отношении абонента-нарушителя, желающего поживиться безлимитным интернетом на полную катушку, раздав его куда хочется. Как же скрыть раздачу от оператора? Очевидно, надо сравнять TTL – привести их всех к одному значению. Для этого можно
Приведение TTL к единому значению для обхода ограничений оператора
Вторая схема удобнее, но она пригодна не для всех телефонов.
Итак, мы рассмотрели, что такое TTL, и зачем его нужно менять. Как именно изменить TTL требует рассмотрения в отдельной статье. Как изменить TTL на Windows.