Счет до бесконечности
Рассмотрим следующую систему сетей:
Рис. 4.2.2. Пример RIP-системы (иллюстрация счета до бесконечности)
Первоначально сеть А была подсоединена к узлу ?
, но в какой-то момент времени произошла авария и сеть А оказалась изолированной.
До момента аварии маршрутизаторы имели следующие записи относительно сети А:
Узел ?
А=1a
?
Узел ?
А=2a
?
Узел ?
А=2a
?
Немедленно после аварии запись в таблице маршрутов узла А изменяется на А=16a
?
, это говорит о том, что сеть А недостижима, а точнее, что сеть А через узел ?
недостижима.
Вектор расстояний, рассылаемый из ?
, с элементом A=16 достигает узла ?
, но по какой-то причине задерживается на пути в ?
. Согласно дополнениям к алгоритму рассылки векторов расстояний, приведенным в предыдущем пункте, узел ?
вносит в свою таблицу запись А=16a
?
и рассылает вектор с элементом А=16.
В этот момент узел ?
, до которого сообщение от узла ?
о недостижимости сети А еще не дошло, рассылает в сети Е свой вектор с элементом А=2. Узел ?
получает этот вектор, прибавляет к расстоянию 1 и замечает, что оно меньше записанного в таблице (бесконечность), следовательно, в таблице маршрутов узла ?
появляется запись А=3a
?
. Вектор расстояний с элементом А=3 рассылается узлом ?
в сети С и достигает узла ?
.
Узел ?
, руководствуясь теми же соображениями, что и узел ?
ранее, модифицирует свою таблицу: А=4a
?
.
Примерно в это время узел ?
получает наконец-то вектор А=16, отправленный после аварии узлом ?
, но вслед за этим из узла ?
приходит вектор А=4, который узел ?
рассылает в сети D. Поскольку ?
отправляет дейтаграммы в сеть А через ?
, он обязан реагировать на любые объявления узлом ?
расстояния до сети А. Поэтому в таблице узла ?
появляется А=5a
?
.
Соответствующий вектор от узла ?
с элементом А=5 достигает по сети Е узел ?
, в таблице маршрутов которого указано, что дейтаграммы в сеть А он отправляет через ?
. Следовательно, узел ?
обязан реагировать на любые объявления узлом ?
расстояния до сети А. Поэтому в таблице узла ?
появляется А=6a
?
.
Вектор от узла ?
с элементом А=6 достигает по сети С узел ?
, в таблице маршрутов которого указано, что дейтаграммы в сеть А он отправляет через ?
. Следовательно, узел ?
обязан реагировать на любые объявления узлом ?
расстояния до сети А. Поэтому в таблице узла ?
появляется А=7a
?
.
Далее все повторяется по кругу до тех пор, пока расстояние до А не станет равным бесконечности в таблицах всех трех маршрутизаторов. Несмотря на это в течение "счета до бесконечности" сеть А считается достижимой, поскольку расстояние до нее считается конечным, и все дейтаграммы, адресованные в сеть А, отправляются маршрутизаторами согласно их таблицам, то есть по кругу, что нельзя признать разумной и корректной маршрутизацией.
Существуют и более сложные ситуации, когда возникает необходимость "счета до бесконечности". Чтобы уменьшить отрицательный эффект этого явления, значение бесконечности не должно быть велико. В протоколе RIP оно равно 16, что в свою очередь ограничивает размер RIP-системы.