
Для каждого маршрутизатора указывается метрика, т.е. уровень
предпочтения узлом данного маршрутизатора. А каким образом узел будет
понимать, что один из маршрутизаторов вышел из строя и необходимо перейти
на использование другого маршрутизатора? Для решения этой задачи узлу
необходимо знать, функционирует ли маршрутизатор, однако маршрутизатор в
процессе своей работы НЕ отправляет никаких пакетов, подчеркивающих его
работоспособности. Решение очевидно – необходимо отправлять через
некоторые временные интервалы ICMP эхо запросы на маршрутизатор, и если он
отвечает, то он в порядке. К сожалению, такой способ не выдерживает критики:
если неисправен маршрутизатор, способ будет работать, а если неисправна
сеть, связывающая данный маршрутизатор с внешним миром или, еще хуже,
неисправен один из следующих за данным маршрутизаторов – тогда данный
способ совершенно лишен смысла. Единственное, что может служить гарантией
того, что маршрутизатор работает – это обмен данных через него. Как же
убедиться в том, что маршрутизатор и остальные транзитные маршрутизаторы
работают? Только штатным обменом данных. Для решения этой задачи
предусмотрен специальный протокол FIRP (Fault Isolation Recovery Protocol),
описанный в RFC816. Этот протокол является набором правил поведения узлов
(и маршрутизаторов), он не имеет собственного заголовка, а представляет собой
лишь способ поведения узла. Протокол поддерживается в Windows и называется
Dead Gateway Detection – обнаружение «мертвых» шлюзов. Суть его состоит в
том, что узел, у которого настроено использование нескольких маршрутизаторов
ведет статистику для TCP соединений об отправленных данных и не пришедших
квитанциях. Данный механизм работает ТОЛЬКО для TCP и не работает для UDP
и ICMP, и вот почему: TCP – протокол с гарантией доставки, отсутствие
квитанций TCP – прямое указание на отказ, в то время как протоколы UDP и
ICMP работают без гарантии доставки и вообще говоря потеря пакетов этих
протоколов – явление трудно контролируемое.
Протокол FIRP в Windows работает следующим образом: когда в рамках
TCP соединения пакеты повторяются более чем 50 % от величины,