Сетевой уровень в модели взаимодействия открытых систем OSI

Сетевой уровень в модели OSI (Network Layer) нужен, чтобы построить крупную, составную сеть, на основе отдельных сетей, каждая из которых построена на различных технологиях. 

Сетевой уровень в модели osi

Например: 

  • Ethernet; 
  • Wi-fi;
  • 5G/4G/3G — сети сотовой связи разных поколений;
  • MPLS — мультисервисные сети.

История создания

Идею отдельного сетевого уровня для объединения сетей, построенных на основе разных технологий канального уровня, впервые предложили Винтон Серф и Роберт Кан в 1974 году. За эту идею они получили премию Тьюринга, это эквивалентно нобелевской премии, но только в информационных технологиях и компьютерных науках. 

Сетевой уровень и протокол IP широко используется в Интернет являются его основой. Винстон и Роберт за свою идею сетевого уровня получили звание “Отцы” интернета. 

Назначение сетевого уровня

На канальном уровне можно передавать информацию между компьютерами разными способами: 

  • передавать по проводам используя технологию Ethernet; 
  • и без проводов с помощью WI FI. 

Почему нельзя использовать, то что есть? Если мы хотим построить сеть, которая охватывает весь мир с помощью технологий канального уровня, у нас возникают проблемы: 

  • Технологий канального уровня много и они отличаются друг от друга, как объединять эти технологии — непонятно. 
  • Ограничение по масштабируемости. Технологии канлаьного уровня хорошо подходят для создания локальных сетей, но плохо для глобальных. 

Различия сетей

Рассмотрим отличия технологий канального уровня на основе которых создаются сети. 

  • Сервис. Во-первых могут отличаться уровнем сервиса. В интернет применяется уровень сервиса без гарантии доставки (Ethernet). Никак не проверяется дойдет ли информация или нет. В вай фай используется гарантия доставки. Отправитель передает кадр, после этого ждет подтверждение, затем, прием этого кадра и только потом передает следующий. Если подтверждение приема не пришло, то кадр передается еще раз. Возможен другой уровень сервиса с гарантией того, что доставка произойдет и сохранится порядок следования сообщений. 
  • Адресация.В изернет и wi-fi используются MAК-адреса. В сетях сотовой связи используются IMEI-адреса. В других канальных технологиях могут использоваться адреса других типов. Схемы адресации могут отличаться, в Ethernet используется плоская схема, но могут быть сложные схемы адресации — например иерархическая. 
  • Широковещание. Может поддерживаться и не поддерживаться в технологии канального уровня. 
  • Максимальный размер кадра (MTU). Может быть передан через сеть построенную по этой технологии. В Изернет размер кадра 1,5к байт, а в вайфай 2304 байта. 
  • Формат кадра. Разные технологии канального уровня могут использовать различный формат кадра. 

Согласование различий в сетях

Что можно сделать на сетевом уровне, чтобы согласовать различия в сетях. 

Тип сервиса

Чтобы согласовать тип сервиса — устройство, которое объединяет сети, может обеспечивать разные типы сервисов в разных сетях. Например, некое устройство принимает данные из вайфай и отправляет подтверждение о получении кадра, а затем передает кадр в изернет, гд еуже подтверждение не используется. В таком случае устройство объединяющее сети, само отправляет подтверждение сети вайфай, и не ждет подтверждения от получателя, который работает в сети ethernet и не отправляет подтверждений о получении. 

Адресация

Чтобы согласовать адреса на сетевом уровне вводятся глобальные типы адресов. Это адреса устройств в составной сети, которые не зависят от адресов в конкретных технологиях канального уровня. Когда используется такой тип адресации, каждое устройство в сети содержит два адреса: глобальный и локальный, поэтому нам нужны механизмы определения локального адреса по глобальному.  

Широковещание

Чтобы реализовать широковещание в сети, которая его не поддерживает, устройство которое объединяет сети, может отправлять широковещательный кадр всем устройствам сети в отдельности. 

Фрагментация

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

Подробный пример фрагментации рассмотрен в видео. (timecode 6.43)

Ethernet везде

Отличия в технологиях канального уровня, некоторое время тому назад были достаточно существенны. Но сейчас, почти везде используется технология канального уровня Изернет. Wi-Fi это адаптация технологии Ethernet, но для беспроводной среды. 

Технологии изернет и вайфай достаточно похожи. Они используют одинаковый формат адресов, МАС-адреса. Уровень кадра изернет и вайфай на подуровне управления логической связью (LLC) одинаков. Можно согласовать вайфай и изернет без сетевого уровня. И на практике это используется. Многие wifi маршрутизаторы могут работать в режиме моста. Это режим, в котором работа Ethernet и wifi согласуются на канальные уровни. И почти все мы используем вай фай, чтобы получить доступ к интернету. А доступ к интернет обеспечивается через распределительную систему вайфай, которая почти всегда является проводной. Поэтому возникает вопрос, а зачем нам разные технологии? Почему нельзя использовать везде Ethernet?  

Масштабируемость Ethernet

Оказывается, Ethernet и другие технологии канального уровня не подходят для создания крупной сети, которая может охватить весь мир из-за того, что у них есть существенные ограничения по масштабируемости. 

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

