67981

Изучение особенностей протокола RIP сетевого уровня OSI

Реферат

Информатика, кибернетика и программирование

Задача маршрутизации подбора оптимального маршрута решается на основе анализа таблиц маршрутизации размещенных во всех маршрутизаторах и конечных узлах сети. Для автоматического построения таблиц маршрутизации маршрутизаторы обмениваются информацией о топологии составной сети в соответствии со специальным служебным протоколом.

Русский

2014-09-16

129.5 KB

6 чел.

PAGE  2

Министерство образования Российской Федерации

Марийский государственный технический университет

Факультет информатики и вычислительной техники

Реферат

«Изучение особенностей протокола RIP сетевого уровня OSI»

по дисциплине «Сети ЭВМ»

          Выполнил: ст. гр. ВМ-41

                                                                                               Иванов П.В.

          Проверил: преподаватель

                             Смирнов А.В.

               г.Йошкар-Ола,

                      2008г.

Содержание

1.Протоколы маршрутизации…………………………………………….............…3

2.Протокол RIP…………………………………………………………….……….…7

2.1. Алгоритм построения таблицы маршрутов……………………..………..…..7

2.1.1. Пример построения таблицы маршрутов…………………………………...8

2.1.2. Изменение состояния RIP-системы…………………………..………………10

2.2. Особые случаи…………………………………………………...……………….11

2.2.1. Зацикливание………………………………………………….………………11

2.2.2. Счет до бесконечности ……………………………………..…………..……13

2.3. Реализация протокола RIP…………………………………….………………..15

2.3.1. Типы и формат сообщений ………………………………….……………….15

2.3.2. Работа протокола RIP………………………………………….……………...16

2.3.3. Конфигурирование RIP……………………………………….………………18

2.3.4. Обсуждение……………….......……………………………….……………...18

1. Протоколы маршрутизации

Протоколы этого вида служат для сбора информации о топологии межсетевых соединений.

Задача маршрутизации(подбора оптимального маршрута) решается на основе анализа таблиц маршрутизации, размещенных во всех маршрутизаторах и конечных узлах сети.

Для автоматического построения таблиц маршрутизации маршрутизаторы обмениваются информацией о топологии составной сети в соответствии со специальным служебным протоколом. Протоколы этого типа называются протоколами маршрутизации (или маршрутизирующими протоколами). Протоколы маршрутизации (например, RIP, OSPF, NLSP) следует отличать от собственно сетевых протоколов (например, IP, IPX). И те и другие выполняют функции сетевого уровня модели OSI - участвуют в доставке пакетов адресату через разнородную составную сеть. Но в то время как первые собирают и передают по сети чисто служебную информацию, вторые предназначены для передачи пользовательских данных, как это делают протоколы канального уровня. Протоколы маршрутизации используют сетевые протоколы как транспортное средство. При обмене маршрутной информацией пакеты протокола маршрутизации помещаются в поле данных пакетов сетевого уровня или даже транспортного уровня, поэтому с точки зрения вложенности пакетов протоколы маршрутизации формально следовало бы отнести к более высокому уровню, чем сетевой.

В том, что маршрутизаторы для принятия решения о продвижении пакета обращаются к адресным таблицам, можно увидеть их некоторое сходство с мостами и коммутаторами. Однако природа используемых ими адресных таблиц сильно различается. Вместо MAC - адресов в таблицах маршрутизации указываются номера сетей, которые соединяются в интерсеть. Другим отличием таблиц маршрутизации от адресных таблиц мостов является способ их создания. В то время как мост строит таблицу, пассивно наблюдая за проходящими через него информационными кадрами, посылаемыми конечными узлами сети друг другу, маршрутизаторы по своей инициативе обмениваются специальными служебными пакетами, сообщая соседям об известных им сетях в интерсети, маршрутизаторах и о связях этих сетей с маршрутизаторами. Обычно учитывается не только топология связей, но и их пропускная способность и состояние. Это позволяет маршрутизаторам быстрее адаптироваться к изменениям конфигурации сети, а также правильно передавать пакеты в сетях с произвольной топологией, допускающей наличие замкнутых контуров.

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

Протоколы маршрутизации могут быть построены на основе разных алгоритмов, отличающихся способами построения таблиц маршрутизации, способами выбора наилучшего маршрута и другими особенностями своей работы.

Во всех описанных выше примерах при выборе рационального маршрута определялся только следующий (ближайший) маршрутизатор, а не вся последовательность маршрутизаторов от начального до конечного узла. В соответствии с этим подходом маршрутизация выполняется по распределенной схеме - каждый маршрутизатор ответственен за выбор только одного шага маршрута, а окончательный маршрут складывается в результате работы всех маршрутизаторов, через которые проходит данный пакет. Такие алгоритмы маршрутизации называются одношаговыми.

Существует и прямо противоположный, многошаговый подход - маршрутизация от источника (Source Routing). В соответствии с ним узел-источник задает в отправляемом в сеть пакете полный маршрут его следования через все промежуточные маршрутизаторы. При использовании многошаговой маршрутизации нет необходимости строить и анализировать таблицы маршрутизации. Это ускоряет прохождение пакета по сети, разгружает маршрутизаторы, но при этом большая нагрузка ложится на конечные узлы. Эта схема в вычислительных сетях применяется сегодня гораздо реже, чем схема распределенной одношаговой маршрутизации.

