1

Допустим, два компьютера подключены к одной сети через маршрутизатор (шлюз по умолчанию). Если бы мне нужно было пропинговать другую машину со стандартным TTL 64 (* nix host), я бы вернул значение TTL 64? Или тот факт, что он проходит через маршрутизатор, делает его 63?

1 ответ1

1

Это зависит от того, на какой стороне маршрутизатора они находятся. Если они оба находятся на стороне локальной сети (как вы, кажется, предлагаете), то все, что делает «маршрутизатор» - это коммутация пакетов. Это означает, что TTL останется прежним; 64.

Если другая машина была в другой сети, скажем, сторона WAN маршрутизатора; тогда TTL уменьшится на единицу. Каждый раз, когда маршрутизатор принимает решение, в какую сеть направить пакет, он уменьшает TTL пакета на единицу. Аналогично для пакетов, сгенерированных в ответе (которые снова должны начинаться с TTL 64).

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .