Протокол RIP (Routing Information Protocol) представляет собой один
из старейших протоколов обмена маршрутной информацией, однако он до сих
пор чрезвычайно распространен в вычислительных сетях. Помимо версии RIP
для сетей TCP/IP, существует также версия RIP для сетей IPX/SPX
компании Novell.
В этом протоколе все сети имеют номера (способ образования
номера зависит от используемого в сети протокола сетевого уровня), а
все маршрутизаторы - идентификаторы. Протокол RIP широко использует
понятие "вектор расстояний". Вектор расстояний представляет собой набор
пар чисел, являющихся номерами сетей и расстояниями до них в хопах.
Вектора расстояний итерационно распространяются
маршрутизаторами по сети, и через несколько шагов каждый маршрутизатор
имеет данные о достижимых для него сетях и о расстояниях до них. Если
связь с какой-либо сетью обрывается, то маршрутизатор отмечает этот
факт тем, что присваивает элементу вектора, соответствующему расстоянию
до этой сети, максимально возможное значение, которое имеет специальный
смысл - "связи нет". Таким значением в протоколе RIP является число 16.
На рисунке 8.1 приведен пример сети, состоящей из шести
маршрутизаторов, имеющих идентификаторы от 1 до 6, и из шести сетей от
A до F, образованных прямыми связями типа "точка-точка".

Обмен маршрутной информацией по протоколу RIP
На рисунке приведена начальная информация, содержащаяся в
топологической базе маршрутизатора 2, а также информация в этой же базе
после двух итераций обмена маршрутными пакетами протокола RIP. После
определенного числа итераций маршрутизатор 2 будет знать о расстояниях
до всех сетей интерсети, причем у него может быть несколько
альтернативных вариантов отправки пакета к сети назначения. Пусть в
нашем примере сетью назначения является сеть D.
При необходимости отправить пакет в сеть D маршрутизатор
просматривает свою базу данных маршрутов и выбирает порт, имеющий
наименьшее расстояния до сети назначения (в данном случае порт,
связывающий его с маршрутизатором 3).
Для адаптации к изменению состояния связей и оборудования с
каждой записью таблицы маршрутизации связан таймер. Если за время
тайм-аута не придет новое сообщение, подтверждающее этот маршрут, то он
удаляется из маршрутной таблицы.
При использовании протокола RIP работает эвристический
алгоритм динамического программирования Беллмана-Форда, и решение,
найденное с его помощью является не оптимальным, а близким к
оптимальному. Преимуществом протокола RIP является его вычислительная
простота, а недостатками - увеличение трафика при периодической
рассылке широковещательных пакетов и неоптимальность найденного
маршрута.
На рисунке 8.2 показан случай неустойчивой работы сети по
протоколу RIP при изменении конфигурации - отказе линии связи
маршрутизатора M1 с сетью 1. При работоспособном состоянии этой связи в
таблице маршрутов каждого маршрутизатора есть запись о сети с номером 1
и соответствующим расстоянием до нее.

Пример неустойчивой работы сети при использовании протокола RIP
При обрыве связи с сетью 1 маршрутизатор М1 отмечает, что
расстояние до этой сети приняло значение 16. Однако получив через
некоторое время от маршрутизатора М2 маршрутное сообщение о том, что от
него до сети 1 расстояние составляет 2 хопа, маршрутизатор М1
наращивает это расстояние на 1 и отмечает, что сеть 1 достижима через
маршрутизатор 2. В результате пакет, предназначенный для сети 1, будет
циркулировать между маршрутизаторами М1 и М2 до тех пор, пока не
истечет время хранения записи о сети 1 в маршрутизаторе 2, и он не
передаст эту информацию маршрутизатору М1.
Для исключения подобных ситуаций маршрутная информация об
известной маршрутизатору сети не передается тому маршрутизатору, от
которого она пришла.
Существуют и другие, более сложные случаи нестабильного
поведения сетей, использующих протокол RIP, при изменениях в состоянии
связей или маршрутизаторов сети.