
Утилиты, такие как Windows, ping.exe
имеют возможность изменять значение TTL по умолчанию в заголовке IP для сообщений Echo Request. TTL показывает максимальный предел переходов для пакетов. Я знаю, что каждый маршрутизатор уменьшает значение TTL, и это сделано для «очистки» сети от зацикленных пакетов. Но какой смысл менять TTL? Почему бы просто не установить его на максимальное значение 255? И как узнать, какое значение лучше? Я слышал, что TTL как-то связан с понятиемДоменные зоныИ егоразмер. Может кто-нибудь объяснить, пожалуйста? Спасибо.
решение1
TTL — довольно общий термин, означающий «время жизни». Он используется во многих ситуациях, где требуется конечная продолжительность жизни.
В ping, как вы правильно заметили, он используется для установки максимального количества переходов, которые может пройти пакет. В DNS он используется как промежуток времени до истечения срока действия записи в кэше.
Вы спросите, почему бы просто не установить его как 255 все время? Ну, в 99% ситуаций, когда вы используете ping, это нормально. Есть всего несколько (ну, один, который приходит на ум), где вы можете захотеть указать точное количество переходов.
Представьте себе сеть с несколькими маршрутами между точками A и B. Маршрут 1 (R1) имеет 6 переходов между A и B. Маршрут 2 (R2) имеет 8 переходов между A и B.
Установив ping так, чтобы разрешалось только 6 переходов, вы можете точно определить, сколько пакетов проходит через R1, а сколько — через R2.
решение2
Насколько я знаю, TTL в ping в основном предназначен для устранения пакета по истечении определенного времени, после чего он не сможет циркулировать в сети дальше. Вы также можете использовать это значение, чтобы узнать, какова стоимость станции, на которую вы отправили эхо-запрос, потому что каждый маршрутизатор уменьшает его перед отправкой. Но! когда пакет эхо-запроса достигает целевой станции (так что она все еще жива), генерируется пакет "эхо-ответ", и этот ответ также содержит TTL, который сбрасывается обратно на максимум на основе "правила целевой станции". Станция Linux/BSD устанавливает его на 64, Windows 128, Cisco или Solaris устанавливают его на 255, я полагаю, затем отправляют его обратно на адрес назначения.
Вот почему в отчетах ping можно увидеть разные значения TTL.