Одношаговые алгоритмы в зависимости от способа формирования таблиц маршрутизации делятся на три класса:

алгоритмы фиксированной (или статической) маршрутизации;

алгоритмы простой маршрутизации;

алгоритмы адаптивной (или динамической) маршрутизации.

В алгоритмах фиксированной маршрутизации все записи в таблице маршрутизации являются статическими. Администратор сети сам решает, на какие маршрутизаторы надо передавать пакеты с теми или иными адресами, и вручную (например, с помощью утилиты route ОС Unix или Windows NT) заносит соответствующие записи в таблицу маршрутизации. Таблица, как правило, создается в процессе загрузки, в дальнейшем она используется без изменений до тех пор, пока ее содержимое не будет отредактировано вручную. Такие исправления могут понадобиться, например, если в сети отказывает какой-либо маршрутизатор и его функции возлагаются на другой маршрутизатор. Различают одномаршрутные таблицы, в которых для каждого адресата задан один путь, и многомаршрутные таблицы, определяющие несколько альтернативных путей для каждого адресата. В многомаршрутных таблицах должно быть задано правило выбора одного из маршрутов. Чаще всего один путь является основным, а остальные - резервными. Понятно, что алгоритм фиксированной маршрутизации с его ручным способом формирования таблиц маршрутизации приемлем только в небольших сетях с простой топологией. Однако этот алгоритм может быть эффективно использован и для работы на магистралях крупных сетей, так как сама магистраль может иметь простую структуру с очевидными наилучшими путями следования пакетов в подсети, присоединенные к магистрали.

В алгоритмах простой маршрутизации таблица маршрутизации либо вовсе не используется, либо строится без участия протоколов маршрутизации.

Выделяют три типа простой маршрутизации:

-случайная маршрутизация, когда прибывший пакет посылается в первом попавшем

-случайном направлении, кроме исходного;

-лавинная маршрутизация, когда пакет широковещательно посылается по всем возможным направлениям, кроме исходного (аналогично обработке мостами кадров с неизвестным адресом);

-маршрутизация по предыдущему опыту, когда выбор маршрута осуществляется по таблице, но таблица строится по принципу моста путем анализа адресных полей пакетов, появляющихся на входных портах.

Самыми распространенными являются алгоритмы адаптивной (или динамической) маршрутизации. Эти алгоритмы обеспечивают автоматическое обновление таблиц маршрутизации после изменения конфигурации сети. Протоколы, построенные на основе адаптивных алгоритмов, позволяют всем маршрутизаторам собирать информацию о топологии связей в сети, оперативно отрабатывая все изменения конфигурации связей. В таблицах маршрутизации при адаптивной маршрутизации обычно имеется информация об интервале времени, в течение которого данный маршрут будет оставаться действительным. Это время называют временем жизни маршрута (Time To Live, TTL).

Адаптивные алгоритмы обычно имеют распределенный характер, который выражается в том, что в сети отсутствуют какие-либо выделенные маршрутизаторы, которые собирали бы и обобщали топологическую информацию: эта работа распределена между всеми маршрутизаторами.

Адаптивные алгоритмы маршрутизации должны отвечать нескольким важным требованиям. Во-первых, они должны обеспечивать, если не оптимальность, то хотя бы рациональность маршрута. Во-вторых, алгоритмы должны быть достаточно простыми, чтобы при их реализации не тратилось слишком много сетевых ресурсов, в частности они не должны требовать слишком большого объема вычислений или порождать интенсивный служебный трафик. И наконец, алгоритмы маршрутизации должны обладать свойством сходимости, то есть всегда приводить к однозначному результату за приемлемое время.

Адаптивные протоколы обмена маршрутной информацией, применяемые в настоящее время в вычислительных сетях, в свою очередь делятся на две группы, каждая из которых связана с одним из следующих типов алгоритмов:

дистанционно-векторные алгоритмы (Distance Vector Algorithms, DVA);

алгоритмы состояния связей (Link State Algorithms, LSA).

В алгоритмах дистанционно-векторного типа каждый маршрутизатор периодически и широковещательно рассылает по сети вектор, компонентами которого являются расстояния от данного маршрутизатора до всех известных ему сетей. Под расстоянием обычно понимается число хопов. Возможна и другая метрика, учитывающая не только число промежуточных маршрутизаторов, но и время прохождения пакетов по сети между соседними маршрутизаторами. При получении вектора от соседа маршрутизатор наращивает расстояния до указанных в векторе сетей на расстояние до данного соседа. Получив вектор от соседнего маршрутизатора, каждый маршрутизатор добавляет к нему информацию об известных ему других сетях, о которых он узнал непосредственно (если они подключены к его портам) или из аналогичных объявлений других маршрутизаторов, а затем снова рассылает новое значение вектора по сети. В конце концов, каждый маршрутизатор узнает информацию обо всех имеющихся в интерсети сетях и о расстоянии до них через соседние маршрутизаторы.

