Сообщение Destination Unreachable
0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Type | Code | Checksum | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | unused | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Заголовок IP и 64 бита исходной дейтаграммы | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Поля IP
- Destination Address
- Адрес отправителя исходной дейтаграммы.
Поля ICMP
- Type
- 3
- Code
- 0 — сеть недоступна;
- 1 — хост недоступен;
- 2 — протокол недоступен;
- 3 — порт недоступен;
- 4 — требуется фрагментация, но установлен флаг DF (не фрагментировать);
- 5 — некорректно задан маршрут source route.
- Checksum
- Контрольная сумма представляет собой 16-битовое поразрядное дополнение до единицы суммы поразрядных дополнений до единицы сообщения ICMP, начиная с поля ICMP Type. При расчете контрольной суммы значение поля checksum принимается нулевым. Алгоритм вычисления контрольной суммы может быть изменен в будущем.
- Заголовок IP и 64 бита исходной дейтаграммы
- Эта информация используется хостом, чтобы связать сообщение с подходящим процессом. Если протокол вышележащего уровня использует порты, можно полагать, что номер порта присутствует в первых 64 байтах данных исходной дейтаграммы.
Описание
Если (в соответствии с данными в таблице маршрутизации шлюза) сеть, указанная в поле адреса получателя дейтаграммы, недоступна (например, дистанция до этой сети бесконечна), шлюз может передавать сообщение destination unreachable хосту, отправившему дейтаграмму. Дополнительно к этому в некоторых сетях шлюзы могут определять недоступность хоста. В этом случае шлюзы могут передавать сообщение destination unreachable.
Если IP-модуль хоста-получателя не может доставить дейтаграмму, поскольку этот протокол или порт не активизирован, хост-получатель может передать отправителю дейтаграммы сообщение destination unreachable.
Когда дейтаграмма должна быть фрагментирована для пересылки шлюзу, но в ней установлен флаг DF (не фрагментировать), шлюз должен отбросить дейтаграмму и может передать ее отправителю сообщение destination unreachable.
Коды 0, 1, 4, 5 могут приходить от шлюзов, коды 2 и 3 — от хостов.