Семенов Ю.А. (ІТЕФ-МФТІ)
Yu. Semenov (ITEP-MIPT)
Цей протокол (RFC-1388, -1582, -1721, -1722 (std0057), -2453, -1724, -2080, -2082, -2092, -2453) маршрутизації призначений для порівняно невеликих і щодо однорідних мереж (алгоритм Белмана- Форда). Протокол розроблений в університеті Каліфорнії (Берклі), базується на розробках фірми Ксерокс і реалізує ті ж принципи, що і програма маршрутизації routed, використовувана в ОC UNIX (4BSD). Маршрут тут характеризується вектором відстані до місця призначення. Передбачається, що кожен маршрутизатор є відправною точкою декількох маршрутів до мереж, з якими він пов'язаний.
Якщо мережа однорідна, тобто всі канали мають рівну пропускну здатність і приблизно рівну завантаження, що типово для невеликих локальних мереж, то число кроків до мети є розумною оцінкою шляху (метрикою).
Описи цих маршрутів зберігається в спеціальній таблиці, званої маршрутної. Таблиця маршрутизації RIP містить по запису на кожну обслуговується машину (на кожен маршрут). Запис повинен включати в себе:
Першим двом полів запису ми зобов'язані появі терміна вектор відстані (місце призначення - напрям; метрика - модуль вектора). Періодично (раз в 30 сек) кожен маршрутизатор посилає широкомовно копію своєї маршрутної таблиці всім сусідам-маршрутизаторів, з якими пов'язаний безпосередньо. Маршрутизатор-одержувач переглядає таблицю. Якщо в таблиці присутній новий шлях або повідомлення про більш короткому маршруті, або відбулися зміни довжин шляху, ці зміни фіксуються одержувачем у своїй маршрутної таблиці. Протокол RIP повинен бути здатний обробляти три типи помилок:
- Циклічні маршрути. Так як в протоколі немає механізмів виявлення замкнутих маршрутів, необхідно або сліпо вірити партнерам, або вживати заходів для блокування такої можливості.
- Для придушення нестабільності RIP повинен використовувати мале значення максимально можливого числа кроків (
Зауважимо, що на час поширення інформації про недоступність мережі А, стане недоступна мережу З через циклічного обміну пакетами між маршрутизаторами GW1 і GW2 (див. Рис. 4.4.11.1).
Проблема може бути вирішена наступним чином. Маршрутизатор запам'ятовує, через який інтерфейс отримана маршрутна інформація, і через цей інтерфейс цю інформацію вже не передає. У розглянутому вище прикладі GW2 не стане посилати інформацію про шлях до мережі А маршрутизатора GW1, від якого він отримав ці дані. В цьому випадку в маршрутної таблиці GW1 шлях до А зникне відразу. Решта маршрутизатори дізнаються про недосяжність мережі А через кілька циклів. Існують і інші шляхи подолання повільних перехідних процесів. Якщо проводиться оповіщення про короткому шляху, всі вузли-одержувачі сприймають ці дані негайно. Якщо ж маршрутизатор закриває якийсь шлях, його скасування фіксується іншими лише по тайм-ауту. Універсальним методом виключення помилок при маршрутизації є використання досить великої витримки, перед тим як використовувати інформацію про зміну маршрутів. В цьому випадку до моменту зміни маршруту ця інформація стане доступною всім учасникам процесу маршрутизації. Але всі перераховані методи і деякі інші відомі алгоритми, вирішуючи одну проблему, часто вносять інші. Багато з цих методів можуть при певних умовах викликати лавину широкомовних повідомлень, що також дезорганізує мережу. Саме мала швидкість встановлення маршрутів в RIP (і інших протоколах, орієнтованих на вектор відстані) і є причиною їх поступового витіснення іншими протоколами.
В RIP повідомлення инкапсулируются в udp-дейтограмми, при цьому передача здійснюється через порт 520. Як метрики RIP використовує число кроків до мети. Якщо між відправником і приймачем розташовано три маршрутизатора (gateway), вважається, що між ними 4 кроки. Такий вид метрики не враховує відмінностей в пропускної здатності або завантаженості окремих сегментів мережі. Застосування вектора відстані не може гарантувати оптимальність вибору маршруту, адже, наприклад, два кроки по сегментах мережі ethernet забезпечать більшу пропускну здатність, ніж один крок через послідовний канал на основі інтерфейсу RS-232.
Таблиця 4.4.11.1. Значення кодів поля команда
Зарезервовані для внутрішніх цілей sun microsystem.
Поле версія для RIP дорівнює 1 (для RIP-2 двом). Поле набір протоколів мережі i визначає набір протоколів, які використовуються у відповідній мережі (для Інтернет це поле має значення 2). Поле відстань до мережі i містить ціле число кроків (від 1 до 15) до даної мережі. В одному повідомленні може бути присутнім інформація про 25 маршрутах. При реалізації RIP можна виділити наступні режими:
Ініціалізація. визначення всіх "живих" інтерфейсів шляхом посилки запитів, отримання таблиць маршрутизації від інших маршрутизаторів. Часто використовуються широкомовні запити.
Отриманий відгук. Проводиться корекція таблиці маршрутизації (видалення, виправлення, додавання).
Регулярні корекції. Кожні 30 секунд вся або частина таблиці маршрутизації надсилається всім сусіднім маршрутизаторам. Можуть посилатися і спеціальні запити при локальній зміні таблиці. RIP досить простий протокол, але, на жаль не позбавлений недоліків:
Проблеми аутентифікації в протоколі RIP-2 c використанням дайджестів MD5 обговорюються в документі RFC-2082