Общения типа Redirect

гобшения Redirect генерируются маршрутизаторами, чтобы проин-

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

аличию нескольких маршрутизаторов пакеты к одной и той же целевой системе могут добраться разными путями (рис. 8.4). Допустим, Система 1 отправляет Маршрутизатору А пакет, предназначенный Системе 2. Он переправляет пакет Маршрутизатору В, одновременно посылая Системе 1 сообщение ICMP Redirect, чтобы проинформировать ее о возможности передачи пакетов в Систему 2 непосредственно через Маршрутизатор В.

В поле Data сообщения ICMP Redirect содержатся обычные 28 байтов из передаваемой дейтаграммы (20-байтовый IP-заголовок и 8 байтов данных), а также дополнительное 4-байтовое поле Gateway Internet Address с IP-адресом маршрутизатора, которым система отныне должна пользоваться для передачи дейтаграмм данному получателю. Последовав этой рекомендации, система-источник на целый транзит сокращает путь пакета по интерсети и снижает вычислительную нагрузку на Маршрутизатор А. ^общения типа Time Exceeded

оздавая IP-дейтаграмму, система TCP/IP подставляет значение в

Ле TTL (Time To Live) заголовка IP. По мере перемещения пакета

интерсети каждый маршрутизатор, обрабатывающий дейтаграмму,

нийНЬШаеТ ЭТ° значение на 1- Если значение TTL достигло 0, послед-

МаРШрутизатор, получивший пакет, уничтожает его и посылает

отправителю сообщение ICMP Time Exceeded (поле Туре равно 11, поле Code равно 0), информируя его о том, что пакет не достиг цели, и объясняя почему. Это сообщение называется Time To Live Exceeded In Transit.

ПримечаниеНа использовании сообщений Time To Live Exceeded In Transit основано действие программы Traceroute, входящей в большинство реализаций TCP/IP. Подробнее об этом — в занятии 2 главы 10.

Сообщение Time Exceeded другого вида применяется, когда система-получатель, пытаясь собрать фрагменты дейтаграммы, оказывается не в состоянии дождаться прибытия одного из них. В таких случаях система генерирует сообщение Fragment Reassembly Time Exceeded (Type — 11, Code — 1) и отправляет его системе-источнику.