Дистанционно-векторные алгоритмы хорошо работают только в небольших сетях, В больших сетях они засоряют линии связи интенсивным широковещательным трафиком, к тому же изменения конфигурации могут отрабатываться по этому алгоритму не всегда корректно, так как маршрутизаторы не имеют точного представления о топологии связей в сети, а располагают только обобщенной информацией - вектором дистанций, к тому же полученной через посредников. Работа маршрутизатора в соответствии с дистанционно-векторным протоколом напоминает работу моста, так как точной топологической картины сети такой маршрутизатор не имеет.

Наиболее распространенным протоколом, основанным на дистанционно-векторном алгоритме, является протокол RIP, который распространен в двух версиях - RIP IP, работающий с протоколом IP, и RIP IPX, работающий с протоколом IPX.

Алгоритмы состояния связей обеспечивают каждый маршрутизатор информацией, достаточной для построения точного графа связей сети. Все маршрутизаторы работают на основании одинаковых графов, что делает процесс маршрутизации более устойчивым к изменениям конфигурации. “Широковещательная” рассылка (то есть передача пакета всем непосредственным соседям маршрутизатора) используется здесь только при изменениях состояния связей, что происходит в надежных сетях не так часто. Вершинами графа являются как маршрутизаторы, так и объединяемые ими сети. Распространяемая по сети информация состоит из описания связей различных типов: маршрутизатор - маршрутизатор, маршрутизатор - сеть,

Чтобы понять, в каком состоянии находятся линии связи, подключенные к его портам, маршрутизатор периодически обменивается короткими пакетами HELLO со своими ближайшими соседями. Этот служебный трафик также засоряет сеть, но не в такой степени как, например, RIP-пакеты, так как пакеты HELLO имеют намного меньший объем.

Протоколами, основанными на алгоритме состояния связей, являются протоколы IS-IS (Intermediate System to Intermediate System) стека OSI, OSPF (Open Shortest Path First) стека TCP/IP и недавно реализованный протокол NLSP стека Novell.

2. Протокол RIP

Протокол RIP является дистанционно-векторным протоколом внутренней маршрутизации. Процесс работы протокола состоит в рассылке, получении и обработке векторов расстояний до IP-сетей, находящихся в области действия протокола, то есть в данной RIP-системе. Результатом работы протокола на конкретном маршрутизаторе является таблица, где для каждой сети данной RIP-системы указано расстояние до этой сети (в хопах) и адрес следующего маршрутизатора. Информация о номере сети и адресе следующего маршрутизатора из этой таблицы вносится в таблицу маршрутов, информация о расстоянии до сети используется при обработке векторов расстояний.

2.1. Алгоритм построения таблицы маршрутов

В этом разделе для простоты будем называть таблицей маршрутов таблицу, являющуюся результатом деятельности протокола RIP, как описано выше, т.е. состоящую из строк с полями "Сеть", "Расстояние", "Следующий маршрутизатор". Записывать строку в таблице маршрутов будем следующим образом:

А=2ƒ

Это означает, что расстояние от данного маршрутизатора до сети А равно 2, а дейтаграммы, следующие в сеть А, надо пересылать маршрутизатору ƒ.

Вектором расстояний называется набор пар ("Сеть", "Расстояние до этой сети"), извлеченный из таблицы маршрутов. Каждую такую пару мы назовем элементом вектора расстояний. Мы будем записывать вектор расстояний в виде (А=2,В=1): это означает, что расстояние от данного маршрутизатора до сети А равно 2, до сети В - 1.

Расстояние до сети, к которой маршрутизатор подключен непосредственно, примем равным 1.

Каждый маршрутизатор, на котором запущен модуль RIP, периодически широковещательно распространяет свой вектор расстояний. Вектор распространяется через все интерфейсы маршрутизатора, подключенные к сетям, входящим в RIP-систему.

Каждый маршрутизатор также периодически получает векторы расстояний от других маршрутизаторов. Расстояния в этих векторах увеличиваются на 1, после чего сравниваются с данными в таблице маршрутов, и, если расстояние до какой-то из сетей в полученном векторе оказывается меньше расстояния, указанного в таблице, значение из таблицы замещается новым (меньшим) значением, а адрес маршрутизатора, приславшего вектор с этим значением, записывается в поле "Следующий маршрутизатор" в этой строке таблицы. После этого вектор расстояний, рассылаемый данным маршрутизатором, соответственно изменится.

2.1.1. Пример построения таблицы маршрутов

Рассмотрим этот процесс на примере следующей сети.



Рис. 2.1.1. Пример RIP-системы

Здесь a - 1, b - 2‚ c - 4, f – 3  - маршрутизаторы, A, B, C, D, E - сети. Хосты в сетях не показаны за ненадобностью. Мы будем следить за формированием таблицы маршрутов в узле a.

В начальный момент времени (например, после подачи питания на маршрутизаторы) таблица маршрутов в узле a выглядит следующим образом (т.к. узел a знает только о тех сетях, к которым подключен непосредственно):

A=1a

