logo
Часть 4

4.7.1. Алгоритм поиска маршрута в таблице маршрутизации

Таблица содержит записи, которые состоят из поля адреса сети, поля маски сети, поля адреса шлюза, поля адреса сетевого интерфейса и поля метрик.

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

Алгоритм поиска следующий. Если для какой-либо записи побитное произведение IP-адреса назначения и поля маски сети совпадает со значением поля адреса сети, то данная датаграмма будет отправлена на соответствующий этой записи шлюз, указанный в поле адрес шлюза, через сетевой интерфейс – хост отправителя датаграммы на данный шлюз, указанный в поле адреса сетевого интерфейса.

В стеке TCP/IP не только маршрутизаторы, но и конечные узлы принимают решения о том, кому передавать пакет для его успешной доставки узлу назначения, на основании так называемых таблиц маршрутизации (routing tables).

Рассмотрим следующий пример организации небольшой сети класса С, соединенной с провайдером Internet через маршрутизатор, который в то же время, обеспечивает связь между этими двумя сегментами. Пусть сетевой номер, выделенный этой организации – 210.20.30, а адрес Internet-шлюза – 210.20.30.254.

Р ис.4.3. Структура сети

Сеть разбита на три сегмента. Адреса первого могут принимать значения с 210.20.30.0 по 210.20.30.63, второго с 210.20.30.64 по 210.20.30.127, третьего с 210.20.30.192 по 210.20.30.255. маской данной сети будет – 255.255.255.192..

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

Хост P

Адрес сети

Маска

Шлюз

Интерфейс

0.0.0.0

0.0.0.0.

210.20.30.10

210.20.30.1

210.20.30.0

255.255.255.192

210.20.30.1

210.20.30.1

Хост Q

Адрес сети

Маска

Шлюз

Интерфейс

0.0.0.0

0.0.0.0.

210.20.30.10

210.20.30.2

210.20.30.0

255.255.255.192

210.20.30.2

210.20.30.2

Хост R

Адрес сети

Маска

Шлюз

Интерфейс

0.0.0.0

0.0.0.0.

210.20.30.254

210.20.30.200

210.20.30.0

255.255.255.192

210.20.30.10

210.20.30.10

210.20.30.64

255.255.255.192

210.20.30.70

210.20.30.70

210.20.30.192

255.255.255.192

210.20.30.200

210.20.30.200

Хост S

Адрес сети

Маска

Шлюз

Интерфейс

0.0.0.0

0.0.0.0.

210.20.30.70

210.20.30.81

210.20.30.64

255.255.255.192

210.20.30.81

210.20.30.81

Хост T

Адрес сети

Маска

Шлюз

Интерфейс

0.0.0.0

0.0.0.0.

210.20.30.70

210.20.30.82

210.20.30.64

255.255.255.192

210.20.30.82

210.20.30.82

Хост G

Адрес сети

Маска

Шлюз

Интерфейс

210.20.30.0

255.255.255.0

210.20.30.200

210.20.30.254

Хост R является регулировщиком потока датаграмм между ветками сети и Internet.

Работа механизма маршрутизации.

Пусть хост S отправляет датаграмму в Internet, например, по адресу 140.51.120.30.Так как адрес не принадлежит ветке S, над ним проводится операция AND с маской 255.255.255.192 для определения подсети, которой он может принадлежать. Так как такой сети нет, датаграмма отправляется на шлюз по умолчанию для данного хоста, а именно на 210.20.30.70, который используется как шлюз до хоста R. Теперь он займется выбором пути данной датаграммы.

После того, как датаграмма попала на хост R, хост проверяет ее адрес назначения – 140.51.120.30, на принадлежность какой-нибудь из подсетей, указанных в его таблице маршрутизации. Такой сети там не оказывается. Хост R отправляет датаграмму на свой шлюз по умолчанию – 210.20.30.254 через свой интерфейс 210.20.30.200. Далее эта датаграмма попадает в Internet и переправляется получателю.

Если получатель датаграммы отправил ответную датаграмму, то она пройдет соответственно через адреса 210.20.30.200 210.20.30.70 210.20.30.

Yandex.RTB R-A-252273-3
Yandex.RTB R-A-252273-4