Время жить

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

TTL — что такое? Время жизни (TTL) — это механизм, используемый для ограничения продолжительности жизни данных в сети. Данные отбрасываются, если истекает заданное значение. Идея создания заключается в том, чтобы предотвратить распространение любого пакета данных на неопределенный срок.

Общие значения

Обычно значение составляет 86400 секунд, что составляет 24 часа. Это хорошая отправная точка для большинства записей. Однако вы можете установить более высокий TTL Patch для записей MX или CNAME, поскольку они будут меняться очень редко. Если ваш сервис имеет решающее значение, рекомендуется установить TTL на 1 час (3600 секунд).


Время жить

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 27 апреля 2023 года; проверки требует 1 правка.

Запрос «пинг» перенаправляется сюда; см. также другие значения.

Ping — утилита для проверки целостности и качества соединений в сетях на основе TCP/IP, а также обиходное наименование самого запроса.

Текущая версия страницы пока не проверялась опытными участниками и может значительно отличаться от версии, проверенной 16 декабря 2022 года; проверки требуют 5 правок.

Time to live (TTL), Hop Limit, в вычислительной технике и компьютерных сетях — предельный период времени или число итераций или переходов, которые набор данных (пакет) может осуществить (прожить) до своего исчезновения.

Что такое TTL, или время жизни пакета

Перед тем, как говорить о следующей команде, расскажем про TTL.

Решение придумали такое: одним из параметров пакета сделали TTL, что расшифровывается как «Время жизни пакета» (time to live). Каждый раз, когда пакет пересылается от одного устройства к другому (такие пересылки называются «хопами»), это значение уменьшается на 1. Как только этот параметр у пакета станет равен нулю, маршрутизатор удаляет этот пакет.

TTL — что такое и как это работает?

В HTTP время жизни отображает количество секунд, для которых может быть возвращен кэшированный веб-контент до запроса сервера. Значение по умолчанию определяется настройками на веб-сервере, но может быть переопределено тегами управления кэшем, которые определяют, какие типы серверов могут кэшировать данные.

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

Техническое описание процесса

IP TTL устанавливается первоначально системой, отправляющей пакет. Его можно разместить в любое значение от 1 до 255. Разные операционные системы устанавливают разные значения по умолчанию. Каждый маршрутизатор, который получает пакет, вычитает не менее 1 из счета. Если счетчик остается больше 0, маршрутизатор перенаправляет пакет, в противном случае он отбрасывает его и отправляет сообщение управления интернет-протоколом (ICMP) обратно на исходный узел, что может вызвать повторную отправку.

Точка ограничения TTL/hop должна поддерживать непрерывный поток пакетов, застрявших в циклах маршрутизации (возможно, из-за некорректных таблиц с данными и засорения сетей). В облаках Multiprotocol Label Switching (MPLS) TTL копируется из IP TTL, когда IP-пакет входит в облако. При выходе значение MPLS TTL копируется в соответствующее поле до тех пор, пока оно меньше значения в поле.

Tracert или traceroute

В разных операционных системах эта команда пишется по-разному:

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

С помощью этой команды сисадмины выясняют, на каком этапе сеть перестаёт работать как нужно и кто виноват: оборудование клиента, общедомовый роутер или сервер провайдера.

Работает это так:

В итоге мы получаем полную карту прохождения пакета, и если пакет где-то стопорится и дальше не идёт — скорее всего, проблема в этом узле или сразу после него. Так техподдержка выясняет, где поломка и что делать дальше.

:/>  Не работает беспроводная клавиатура на ноутбуке windows 10

Теперь практика. Например, команда traceroute thecode.media покажет весь маршрут пакета до сайта «Кода»:


Время жить

А вот как выглядит трассировка до того же сайта, но при подключении через мобильный интернет:


Время жить

Шагов стало больше, и появилось больше узлов, которые не отвечают на trace-запросы, — это могут быть вышки сотовой связи и внутреннее магистральное оборудование провайдера. На восьмом запросе наш пакет дошёл до сервера 46.229.142.76 — это сетевой узел «Мегафона» в Нижнем Новгороде, через который запросы по скоростному магистральному каналу отправляются в интернет.

