Чтобы по адресу сети назначения (для стека TCP/IP – IP-подсеть назначения) можно было бы выбрать рациональный маршрут дальнейшего следования пакета, каждый конечный узел и маршрутизатор анализирует таблицу маршрутизации. Приведем пример этой таблицы для маршрутизатора №4, используя принятое условное обозначение для сетевых адресов портов маршрутизатора и номеров сетей:
Сетевой адрес сети назначения | Сетевой адрес порта следующего маршрутизатора | Сетевой адрес выходного порта текущего маршрутизатора | Расстояние от текущего маршрутизатора до сети назначения (в хопах) |
S1 | M1(2) | M4(1) | 1 |
S2 | - | M4(1) | 0 |
S3 | M1(2) | M4(1) | 1 |
S4 | M2(1) | M4(1) | 1 |
S5 | - | M4(2) | 0 |
S6 | M2(1) | M4(1) | 2 |
Default | M5(1) | M4(2) | - |
Приведенный вариант таблицы сильно упрощен по сравнению с реальными таблицами. Здесь опущены столбцы с масками (например, маска используется для выделения в IP-адресе сетевого интерфейса IP-адрес узла назначения и IP-адрес IP-подсети назначения, которой принадлежит сам узел назначения), признаками состояния маршрута, временем, в течение которого действительна запись заданной таблицы.
|
|
В первом столбце указаны сетевые адреса сетей (для стека TCP/IP – это IP-адреса подсетей), входящих в составную сеть. В каждой строке таблицы следом за номером сети указывается сетевой адрес следующего маршрутизатора (более точно, сетевой адрес соответствующего порта следующего маршрутизатора), на который надо направить пакет, чтобы тот передвигался по направлению к сети с данным номером по рациональному маршруту.
Когда на порт текущего маршрутизатора поступает новый пакет (новый кадр, который содержит этот пакет) адрес сети назначения, извлеченный из заголовка пакета, входящего целиком в поле данных кадра посредством наложения маски на IP-адрес сетевого интерфейса узла назначения последовательно сравнивается с сетевыми адресами сетей, содержащимися в каждой строке первого столбца таблицы маршрутизации. Строка, совпадающая с сетевым адресом сети, указывает, на какой ближайший маршрутизатор следует направить пакет, например, если на какой-либо порт маршрутизатора №4 поступит пакет, адресованный в сеть «S6», то из представленной таблицы видно, что сетевой адрес следующего маршрутизатора – «M2(1)». Таким образом, очередным этапом продвижения данного пакета явится порт №1 маршрутизатора №2.
Учитывая, что пакет может быть адресован в любую сеть составной сети, каждая таблица маршрутизации должна иметь записи обо всех сетях, входящих в составную сеть. Но при таком подходе для крупной составной сети объем таблицы может оказаться очень большим, что существенным образом влияет на время просмотра, а также требует много памяти для хранения. Поэтому на практике число записей в этих таблицах уменьшается за счет использования специальной записи – «маршрутизатор по умолчанию» (default).
|
|
Если принять во внимание топологию составной сети, то в таблицах маршрутизаторах, находящихся на периферии составной сети, достаточно записать сетевые адреса сетей, непосредственно подсоединенных к данному порту маршрутизатора или расположенных по близости на тупиковых маршрутах. Обо всех же остальных сетях можно сделать в таблице единственную запись, указывающую на маршрутизатор, через который пролегает путь ко всем этим сетям. Такой маршрутизатор называется маршрутизатором по умолчанию, а вместо номера сети в соответствующей строке помещается особая запись, например default. В рассматриваемом примере таким маршрутизатором по умолчанию для сети «S5» является маршрутизатор №5, точнее его порт «M5(1)». На самом деле это будет IP-адрес этого порта. Это означает, что из сети «S5» путь почти ко всем сетям составной сети пролегает через этот порт маршрутизатора.
Некоторые реализации сетевых протоколов (для стека TCP/IP этим протоколом является протокол IP) допускают в таблице маршрутизации сразу несколько строк, соответствующих одному и тому же сетевому адресу сети назначения. В этом случае при выборе маршрута принимается во внимание столбец «Расстояние от текущего маршрутизатора до сети назначения ». При этом под расстоянием понимается любая метрика, используемая в соответствии с заданным в заголовке сетевого пакета критерием (называется классом сервиса). Расстояние может измеряться хопами, временем прохождения пакета по линиям связей и т.д. Если маршрутизатор поддерживает несколько классов сервиса пакетов, то таблица маршрутов составляется и применяется отдельно для каждого вида сервиса (критерия выбора маршрута). В примере расстояние между сетями измеряется хопами. Расстояние для сетей, непосредственно подключенных к портам маршрутизаторам, здесь принято равным 0.
Наличие нескольких маршрутов к одному узлу делает возможным передачу трафика к этому узлу параллельно по нескольким каналам связи, это повышает пропускную способность и надежность составной сети.