Сетевой уровень (Network layer) служит для образования единой
транспортной системы, объединяющей несколько сетей, причем эти сети могут использовать совершенно
разные принципы передачи сообщений между конечными узлами и обладать произвольной структурой связей.
Функции сетевого уровня достаточно разнообразны. Начнем их рассмотрение на примере объединения локальных сетей.
Протоколы канального уровня локальных сетей обеспечивают доставку данных между любыми узлами только в сети
с соответствующей типовой топологией, например топологией иерархической звезды. Это очень жесткое
ограничение, которое не позволяет строить сети с развитой структурой, например сети, объединяющие несколько
сетей предприятия в единую сеть, или высоконадежные сети, в которых существуют избыточные связи между
узлами. Можно было бы усложнять протоколы канального уровня для поддержания петлевидных избыточных связей,
но принцип разделения обязанностей между уровнями приводит к другому решению. Чтобы, с одной стороны,
сохранить простоту процедур передачи данных для типовых топологий, а с другой - допустить использование
произвольных топологий, вводится дополнительный сетевой уровень.
На сетевом уровне сам термин сеть наделяют специфическим значением. В данном случае под сетью понимается
совокупность компьютеров, соединенных между собой в соответствии с одной из стандартных типовых топологий и
использующих для передачи данных один из протоколов канального уровня, определенный для этой топологии.
Внутри сети доставка данных обеспечивается соответствующим канальным уровнем, а вот доставкой данных между
сетями занимается сетевой уровень, который и поддерживает возможность правильного выбора маршрута передачи
сообщения даже в том случае, когда характер структуры связей между составляющими сетями отличается от
принятого в протоколах канального уровня.
Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами" Маршрутизатор -
это устройство, которое собирает информацию о топологии межсетевых соединений и на ее основании пересылает
пакеты сетевого уровня в сеть назначения. Чтобы передать сообщение от отправителя, находящегося в одной сети,
получателю, находящемуся в другой сети, нужно совершить некоторое количество транзитных передач между сетями,
или хопов (hop - прыжок), каждый раз выбирая подходящий маршрут.
Таким образом, маршрут представляет собой последовательность маршрутизаторов, через которые проходит пакет.
На рис. 3.8 показаны четыре сети, связанные тремя маршрутизаторами. Между узлами А и В данной сети пролегают
два маршрута: первый через маршрутизаторы 1 и 3, а второй через маршрутизаторы 1, 2 и 3.
Проблема выбора наилучшего пути называется маршрутизацией, и ее решение является одной из главных задач
сетевого уровня. Эта проблема осложняется тем, что самый короткий путь не всегда самый лучший.
Часто критерием при выборе маршрута является в^е^1я_г1ередачи данных по этому маршруту; оно зависит
от пропускной способности каналов связи и интенсивности трафика, которая может изменяться с течением времени.
Некоторые алгоритмы маршрутизации пытаются приспособиться к изменению нагрузки,
в то время как другие принимают решения на основе средних показателей за длительное время.
Выбор маршрута может осуществляться и по другим критериям, например, надежности передачи.
В общем случае функции сетевого уровня шире, чем функции передачи сообщений по связям с нестандартной
структурой, которые мы сейчас рассмотрели на примере объединения нескольких локальных сетей. Сетевой уровень
решает также задачи согласования разных технологии, упрощения адресации в крупных сетях и создания надежных и
гибких барьеров на пути нежелательного трафика между сетями.
Сообщения сетевого уровня принято называть пакетами (packet). При организации доставки пакетов на сетевом
уровне используется понятие "номер сети". В этом случае адрес получателя состоит из старшей части - номера
сети и младшей - номера узла в этой сети. Все узлы одной сети должны иметь одну и ту же старшую часть адреса, поэтому термину "сеть" на сетевом уровне можно дать и другое, более формальное определение: сеть - это совокупность узлов, сетевой адрес которых содержит один и тот же номер сети.
На сетевом уровне определяются два вида протоколов. Первый вид - сетевые протоколы (routed protocols) -
реализуют продвижение пакетов через сеть. Именно эти протоколы обычно имеют в виду, когда говорят о протоколах
сетевого уровня. Однако часто к сетевому уровню относят и другой вид протоколов,
называемых протоколами обмена маршрутной информацией или просто протоколами маршрутизации (routing protocols).
С помощью этих протоколов маршрутизаторы собирают информацию о топологии межсетевых соединений.
Протоколы сетевого уровня реализуются программными модулями операционной системы, а также программными
и аппаратными средствами маршрутизаторов.
На сетевом уровне работают протоколы еще одного типа, которые отвечают за отображение адреса узла,
используемого на сетевом уровне, в локальный адрес сети. Такие протоколы часто называют протоколами
разрешения адресов (Address Resolution Protocol, ARP). Иногда их относят не к сетевому уровню,
а к канальному, хотя тонкости классификации не изменяют их сути.
Примерами протоколов сетевого уровня являются протокол межсетевого взаимодействия IP стека
TCP/IP и протокол межсетевого обмена пакетами IPX стека Novell.
|