Ping

Командой ping мы проверяем, может ли операционная система связаться с выбранным сервером или сайтом в интернете.

Если мы всё время получаем сообщение, что превышено время, то, скорее всего, с интернетом что-то не так: запросы отправляются, но по каким-то причинам не возвращаются. Тут надо уже разбираться с провайдером.

Давайте разберём, что здесь происходит, на примере такой строчки:

64 bytes from 87.250.250.242: icmp_seq=4 ttl=247 time=15.995 ms


Время жить

64 — это размер нашего запроса в байтах. Его можно сделать больше или меньше для разных случаев.

87.250.250.242 — адрес одного из серверов Яндекса, который отвечает за ya.ru.

icmp_seq=4 — сейчас перед нами будет результат отправки пятого ICMP-пакета (потому что нумерация начинается с нуля).

ttl=247 — время жизни пакета составляет 247 пересылок. Про время жизни поговорим чуть ниже.

time=15.995 ms — запрос до сервера и обратно шёл почти 16 миллисекунд. Этого вполне хватит для обычного использования интернета, но может быть критично много для игр.

В самом конце программа сообщает, что у нас 10 пакетов ушло, 10 пришло и 0% потерь, то есть соединение стабильное.

Изменяем TTL

Утилиты ping и traceroute используют значение TTL, чтобы попытаться достичь заданного хост-компьютера или проследить маршрут до этого хоста. Traceroute отправляет поток пакетов с последовательно более высокими TTL, поэтому каждый будет отброшен в свою очередь следующим скачком (маршрутизатором) на пути до места назначения: первый пакет имеет TTL одного и отбрасывается первым маршрутизатором, второй — TTL из двух и отбрасывается следующим маршрутизатором. Время между отправкой пакета и получением ответного ICMP-сообщения используется для вычисления каждого последующего времени перемещения.


Время жить

В многоадресной рассылке IP TTL управляет областью или диапазоном, в котором может быть перенаправлен пакет. Условно IP ограничивается:

Структура ICMP пакета

Общее содержание ICMP пакета

Кэширование TTL и DNS

Что такое TTL в контексте DNS? Значение сообщает локальным серверам, как долго запись должна храниться локально прежде, чем новая копия записи будет восстановлена ​​из DNS. Хранилище записей известно, как DNS-кэш, а акт хранения записей называется кэшированием.


Время жить

Термин «время жизни» также используется для описания времени, в течение которого запись DNS может быть возвращена из кэша. В этом контексте USB TTL представляет собой числовое значение, заданное в записи DNS на авторитетном DNS-сервере для домена, определяющее количество секунд, за которое сервер кэширования может предоставить свое значение для записи. Когда прошло нужное количество секунд с момента последнего обновления, кэширующий сервер снова выйдет на сервер и получит текущее (и, возможно, измененное) значение для записи. Характерные особенности процесса кеширования, где TTL:


Время жить

Определение

Что такое TTL? Термин «время жизни» относится к количеству времени или «перескокам», когда пакет устанавливается в сети, прежде чем отбрасывается маршрутизатором. Технология также используется в других контекстах, включая кэширование CDN и кэширование DNS.


Время жить

TTL является значением в пакете IP-протокола, который сообщает сетевому маршрутизатору, был ли пакет слишком длинным. В IPv6 поле в каждом пакете было переименовано. T TL устанавливается в восьмом двоичном разряде в заголовке пакета и используется для предотвращения бесконечного распространения пакетов в интернете или в другой сети. При пересылке IP-пакета маршрутизаторы должны уменьшать TTL по меньшей мере на один порядок. Если поле пакета достигло нуля, маршрутизатор, обнаруживающий его, отбрасывает пакет и отправляет сообщение ICMP (протокол управления через интернет) обратно на исходный узел.

:/>  shutdown -s -t 3600: Как включить и отменить

Название происходит от английского названия звука импульса, издаваемого сонаром. Первоначально словом «ping» (по созвучию) именовали направленный акустический сигнал противолодочных гидролокаторов или «асдиков» (англ. , аббревиатура от Allied Submarine Detection Investigation Committee).

