Сетевая модель OSI – The Open Systems Interconnection model
Аббревиатура OSI расшифровывается как Open Systems Interconnection (Модель взаимодействия открытых систем). Это стандарт принятый в 1983 году международной организацией по стандартизации. Модель OSI состоит из 7 уровней которые описывают как работают сетевые устройства. Другими словами, описывает, как устройства взаимодействуют друг с другом по сети. При этом, каждый уровень выполняет определенные функции во время работы. Стоит отметить, что модель OSI не является сетевой архитектурой по той причине, что не включает описание протоколов. Протоколы же описаны в отдельных стандартах и они не применяются на практике. Что касается практики, модель OSI не используется, ее особенностью является хорошая теоретическая база сетевого взаимодействия.
На практике же используется модель TCP/IP, о которой поговорим в одной из следующих статей. Тем не менее, знать как устроена модель OSI все же необходимо. По этому мы вкратце пробежимся по всем 7 уровням, что бы иметь представление о взаимодействии устройств в сети.
1 уровень – физический (L1)
На первом уровне передается сигнал и ток от оборудования отправителя к получателю. Информация отправляется в виде нулей и единиц. На каждом уровне есть свой блок данных протокола (PDU). На первом уровне PDU – это бит. Биты передаются по оптоволокну или по беспроводной сети.
К протоколам физического уровня относятся Bluetooth, Wi-Fi, TIA-449, ITU, GSM и т. д. RJ-45, RJ-11 тоже формально относятся к L1. В виде данных обработка информации начинается только на высоких уровнях модели (с 5 по 7).
Функции физического уровеня
- на этом уровне стандартизируются типы разъемов и назначение контактов;
- определяется, каким образом представляются «0» и «1»;
- интерфейс между сетевым носителем и сетевым устройством (передает электрические или оптические сигналы в кабель или радиоэфир, принимает их и преобразует в биты данных);
- функции физического уровня реализуются во всех устройствах, подключенных к сети;
- оборудование, работающее на физическом уровне: концентраторы;
- Примеры сетевых интерфейсов, относящихся к физическому уровню: RS-232C, RJ-11, RJ-45, разъемы AUI, ВNС .
Описание уровней модели OSI [ править ]
Уровень | Функции | PDU | Примеры |
7. Прикладной | Некоторое высокоуровневое API | Данные | HTTP, FTP |
6. Представительский | Представление данных между сетевым сервисом и приложением | Данные | ASCII, EBCDIC, JPEG |
5. Сеансовый | Управление сеансами: продолжительный обмен информацией в виде множества передач между нодами | Данные | RPC, PAP |
4. Транспортный | Надёжная передача сегментов между двумя нодами в сети | Сегменты/Датаграммы | TCP, UDP |
3. Сетевой | Структуризация и управление множеством нод в сети | Пакеты | IPv4, IPv6 |
2. Канальный | Надёжная передача датафреймов между двумя нодами соединённых физическим уровнем | Фреймы | PPP, IEEE 802.2, Ethernet |
1. Физический | Передача и приём потока байтов через физическое устройство | Биты | USB, витая пара |
Прикладной уровень (Application layer) [ править ]
Самый верхний уровень модели, предоставляет набор интерфейсов для взаимодействия пользовательских процессов с сетью. Единицу информации, которой оперируют три верхних уровня модели OSI, принято называть сообщение (англ. message).
Прикладной уровень выполняет следующие функции:
- Позволяет приложениям использовать сетевые службы (например удалённый доступ к файлам)
- Идентификация пользователей по их паролям, адресам, электронным подписям
- Предоставление приложениям информации об ошибках
- Определение достаточности имеющихся ресурсов
- Управление данными, которыми обмениваются прикладные процессы и синхронизация взаимодействия прикладных процессов
К числу наиболее распространенных протоколов верхних трех уровней относятся:
- FTP (File Transfer Protocol) протокол передачи файлов
- HTTP (HyperText Transfer Protocol)
- TELNET
- RDP (Remote Desktop Protocol)
Уровень представления (Presentation layer) [ править ]
Уровень представления занимается представлением данных, передаваемых прикладными процессами в нужной форме. Данные, полученные от приложений с прикладного уровня, на уровне представления преобразуются в формат подходящий для передачи их по сети, а полученные по сети данные преобразуются в формат приложений. Также кроме форматов и представления данных, данный уровень занимается конвертацией структур данных, используемых различными приложениями. Другой функцией, выполняемой на уровне представлений, является шифрование данных, которое применяется в тех случаях, когда необходимо защитить передаваемую информацию от доступа несанкционированными получателями.
Как и прикладной уровень, уровень представления оперирует напрямую сообщениями. Уровень представления выполняет следующие основные функции:
- Генерация запросов на установление/завершение сеансов взаимодействия прикладных процессов
- Согласование представления данных между прикладными процессами
- Конвертация форм представления данных
- Шифрование данных
Примеры протоколов данного уровня:
- AFP — Apple Filing Protocol
- ICA — Independent Computing Architecture
- LPP — Lightweight Presentation Protocol
- NCP — NetWare Core Protocol
Сеансовый уровень (Session layer) [ править ]
Сеансовый уровень контролирует структуру проведения сеансов связи между пользователями. Он занимается установкой, поддержанием и прерыванием сеансов, фиксирует, какая из сторон является активной в данный момент, осуществляет синхронизацию обмена информацией между пользователями, что также позволяет устанавливать контрольные точки.
На сеансовом уровне определяется, какой будет передача между двумя прикладными процессами:
- полудуплексной (процессы будут передавать и принимать данные по очереди)
- дуплексной (процессы будут передавать данные, и принимать их одновременно)
Как 2 уровня над ним, сеансовый уровень использует сообщения в качестве PDU.
- Установление и завершение на сеансовом уровне соединения между взаимодействующими приложениями
- Синхронизация сеансовых соединений
- Установление в прикладном процессе меток, позволяющих после отказа либо ошибки восстановить его выполнение от ближайшей метки
- Прекращение сеанса без потери данных
- Передача особых сообщений о ходе проведения сеанса
Примеры протоколов сеансового уровня:
- ADSP (AppleTalk Data Stream)
- ASP (AppleTalk Session)
- RPC (Remote Procedure Call)
- PAP (Password Authentication Protocol)
Транспортный уровень (Transport layer) [ править ]
Транспортный уровень предназначен для передачи надежной последовательностей данных произвольной длины через коммуникационную сеть от отправителя к получателю. Уровень надежности может варьироваться в зависимости от класса протокола транспортного уровня. Так например UDP гарантирует только целостность данных в рамках одной датаграммы и не исключает возможности потери/дублирования пакета или нарушения порядка получения данных; TCP обеспечивает передачу данных, исключающую потерю данных или нарушение порядка их поступления или дублирования, может перераспределять данные, разбивая большие порции данных на фрагменты и наоборот, склеивая фрагменты в один пакет.
Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов. В функции транспортного уровня входят:
- Управление передачей по сети и обеспечение целостности блоков данных
- Обнаружение ошибок, частичная их ликвидация
- Восстановление передачи после отказов и неисправностей
- Разбиение данных на блоки определенного размера
- Предоставление приоритетов при передаче блоков (нормальная или срочная)
- Подтверждение передачи.
Транспортный уровень использует сегменты или датаграммы в качестве основного типа данных.
- TCP (Transmission Control Protocol)
- UDP (User Datagram Protocol)
- SCTP (Stream Control Transmission Protocol)
Сетевой уровень (Network layer) [ править ]
Сетевой уровень предоставляет функционал для определения пути передачи пакетов данных между клиентами, подключенными к одной коммуникационной сети. На данном уровне решается проблема маршрутизации (выбора оптимального пути передачи данных), трансляцией логических адресов в физические, отслеживанием неполадок в сети.
В рамках сетевого надежность доставки сообщений не гарантируется; сетевой уровень может реализовывать соответствующий функционал, но не обязан это делать. Роль PDU исполняют пакеты (англ. packet).
Сетевой уровень выполняет функции:
- Обнаружение и исправление ошибок, возникающих при передаче через коммуникационную сеть
- Упорядочение последовательностей пакетов
- Маршрутизация и коммутация
- Сегментирование и объединение пакетов
Наиболее часто на сетевом уровне используются протоколы:
- IP/IPv4/IPv6 (Internet Protocol) сетевой протокол стека TCP/IP
- IPX (Internetwork Packet Exchange, протокол межсетевого обмена)
- AppleTalk
Канальный уровень (Data link layer) [ править ]
Канальный уровень предназначен для передачи данных между двумя узлами, находящихся в одной локальной сети. Роль PDU исполняют фреймы (англ. frame). Фреймы канального уровня не пересекают границ локальной сети, что позволяет данному уровню сосредоточиться на локальной доставке (фактически межсетевой доставкой занимаются более высокие уровни).
Заголовок фрейма формируется из аппаратных адресов отправителя и получателя, что позволяет однозначно определить устройство, которое отправило данный фрейм и устройство, которому он предназначен. При этом никакая часть адреса не может быть использована, чтобы определить некую логическую/физическую группу к которой принадлежит устройство.
Канальный уровень состоит из двух подуровней: LLC и MAC.
Канальный уровень выполняет функции:
- LLC Multiplexing: Интерфейс между сетевым уровнем и MAC, чтобы несколько различных протоколов сетевого уровня могли сосуществовать.
- LLC Flow control: Механизм ограничении скорости передачи данных при медленном приёмнике
- LLC Error control: Определение (и иногда исправление) ошибок с помощью чексумм
- MAC Adressing mechanism: Адрессация на основе уникальных MAC-адресов
- MAC Channel access control mechanism: Предоставляет протокол множественного доступа
Наиболее часто на канальной уровне используются протоколы:
- PPP (Point-To-Point Protocol, протокол прямого соединения между двумя узлами)
- SLIP (Serial Line Internet Protocol, предшественник PPP, который всё ещё используется в микроконтроллерах)
- Ethernet II framing
Физический уровень (Physical layer) [ править ]
Физический уровень описывает способы передачи потока бит через дата линк, соединяющий сетевые устройства. Поток байт может быть сгруппирован в слова и сконвертирован в физический сигнал, который посылается через некоторое устройство.
Здесь специфицируются такие низкоуровневые параметры как частота, амплитуда и модуляция.
Физический уровень выполняет функции:
- Побитовая доставка
- Физическое кодирование (способ представления данных в виде импульсов)
- LLC Error control: Определение (и иногда исправление) ошибок с помощью чексумм
- MAC Adressing mechanism: Адрессация на основе уникальных MAC-адресов
- MAC Channel access control mechanism: Предоставляет протокол множественного доступа
Наиболее часто на физическом уровне используются протоколы:
- Ethernet physical layer (семейство стандартов с оптическими или электрическими свойствами соединений между устройствами)
- USB
Транспортный уровень (Transport)
Здесь происходит доставка информации по каналам внешней сети. Блоки данных в данном случае делятся на отдельные фрагменты, размеры которых будут зависеть от используемого протокола. Для транспортного уровня это TCP и UDP. Какой из них лучше использовать, зависит от типа передаваемых данных.
TCP (Transmission Control Protocol) – протокол, хорошо подходящий для передачи трафика, для которого любые потери пакетов чувствительны. Процесс передачи контролируется, благодаря чему потерянные пакеты будут обнаружены и запрошены повторно. UDP (User Datagram Protocol) применяется, когда потеря нескольких пакетов не принципиальна. Например, при передаче видео, изображений.
Сеансовый уровень
На этом уровне происходит организация сеансов обмена информацией между оконечными машинами. На этом уровне идет определение активной стороны и реализуется синхронизация сеанса. На практике многие протоколы других уровней включают функцию сеансового уровня.
На этом уровне происходит обмен данными между ПО на разных ОС. На этом уровне реализовано преобразование информации (кодирование, сжатие и тд) для передачи потока информации на транспортный уровень. Протоколы уровня используются и те, что используют высшие уровни модели OSI.
Пятый уровень, сеансовый (session layer, L5)
Пятый уровень оперирует чистыми данными; помимо пятого, чистые данные используются также на шестом и седьмом уровне. Сеансовый уровень отвечает за поддержку сеанса или сессии связи. Пятый уровень оказывает услугу следующему: управляет взаимодействием между приложениями, открывает возможности синхронизации задач, завершения сеанса, обмена информации.
Службы сеансового уровня зачастую применяются в средах приложений, требующих удаленного вызова процедур, т.е. чтобы запрашивать выполнение действий на удаленных компьютерах или независимых системах на одном устройстве (при наличии нескольких ОС).
Примером работы пятого уровня может служить видеозвонок по сети. Во время видеосвязи необходимо, чтобы два потока данных (аудио и видео) шли синхронно. Когда к разговору двоих человек прибавится третий — получится уже конференция. Задача пятого уровня — сделать так, чтобы собеседники могли понять, кто сейчас говорит.
Уровень 7 – Прикладной уровень
Уровень, который представляет данные в презентабельном для человека виде. Именно этот уровень также обменивается информацией напрямую с пользователем. Один из часто встречаемых протоколов на последнем уровне – это протокол HTTPS, которые позволяет представлять и читать данные в браузере.