Маршрутизация TCP/IP
Маршрутом называется путь, по которому пакеты пересылаются от отправителя к получателю.
Маршрут определяет не полный путь, а только сегмент пути от хоста до шлюза (или от шлюза до шлюза), который может переслать пакеты целевому хосту. Существует пять типов маршрутов:
| Флаг | Описание |
|---|---|
| маршрут до хоста | Определяет шлюз, который может переслать пакеты указанному хосту в другой сети. |
| маршрут к сети | Определяет шлюз, который может переслать пакеты другому хосту указанной сети. |
| маршрут по умолчанию | Определяет шлюз, которому будут отправлены пакеты, если не был задан маршрут до целевого хоста или маршрут к сети целевого хоста. |
| циклический маршрут | Маршрут по умолчанию для всех пакетов, отправляемых по адресам локальной сети. IP-адрес циклического маршрута всегда 127.0.0.1. |
| маршрут оповещения | Маршрут по умолчанию для всех пакетов оповещения. Каждой подсети, в которой у сети есть IP-адрес, автоматически присваиваются два маршрута оповещения (один - адресу подсети, а другой - адресу оповещения подсети). |
Список маршрутов хранится в таблице маршрутизации ядра. Описание маршрута содержит такую информацию, как список сетей, достижимых локальным хостом, и список шлюзов для отправки пакетов в удаленные сети. При получении дейтаграммы шлюз ищет в таблицах маршрутизации следующий узел ее маршрута до целевого хоста и отправляет дейтаграмму этому узлу.
В таблицу маршрутизации ядра можно добавлять несколько маршрутов к одному и тому же хосту. Процедура выбора маршрута сначала находит все маршруты, соответствующие запросу, а потом выбирает маршрут с минимальной метрикой расстояния. При наличии нескольких маршрутов одинаковой длины выбирается тот маршрут, который задан наиболее точно. Если несколько маршрутов совпадают по обоим критериям, то эти маршруты применяются по-очереди.