Понятие протокола, и связанные с ним понятия
Вид материала | Документы |
- Программа курса лекций, 33.31kb.
- А, а также связанные с этим сервисы, частично или полностью через пакетные сети, 211.32kb.
- Тема Основные понятия о правовых явлениях, 165.32kb.
- Контрольная работа по предмету «Логика», 57.32kb.
- Понятия налоги и налогообложение. Налоговая система понятие налога и сбора. Принципы, 2182.16kb.
- Задачи: Продолжить формирование понятия о внутренней среде и ее компонентах. Раскрыть, 161.91kb.
- Естественные науки 14 апреля с 10. 00 до 17., 82.95kb.
- Словари профессий, 47.56kb.
- Программа форума «служба протокола» день первый (02. 06. 2011г., четверг), 114.5kb.
- Программа форума «служба протокола» день первый (02. 06. 2011г., четверг), 107.69kb.
Внутренние протоколы маршрутизации – RIP и OSPF.
Дистанционно-векторный протокол RIP.
Протокол RIP (Routing Information Protocol) разработан в университете Калифорнии (Беркли), базируется на разработках фирмы Ксерокс. Существует в версиях RIP-IP для протокола IP и RIP-IPX для протокола IPX. Для протокола IP – версии 1(RFC-1058) и 2 (RFC-1388). RIP-IP версии 1 еще не поддерживает маски сетей и мультикастинг.
Маршрут здесь характеризуется вектором расстояния до места назначения. Предполагается, что каждый маршрутизатор является отправной точкой нескольких маршрутов до сетей, с которыми он связан. Описания этих маршрутов хранится в специальной таблице, называемой маршрутной. Таблица маршрутизации RIP содержит по записи на каждый маршрут. Запись должна включать в себя:
IP-адрес места назначения (для RIP-2 также и маску сети).
Метрика маршрута (от 1 до 15; число шагов до места назначения).
IP-адрес ближайшего маршрутизатора (gateway) по пути к месту назначения.
Таймеры маршрута.
Первые два поля и составляют вектор расстояния (место назначения – направление; метрика – модуль вектора). Периодически (раз в 30 сек) каждый маршрутизатор посылает широковещательно копию своей маршрутной таблицы всем соседям-маршрутизаторам, с которыми связан непосредственно. Маршрутизатор-получатель просматривает таблицу. Если в таблице присутствует новый путь или сообщение о более коротком маршруте, или произошли изменения длин пути, эти изменения фиксируются получателем в своей маршрутной таблице. Тайм-аут-таймер сбрасывается каждый раз, когда маршрут инициализируется, корректируется или подтверждается. Если со времени последней коррекции прошло 3 минуты или получено сообщение о том, что вектор расстояния равен 16, маршрут считается закрытым. Но запись о нем не стирается, пока не истечет время "уборки мусора" (2мин). При появлении эквивалентного маршрута переключения на него не происходит, таким образом, блокируется возможность осцилляции между двумя или более равноценными маршрутами.
Протокол RIP должен быть способен обрабатывать три типа ошибок:
Циклические маршруты. Так как в протоколе нет механизмов выявления замкнутых маршрутов, необходимо либо слепо верить партнерам, либо принимать меры для блокировки такой возможности.
- Для подавления нестабильностей RIP должен использовать малое значение максимально возможного числа шагов (<16).
- Медленное распространение маршрутной информации по сети создает проблемы при динамичном изменении маршрутной ситуации (система не поспевает за изменениями). Малое предельное значение метрики улучшает сходимость, но не устраняет проблему.
Несоответствие маршрутной таблицы реальной ситуации типично не только для RIP, а для всех протоколов, базирующихся на векторе расстояния.
На нижней части связь на участке GW1 <Сеть A> оборвана, а GW2 по-прежнему продолжает оповещать о ее доступности с числом шагов, равным 2. При этом GW1, восприняв эту информацию (если GW2 успел передать свою маршрутную информацию раньше GW1), может перенаправить пакеты, адресованные сети А, на GW2, а в своей маршрутной таблице будет характеризовать путь до сети А метрикой 3. При этом формируется замкнутая петля маршрутов. Последующая широковещательная передача маршрутных данных GW1 и GW2 не решит эту проблему быстро. Так после очередного обмена путь от gw2 до сети А будет характеризоваться метрикой 5. Этот процесс будет продолжаться до тех пор, пока метрика не станет равной 16, а это займет слишком много циклов обмена маршрутной информацией.
Необходимость иметь небольшое и легко достижимое значение “бесконечности” и обусловило применение в протоколе RIP такой примитивной метрики, как число хопов.
Проблема может быть решена следующим образом. Маршрутизатор запоминает, от кого получена маршрутная информация, и обратно ее отправителю свою информацию, выработанную на ее основе, уже не передает. В рассмотренном выше примере GW2 не станет посылать информацию о пути к сети А маршрутизатору GW1, от которого он получил эти данные. В этом случае в маршрутной таблице GW1 путь к сети А исчезнет сразу. Остальные маршрутизаторы узнают о недостижимости сети А через несколько циклов. Такой прием называется расщеплением горизонта (split horizon). Существуют и другие пути преодоления медленных переходных процессов. Но и это усовершенствование не всегда срабатывает. На рисунке приведен пример, когда переходной процесс, несмотря на усовершенствование, будет идти долго.
При обрыве связи В-Г узел В делает вывод, что Г не достижим, о чем и сообщает узлам А и Б. К сожалению А «знает», что Б имеет путь к Г длиной 2, из чего он делает вывод о достижимости Г за три шага. Аналогично рассуждает Б о достижимости Г через А. Далее при последующих рассылках метрика доступности Г, характеризуется все большими значениями, до тех пор пока не станет равной "бесконечности". Правило split horizon with poisoned reverse «расщепленный горизонт с отравленным обратным путем» – разрешает передачу обновлений (update) для потенциально опасных, с точки зрения возникновения циклов, маршрутов с метрикой бесконечности – 15.
Если производится оповещение о коротком пути, все узлы-получатели воспринимают эти данные немедленно. Если же маршрутизатор закрывает какой-то путь, его отмена фиксируется остальными лишь по тайм-ауту.
Быстрое обновление (triggered update) предполагает передачу новой информации маршрутизатором, обнаружившим недостижимость какой-либо сети немедленно, не дожидаясь таймаута обновления. Увы, это чревато широковещательной лавиной – другие маршрутизаторы, получив обновленную информацию, скорректируют свою, и тоже отправят соседям. Более того, за счет таких обновлений в сети постепенно происходит синхронизация обновляющих сообщений маршрутизаторов, что приводит к синхронным всплескам широковещательного трафика.
Еще одним методом исключения ошибок при маршрутизации является использование достаточно большой выдержки, перед тем как использовать информацию об изменении маршрутов, если вдруг получено сообщение о недостижимости маршрута (Hold Down). В этом случае к моменту изменения маршрута эта информация станет доступной всем участникам процесса маршрутизации. Но все эти и некоторые другие методы, решая одну проблему, часто порождают другие.
Впрочем, несмотря на свои недостатки, в небольших и относительно несложных по топологии сетях протокол RIP работает вполне удовлетворительно, а его простота способствует тому, что он широко распространен в устройствах низового уровня, следовательно, с ограниченными вычислительными возможностями – маршрутизаторах удаленных офисов, мостах/маршрутизаторах, концентраторах удаленного доступа и т.д.
В RIP-IP сообщения передаются UDP, порт 520.
Формат сообщений протокола RIP-2
Значение поля команда:
1 – Запрос на получение частичной или полной маршрутной информации;
2 – Отклик, содержащий информацию о расстояниях из маршрутной таблицы отправителя;
3/4 – Включение/Выключение режима трассировки (устарело);
5-6 – Зарезервированы для внутренних целей Sun Microsystems.
Поле маршрутный демон является идентификатором резидентной программы-маршрутизатора.
Поле метка маршрута используется для поддержки внешних протоколов маршрутизации, сюда записываются коды автономных систем.
Поле IP-адрес следующего маршрутизатора обычно заполнено нулями, что означает по общей традиции интерпретации IP-адресов, маршрутизатор, отправивший данное сообщение. Ненулевое значение в этом поле означает, что отправитель считает, что он сам – не лучший следующий маршрутизатор на пути в сеть назначения, и он рекламирует маршрут, ведущий через другой, указанный в этом поле, маршрутизатор. Это может пригодиться, если не все маршрутизаторы поддерживают RIP.
В одном сообщении может присутствовать информация о 25 маршрутах. При реализации RIP можно выделить следующие режимы:
Инициализация, определение всех "живых" интерфейсов путем посылки запросов, получение таблиц маршрутизации от других маршрутизаторов. Часто используются широковещательные запросы.
Получен запрос. В зависимости от типа запроса высылается адресату полная таблица маршрутизации, или проводится индивидуальная обработка.
Получен отклик. Проводится коррекция таблицы маршрутизации (удаление, исправление, добавление).
Регулярные коррекции. Каждые 30 секунд вся или часть таблицы маршрутизации посылается всем соседним маршрутизаторам.
Протокол OSPF – пример протокола состояния связей
Протокол OSPF (Open Shortest Pass First, RFC-1245-48, RFC-1583-1587, алгоритмы предложены Дикстрой) используется в качестве внутреннего протокола маршрутизации, то есть работает лишь в пределах автономной системы. В пределах выделенной области может работать свой протокол маршрутизации. OSPF представляет собой протокол состояния связей (в качестве метрики используется соответствующий коэффициент качества обслуживания). В IP, как мы помним, используются четыре критерия оптимизации: задержка, пропускная способность, надежность и стоимость. Выбор одной из четырех таблиц определяет поле Код TOS (type of service) в IP-пакетах.
Метрика сети, оценивающая пропускную способность, определяется как количество секунд, требуемое для передачи 100 Мбит через физическую среду данной сети. Например, метрика сети на базе 10Base-T Ethernet равна 10, а метрика выделенной линии 56 кбит/с равна 1785. Метрика канала со скоростью передачи данных 100 Мбит/с и выше равна единице. Порядок расчета метрик, оценивающих надежность, задержку и стоимость, не определен. Администратор, желающий поддерживать маршрутизацию по этим типам сервисов, должен сам назначить разумные и согласованные метрики по этим параметрам. Если не требуется маршрутизация с учетом типа сервиса (или маршрутизатор ее не поддерживает), используется метрика по умолчанию, равная метрике по пропускной способности.
Каждый маршрутизатор обладает полной информацией о состоянии всех интерфейсов всех маршрутизаторов автономной системы. Для удобства и сокращения объемов пересылаемой информации, автономная система может разбиваться на области (areas), при этом информация о входящих в область сетях может агрегироваться, полная топологическая информация в этом случае рассылается только в пределах области. Области объединяются в единую систему особой областью, называемой магистралью (backbone). Области, не являющиеся магистралью, называются периферийными. Маршрутизаторы, принадлежащие магистрали и одной или нескольким периферийным областям, называются областными пограничными маршрутизаторами (area border router, ABR). Каждая область должна иметь как минимум один ABR, иначе она будет полностью изолирована от остальной части системы. Область, имеющая только один ABR, называется тупиковой (stub).
Протокол OSPF реализован в демоне маршрутизации gated, который поддерживает также RIP и внешний протокол маршрутизации BGP.
Переходные процессы в OSPF завершаются быстрее, чем в RIP. В процессе выбора оптимального маршрута анализируется ориентированный граф сети (чаще всего – в виде матриц связности), как он строится, мы рассмотрим позже, пока будем считать его известным. Рассмотрим алгоритм Дикстры по выбору оптимального пути.
Формальное описание алгоритма:
Пусть D(v) равно сумме весов связей для данного пути (из корневого узла 1 в узел v).
Пусть C (i,j) равно весу связи между узлами с номерами i и j (матрица связности).
Последовательность шагов, реализующих алгоритм.
1.Устанавливаем множество узлов N = {1}.
2.Для каждого узла v не из множества N устанавливаем D(v)= C(1,v).
3. Находим узел w не из множества N, для которого D(w) минимально, и добавляем узел w в множество N.
4.Актуализируем D(v) для всех узлов не из множества N
D(v)=min{D(v), D(w)+c(w,v)}.
Повторяем шаги 3-4, пока все узлы не окажутся в множестве N.
Для примера рассмотрим «Рыбу» с весами связей 1-2=6.25 (16М Token Ring), 2-3=10 (Ethernet), 3-4=10 (Ethernet), 4-5=50 (E1), 1-5=10 (Ethernet).
Отметим, что, в общем случае, пропускные способности в разных направлениях могут различаться. Так виртуальные каналы, например, Frame Relay, часто имеют различную гарантированную пропускную способность в разных направлениях. Для модемов, как обычных, для коммутируемых телефонных каналов, так и ADSL, разная пропускная способность “в сеть” и “из сети” тоже правило, а не исключение. Для нашего случая существенна пропускная способность в направлении от выбранного маршрутизатора, поскольку он решает задачу маршрутизации пакетов, следующих от него.
Матрица смежности C
0 6.25 10
6.25 0 10
10 0 10
10 0 50
10 50 0
Множество N и вектор D по шагам алгоритма (от узла 1).
{1} 6.25 10
{1,2} 6.25 16,25 10
{1,2,5} 6.25 16,25 60 10
{1,2,5,3} 6.25 16,25 26,25 10
{1,2,5,3,4} 6.25 16,25 26,25 10
В протоколе OSPF принят ряд мер для снижения объема служебной информации, обслуживающей протокол. Для транспортных целей OSPF использует IP непосредственно, код OSPF 89 в протокольном поле IP-заголовка. Для передачи сообщений OSPF резервирует два мультикастинг-адреса:
224.0.0.5 – для обращения ко всем маршрутизаторам, поддерживающим этот протокол.
224.0.0.6 – для обращения к специально выделенному маршрутизатору.
Любое сообщение OSPF начинается с 24-байтного заголовка:
Формат заголовка сообщений для протокола маршрутизации OSPF
Поле версия определяет версию протокола (современная версия – 2).
Поле тип идентифицирует функцию сообщения
1 – Hello (используется для проверки доступности маршрутизатора).
2 – Database Description Описание базы данных (топология).
3 – Link State Request Запрос состояния канала.
4 – Link State Update Изменение состояния канала.
5 – Link State Ack Подтверждение приема сообщения о статусе канала.
Поле длина пакета определяет длину блока в байтах, включая заголовок.
Идентификатор области – 32-битный код, идентифицирующий область, которой данный пакет принадлежит. Все OSPF-пакеты ассоциируются с той или иной областью. Большинство из них не преодолевает более одного шага. Пакеты, путешествующие по виртуальным каналам, помечаются идентификатором опорной области (backbone) 0.0.0.0.
Поле контрольная сумма содержит контрольную сумму IP-пакета, включая поле типа идентификации.
Поле тип идентификации может принимать значения 0 при отсутствии контроля доступа, и 1 при наличии контроля. В дальнейшем функции поля будут расширены.
Протокол OSPF использует сообщение типа Hello для взаимообмена данными между соседними маршрутизаторами. Задача Hello - обнаружение соседей и установление с ними отношений смежности. Соседями называются OSPF-маршрутизаторы, подключенные к одной сети (линии связи) и обменивающиеся Hello-сообщениями. Смежными называются соседние OSPF маршрутизаторы, которые приняли решение обмениваться друг с другом информацией, необходимой для синхронизации базы данных состояния связей и построения маршрутов. Не все соседи обязательно становятся смежными.
Формат сообщения Hello в протоколе OSPF
Поле сетевая маска соответствует маске субсети данного интерфейса.
Поле время между Hello содержит таймаут, в секундах, между сообщениями Hello.
Поле опции – однобайтное характеризует возможности, которые предоставляет данный маршрутизатор. Формат байта опций
0 | 0 | DC | EA | N/P | MC | E | T |
Особую роль в этом поле играют младшие биты E и Т:
Бит E характеризует возможность внешней маршрутизации и имеет значение только в сообщениях типа Hello, в остальных сообщениях этот бит должен быть обнулен. Если E=0, то данный маршрутизатор не будет посылать или принимать маршрутную информацию от внешних автономных систем.
Бит T определяет возможности маршрутизатора по корректной обработке TOS. Если T=0, это означает, что маршрутизатор поддерживает только один вид услуг (TOS=0) и не обеспечивает маршрутизации с учетом вида услуг.
Бит MC означает поддержку маршрутизатором групп рассылки (multicast).
Бит N/P указывает, что данный интерфейс маршрутизатора принадлежит так называемой “не совсем тупиковой” области (not so stub area – NSSA). Тупиковой считается область, в которую не экспортируются данные о внешних маршрутах (вместо них используется маршрут по умолчанию), не совсем тупиковой – область, где имеет смысл для некоторых внешних маршрутов сделать исключение.
Бит EA – маршрутизатор может получать и ретранслировать объявления о "внешних атрибутах" (к настоящему моменту описание опции не разработано).
Бит DC – маршрутизатор поддерживает работу с соединениями, устанавливаемыми по требованию (demand circuits, RFC 1793) - это, например, означает, что записи о связях, устанавливаемых по требованию, не устаревают.
Байт "Options" используется для согласования возможностей маршрутизаторов-соседей (например, маршрутизатор может прервать соседские отношения, если какие-то опции соседа его не устраивают) и для определения того, какую информацию о состоянии связей не нужно посылать данному соседу (если он все равно не сможет ее обработать).
Поле приоритет характеризует уровень приоритета маршрутизатора (целое положительное число), используется при выборе назначенного (designed) и резервного (backup designed) маршрутизатора. Назначается администратором. Если приоритет равен нулю, данный маршрутизатор никогда не будет использован в качестве назначенного или резервного.
Поле время отключения маршрутизатора определяет временной интервал в секундах, по истечении которого "молчащий" маршрутизатор считается вышедшим из строя.
IP-адреса назначенного и резервного маршрутизаторов с точки зрения отправителя сообщения. 0 если назначенный или резервный маршрутизатор еще не выбран. Если к одной сети подключены несколько маршрутизаторов (такая сеть называется транзитной), то для сокращения числа отношений смежности один из них выбирается назначенным, все остальные устанавливают смежность с ним. Это маршрутизатор с максимальным приоритетом, а при равных приоритетах – с максимальным идентификатором (IP-адресом интерфейса). Еще один маршрутизатор выбирается резервным назначенным – он принимает данные, передаваемые назначенному, но ничего не отправляет. Если назначенный маршрутизатор молчит в течении его времени отключения, резервный принимает на себя его функции. Каждый маршрутизатор самостоятельно производит выборы выделенного и запасного выделенного маршрутизаторов на основании имеющихся у него данных о соседях и о том, кого каждый из соседей назначил на эту роль. Фактически процесс выборов происходит постоянно, после получения каждого Hello-сообщения, но алгоритм гарантирует, что при стабильном состоянии сети назначенным и резервным будут выбираться одни и те же маршрутизаторы.
Поля IP-адрес соседа k образуют список адресов соседних маршрутизаторов, откуда за последнее время были получены сообщения Hello.
Маршрутизаторы обмениваются сообщениями из баз данных OSPF, чтобы инициализировать, а в дальнейшем актуализовать свои базы данных, характеризующие топологию сети. Полная рассылка топологической базы всеми маршрутизаторами производится раз в 30 минут (по умолчанию), этот процесс называется flooding (затопление). Также маршрутизатор объявляет о изменениях маршрутов, если обнаруживает изменения топологии. Обмен происходит в режиме клиент-сервер. Маршрутизатор, желающий начать обмен на правах сервера, посылает пустое сообщение с установленным признаком сервер. Клиент подтверждает согласие. В случае конфликта роли распределяются на основе идентификаторов (адресов интерфейсов) маршрутизаторов, желающих начать обмен (сервером становится маршрутизатор с большим идентификатором). Клиент подтверждает получение каждого сообщения.
Факультативный материал – форматы сообщений OSPF подробно.
Формат OSPF-сообщений о маршрутах
Поля, начиная с тип канала, повторяются для каждого описания канала. Так как размер базы данных может быть велик, ее содержимое может пересылаться по частям. Для реализации этого используются биты I и М. Бит I устанавливается в 1 в стартовом сообщении, а бит M принимает единичное состояние для сообщения, которые являются продолжением. Бит S определяет то, кем послано сообщение (S=1 для сервера, S=0 для клиента), этот бит иногда называют MS (Master/Slave).
Поле номер сообщения по порядку служит для контроля пропущенных блоков. Поскольку OSPF использует IP, а не TCP, он должен сам об этом позаботится. Первое сообщение содержит в этом поле случайное целое число M, последующие M+1, M+2,...M+L.
Поле тип канала может принимать следующие значения:
1 – Описание каналов маршрутизатора, т.е. состояния его интерфейсов.
2 – Описание сетевых каналов. Это перечень маршрутизаторов, непосредственно связанных с сетью. Применяется для сетей, с которыми связанно более одного маршрутизатора (транзитная сеть). Поскольку расстояние маршрутизатора от непосредственно подключенной к нему сети принимается нулевым в любой метрике, метрики отсутствуют.
3 или 4 – Сводное описание каналов, куда входят маршруты между отдельными областями сети. Эта информация поступает от пограничных маршрутизаторов этих зон. Тип 3 приписан маршрутам, ведущим к сетям, а тип 4 характеризует маршруты, ведущие к пограничным маршрутизаторам автономной системы.
5 – Описания внешних связей автономной системы. Такие маршруты начинаются в пограничных маршрутизаторах AS.
Поле идентификатор канала определяет его характер, в зависимости от этого идентификатором может быть IP-адрес маршрутизатора или сети. Маршрутизатор, рекламирующий канал определяет адрес этого маршрутизатора.
Поле порядковый номер канала позволяет маршрутизатору контролировать порядок прихода сообщений и их потерю.
Поле возраст канала определяет время в секундах с момента установления связи12.
Заметим, что описание маршрутной базы не содержит метрик, масок подсетей, и фактически, обмен такими сообщениями служит средством для маршрутизатора-получателя выяснить, что часть данных в его базе отсутствует или устарела. В этом случае он может послать своим соседям запрос с целью получения свежей маршрутной информации о каком-то конкретном канале связи. Сосед, получивший запрос, высылает необходимую информацию.
Формат OSPF-запроса маршрутной информации
Три поля этого запроса повторяются согласно числу каналов, информация о которых запрашивается. Если список достаточно длинен, может потребоваться несколько запросов.
Маршрутизаторы посылают широковещательные (мультикастинговые) сообщения об изменении состояния своих непосредственных связей.
Формат OSPF-сообщения об изменении маршрутов
Каждое из описаний состояния канала имеет заголовок длиной 20 байт следующего вида:
За заголовком следует тело описания, его длина определяется полем длины, а форма зависит от типа канала (типы 1-5 как в сообщениях о маршрутах).
Для LS=1 (интерфейсы маршрутизатора):
Если бит V=1 (virtual), маршрутизатор является оконечной точкой активного виртуального канала. Если бит E (external) равен 1, маршрутизатор является пограничным для автономной системы. Бит B=1 (border) указывает на то, что маршрутизатор является пограничным для данной области.
Код типа связи определяет особенности подключенной сети:
1 – Связь с другим маршрутизатором по схеме точка-точка
2 – Связь с транзитной сетью
3 – Связь с оконечной (тупиковой) сетью
4 – Виртуальная связь (например, опорная сеть или туннель)
Код типа сервиса определяется так: 0– обычный сервис, 2–минимизация денежной стоимости, 4 – максимальная надежность, 8– максимальная пропускная способность, 16 – минимальная задержка.
Для LS=2 (транзитная сеть):
Метрики не нужны, поскольку метрика пути к ближайшему подключенному к сети маршрутизатору и будет таковой (расстояние от сети до непосредственно подключенного к ней маршрутизатора принимается равным 0).
Для LS=3 и 4 (сети и пограничные маршрутизаторы):
Заметим, что в этом случае параметр “число TOS” не нужен – оно определяется длиной сообщения.
Для LS=5 (внешние маршруты):
Поля для TOS=0 заполняются всегда, и это описание является первым. Бит E характеризует внешнюю метрику. Если E=0, то она может непосредственно (без преобразования) сравниваться с метриками других каналов. При E=1 метрика относится к внешнему протоколу маршрутизации. В этом случае она считается больше любой метрики. Если адрес пересылки равен 0.0.0.0, данные посылаются пограничному маршрутизатору автономной системы - источнику данного сообщения. В противном случае маршрутизатору, адрес интерфейса которого указан в этом поле. Это значит, что маршрутизатор, рекламирующий канал считает именно его лучшим следующим маршрутизатором для этого маршрута. Так, например, может быть, если “настоящий” пограничный маршрутизатор не поддерживает OSPF. Метка внешнего маршрута - 32-битовое число, присваиваемое каждому внешнему маршруту. Эта метка самим протоколом OSPF не используется и предназначена для информирования других автономных систем при работе внешних протоколов маршрутизации.
Сообщения об изменениях маршрутов могут быть вызваны следующими причинами:
1. Возраст маршрута достиг предельного значения (LS refresh time).
2. Изменилось состояние интерфейса.
3. Произошли изменения в маршрутизаторе сети.
4. Произошло изменение состояния одного из соседних маршрутизаторов.
5. Изменилось состояние одного из внутренних маршрутов (появление нового, исчезновение старого и т.д.)
6. Изменение состояния межзонного маршрута.
7. Появление нового маршрутизатора, подключенного к сети.
8. Вариация виртуального маршрута одним из маршрутизаторов.
9. Возникли изменения одного из внешних маршрутов.
10. Маршрутизатор перестал быть пограничным для данной AS (например, перезагрузился).
Формат сообщения о получении OSPF-пакета
Поле «заголовок объявления состояния канала» может повторяться по числу объявлений, получение которых подтверждается.
Преимущества OSPF:
1.Для каждого адреса может быть несколько маршрутных таблиц, по одной на каждый вид IP-операции (TOS).
2. Поддерживается адресация субсетей (маски для маршрутов).
3. При существовании эквивалентных маршрутов OSFP распределяет поток равномерно по этим маршрутам. Более того, трафик может распределяться и по неэквивалентным маршрутам обратно пропорционально их метрикам. Чтобы избежать зацикливания пакетов, для такого распределения используются только те маршруты, где следующий маршрутизатор находится “ближе” (с учетом используемой метрики) к сети назначения, чем маршрутизатор-отправитель.
4. Возможно использование в сети произвольной сложности. Переходные процессы проходят быстрее, чем в дистанционно-векторных протоколах, и даже в случае неправильной маршрутизации пакеты не зацикливаются.
5. При связи точка-точка не требуется IP-адрес для каждого из концов. (Экономия адресов!)
6. Применение мультикастинга вместо широковещательных сообщений снижает загрузку не вовлеченных сегментов.
7. Несмотря на больший объем используемой информации, за счет разумного протокола ее распространения количество пересылаемой информации обычно в разы меньше, чем для протокола RIP. Так, полные сообщения о составе топологической базы OSPF распространяет раз в 30 мин, а RIP свои маршрутные таблицы – каждые 30 сек.
Недостатки:
1. Трудно получить информацию о предпочтительности каналов для узлов и маршрутизаторов, поддерживающих другие протоколы, или со статической маршрутизацией.
2. Большой объем топологической базы данных и большая вычислительная сложность. Нетрудно видеть, что вычислительные затраты алгоритма Дикстры растут пропорционально квадрату числа объектов, маршруты до которых требуется найти. И это при том, что в простых по топологии сетях и RIP неплохо справляется! Принятое в OSPF разумное упрощение графа (введение понятий транзитных и тупиковых сетей, деление автономной системы на области) несколько снижает остроту этой проблемы.
3. OSPF является лишь внутренним протоколом.
Существуют внутренние протоколы маршрутизации, в той или иной мере пытающиеся совместить простоту дистанционно-векторных протоколов с более осмысленной маршрутизацией, характерной для протоколов состояния связей. Например, протокол EIGRP фирмы Cisco Systems, будучи в основе своей дистанционно-векторным, назначает, наряду с выбранным маршрутом, его вероятных заместителей – пути через маршрутизаторы, находящиеся “ближе” (с учетом используемой метрики) к сети назначения, чем маршрутизатор-отправитель. Маршрутизатор EIGRP постоянно тестирует связи с соседями посредством сообщений Hello (рассылаются каждые 5 секунд в сетях с большой пропускной способностью – например, Ethernet – и каждые 60 секунд в "медленных" сетях). Это позволяет рассылать в сети векторы расстояний не периодически, а только при изменении топологии сети. Если основной маршрут стал неработоспособным, используется вероятный заместитель, и только если таковых нет, инициируется сбор данных о возможных маршрутах от соседей, при этом маршрутизатор заявляет, что его метрика до искомой сети – бесконечность. В этом случае используется алгоритм, называемый DUAL (Diffusing Update Algorithm). Сосед отвечает на запрос только тогда, когда у него есть либо готовый маршрут в искомую сеть, либо вероятный заместитель – в обоих случаях сосед сообщает инициатору свое расстояние до искомой сети. Иначе сосед сам переходит в активное состояние и процесс повторяется (с той, разумеется, разницей, что к маршрутизатору, инициировавшему этот процесс, запрос не посылается). Маршрутизатор, находящийся в активном состоянии, сам может отвечать на запросы, посылая в ответ свое текущее значение расстояния до искомых сетей. Таким образом область "активизированных" маршрутизаторов расширяется до тех пор, пока будет обнаружен маршрут в сеть назначения, или доказано его отсутствие, после чего волна сходится в обратном направлении к инициировавшему процесс маршрутизатору, При этом все маршрутизаторы вносят в свои таблицы надлежащие изменения. Поскольку он в какой-то мере собирает информацию о топологии (вероятные заместители), этот протокол иногда называют гибридным.