Оптимальность, вероятно, является
самой общей целью разработки.
Она характеризует способность
алгоритма маршрутизации
выбирать "наилучший" маршрут. Наилучший
маршрут зависит от показателей и от "веса"
этих показателей, используемых при проведении
расчета. Например, алгоритм маршрутизации
мог бы использовать несколько пересылок
с определенной задержкой, но при расчете
"вес" задержки может быть им оценен
как очень значительный. Естественно,
что протоколы маршрутизации дожны строгo
определять свои алгоритмы расчета показателей.
Простота и низкие непроизводительные
затраты
Алгоритмы маршрутизации разрабатываются как
можно более простыми. Другими словами,
алгоритм маршрутизации должен эффективно
обеспечивать свои функциональные возможности,
с мимимальными затратами программного
обеспечения и коэффициентом использования.
Особенно важна эффективность в том случае,
когда программа, реализующая алгоритм
маршрутизации, должна работать в компьютере
с ограниченными физическими ресурсами.
Живучесть и стабильность
Алгоритмы маршрутизации должны
обладать живучестью. Другими словми,
они должны четко функционировать в случае неординарных
или непредвиденных обстоятельств, таких
как отказы аппаратуры, условия высокой
нагрузки и некорректные реализации. Т.к.
роутеры расположены в узловых точках
сети, их отказ может вызвать значительные
проблемы.
Часто наилучшими алгоритмами маршрутизации
оказываются те, которые выдержали испытание
временем и доказали свою надежность в
различных условиях работы сети.
Быстрая сходимость
Алгиритмы маршрутизации
должны быстро сходиться. Сходимость -
это процесс соглашения между всеми роутерами
по оптимальным маршрутам. Когда какое-нибудь
событие в сети приводит к тому, что маршруты
или отвергаются, или ставновятся доступными,
роутеры рассылают сообщения об обновлении
маршрутизации. Сообщения об обновлении
маршрутизации пронизывают сети, стимулируя
пересчет оптимальных маршрутов и, в конечном
итоге, вынуждая все роутеры придти к соглашению
по этим маршрутам. Алгоритмы мааршрутизации,
которые сходятся медленно, могут привести
к образованию петель маршрутизации или
выходам из строя сети.
Гибкость
Алгоритмы маршрутизации должны
быть также гибкими. Другими
словами, алгоритмы маршрутизации
должны быстро и точно адаптироваться
к разнообразным обстоятельствам
в сети. Например, предположим, что
сегмент сети отвергнут. Многие
алгоритмы маршрутизации, после того
как они узнают об этой проблеме, быстро
выбирают следующий наилучший путь для
всех маршрутов, которые обычно используют
этот сегмент. Алгоритмы маршрутизации
могут быть запрограммированы таким образом,
чтобы они могли адаптироваться к изменениям
полосы пропускания сети, размеров очереди
к роутеру, величины задержки сети и других
переменных.
Типы алгоритмов
Алгоритмы маршрутизации могут
быть классифицированы по типам.
Например, алгоритмы могут быть:
Статическими или динамическими
Одномаршрутными или многомаршрутными
Одноуровневыми или иерархическими
С интеллектом в главной вычислительной машине или в роутере
Внутридоменными и междоменными
Алгоритмами состояния канала или вектора расстояний
Статические или динамические алгоритмы
Статические алгоритмы маршрутизации
вообще вряд ли являются алгоритмами.
Распределение статических таблиц
маршрутизации устанавливется администратором
сети до начала маршрутизации.
Оно не меняется, если только
администратор сети не изменит его. Алгоритмы,
использующие статические маршруты, просты
для разработки и хорошо работают в окружениях,
где трафик сети относительно предсказуем,
а схема сети относительно проста.
Т.к. статические системы маршрутизации
не могут реагировать на изменения в сети, они, как
правило, считаются непригодными для современных
крупных, постоянно изменяющихся сетей.
Большинство доминирующих алгоритмов
маршрутизации 1990гг. - динамические.
Динамические алгоритмы маршрутизации
подстраиваются к изменяющимся
обстоятельствам сети
в масштабе реального времени. Они выполняют
это путем анализа поступающих сообщений
об обновлении маршрутизации. Если в сообщении
указывается, что имело место изменение
сети, программы маршрутизации пересчитывают
маршруты и рассылают новые сообщения
о корректировке маршрутизации. Такие
сообщения пронизывают сеть, стимулируя
роутеры заново прогонять свои алгоритмы
и соответствующим образом изменять таблицы
маршрутизации. Динамические алгоритмы
маршрутизации могут дополнять статические
маршруты там, где это уместно. Например,
можно разработать "роутер последнего
обращения" (т.е. роутер, в который отсылаются
все неотправленные по определенному
маршруту пакеты). Такой роутер выполняет
роль хранилища неотправленных пакетов,
гарантируя, что все сообщения будут хотя
бы определенным образом обработаны.
Одномаршрутные или многомаршрутные
алгоритмы
Некоторые сложные протоколы
маршрутизации обеспечивают множество
маршрутов к одному и тому
же пункту назначения. Такие многомаршрутные
алгоритмы делают возможной мультиплексную
передачу трафика по многочисленным линиям;
одномаршрутные алгоритмы не могут делать
этого. Преимущества многомаршрутных
алгоритмов очевидны - они могут обеспечить
заначительно большую пропускную способность
и надежность.
Одноуровневые или иерархические
алгоритмы
Некоторые алгоритмы маршрутизации
оперируют в плоском пространстве,
в то время как другие используют
иерархиии маршрутизации. В одноуровневой
системе маршрутизации все роутеры
равны по отношению друг к
другу. В иерархической системе маршрутизации
некоторые роутеры формируют то, что составляет
основу (backbone - базу) маршрутизации. Пакеты
из небазовых роутеров перемещаются к
базовыи роутерам и пропускаются через
них до тех пор, пока не достигнут общей
области пункта назначения. Начиная с
этого момента, они перемещаются от последнего
базового роутера через один или несколько
небазовых роутеров до конечного пункта
назначения.
Системы маршрутизации часто
устанавливают логические группы
узлов, называемых доменами, или
автономными системами (AS),
или областями. В иерархических системах
одни роутеры какого-либо домена могут
сообщаться с роутерами других доменов,
в то время как другие роутеры этого домена
могут поддерживать связь с роутеры только
в пределах своего домена. В очень крупных
сетях могут существовать дополнительные
иерархические уровни. Роутеры наивысшего
иерархического уровня образуют базу
маршрутизации.
Основным преимуществом иерархической
маршрутизации является то, что
она имитирует организацию большинства
компаний и следовательно,
очень хорошо поддерживает их схемы трафика.
Большая часть сетевой связи имеет место
в пределах групп небольших компаний (доменов).
Внутридоменным роутерам необходимо знать
только о других роутерах в пределах своего
домена, поэтому их алгоритмы маршрутизации
могут быть упрощенными. Соответственно
может быть уменьшен и трафик обновления
маршрутизации, зависящий от используемого
алгоритма маршрутизации.
Алгоритмы с интеллектом в главной
вычислительной машине или в роутере
Некоторые алгоритмы
маршрутизации предполагают, что конечный
узел источника определяет весь маршрут.
Обычно это называют маршрутизацией от
источника. В системах маршрутизации от
источника роутеры действуют просто как
устойства хранения и пересылки пакета,
без всякий раздумий отсылая его к следующей
остановке.
Другие алгоритмы предполагают,
что главные вычислительные машины
ничего не знают о маршрутах.
При использовании этих алгоритмов
роутеры определяют маршрут через
об'единенную сеть, базируясь на
своих собственных расчетах. В первой системе,
рассмотренной выше, интеллект маршрутизации
находится в главной вычислительной машине.
В системе, рассмотренной во втором случае,
интеллектом маршрутизации наделены роутеры.
Компромисс
между маршрутизацией с интеллектом
в главной вычислительной машине
и маршрутизацией с интеллектом в роутере
достигается путем сопоставления оптимальности
маршрута с непроизводительными затратами
трафика. Системы с интеллектом в главной
вычислительной машине чаще выбирают
наилучшие маршруты, т.к. они, как правило,
находят все возможные маршруты к пункту
назначения, прежде чем пакет будет действительно
отослан. Затем они выбирают наилучший
мааршрут, основываясь на определении
оптимальности данной конкретной системы.
Однако акт определения всех маршрутов
часто требует значительного трафика
поиска и большого об'ема времени.
Внутридоменные или междоменные
алгоритмы
Некоторые алгоритмы
маршрутизации действуют только в пределах
доменов; другие - как в пределах доменов,
так и между ними. Природа этих двух типов
алгоритмов различная. Поэтому понятно,
что оптимальный алгоритм внутридоменной
маршрутизации не обязательно будет оптимальным
алгоритмом междоменной маршрутизации.
Алгоритмы состояния канала или
вектора расстояния
Алгоритмы состояния канала (известные также как алгоритмы
"первоочередности наикратчайшего
маршрута") направляют потоки маршрутной
информации во все узлы об'единенной сети.
Однако каждый роутер посылает только
ту часть маршрутной таблицы, которая
описывает состояние его собственных
каналов. Алгоритмы вектора расстояния
( известные также как алгоритмы Бэлмана-Форда)
требуют от каждогo роутера посылки всей
или части своей маршрутной таблицы, но
только своим соседям. Алгоритмы состояния
каналов фактически направляют небольшие
корректировки по всем направлениям, в
то время как алгоритмы вектора расстояний
отсылают более крупные корректировки
только в соседние роутеры.
Отличаясь более быстрой сходимостью,
алгоритмы состояния каналов
несколько меньше склонны к
образованию петель маршрутизации,
чем алгоритмы вектора
расстояния. С другой стороны, алгоритмы
состояния канала характеризуются более
сложными расчетами в сравнении с алгоритмами
вектора расстояний, требуя большей процессорной
мощности и памяти, чем алгоритмы вектора
расстояний. Вследствие этого, реализация
и поддержка алгоритмов состояния канала
может быть более дорогостоящей. Несмотря
на их различия, оба типа алгоритмов хорошо
функционируют при самых различных обстоятельствах.
Показатели алгоритмов (метрики)
Маршрутные
таблицы содержат информацию, которую используют
программы коммутации для выбора наилучшего
маршрута. Чем характеризуется построение
маршрутных таблиц? Какова особенность
природы информации, которую они содержат?
В данном разделе моего домашнего задания,
посвященном показателям алгоритмов,
мной была сделана попытка ответить на
вопрос о том, каким образом алгоритм определяет
предпочтительность одного маршрута по
сравнению с другими.
В алгоритмах
маршрутизации используется много
различных показателей. Сложные
алгоритмы маршрутизации при выборе маршрута
могут базироваться на множестве показателей,
комбинируя их таким образом, что в результате
получается один отдельный (гибридный)
показатель. Ниже перечислены показатели,
которые используются в алгоритмах маршрутизации:
- Длина маршрута
- Надежность
- Задержка
- Ширина полосы пропускания
- Нагрузка
- Стоимость связи
Длина маршрута
Длина маршрута
является наиболее общим показателем
маршрутизации. Некоторые протоколы
маршрутизации позволяют администраторам
сети назначать произвольные
цены на каждый канал сети. В
этом случае длиной тракта является сумма
расходов, связанных с каждым каналом,
который был траверсирован. Другие протоколы
маршрутизации определяют "количество
пересылок", т.е. показатель, характеризующий
число проходов, которые пакет должен
совершить на пути от источника до пункта
назначения через изделия об'единения
сетей (такие как роутеры).
Надежность
Надежность,
в контексте алгоритмов маршрутизации,
относится к надежности каждого
канала сети (обычно описываемой
в терминах соотношения бит/ошибка). Некоторые
каналы сети могут отказывать чаще, чем
другие. Отказы одних каналов сети могут
быть устранены легче или быстрее, чем
отказы других каналов. При назначении
оценок надежности могут быть приняты
в расчет любые факторы надежности. Оценки
надежности обычно назначаются каналам
сети администраторами сети. Как правило,
это произвольные цифровые величины.
Задержка
Под задержкой
маршрутизации обычно понимают
отрезок времени, необходимый
для передвижения пакета от
источника до пункта назначения через об'единенную
сеть. Задержка зависит от многих факторов,
включая полосу пропускания промежуточных
каналов сети, очереди в порт каждого роутера
на пути передвижения пакета, перегруженность
сети на всех промежуточных каналах сети
и физическое расстояние, на которое необходимо
переместить пакет. Т.к. здесь имеет место
конгломерация нескольких важных переменных,
задержка является наиболее общим и полезным
показателем.
Полоса пропускания
Полоса пропускания
относится к имеющейся мощности
трафика какого-либо канала. При
прочих равных показателях, канал
Ethernet 10 Mbps предпочтителен любой арендованной
линии с полосой пропускания
64 Кбайт/сек. Хотя полоса пропускания
является оценкой максимально
достижимой пропускной способности канала,
маршруты, проходящие через каналы с большей
полосой пропускания, не обязательно будут
лучше маршрутов, проходящих через менее
быстродействующие каналы. Например, если
более быстродействующий канал почти
все время занят, то фактическое время,
необходимое для отправки пакета в пункт
назначения, для этого быстродействующего
канала может оказаться больше.