B=1a

Следовательно, узел a рассылает в сети А и В вектор расстояний (А=1,В=1).

Аналогично узел b‚ рассылает в сети A, C, D вектор (A=1,C=1,D=1). Узел a получает этот вектор из сети А, увеличивает расстояния на 1 (A=2,C=2,D=2) и сравнивает с данными в своей таблице маршрутов. Новое расстояние до сети А оказывается больше, чем уже внесенное в таблицу (А=1), следовательно, новое значение игнорируется. Поскольку сети C и D вовсе не фигурируют в его таблице маршрутов, они туда вносятся.

В узле a имеем:

A=1a

B=1a

C=2b ‚

D=2b ‚

Узел c в свою очередь рассылает вектор (D=1,E=1) в сети D и E. Узел b‚ получает этот вектор из сети D, увеличивает расстояния на 1, после чего добавляет себе в таблицу данные о сети Е (Е=2c ). Ранее из узла a он получил информацию о сети В и добавил себе в таблицу строку В=2a . Узел b рассылает в сети A, C, D свой обновленный вектор расстояний (A=1,B=2,C=1,D=1,E=2).

Узел a получает этот вектор от b из сети А, увеличивает расстояния на 1: (A=2,B=3,C=2,D=2,E=3) и замечает, что все указанные расстояния, кроме расстояния до сети Е, больше либо равны значениям, имеющимся в его таблице. Сеть Е в таблице узла a отсутствует, следовательно, она туда вносится, и в узле a мы получаем:

A=1a

B=1a

C=2b‚

D=2b‚

Е=3b‚

Далее маршрутизатор ƒ , ранее не работавший по каким-либо причинам, рассылает в сети В, С, Е свой вектор (В=1,С=1,Е=1). Узел a получает этот вектор из сети В, увеличивает расстояния на 1 и обнаруживает, что расстояние Е=2 меньше имеющегося в таблице Е=3, следовательно запись о сети Е в таблице заменяется на Е=2 ƒ. Остальные элементы полученного от ƒ вектора не вызывают обновления таблицы.

Итоговая таблица маршрутов маршрутизатора a :

A=1a

B=1a

C=2b ‚

D=2b ‚

Е=2ƒ

На этом алгоритм сходится, то есть при неизменной топологии системы никакие векторы расстояний, получаемые маршрутизатором a , больше не внесут изменений в таблицу маршрутов. Аналогичным образом алгоритм составления таблицы маршрутов работает и сходится на других маршрутизаторах. Отметим, что несмотря на то, что таблицы маршрутов построены, векторы расстояний продолжают периодически широковещательно рассылаться каждым маршрутизатором. Это требуется для оперативного реагирования на внезапные изменения топологии системы (см. п. 4.1.2).

Очевидно, что вид построенной таблицы маршрутов может зависеть от порядка получения маршрутизатором векторов расстояний. Например, если бы узел a получил вектор от узла ƒ раньше, чем от узла b, то дейтаграммы в сеть С посылались бы от a через ƒ.

2.1.2. Изменение состояния RIP-системы

Выясним, что происходит в случае, когда состояние системы неожиданно изменяется, например, маршрутизатор a отключается от сети А.


Рис. 2.1.2. Изменение состояния RIP-системы

Узел a обнаруживает свое отсоединение от сети А и меняет таблицу маршрутов, устанавливая бесконечное расстояние до всех сетей, ранее достижимых через маршрутизаторы, подключенные к сети А . В протоколе RIP значение бесконечности равно 16.

A=16a

B=1a

C=16b

D=16b  

Е=2ƒ

Вектор расстояний, построенный на основании этой таблицы, рассылается в сеть В, чтобы маршрутизаторы, направлявшие свои данные через b в ставшие недоступными сети, если таковые маршрутизаторы существуют, соответственно изменили свои маршрутные таблицы.

Допустим, в узле ƒ имелась следующая таблица маршрутов:

A=2b

B=1ƒ

C=1ƒ

D=2c

Е=1ƒ

Узел ƒ периодически и широковещательно рассылает в сети В, С, Е свой вектор расстояний (А=2,В=1,С=1,D=2,E=1). Узел a получает этот вектор, увеличивает расстояния на 1: (А=3,В=2,С=2,D=3,E=2) и замечает, что расстояния А=3, С=2 и D=3 меньше бесконечности следовательно, соответствующие записи таблицы маршрутов модифицируются и она принимает вид:

A=3ƒ

B=1a

C=2ƒ

D=3 ƒ

Е=2 ƒ

Таким образом, узел a построил маршруты в обход поврежденного участка и восстановил достижимость всех сетей.

2.2. Особые случаи

2.2.1. Зацикливание

К сожалению, поведение дистанционно-векторных протоколов (и в частности, протокола RIP) при изменении топологии системы не всегда корректно и предсказуемо.

Рассмотрим вышеописанную ситуацию с отсоединением узла a от сети А.


Рис. 2.2.1. Изменение состояния RIP-системы

