Сети → Процесс маршрутизации

Процесс маршрутизации начинает хост-компьютер, у которого формируется пакет, который нужно отправить. Вначале компьютер выясняет, находится ли адресат пакета в этой же или IP-сети (или подсети). Если адресат находиться в другой IP-сети (или подсети), хост посылает пакет шлюзу, назначенному по умолчанию (маршрутизатору по умолчанию). Если получатель находится в той же IP-сети (подсети), хост посылает пакет непосредстве6нно этому хосту, игнорируя шлюз, назначенный по умолчанию.

Машрутизатор (router) – сетевые устройства, которое соединяются с несколькими физическими сетями, типа нескольких сетей Ethernet. Марштуризаторы пересылают данные из одной сети в другую. Одна из основных выгод использования маршрутизаторов,  помимо помощи в пересылке данных через сеть, состоит в возможности соединения с физическими сетями различных типов.

Полный процесс, в соответствии с которым компьютер посылает данные, проходящие через все маршрутизаторы и в конечном счете достигающие адресата, называют маршрутизация (routing).

Чтобы послать пакет маршрутизатору, необходимо знать его IP-адрес, если говорить более определенно, — знать IP-адрес интерфейса маршрутизатора, связанного с IP-сетью в которой находиться компьютер. Маршрутизатор, назначенный для какого-либо ПК по умолчанию, — это просто маршрутизатор, которому этот ПК посылает пакеты, если их адресат находится в другой сети или подсети. В терминологии TCP/IP такой маршрутизатор называют маршрутизатором по умолчанию (default router) или шлюзом по умолчанию (default gateway).

В некоторых случая IP-адрес шлюза по умолчанию просто указывает в настройках. В других случаях хост узнает IP-адрес шлюза по умолчанию динамически, используя протокол динамичесного конфигурирования хоста (dynamic host configuration protocol, DHCP). Хосты IP используют DHCP, чтобы автоматически распознавать свой IP-адрес, а также IP-адрес их маршрутизатора по умолчанию.

Процесс маршрутизации в случае если IP-адрес адресата находиться в другой IP-сети (подсети) сводится к:

  1. Создать IP-пакет, инкапсулировав данные транспортного уровня (который в свою очередь инкапсулирует данные уровня приложения) с добавлением IP-заголовка.
  2. Проверить кэш ARP, чтобы узнать, известен ли MAC-адрес шлюза, назначенного по умолчанию. Если это не так, использовать протокол ARP, чтобы узнать этот MAC-адрес.
  3. Инкапсулировать пакет во фрейм Ethernet добавив Ethernet адрес отправителя (свой) и Ethernet адрес получателя (шлюз по умолчанию).
  4. Послать фрейм Ethernet по MAC-адресу шлюза по умолчанию.

Прежде чем хост может послать пакет плате интерфейса сети Ethernet, он должен узнать MAC-адрес устройства получателя. Хост ищет его в своем ARP-кэше, где храниться список IP-адресов подсети вместе с соответствующими MAC-адресами Ethernet. Если в кэше нет соответствующей записи, хост использует протокол ARP, чтобы передать широковещательный запрос, ожидая получить ответ с необходимой ему информацией.

Маршрутизатор получает адресованный ему фрейм Ethernet и, если этот фрейм не содержит ошибок, деинкапсулирует IP-пакет, находящийся внутри фрейма. Маршрутизатор сравнивает IP-адрес получателя пакета с записями таблицы маршрутизации. Запись, которая соответствует этому адресу, подсказывает маршрутизатору, куда нужно послать пакет.