Протоколы TCP-IP

       

Обнаружение циклических или слишком длинных путей.


Так как межсетевые шлюзы вычисляют адрес следующей машины для направления дейтаграммы на основе локальных таблиц, ошибки в таблице маршрутизации могут привести к циклу маршрутизации в некотором месте назначения, D. Цикл маршрутизации может состоять из двух шлюзов, каждый из которых отправляет дейтаграмму с адресом назначения D другому шлюзу, или может состоять из большего числа шлюзов. Когда несколько шлюзов формируют цикл маршрутизации, каждый из них отправляет дейтаграмму с назначением Н к следующему шлюзу из цикла. Если дейтаграмма входит в цикл маршрутизации, она будет передаваться по нему бесконечно. Как было отмечено ранее, для защиты дейтаграмм от бесконечного курсирования по Интернету TCP/IP каждая дейтаграмма имеет счетчик время жизни, иногда называемый число попыток. Шлюз декрементирует счетчик времени жизни всякий раз, когда он обрабатывает дейтаграмму, и удаляет дейтаграмму, когда счетчик становится нулевым.

Независимо от того, удалил ли шлюз дейтаграмму из-за обнуления счетчика времени жизни или из-за превышения времени ожидания фрагментов дейтаграммы, он посылает сообщение ICMP "превышено время" источнику дейтаграммы, используя формат, показанный на рисунке 9.7

0 8 16 31 ------------------------------------------------------------ |тип(11) |код(0 или 1) | Контрольная сумма | ------------------------------------------------------------ | не используется(должно быть нулем) | ------------------------------------------------------------ | межсетевой заголовок плюс первые 64 бита дейтаграммы | ------------------------------------------------------------ | ...... | ------------------------------------------------------------

Рисунок 9.7 Формат сообщения ICMP о превышении времени. Шлюз посылает это сообщение всякий раз, когда удаляет дейтаграмму из-за обнуления поля времени жизни в заголовке дейтаграммы или из-за обнуления таймера сборки при ожидании фрагментов дейтаграммы.

Поле КОД объясняет причину сообщения:

Значение кода

Смысл

0 Превышено значение счетчика времени жизни
1 Превышено время ожидания фрагмента при сборке

Сборкой фрагментов называют задачу сбора всех фрагментов дейтаграммы. Когда прибывает первый фрагмент дейтаграммы, принимающий ГВМ запускает таймер и считает ошибкой его обнуление до прихода всех фрагментов дейтаграммы. Значение кода 1 используется для того, чтобы сообщить отправителю о такой ошибке; для каждой ошибки посылается отдельное сообщение.



Содержание раздела