Мы предполагали, что узел ƒ не отправлял дейтаграмм через узел a (и, следовательно, изменение таблицы маршрутов в узле a не повлияло на таблицу узла ƒ ). Предположим теперь, что ƒ отправлял дейтаграммы в сеть А через a , то есть таблица в узле ƒ имела вид:

A=2a

B=1 ƒ

C=1 ƒ

D=2c

Е=1ƒ

После отсоединения a от сети А узел ƒ получает от a вектор (A=16,B=1,C=16,D=16,E=2). Проанализировав этот вектор, ƒ делает вывод, что все указанные в нем расстояния больше значений, содержащихся в его маршрутной таблице, на основании чего этот вектор узлом ƒ игнорируется.

В свою очередь узел ƒ рассылает в сети В, С, Е вектор (A=2,B=1,C=1,D=2,E=1). Узел a получает этот вектор, увеличивает расстояния на 1: (А=3,В=2,С=2,D=3,E=2) и замечает, что расстояния А=3, С=2 и D=3 меньше бесконечности, следовательно, соответствующие записи таблицы маршрутов в узле a модифицируются и она принимает вид:

A=3 ƒ

B=1a

C=2 ƒ

D=3 ƒ

Е=2 ƒ

Очевидно, после этого содержимое таблиц узлов a и ƒ стабилизируется.

Рассмотрим теперь записи о достижении сети А в таблицах маршрутизаторов a и ƒ .

В узле a : A=3 ƒ

В узле ƒ : A=2a

Таким образом, возникло зацикливание: данные, адресованные в сеть А, будут пересылаться между узлами a и ƒ до тех пор, пока не истечет время жизни дейтаграмм и они не будут уничтожены.

Для того, чтобы избежать зацикливания, в алгоритм рассылки векторов расстояний вносятся следующие дополнения.

1. Если дейтаграммы, адресованные в сеть Х, посылаются через маршрутизатор G, находящийся в сети N, то в векторе расстояний, рассылаемом в сети N, расстояние до сети Х не указывается. 

В нашем примере узел ƒ будет рассылать в сети В вектор (B=1,C=1,D=2,E=1). Элемент А=2 не будет включен в этот вектор, потому что дейтаграммы в сеть А отправляются узлом ƒ через узел a , а узел a находится в сети В. При рассылке узлом ƒ вектора расстояний в другие сети элемент A=1 будет указан (но не будут указаны какие-то другие элементы).

2. Если маршрутизатор G объявляет новое расстояние до сети Х, то это расстояние вносится в таблицы маршрутов узлов, отправляющих дейтаграммы в сеть X через G, независимо от того, больше оно или меньше уже внесенного в таблицы расстояния. 

В нашем примере это означает, что если в маршрутной таблице узла ƒ записано А=2a и ƒ получает от a вектор с элементом А=16, то несмотря на то, что 2 меньше бесконечности, узел ƒ модифицирует запись в таблице: А=16a.

Очевидно, что при выполнении вышеуказанных условий зацикливания, рассмотренного в примере, не образуется и строятся корректные маршруты. Однако таким образом устраняются далеко не все случаи зацикливания.

Существует модификация дополнения 1, позволяющая ликвидировать более сложные особые ситуации, в том числе, некоторые случаи счета до бесконечности (см. также следующий пункт):

1А. Если дейтаграммы, адресованные в сеть Х, посылаются через маршрутизатор G, находящийся в сети N, то в векторе расстояний, рассылаемом в сети N, расстояние до сети Х полагается равным бесконечности. 

Тем не менее и в этом случае особые ситуации все еще остаются.

2.2.2. Счет до бесконечности

Рассмотрим следующую систему сетей:


Рис. 2.2.2. Пример RIP-системы (иллюстрация счета до бесконечности)

Узлы: а – 2, f – 3, c – 2,

Первоначально сеть А была подсоединена к узлу ‚ , но в какой-то момент времени произошла авария и сеть А оказалась изолированной.

До момента аварии маршрутизаторы имели следующие записи относительно сети А:

Узел a А=1a ‚

Узел ƒ А=2a ‚

Узел c А=2a 

Немедленно после аварии запись в таблице маршрутов узла А изменяется на А=16a это говорит о том, что сеть А недостижима, а точнее, что сеть А через узел ‚ недостижима.

Вектор расстояний, рассылаемый из a с элементом A=16 достигает узла ƒ , но по какой-то причине задерживается на пути в c. Согласно дополнениям к алгоритму рассылки векторов расстояний, приведенным в предыдущем пункте, узел ƒ вносит в свою таблицу запись А=16c ‚ и рассылает вектор с элементом А=16.

В этот момент узел c до которого сообщение от узла a о недостижимости сети А еще не дошло, рассылает в сети Е свой вектор с элементом А=2. Узел ƒ получает этот вектор, прибавляет к расстоянию 1 и замечает, что оно меньше записанного в таблице (бесконечность), следовательно, в таблице маршрутов узла ƒ появляется запись А=3c . Вектор расстояний с элементом А=3 рассылается узлом ƒ в сети С и достигает узла a .

Узел a руководствуясь теми же соображениями, что и узел ƒ ранее, модифицирует свою таблицу: А=4ƒ .