Что понадобится

Чтобы понять, есть ли интернет в принципе, используют две команды:

Это консольные команды, поэтому для работы с ними понадобится командная строка или терминал. Чтобы начать с ним работать в Windows, нажмите сочетание клавиш Win+R, в появившемся окошке напишите cmd и нажмите Enter. В MacOS делается по-другому: нажимаете ⌘+пробел, пишете terminal и нажимаете Enter.


Время жить

Запущенный терминал в MacOS. Сюда мы будем вводить те две команды

Послать 3 пакета с интервалом в 5 секунд, сопровождая получение откликов звуковыми сигналами

$ ping -ai 5 -c 3 wikipedia.org
PING wikipedia.org (208.80.152.2) 56(84) bytes of data.
64 bytes from rr.pmtpa.wikimedia.org (208.80.152.2): icmp_seq=1 ttl=46 time=180 ms
64 bytes from rr.pmtpa.wikimedia.org (208.80.152.2): icmp_seq=2 ttl=46 time=179 ms
64 bytes from rr.pmtpa.wikimedia.org (208.80.152.2): icmp_seq=3 ttl=46 time=189 ms

— wikipedia.org ping statistics —
3 packets transmitted, 3 received, 0% packet loss, time 1000ms
rtt min/avg/max/mdev = 176.253/178.291/181.339/2.222 ms
$

$ ping -n wikipedia.org

По истечении времени (в данном случае 5 сек) ping завершит свою работу

$ ping -w 5 wikipedia.org

Установить размер отправляемых пакетов в 1000 байт (Debian)

$ ping -s 1000 wikipedia.org

Установить размер отправляемых пакетов в 1000 байт (Solaris)

$ ping -s wikipedia.org 1000

Ping в командной строке Windows:

Случаи применения

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

CDN обычно использует TTL PL, чтобы определить, как долго кэшированный контент должен обслуживаться с пограничного сервера CDN, прежде чем новая копия будет извлечена с исходного сервера. Правильно устанавливая время между загрузками сервера происхождения, CDN может обслуживать обновленный контент без непрерывного распространения запросов на исходное. Эта оптимизация позволяет CDN эффективно обслуживать контент ближе к пользователю, уменьшая требуемую пропускную способность от источника.

В контексте записи DNS TTL представляет собой числовое значение, определяющее, как долго сервер кэша DNS может обслуживать запись, прежде чем обратиться к авторитарному DNS-серверу и получить новую копию записи.

Программа была написана Майком Мууссом, учёным Исследовательской Лаборатории Баллистики (англ. Ballistics Research Lab) США в декабре 1983 года.

Время жизни записей DNS

Для DNS-записей параметр «Time to live» определяет время актуальности данных при кешировании запросов. Задаётся в секундах, типичное значение составляет 86 400 секунд, то есть 24 часа. Это означает, что при изменении записи DNS, вплоть до 24 часов после изменения, DNS-серверы по всему миру могут выдавать старые данные из кеша, пока он не будет обновлён.

Как работает технология?

Когда пакет информации создается и отправляется через интернет, существует риск того, что он будет продолжать переходить с маршрутизатора на маршрутизатор на неопределенный срок. Чтобы уменьшить эту возможность, пакеты создаются с истечением срока действия, называемым пределом времени жизни. Пакет TTL также может быть полезен при определении того, как долго он находился в обращении, и позволяет отправителю получать информацию о пути пакета через интернет. Каждый пакет имеет место, где он хранит числовое значение, определяющее, насколько долго он должен продолжать перемещаться по сети. Каждый раз, когда маршрутизатор получает пакет, он вычитает одно значение из счета TTL и затем передает его в следующее место в сети. Если в любой момент счетчик TTL равен нулю после вычитания, маршрутизатор отбросит пакет и отправит сообщение ICMP обратно на исходный узел.


Время жить

TTL (время жизни) IP-пакетов

В IPv4 TTL представляет собой восьмиразрядное поле IP-заголовка.

