Сетевая модель OSI (базовая эталонная модель взаимодействия открытых систем, англ. Open Systems Interconnection Basic Reference Model) — абстрактная сетевая модель для коммуникаций и разработки сетевых протоколов.
Модель состоит из 7-ми уровней, расположенных друг над другом. Уровни взаимодействуют друг с другом (по «вертикали») посредством интерфейсов, и могут взаимодействовать с параллельным уровнем другой системы (по «горизонтали») с помощью протоколов. Каждый уровень может взаимодействовать только со своими соседями и выполнять отведённые только ему функции. Несмотря на существование других моделей, большинство сетевых производителей сегодня разрабатывают свои продукты на основе этой структуры.
Каждый уровень модели OSI отвечает за часть процесса обработки по подготовке данных к передаче по сети.
Согласно модели OSI в процессе передачи данные буквально проходят сверху вниз по уровням модели OSI отправляющего компьютера и вверх по уровням модели OSI принимающего компьютера. На принимающем компьютере происходит процесс, обратный инкапсуляции. Биты прибывают на физический уровень модели OSI принимающего компьютера. В процессе перемещения вверх по уровням OSI принимающего компьютера данные поступят на прикладной уровень.
Уровень | Название | Описание 1 | Описание 2 |
7. | Прикладной | Это уровень, с которым работают пользователи конечных продуктов. Их не волнует, как передаются данные, зачем и через какое место… Они сказали "ХОЧУ!" - а мы, программисты, должны им это обеспечить. В качестве примера можно взять на рассмотрение любую сетевую игру: для игрока она работает на этом уровне. | Когда пользователь хочет отправить данные, например, электронную почту, на прикладном уровне начинается процесс инкапсуляции. Прикладной уровень отвечает за обеспечение сетевого доступа к приложениям. Информация проходит через верхние три уровня и, попадая вниз, на транспортный уровень, считается данными. |
6. | Представительский (xml, Протокол SMB: Что это и как он используется?) | Здесь программист имеет дело с данными, полученными от низших уровней. В основном, это конвертирование и представление данных в удобоваримом для пользователя виде. | |
5. | Сеансовый (TLS, Что такое SSL сертификат для сайта, почты, NetBios) | Этот уровень позволяет пользователям осуществлять "сеансы связи". То есть именно на этом уровне передача пакетов становится для программиста прозрачной, и он может, не задумываясь о реализации, непосредственно передавать данные, как цельный поток. Здесь на сцену вступают протоколы HTTP, FTP, Telnet, SMTP и т.д. | |
4. | Транспортный (Порты TCP. Что такое TCP / IP порт, UDP) | Осуществляет контроль над передачей данных (сетевых пакетов). То есть, проверяет их целостность при передаче, распределяет нагрузку и т.д. Этот уровень реализует такие протоколы, как TCP, UDP и т.д. Для нас представляет наибольший интерес. | На транспортном уровне данные разбиваются на более легко управляемые сегменты, или блоки PDU транспортного уровня, для упорядоченной транспортировки по сети. Блок PDU описывает данные так, как они движутся с одного уровня модели OSI на другой. Кроме того, блок PDU транспортного уровня содержит такую информацию, как номера портов, порядковые номера и номера квитирования, которые используются для надежной транспортировки данных. |
3. | Сетевой (IP, ICMP протокол диагностики перегрузки сети) | Логически контролирует адресацию в сети, маршрутизацию и т.д. Должен быть интересен разработчикам новых протоколов и стандартов. На этом уровне реализованы протоколы IP, IPX, IGMP, ICMP, ARP. В основном, управляется драйверами и операционными системами. Сюда влезать, конечно, стоит, но только когда ты знаешь, что делаешь, и полностью в себе уверен. | На сетевом уровне каждый сегмент, поступивший с транспортного уровня, становится пакетом. Пакет содержит логическую адресацию и другие управляющие данные уровня 3. |
2. | Канальный (wi-fi, Что такое Ethernet) | Этот уровень контролирует восприятие электронных сигналов логикой (радиоэлектронными элементами) аппаратных устройств. То есть, взаимодействуя на этом уровне, аппаратные средства превращают поток битов в электрические сигналы и наоборот. Нас он не интересует, потому что мы не разрабатываем аппаратные средства, чипы и т.д. Уровень касается сетевых карт, мостов, свичей, рутеров и т.д. | На канальном уровне каждый пакет, поступивший с сетевого уровня, становится фреймом. Фрейм содержит физический адрес и данные об исправлении ошибок. |
1. | Аппаратный (Физический) (лазер, электричество, радио) | Контролирует передачи физических сигналов между аппаратными устройствами, входящими в сеть. То есть управляет передачей электронов по проводам. Нас он не интересует, потому что все, что находится на этом уровне, контролируется аппаратными средствами (реализация этого уровня - это задача производителей хабов, мультиплексоров, повторителей и другого оборудования). Мы не физики-радиолюбители, а геймдевелоперы. | На физическом уровне фрейм становится битами. По сетевой среде биты передаются по одному. |
На сетевом уровне OSI реализованы протоколы IP(Структура межсетевого протокола IPv4,IPv6 vs IPv4. Добавление адресов IPv6 в Linux), IPX, IGMP, ICMP, ARP.
Нужно понимать почему возникла необходимость к построению сетевого уровня, почему сети построенные с помощью средств канального и физического уровня не смогли удовлетворять требования пользователей.
Создать сложную, структурированную сеть с интеграцией различных базовых сетевых технологий, можно и средствами канального уровня: для этого могут быть использованы некоторые типы мостов и коммутаторов. Естественно в целом трафик в такой сети складывается случайным образом, но с другой стороны он характеризуется и некоторыми закономерностями. Как правило, в такой сети некоторые пользователи, работающие над общей задачей, (например, сотрудники одного отдела) чаще всего обращаются с запросами либо друг к другу, либо к общему серверу, и только иногда им необходим доступ к ресурсам компьютеров другого отдела. Поэтому в зависимости от сетевого трафика компьютеры в сети разделяют на группы, которые называют сегменты сети. Компьютеры объединяются в группу, если большая часть их сообщений предназначена (адресована) компьютерам этой же группы. Разделение сети на сегменты, могут осуществлять мосты и коммутаторы. Они экранируют локальный трафик внутри сегмента, не передавая за его пределы никаких кадров, кроме тех, которые адресованы компьютерам, находящимся в других сегментах. Таким образом, одна сеть распадается на отдельные подсети. Из этих подсетей в дальнейшем могут быть построены составные сети достаточно крупных размеров.
Идея разбиения на подсети - это основа построения составных сетей.
Но, воплощение этой идеи в жизнь с помощью повторителей, мостов, и коммутаторов имеет очень существенные ограничения и недостатки.
Все приведенные недостатки мостов и коммутаторов связаны только с тем, что они работают по протоколам канального уровня. Все дело в том, что эти протоколы в явном виде не определяют понятие часть сети (или подсеть, или сегмент), которое можно было бы использовать при структуризации большой сети. Поэтому разработчики сетевых технологий решили поручить задачу построения составной сети новому уровню - сетевому.