Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ответы на вопросы по сетям.docx
Скачиваний:
2
Добавлен:
21.09.2019
Размер:
566.34 Кб
Скачать

1.10. Маршрутизация - алгоритмы маршрутизации

Алгоритмы маршрутизации

Основная функция сетевого уровня заключается в выборе маршрута для пакетов от начальной до конечной точки. В большинстве сетей пакетам приходится про- ходить через несколько маршрутизаторов. Единственным исключением являют- ся широковещательные сети, но даже в них маршрутизация является важным во- просом, если отправитель и получатель находятся в разных сетях. Алгоритмы выбора маршрутов и используемые ими структуры данных являются главной це- лью при проектировании сетевого уровня. Алгоритм маршрутизации реализуется той частью программного обеспече- ния сетевого уровня, которая отвечает за выбор выходной линии для отправки пришедшего пакета. Если подсеть использует дейтаграммную службу, выбор марш- рута для каждого пакета должен производиться заново, так как оптимальный маршрут мог измениться. Если подсеть использует виртуальные каналы, мар- шрут выбирается только при создании нового виртуального канала. После этого все информационные пакеты следуют по выбранному маршруту. Последний случай иногда называют сеансовой маршрутизацией, так как маршрут остается в силе на протяжении всего сеанса связи с пользователем (например, сеанса ре- гистрации на терминале или передачи файла). Полезно понимать разницу между маршрутизацией, при которой системе приходится делать выбор определенного маршрута следования, и пересылкой — действием, происходящим при получении пакета. Можно представить себе мар- шрутизатор как устройство, в котором функционируют два процесса. Один из них обрабатывает приходящие пакеты и выбирает для них по таблице маршру- тизации исходящую линию. Такой процесс называется пересылкой. Второй про- цесс отвечает за заполнение и обновление таблиц маршрутизации. Именно здесь в игру вступает алгоритм маршрутизации. Вне зависимости от того, отдельно ли выбираются маршруты для каждого па- кета или же только один раз для соединения, желательно, чтобы алгоритм выбо- ра маршрута обладал определенными свойствами — корректностью, простотой, надежностью, устойчивостью, справедливостью и оптимальностью. Правильность и простота вряд ли требуют комментариев, а вот потребность в надежности не столь очевидна с первого взгляда. Во время работы большой сети постоянно про- исходят какие-то отказы аппаратуры и изменения топологии. Алгоритм маршру- тизации должен уметь справляться с изменениями топологии и трафика без необ- ходимости прекращения всех задач на всех хостах и перезагрузки сети при каждой поломке маршрутизатора. Алгоритм маршрутизации должен также обладать устойчивостью. Существу- ют алгоритмы выбора маршрута, никогда не приходящие в состояние равнове- сия, независимо от того, как долго они работают. Такие цели, как справедливость и оптимальность, могут показаться очевидными — вряд ли кто-нибудь станет воз- ражать против них, — однако они зачастую оказываются взаимоисключающими. Для примера рассмотрим ситуацию, показанную на рис. 5.4. Предположим, что трафик между станциями Аи А', В и В', а также С и С настолько интенсивный, что горизонтальные линии связи оказываются полностью насыщенными. Чтобы максимизировать общий поток данных, трафик между станциями X и X' следо- вало бы совсем отключить. Однако станции X и Х\ скорее всего, имеют другую точку зрения по данному вопросу. Очевидно, необходим компромисс между справедливым выделением трафика всем станциям и оптимальным использова- нием канала в глобальном смысле.

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