:/>  Antimalware Service Executable как отключить Win 10: что это такое и 3 способа

Определяет максимальное количество хопов (hop, то есть прыжок, участок между маршрутизаторами), которые пакет может пройти. Наличие этого параметра не позволяет пакету бесконечно ходить по сети. Каждый маршрутизатор при маршрутизации должен уменьшать значение TTL на единицу, но некоторые шлюзы можно настроить, чтобы игнорировать это. Пакеты, не достигшие адресата, но время жизни которых стало равно нулю, уничтожаются, а отправителю посылается сообщение ICMP Time Exceeded. Если требуется, чтобы пакет не был маршрутизирован (то есть был принят только в своём сегменте), то выставляется TTL=1. На отправке пакетов с разным временем жизни основана трассировка их пути прохождения (traceroute). Максимальное значение TTL=255. Обычное начальное значение TTL=64 (Linux, Mac, Android, iOS), TTL=128 (Windows).

Изначально, по стандарту RFC 791, время жизни (TTL) в протоколе IPv4 должно было измеряться в секундах (отсюда и название). Каждая секунда ожидания в очереди узла (например, маршрутизатора), а также каждый переход на новый узел, через который проходит датаграмма, должен был уменьшить значение TTL на одну единицу. На практике, это не прижилось, и поле TTL просто уменьшается на единицу на каждом транзитном узле (хопе), через который проходит датаграмма. Для того, чтобы отразить это, в протоколе IPv6 поле TTL переименовано в «максимум переходов» (Hop Limit).

Коммутаторы работают на канальном уровне, поэтому не уменьшают TTL.

Контроль TTL часто используются провайдерами для обнаружения трафика несанкционированного подключенного устройства. К примеру, если на смартфоне включить режим «Мобильная точка доступа» (тетеринг), TTL от подключенных к нему устройств будет на 1 меньше ожидаемого. Это позволяет определить устройства, используемые в режиме модема, и при необходимости заблокировать доступ для них.

Если осуществляется диагностика сети в запросах скорости соединения, в первую очередь происходит оценка эхо-запроса Ping, который определяет целостность и качество соединения на предмет запроса потери пакетов отражённого сигнала от источника соединения. В данном случае, если ответ запроса приходит с минимальным количеством пакетов, к примеру около 30 или менее, то в данном случае настройка сетевого оборудования нестабильна и имеет уязвимость в системе безопасности. Таким образом, стоит придать значение политике IP безопасности, Брандмауэру, групповой политике и настройкам сетевых адаптеров, настроек маршрутизатора. Не стоит путать Ping — определяющий целостность и качество связи, с транспортными протоколами связи TCP и UDP — определяющих скорость передачи данных.

Обычный эхо-запрос имеет длину 64 байта (плюс 20 байт IP-заголовка). По стандарту RFC 791 IPv4 суммарный объём пакета не может превышать 65 535 байт.

Программа ping является одним из основных диагностических средств в сетях TCP/IP и входит в поставку всех современных сетевых операционных систем. Функциональность ping также реализована в некоторых встроенных ОС маршрутизаторов, доступ к результатам выполнения ping для таких устройств по протоколу SNMP определяется RFC 2925 (Definitions of Managed Objects for Remote Ping, Traceroute, and Lookup Operations).

Так как для отправки ICMP-пакетов требуется создавать raw-сокеты, для выполнения программы ping в UNIX-системах необходимы права суперпользователя. Чтобы обычные пользователи могли использовать ping, в правах доступа файла /bin/ping устанавливают SUID-бит.

Что будем делать

В каждой операционной системе для компьютеров есть две команды, которые чаще всего используются для диагностики работы интернета. Наша задача — выяснить, может ли сама операционная система выходить в интернет или он ей тоже недоступен. Случается такое, что система может выходить в сеть, а программы (браузер, например) — нет. Это значит, что с интернетом всё в порядке, а причину надо искать в программах.

Что дальше

Впереди будет ещё несколько практических занятий, которые помогут лучше разобраться с тем, как работают привычные нам вещи. Подпишитесь, чтобы не пропустить остальное.

Оставьте комментарий