Маршрутизация пакетов включает в себя две основные задачи:
• определение оптимального маршрута пересылки пакета по составной сети;
• собственно пересылка пакета по сети.
Чтобы иметь возможность определить оптимальный маршрут пересылки пакета, маршрутизатор должен иметь информацию обо всех существующих и доступных в данный момент времени маршрутах. Метод, основанный на таком представлении маршрутной информации, называется маршрутизацией по источнику и обычно используется при тестировании работы сети.
Таким образом, процесс маршрутизации состоит в определении следующего узла в пути следования пакета и пересылки пакета этому узлу. Такой узел называют хопом (от англ, hop — прыжок, скачок). Действительно, передача пакета по составной сети происходит своего рода скачками от маршрутизатора к маршрутизатору.
Информация, ставящая в соответствие конечному адресу назначения пакета адрес маршрутизатора, на который нужно дальше отправить пакет для достижения адреса назначения, хранится в специальной таблице маршрутов, которая размещается на маршрутизаторе.
Таблица маршрутизации, создаваемая по умолчанию на компьютере с Windows Server 2003 (одна сетевая карта, IP-адрес: 192.168.1.1, маска подсети: 255.255.255.0), имеет следующий вид:
В приведенной таблице имеются следующие поля:
• Network Destination (адрес назначения) – адрес хоста или подсети, для которых задан маршрут в таблице;
• Netmask (маска подсети) – маска подсети для адреса назначения;
• Gateway (шлюз – другое название маршрутизатора) – адрес для передачи пакета;
• Interface (интерфейс) – адрес собственного порта маршрутизатора (сетевой карты), на который следует передать пакет. Любой маршрутизатор содержит не менее двух портов. В компьютере в роли маршрутизатора с Windows Server 2003 портами являются сетевые карты;
• Metric (метрика) – число маршрутизаторов (число хопов), которые необходимо пройти для достижения хоста назначения. Для двух маршрутов с одинаковыми адресами назначения выбирается маршрут с наименьшей метрикой. Значение 20 в таблице соответствует 100-мегабитной сети Ethernet.
Кратко опишем записи в таблице по умолчанию.
• 0.0.0.0 – маршрут по умолчанию (default route). Эта запись выбирается в случае отсутствия совпадений с адресом назначения. В приведенной таблице маршруту по умолчанию соответствует шлюз 192.168.1.2 – это адрес порта маршрутизатора, который связывает данную подсеть с другими подсетями;
• 127.0.0.0 – маршрут обратной связи (loopback address), все пакеты с адресом, начинающимся на 127, возвращаются на узел-источник;
• 192.168.1.0 – адрес собственной подсети узла;
• 192.168.1.1 – собственный адрес узла (совпадает с маршрутом обратной связи);
• 192.168.1.255 – адрес широковещательной рассылки (пакет с таким адресом попадает всем узлам данной подсети);
• 224.0.0.0 – маршрут для групповых адресов;
• 255.255.255.255 – адрес ограниченной широковещательной
рассылки.
Алгоритмы маршрутизации могут различаться по нескольким характеристикам:
• по задачам, решаемым алгоритмом;
• по принципу сбора и представления информации о сети;
• по методу расчета оптимального маршрута.
Кроме того, алгоритмы маршрутизации должны максимально удовлетворять следующим требованиям:
• выбираемый маршрут должен быть наиболее оптимальным;
• реализация алгоритма должна быть простой, а его функционирование не требовательным к вычислительным мощностям;
• алгоритм должен обладать высокой отказоустойчивостью;
• адаптация работы алгоритма к изменяющимся условиям должна происходить как можно быстрее.
Таким образом, алгоритмы маршрутизации можно классифицировать следующим образом:
• по актуальности используемых маршрутов:
статические; динамические;
• по принципу обмена маршрутной информацией:
состояния канала; дистанционно-векторные.
• по количеству определенных маршрутов:
одномаршрутные; многомаршрутные;
• по используемой структуре маршрутизации:
одноуровневые; иерархические;
• по отношению к домену:
внутридоменные; междоменные;
Статические алгоритмы маршрутизации основаны на ручном составлении таблиц маршрутизации администратором сети и обычно применяются в небольших сетях с простой топологией связей.
В динамических или адаптивных алгоритмах таблицы маршрутизации, и соответственно, сами маршруты постоянно обновляются в соответствии с меняющейся топологией сети.
Алгоритмы состояния канала отличаются от дистанционно-векторных в зависимости от того, куда и какая маршрутная информация рассылается. Рассылка маршрутной информации необходима для синхронизации таблиц маршрутов на всех маршрутизаторах сети. Алгоритмы состояния каналов рассылают обновленную маршрутную информацию небольшими порциями по всем направлениям. Дистанционно-векторные алгоритмы обмениваются сообщениями, содержащими большие объемы информации, однако обмен происходит только с соседними маршрутизаторами.
Различные алгоритмы могут определять один или несколько маршрутов для достижения какого-либо узла или подсети. В многомаршрутных алгоритмах каждому из возможных маршрутов в зависимости от его пропускной способности и других показателей назначается приоритет, на основании которого происходит выбор пути пересылки пакета. При этом обычно один маршрут является основным, а остальные — резервными.