Примерно в это время узел c получает наконец-то вектор А=16, отправленный после аварии узлом a но вслед за этим из узла a приходит вектор А=4, который узел ‚ рассылает в сети D. Поскольку c отправляет дейтаграммы в сеть А через a он обязан реагировать на любые объявления узлом a расстояния до сети А. Поэтому в таблице узла c появляется А=5 a .

Соответствующий вектор от узла c с элементом А=5 достигает по сети Е узел ƒ , в таблице маршрутов которого указано, что дейтаграммы в сеть А он отправляет через c . Следовательно, узел ƒ обязан реагировать на любые объявления узлом c расстояния до сети А. Поэтому в таблице узла ƒ появляется А=6c .

Вектор от узла ƒ с элементом А=6 достигает по сети С узел a в таблице маршрутов которого указано, что дейтаграммы в сеть А он отправляет через ƒ . Следовательно, узел a обязан реагировать на любые объявления узлом ƒ расстояния до сети А. Поэтому в таблице узла ‚ появляется А=7ƒ .

Далее все повторяется по кругу до тех пор, пока расстояние до А не станет равным бесконечности в таблицах всех трех маршрутизаторов. Несмотря на это в течение "счета до бесконечности" сеть А считается достижимой, поскольку расстояние до нее считается конечным, и все дейтаграммы, адресованные в сеть А, отправляются маршрутизаторами согласно их таблицам, то есть по кругу, что нельзя признать разумной и корректной маршрутизацией.

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

2.3. Реализация протокола RIP

Существуют две версии протокола RIP: RIP-1 и RIP-2. Версия 2 имеет некоторые усовершенствования, как то: возможность маршрутизации сетей по модели CIDR (кроме адреса сети передается и маска), поддержка мультикастинга, возможность использования аутентификации RIP-сообщений и др.

2.3.1. Типы и формат сообщений

В протоколе RIP имеются два типа сообщений, которыми обмениваются маршрутизаторы:

  •  ответ (response) - рассылка вектора расстояний;
  •  запрос (request) - маршрутизатор (например, после своей загрузки) запрашивает у соседей их маршрутные таблицы или данные об определенном маршруте.

Обмен сообщениями происходит по порту 520 UDP.

Формат сообщений обоих типов одинаков:

Поля, помеченные знаком *, относятся к версии 2; в сообщениях RIP-1 эти поля должны быть обнулены.

Сообщение RIP состоит из 32-битного слова, определяющего тип сообщения и версию протокола (плюс "Routing Domain" в версии 2), за которым следует набор из одного и более элементов вектора расстояний. Каждый элемент вектора расстояний занимает 5 слов (20 октетов) (от начала поля "Address Family Identifier" до конца поля "Metric" включительно). Максимальное число элементов вектора - 25, если вектор длиннее, он может разбиваться на несколько сообщений.

Поле "Command" определяет тип сообщения: 1 - request, 2 - response; поле "Version" - версию протокола (1 или 2).

Поле "Address Family Identifier" содержит значение 2, которое обозначает семейство адресов IP; другие значения не определены. Поля "IP address" и "Metric" содержат адрес сети и расстояние до нее.

Дополнительно к полям версии 1 во второй версии определены следующие.

"Routing Domain" - идентификатор RIP-системы, к которой принадлежит данное сообщение; часто - номер автономной системы. Используется, когда к одному физическому каналу подключены маршрутизаторы из нескольких автономных систем, в каждой автономной системе поддерживается своя таблица маршрутов. Поскольку сообщения RIP рассылаются всем маршрутизаторам, подключенным к сети, требуется различать сообщения, относящиеся к "своей" и "чужой" автономным системам.

"Route Tag" - используется как метка для внешних маршрутов при работе с протоколами внешней маршрутизации.

"Subnet Mask" - маска сети, адрес которой содержится в поле IP address. RIP-1 работает только с классовой моделью адресов.

"Next Hop" - адрес следующего маршрутизатора для данного маршрута, если он отличается от адреса маршрутизатора, пославшего данное сообщение. Это поле используется, когда к одному физическому каналу подключены маршрутизаторы из нескольких автономных систем и, следовательно, некоторые маршрутизаторы "чужой" автономной системы физически могут быть достигнуты напрямую, минуя пограничный (логически подключенный к обеим автономным системам) маршрутизатор. Об этом пограничный маршрутизатор и объявляет в поле "Next Hop".

Адрес 0.0.0.0 в сообщении типа "ответ" обозначает маршрут, ведущий за пределы RIP-системы. В сообщении типа "запрос" этот адрес означает запрос информации о всех маршрутах (полного вектора расстояний). Указание в сообщении типа "запрос" адреса конкретной сети означает запрос элемента вектора расстояний только для этой сети - такой режим используется обычно только в отладочных целях.

