Принципы маршрутизации

 

Как отмечалось выше, основной задачей сетевого уровня является маршрутизация – передача пакетов информации между двумя конечными узлами составной сети. Рассмотрим принципы маршрутизации на примере.

 

Составная сеть включает 20 маршрутизаторов, имеющих несколько портов, к которым подсоединяются сети. Все маршрутизаторы объединяют 18 сетей (S1..S18) в одну составную сеть. Каждый порт маршрутизатора рассматривается как отдельный узел сети. Он всегда имеет свой сетевой адрес (прописывается системным администратором) и собственный локальный адрес (задается производителем интерфейсной карты). Таким образом, маршрутизатор можно рассматривать как совокупность нескольких узлов, каждый из которых входит в свою сеть. Как единое устройство, маршрутизатор не имеет ни отдельного сетевого адреса, ни локального адреса.

В составных сетях почти всегда существует несколько маршрутов для передачи пакетов между двумя конечными узлами. Маршрут – последовательность маршрутизаторов, которые должен пройти пакет от отправителя до узла назначения. Так пакет, отправленный из узла А в узел В может пройти через маршрутизаторы: 17-12-5-4-1 или 17-13-7-6-3. Задачу выбора маршрута из нескольких возможных решают маршрутизаторы и конечные узлы. Маршрут выбирается на основании имеющейся у этих устройств информации о текущей конфигурации сети, а также не основании указанного критерия выбора маршрута. Часто в качестве критерия выступает задержка прохождения маршрута отдельного пакета или средняя пропускная способность маршрута для последовательности пакетов. Часто используется критерий, который учитывает количество пройденных в маршруте промежуточных маршрутизаторов (хопов). Чтобы по адресу можно было выбрать рациональный маршрут дальнейшего следования пакетов любой конечный узел и маршрутизатор анализирует таблицу маршрутизации. Приведем пример этой таблицы для маршрутизатора 4, используя условное обозначение для сетевых адресов портов маршрутизатора и номеров сетей.

Номер сети назначения Сетевой адрес порта следующего маршрутизатора Сетевой адрес выходного порта Расстояние до сети назначения (в хопах)
S1 M1(1) M4(1)
S2 - M4(1)
S3 M1(2) M4(1)
S4 M2(1) M4(1)
S5 - M4(2)
S6 M2(1) M4(1)
default M5(1) M4(2) -

 

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

Номер сети назначения Сетевой адрес порта следующего маршрутизатора Сетевой адрес выходного порта Расстояние до сети назначения (в хопах)
S1 M1(3) MB
S2 M1(3) MB
S3 - MB
S4 M3(1) MB
S5 M1(3) MB
S6 M3(1) MB
default M3(1) M4(2) -

 

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

Номер сети назначения Сетевой адрес порта следующего маршрутизатора Сетевой адрес выходного порта Расстояние до сети назначения (в хопах)
S12 - MA
default M17(1) MA -

 

Способы построения таблиц маршрутизации у маршрутизатора и конечного узла различны. Маршрутизаторы как правило автоматически создают свои таблицы маршрутизации, обмениваясь служебной информацией. Для конечных узлов сети таблицы маршрутизации часто создаются вручную сетевыми администраторами и хранятся в виде файлов на дисках.