Следующая проблема в том, что если коммутатор не понимает куда отправлять кадр, он передает его на все порты, надеясь, что где-то там находиться получатель. Такой подход тоже работает в локальных сетях, но в глобальных сетях не работает. Если в интернет мы не знаем куда отправить пакет и будем пересылать всем компьютерам в интернете, то через некоторое время, мы засорим сеть такими мусорными пакетами и это приведет к отказу в обслуживании. 

Другая проблема это отсутствие дублирующих путей между коммутаторами. В Ethernet у нас всегда должно быть одно соединение, чтобы не образовалось кольца, иначе сеть будет перегружена широковещательным штормом. В Ethernet есть технология STP, которая позволяет создавать несколько связей между коммутаторами, но в каждый момент времени активно всего одно соединение.

Рассмотрим пример, в нашей сети есть несколько коммутаторов. Они соединены между собой и есть такое соединение, которое приводит к образованию кольца. 

  Соединения коммутаторов

В сети запускается протокол STP, коммутаторы выбирают корневой. Рассчитывают расстояние до корневого и отключают одно из соединений. 

Корневой коммутатор

Если коммутаторы используются для построения локальной сети, где расстояние между коммутаторами небольшое, то такой подход работает отлично. Но, предположим, что мы строим глобальную сеть и если мы хотим отправить данные из Екб в Челябинск, который является соседним городом и расположен близко, то на уровне Ethernet мы это сделать не сможем, потому что прямое соединение отключено протоколом STP.

протокол stp

Необходимо передавать данные через другие города, расстояние гораздо больше, поэтому скорость передачи будет существенно ниже. От этого хотелось бы избавиться. 

передача данных

Масштабируемость на сетевом уровне

Что делает сетевой уровень, чтобы обеспечить масштабирование и построить такую сеть, которая способна объединить все компьютеры во всем мире, например сеть интернет. 

  • Первое это агрегация адресов. Сетевой уровень работает не с отдельными адресами, а с группами адресов, которые объединяются и такие блоки адресов называются сетью.
  • Пакеты, для которых путь доставки неизвестен на сетевом уровне отбрасываются. Это обеспечивает защиту составной сети от циркуляции мусорных пакетов. 
  • И возможность наличия нескольких активных путей в сети. Это является одной из причин создания сетей с пакетной коммутацией. В нашей сети всегда есть некое количество активных путей между отправителем и получателем. И данные могут пройти по любому из этих путей. В том числе, если один путь выйдет из строя, то другой путь останется доступным. Но если у нас есть несколько путей, то на сетевом уровне появляется задача маршрутизации. То есть, на каждом этапе мы должны определять, по какому пути мы отправим ту или иную порцию данных. 

Задачи сетевого уровня

  • Задачей является объединение сетей (internetworking), создание составной сети на основе сетей построенных на разных технологиях канального уровня, которые могут существенно отличаться друг от друга. 
  • Вторая задача это маршрутизация. Поиск пути в такой составной сети, где у нас может быть одновременно несколько активных соединений. 
  • Третья задача, обеспечение качества обслуживания. 

Оборудование для сетевого уровня

Оборудования, которые работают на сетевом уровне, называются маршрутизаторы.

Оборудования для модели osi

Маршрутизатор — это устройство для объединения сетей. У маршрутизатора есть некое количество интерфейсов, через них к маршрутизатору подключается сеть. 

Интерфейс маршрутизатора

У каждого интерфейса маршрутизатора есть адрес IP31 IP34. Для сравнения, у интерфейса коммутатора своих адресов нет. Если мы хотим объединить несколько сетей, нам обязательно нужен маршрутизатор. Нельзя просто взять и подключить одну сеть к другой, и передавать данные напрямую, нужно использовать маршрутизаторы. 

Маршрутизация

Маршрутизация (routing) это поиск пути доставки пакета между сетями через транзитные узлы — маршрутизаторы. Какие возникают сложности? Со временем может изменяться структура сети. Могут появляться новые маршрутизаторы, существующие маршрутизаторы могут выходить из строя и отключаться от сети, поэтому мы должны учитывать изменения в топологии сети. Хорошо еще учитывать изменения в загрузке каналов связи (КС), чтобы не передавать информацию через один КС, а другие маршруты оставлять не загруженными. Это позволит более эффективно использовать пропускную способность сети. 

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

Как данные могут доставляться по сети? Рассмотрим пример, в котором 5 маршрутизаторов и 2 компьютера. Отправитель передает данные получателю и каждый раз задача маршрутизации для каждой новой порции данных решается заново. Поэтому части данных могут проходить по разным путям. 

Как работает маршрутизатор

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

Вышел из строя маршрутизатор

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

Сетевой уровень в TCP/IP 

На стеке протоколов в tcp/ip достаточно много протоколов, основной протокол это IP (интернет протокол) он используется для отправки данных. Также есть 3 протокола ICMP — используется для управления сетью. ARP — используется, чтобы с помощью глобального адреса сетевого уровня, определить локальный адрес в технологии канального уровня. DHCP протокол динамической конфигурации хостов, используется, чтобы автоматически назначать IP адреса компьютерам в составной сети. 

Сетевой уровень в tcp

Заключение

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

Ссылка на основную публикацию