Аутентификация может производиться протоколом RIP-2 для обработки только тех сообщений, которые содержат правильный аутентификационный код. При работе в таком режиме первый 20-октетный элемент вектора расстояний, следующий непосредственно за первым 32-битным словом RIP-сообщения, является сегментом аутентификации. Он определяется по значению поля "Address Family Identifier", равному в этом случае 0xFFFF. Следующие 2 октета этого элемента определяют тип аутентификации, а остальные 16 октетов содержат аутентификационный код. Таким образом, в RIP-сообщении с аутентификацией может передаваться не 25, а только 24 элемента вектора расстояний, которые следуют за сегментом аутентификации. К настоящему моменту надежного алгоритма аутентификации для протокола RIP не разработано; стандартом определена только аутентификация с помощью обычного пароля (значение поля "Тип" равно 2).

2.3.2. Работа протокола RIP

Для каждой записи в таблице маршрутов существует время жизни, контролируемое таймером. Если для любой конкретной сети, внесенной в таблицу маршрутов, в течение 180 с не получен вектор расстояний, подтверждающий или устанавливающий новое расстояние до данной сети, то сеть будет отмечена как недостижимая (расстояние равно бесконечности). Через определенное время модуль RIP производит "сборку мусора" - удаляет из таблицы маршрутов все сети, расстояние до которых бесконечно.

При получении сообщения типа "ответ" для каждого содержащегося в нем элемента вектора расстояний модуль RIP выполняет следующие действия:

  •  проверяет корректность адреса сети и маски, указанных в сообщении;
  •  проверяет, не превышает ли метрика (расстояние до сети) бесконечности;
  •  некорректный элемент игнорируется;
  •  если метрика меньше бесконечности, она увеличивается на 1;
  •  производится поиск сети, указанной в рассматриваемом элементе вектора расстояний, в таблице маршрутов;
  •  если запись о такой сети в таблице маршрутов отсутствует и метрика в полученном элементе вектора меньше бесконечности, сеть вносится в таблицу маршрутов с указанной метрикой; в поле "Следующий маршрутизатор" заносится адрес маршрутизатора, приславшего сообщение; запускается таймер для этой записи в таблице;
  •  если искомая запись присутствует в таблице с метрикой больше, чем объявленная в полученном векторе, в таблицу вносятся новые метрика и, соответственно, адрес следующего маршрутизатора; таймер для этой записи перезапускается;
  •  если искомая запись присутствует в таблице и отправителем полученного вектора был маршрутизатор, указанный в поле "Следующий маршрутизатор" этой записи, то таймер для этой записи перезапускается; более того, если при этом метрика в таблице отличается от метрики в полученном векторе расстояний, в таблицу вносится значение метрики из полученного вектора;
  •  во всех прочих случаях рассматриваемый элемент вектора расстояний игнорируется.

Сообщения типа "ответ" рассылаются модулем RIP каждые 30 с по широковещательному или мультикастинговому (только RIP-2) адресу; рассылка "ответа" может происходить также вне графика, если маршрутная таблица была изменена (triggered response). Стандарт требует, чтобы triggered response рассылался не немедленно после изменения таблицы маршрутов, а через случайный интервал длительностью от 1 до 5 с. Эта мера позволяет несколько снизить нагрузку на сеть.

В каждую из сетей, подключенных к маршрутизатору, рассылается свой собственный вектор расстояний, построенный с учетом дополнения 1 (1А), сформулированного выше в п. 4.2.1. Там, где это возможно, адреса сетей агрегируются (обобщаются), то есть несколько подсетей с соседними адресами объединяются под одним, более общим адресом с соответствующим изменением маски.

В случае triggered response посылается информация только о тех сетях, записи о которых были изменены.

Информация о сетях с бесконечной метрикой посылается только в том случае, если она была недавно изменена.

При получении сообщения типа "запрос" с адресом 0.0.0.0 маршрутизатор рассылает в соответствующую сеть обычное сообщение типа ответ. При получении запроса с любым другим значением в поле (полях) "IP Address" посылается ответ, содержащий информацию только о сетях, которые указаны. Такой ответ посылается на адрес запросившего маршрутизатора (не широковещательно), при этом дополнение 1(1А) из п. 4.2.1 не учитывается.

2.3.3. Конфигурирование RIP

Общий порядок действий при конфигурировании модуля RIP следующий:

указать, какие сети, подключенные к маршрутизатору, будут включены в RIP-систему;

указать "nonbroadcast networks", т.е. сети со статической маршрутизацией (например, тупиковые сети, подсоединенные к внешнему миру через единственный шлюз), куда не нужно рассылать векторы расстояний;

указать "permanent routes" - статические маршруты, например, маршрут по умолчанию за пределы автономной системы.

2.3.4. Обсуждение

Протокол RIP очень прост и до сих пор продолжает использоваться в системах с простой топологией, но обладает недостатками, которые не позволяют применять его в обширных и сложных системах.

Во-первых, малое значение бесконечности (из-за эффекта "счет до бесконечности") ограничивает размер RIP-системы четырнадцатью промежуточными маршрутизаторами в любом направлении. Кроме того, по той же причине весьма затруднительно использование сложных метрик, учитывающих не просто количество промежуточных маршрутизаторов, но и скорость и качество канала связи (чем хуже (медленнее) канал, тем больше метрика).

Во-вторых, само явление счета до бесконечности вызывает сбои в маршрутизации.

