7.2.3 Входящие сообщения ICMP

We use cookies. Read the Privacy and Cookie Policy

7.2.3 Входящие сообщения ICMP

Что происходит при получении хостом сообщения ICMP? Рассмотрим пример, когда производится попытка обращения по зарезервированному (и, следовательно, недостижимому) адресу сети:

> telnet 10.1.1.1

Trying 10.1.1.1 ...

telnet: connect: Host is unreachable

Произошло то, что и должно было произойти,— в сообщении указано на недостижимость хоста (Host is unreachable).

Чтобы определить, какой из маршрутизаторов послал сообщение ICMP, можно использовать команду traceroute:

> traceroute 10.1.1.1

traceroute to 10.1.1.1 (10.1.1.1), 30 hops max, 40 byte packets

> nomad-gateway (128.121.50.50) 2 ms 2 ms 2 ms

> liberty-gateway (130.94.40.250) 91 ms 11 ms 78 ms

> border2-hssi2-0.NewYork.mci.net (204.70.45.9) !H !H !H

Маршрутизатор New York послал сообщение Destination Unreachable, которое отображается на экране как !Н.

Функции traceroute основаны на ICMP-сообщении Time Expired и формируются следующим образом:

? Создается короткое сообщение UDP, которое имеет заголовок IP с установленным в 1 полем TTL.

? Трижды отправляется датаграмма.

? Первый маршрутизатор (в примере — nomad-gateway) устанавливает значение Time-to-Live (время жизни) в 0, отбрасывает датаграмму и отправляет источнику ICMP-сообщение Time Expired.

? Функция traceroute идентифицирует пославший сообщение маршрутизатор и трижды выводит само сообщение.

? Значение Time-to-Live устанавливается в 2, и сообщение посылается дальше.

? Процесс повторяется с увеличением Time-to-Live на каждом шаге.

Если можно достичь точки назначения, то в итоге можно получить полный путь до него.