Маршрутизация представляет собой поиск оптимального маршрута при передаче данных от отправителя к получателю. Задача маршрутизации разбивается на две подзадачи – маршрутизацию и коммутацию. Коммутация (IP-forwarding) – это процесс продвижения пакетов по сети, который выполняется протоколами IP. Решение о том, какой пункт будет следующим при перемещении пакета принимается на основании оценок маршрутов. Информация о маршрутах хранится в таблицах маршрутизации промежуточных узлов(маршрутизаторов).
Таблицы маршрутизации находятся как на конечных узлах – компьютерах, так и на промежуточных – маршрутизаторах. Таблица маршрутизации представляет собой область памяти, данные в которую заносятся изначально при инициализации стека TCP/IP. Данные в таблице затем могут изменяться либо администратором вручную, либо динамически при помощи протоколов, которые называют протоколами маршрутизации. Цель протоколов маршрутизации – это обмен маршрутной информацией между маршрутизаторами.
Таблицы маршрутизации содержат следующую информацию о маршрутах:
1. IP – адрес сети или узла;
2. Маску подсети
3. Интерфейс, через который данные передаются на указанный IP – адрес.
4. Адрес шлюза(следующего хоста), через который данные передаются на указанный IP – адрес.
5. Метрика(оценка) маршрута – различается в зависимости от того, какой протокол маршрутизации используется. Может содержать количество пререходов между промежуточными узлами(число «хопов»), оценку пропускной способности, загруженности, надежности, стоимости канала.
Протоколы маршрутизации можо разделить на 3 группы:
Протоколы вектора расстояния для обмена информацией используют широковещательную рассылку всего содержимого таблицы маршрутизации. Рассылка выполняется через заданные интервалы времени, независимо от того, произошли ли изменения топологии сети на самом деле. В качестве оценки маршрута используется число «хопов». Диаметр сети ограничен. Используется в небольших сетях.
Протоколы состояния канала выполняют групповую рассылку данных по факту изменения топологии сети(«триггерное» обновление). Рассылаются только те данные, которые изменились. Для оценки маршрута можно использовать множество параметров(пропускная способность, загруженность, надежность канала), по умолчанию используется только пропускная способность канала. Протоколы состояния канала используются в средних и крупных сетях.
Смешаннный протокол EIGRP(«улучшенный» IGRP) был разработан фирмой CISCO на базе протокола вектора состояний IGRP. Протокол EIGRP поддерживает групповую рассылку, «триггерные» обновления, и способы оценки маршрутов по тем же параметрам, которые используют протоколы состояния каналов.
Прямая и непрямая доставка:
Если отправитель и получатель датаграммы находятся в одной подсети, то для передачи IP-датаграммы используется способ «прямой доставки». Данные передаются средствами протоколов канального уровня. Если отправитель и получатель находятся в разных сетях, то выполняется доставка средствами сетевого уровня и пакет передается через маршрутизаторы по направлению к сети получателя.
Aлгоритм IP-маршрутизации:
1. Выделить IP-адрес назначения, Id, из дейтаграммы и вычислить IP-адрес сети назначения, In
2. Если адрес получателя соответствует адресу одной из достижимых напрямую сетей, послать дейтаграмму к узлу-получателю по этой сети; (это включает разрешение Id в физический адрес, инкапсуляцию дейтаграммы и посылку кадра)
3. Иначе, если для адреса Id узла-получателя в таблице определен маршрут, то маршрутизировать дейтаграмму, как это определено в таблице;
4. Иначе, если указан маршрут для номера сети In, то маршрутизировать дейтаграмму, как это определено в таблице;
5. Иначе, если указан маршрут по умолчанию, то маршрутизировать дейтаграмму к шлюзу по умолчанию;
6. Иначе выдать сообщение об ошибке маршрутизации;