В-третьих, широковещательная рассылка векторов расстояний каждые 30 секунд ухудшает пропускную способность сети.

В-четвертых, время схождения алгоритма при создании маршрутных таблиц достаточно велико (по крайней мере, по сравнению с протоколами состояния связей).

В-пятых, несмотря на то, что каждый маршрутизатор начинает периодическую рассылку своих векторов, вообще говоря, в случайный момент времени (например, после включения), через некоторое время в системе наблюдается эффект синхронизации маршрутизаторов, сходный с эффектом синхронизации аплодисментов. Все маршрутизаторы рассылают свои вектора в один и тот же момент времени, что приводит к большим пикам трафика и отказам в маршрутизации дейтаграмм во время обработки большого количества одновременно полученных векторов.

Протокол RIP описан в RFC-1058 (версия 1) и RFC-1388 (версия 2).


 

А также другие работы, которые могут Вас заинтересовать

32657. Классификация проектов и программ 28 KB
  в которых осуществляется проект: социальные проекты экономические проекты организационные проекты технические проекты смешанные проекты. Сложные проекты включающие подпроекты и элементы различных типов проектов. Вид проекта: По характеру предметной области проекта: учебнообразовательные проекты; проекты исследования и развития; инновационные проекты.; инвестиционные проекты.
32658. Понятие о декомпозиции работ по проекту. Критерии выбора эффективной декомпозиции работ 46 KB
  Понятие о декомпозиции работ по проекту. Критерии выбора эффективной декомпозиции работ. Структура разбиения декомпозиции работ WBS Work Brekdown Structure иерархическая структура последовательной декомпозиции проекта на подпроекты пакеты работ различного уровня пакеты детальных работ. СРР является базовым средством для создания системы управления проектом так как позволяет решать проблемы организации работ распределения ответственности оценки стоимости создания системы отчетности эффективно поддерживать процедуры сбора...
32659. Типы структурных моделей проекта 202 KB
  Типы структурных моделей проекта. Типы структурных моделей проектов Типы структурных моделей проекта. Структурная модель проекта и принцип структуризации широко используются для построена и других структурных моделей применяемых в управлении проектом. Отметим наиболее существенные из них: Дерево целей и результатов первая по времени разработки структурная модель декомпозиции цели проекта на составные части.
32660. Жизненные циклы проекта и продукта 26.5 KB
  Жизненные циклы проекта и продукта. Жизненный цикл проекта совокупность последовательных фаз развития проекта и изобразить его концептуальную схему. Наиболее традиционным является разбиение проекта на четыре крупных этапа: определение проекта концепция разработка реализация и завершение. Определение проекта по существу подразумевает функцию выбора проекта.
32661. Участники проекта и их роль в обеспечении успеха проекта 31 KB
  Участники проекта и их роль в обеспечении успеха проекта. В настоящем разделе работы рассматривается состав участников проекта их роли и взаимосвязи распределение функций и ответственности. Главный участник Заказчик будущий владелец и пользователь результатов проекта. При этом заказчиком может быть как одна единственная организация так и несколько организаций объединивших свои усилия интересы и капиталы для реализации проекта и использования его результатов.
32662. Окружающая среда проекта 28 KB
  Окружающая среда проекта. Окружение проекта Каждый проект нужно рассматривать а также управлять им учитывая окружение в котором он существует. Окружающая среда проекта это совокупность внешних и внутренних в отношении проекта факторов влияющих на достижение результатов проекта. В данном разделе необходимо проанализировать факторы ближнего и дальнего окружения проекта которые могут оказать влияние на реализацию проекта.
32663. Базовые и интегрирующие функции управления проектом 24 KB
  Базовые функции управление предметной областью проекта содержательная сущность; управление качеством требования к результатам стандарты; управлением временными ресурсами бюджет времени; управление стоимостью финансовый и материальный бюджет. Интегрирующие функции управление персоналом проекта подбор подготовка организация работы; управление коммуникациями мониторинг и прогнозирование хода работ и результата; управление контрактами контрактация исполнителей материалов и др.; управление риском снижение уровня...
32664. Организационно-динамические структуры управления проектом. Проектирование организационно-динамических структур управления проектом 144 KB
  Организационнодинамические структуры управления проектом. Проектирование организационнодинамических структур управления проектом. Организационные структуры УП Несмотря на все многообразие типов и видов проектов их структура управления по своему содержанию в основном однородна ибо в ней представлена та или иная комбинация одних и тех же видов работ по управлению. Это обстоятельство обеспечивает единый подход к проектированию структур управления.
32665. Организационный инструментарий управления проектами: сетевое моделирование, метод PERT, матрица РАЗУ, информационно-технологические модели управления 263 KB
  Организационный инструментарий управления проектами: сетевое моделирование метод PERT матрица РАЗУ информационнотехнологические модели управления Сетевая матрица представляет собой графическое изображение процессов осуществления проекта где все работы управленческие производственные показаны в определенной технологической последовательности и необходимой взаимосвязи и зависимости. Матрица РАЗУ Возможно разделить функции по подразделениям и службам аппарата управления проектом а также обеспечить их комплексную реализацию. Матрица...