В нижеприведенной таблице показаны те записи таблиц маршрутизации, которые относятся к сети №2 (в соответствии с пунктом 3.4.0.3 Таблица маршрутизации. Определение.)
Маршрутизатор | Адрес | Следующий маршрутизатор |
Интерфейс | Метрика |
---|---|---|---|---|
A | сеть №2 | B | 2 | 2 |
B | сеть №2 | - | 2 | 1 |
C | сеть №2 | B | 2 | 2 |
Таймер для рассматриваемого примера значения не имеет.
Рассмотрим последовательность событий. Для простоты будем считать, что все маршрутизаторы посылают свои update’ы одновременно. Cost всех сетей равен 1.
Сеть 2 отваливается, маршрутизатор B это событие отлавливает и устанавливает в записи для сети 2 метрику 16.
Все маршрутизаторы посылают update’ы. В посылает: сеть №2, метрика 16. A и C посылают: сеть №2, метрика 2.
Получение update’ов.
Маршрутизатор A:
получено от B сеть №2, метрика 16. Через B сеть №2 более не достижима.
получено от С сеть №2, метрика 2. Добавить 1, получим 3. Это лучше, чем 16. Таким образом, сеть №2 теперь достижима через C.Маршрутизатор С:
получено от B сеть №2, метрика 16. Через B сеть №2 более не достижима.
получено от A сеть №2, метрика 2. Добавить 1, получим 3. Это лучше, чем 16. Таким образом, сеть №2 теперь достижима через A.Маршрутизатор B:
получено от С сеть №2, метрика 2. Добавить 1, получим 3. Следовательно, сеть №2 теперь не достижима через непосредственно подключенный интерфейс, но достижима через C с метрикой 3!
Очень хорошо, теперь будем посылать пакеты в сеть №2 через C.
получено от A сеть №2, метрика 2. Добавить 1, получим 3. Такая сеть с такой метрикой уже есть, оставим то, что есть.
В результате мы имеем
Маршрутизатор Адрес Следующий
маршрутизаторИнтерфейс Метрика A сеть №2 C 3 3 B сеть №2 C 3 3 C сеть №2 A 1 3
При дальнейшем обмене update’ами метрики будут увеличиваться. Поясним это на примере маршрутизатора C.
Запись о сети №2 сформирована на основании информации от маршрутизатора A и содержит метрику 3. Однако и у маршрутизатора A метрика для сети №2 равна 3. Теперь пошел update от A к C, содержащий запись: сеть №2, метрика 3. C получил, прибавил cost (1), получил 4. По правилам алгоритма он должен заменить запись для сети №2 полученной информацией (3.4.0.4 Функции участника алгоритма). Метрика возрастает.
Вышесказанное будет справедливо для остальных участников событий — маршрутизаторов B и A. Таким образом, метрики для сети №2 будут возрастать по мере обмена update’ами, и в конце концов достигнут 16. Маршрутизаторы наконец-то поймут, что сеть отключена. Однако это займет слишком долгое время.
Для предотвращения подобных ситуаций используются некоторые механизмы. RIP использует следующие: «split horizon with poisoned reverse» (разделение горизонта с отравлением обратного направления.) и «triggered update» (запуск update’а). Перевод здесь приведен дословный и далее будет использоваться англоязычное определение механизмов.