Сетевой уровень занимает в модели OSI промежуточное положение: его услугами пользуются более высокие уровни, а для выполнения своих функций он использует канальный уровень. Сетевой уровень служит для работы в произвольных сетевых топологиях с сохранением простоты передачи пакета базовых топологий. Раньше взаимодействие неоднородных (по топологии) сетей обеспечивали с помощью прикладных программ. Например, некоторые системы электронной почты включали программы-отправители писем, которые передавали их по одному. Путь от отправителя до получателя пролегал через различные сети, но это не имело значения, если только системы электронной почты на всех машинах понимали друг друга. Использование прикладных программ для скрытия деталей реализации имело свои недостатки. Совершенствование таких систем приводило к необходимости обновления программ на всех машинах. Добавление нового сетевого оборудования также приводило к неизбежности модификации программ. Альтернативой программному взаимодействию являются системы, основанные на соединении сетевого уровня.
Канальный уровень не позволяет производить адресацию в сложных сетях. Поэтому при объединении сетей в кадры канального уровня добавляется заголовок сетевого уровня. Этот заголовок позволяет находить адресата в сети с любой топологией.
Заголовок пакета сетевого уровня имеет унифицированный формат, не зависящий от форматов кадров канального уровня сетей, входящих ъ объединенную сеть. Основное место в заголовке сетевого уровня отводится адресу получателя. При этом используется не МАС-адрес, а составной адрес — номер сети и номер абонента в данной сети. Такая адресация позволяет протоколам сетевого уровня составлять точную схему связи и выбирать оптимальные маршруты" при любой топологии. Помимо адреса, заголовок сетевого уровня может содержать дополнительную информацию, например, время жизни пакета в сети, информацию о связях между сетями, данные для фрагментации и сборки пакетов, информацию о загруженности сети, требования к качеству обслуживания и т. д.
Логическое соединение на сетевом уровне обеспечивает механизм доставки пакетов от отправителя к получателю в масштабе времени, определяемом используемым сетевым протоколом. При этом различные сетевые протоколы могут вносить различные технологические задержки в передачу данных.
Ключевым понятием сетевого уровня является понятие абстрактной коммутационной системы или межсетевого обмена. Коммутация при передаче маленьких блоков, а не файлов или больших сообщений, имеет ряд преимуществ. Во-первых, она напрямую отображается в базовое сетевое оборудование, что делает ее очень эффективной. Во-вторых, она разделяет процессы передачи данных от прикладных программ, позволяя компьютерам обрабатывать сетевой трафик, не зная, какие приложения передают его. В-третьих, она делает систему гибкой, поддерживая сетевые протоколы общего назначения. В-четвертых, она позволяет администраторам сетей вводить новые сетевые технологии, модифицируя только программное обеспечение сетевого уровня, не внося при этом никаких изменений в прикладные программы. Логика объединенной сети отделяет сетевое взаимодействие от деталей сетевых технологий и скрывает низкоуровневые подробности от пользователя. Она определяет проектирование программ и физическую адресацию и маршрутизацию.
Существуют два метода назначения сетевого адреса:
· В первом методе сетевой и канальный адреса не совпадают, что обеспечивает гибкость за счет независимости от формата адреса канального уровня. Недостатком метода является необходимость повторной нумерации станций в сети, причем чаще всего это приходится делать вручную. Данный метод нашел применение в сетях, построенных на базе протокола IP;
· Во втором методе на сетевом уровне используется адрес канального уровня. Это избавляет администратора от присваивания адресов вручную и установления соответствия между сетевыми и канальными адресами одного и того же абонента в сети. Однако этот метод приводит к сложностям интерпретации адреса узла в сетях с разными форматами адресов. Метод нашел применение в сетях, построенных на базе протокола IPX.
Сетевой уровень позволяет соединяться двум системам, подключенным к разным сетям. Он же отвечает за выбор маршрута соединения. Сетевой уровень служит для образования единой транспортной системы, объединяющей несколько сетей с различными принципами передачи данных. Сетевой уровень предоставляет средства:
· доставки пакетов в сетях с произвольной топологией;
· структуризации сети методом локализации широковещательного трафика;
· согласования канальных уровней.
Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами. Маршрутизатор — это устройство, которое собирает информацию о топологии межсетевых соединений и на ее основании пересылает пакеты сетевого уровня в сеть назначения. Для того чтобы передать сообщение от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно совершить некоторое количество переходов между сетями, каждый раз выбирая подходящий маршрут. Таким образом, маршрут представляет собой последовательность маршрутизаторов, через которые проходит пакет.
Выбор маршрута называется маршрутизацией — она и является главной задачей сетевого уровня. Задача осложняется тем, что самый короткий путь не всегда самый лучший. Часто критерием выбора является время передачи данных по маршруту; оно зависит от пропускной способности каналов связи и интенсивности трафика, которая может изменяться со временем. Некоторые алгоритмы маршрутизации пытаются учесть изменение нагрузки, в то время как другие принимают решения на основе средних показателей за длительное время. Выбор маршрута может осуществляться и по другим критериям, например, по надежности передачи.
На сетевом уровне действуют два вида протоколов. Первый относится к определению правил передачи пакетов от конечных узлов к маршрутизаторам и между маршрутизаторами. Именно эти протоколы обычно имеют в виду, когда говорят о протоколах сетевого уровня. Однако часто к сетевому уровню относят и другие протоколы, называемые протоколами обмена информацией о маршрутах. С помощью этих протоколов маршрутизаторы собирают информацию о топологии межсетевых соединений.
Протоколы сетевого уровня реализуются драйверами операционной системы, а также программными и аппаратными средствами маршрутизаторов. Примерами протоколов сетевого уровня являются протокол межсетевого взаимодействия IP стека TCP/IP.
В технологии ATM сетевому уровню модели OSI соответствует уровень адаптации ATM. Основной функцией этого является «нарезка» блоков пользовательских данных, поступающих с более высоких уровней, на 48-байтные информационные поля ячеек ATM (на передающей стороне) и выделение информации из поступающих ячеек (на принимающей стороне).
Рассмотренные физический, канальный и сетевой уровни модели OSI являются обязательными практически для всех технологий. Именно на этих уровнях формируются информационные потоки, происходит коммутация и маршрутизация по сетям и осуществляется доставка данных получателю.