Модель OSI была разработана в конце 1970-х годов для поддержания разнообразных методов компьютерных сетей, которые в это время конкурировали за применение в крупных национальных сетевых взаимодействиях во Франции, Великобритании и США. В 1980-х годах она стала рабочим продуктом группы взаимодействия открытых систем Международной организации по стандартизации (ISO). Модель не смогла дать полное описание сети и не получила поддержку архитекторов на заре Интернета, который впоследствии нашёл отражение в менее предписывающем TCP/IP, в основном под руководством Инженерного совета Интернета (IETF).
В начале и середине 1970-х годов сеть в основном либо спонсировалась государством (NPL network в Великобритании, ARPANET в США, CYCLADES во Франции), либо разрабатывалась вендорами с использованием собственных стандартов, таких как IBM Systems Network Architecture и Digital Equipment Corporation DECnet. Общественные сети передачи данных только начинали появляться, и в конце 1970-х годов они использовали стандарт X.25.
Экспериментальная система коммутации пакетов в Великобритании примерно в 1973—1975 годах выявила необходимость определения протоколов более высокого уровня. После публикации британского Национального вычислительного центра «Для чего нужны распределённые вычисления», ставшей результатом крупных исследований будущих конфигураций компьютерных систем, Великобритания представила аргументы в пользу создания Международной комиссии по стандартам для охвата этой области на совещании ISO в Сиднее в марте 1977 года.
С 1977 года ISO реализовала программу по разработке общих стандартов и методов сетевого взаимодействия. Аналогичный процесс развивался и в Международном консультативном комитете по телеграфии и телефонии (МККТТ). Оба органа разработали документы, определяющие схожие сетевые модели. Модель OSI была впервые определена в исходном виде в Вашингтоне в феврале 1978 года французом Хьюбертом Циммерманом, немного доработанный проект стандарта был опубликован ISO в 1980 году.
Разработчикам модели пришлось столкнуться с конкурирующими приоритетами и интересами. Темпы технологических изменений обусловили необходимость определения стандартов, к которым новые системы могли бы сходиться, а не стандартизировать процедуры постфактум, тогда как традиционный подход к разработке стандартов был противоположным. Хотя это и не был сам стандарт, он представлял собой основу, на базе которой можно было бы определить будущие стандарты.
В 1983 году документы МККТТ и ISO были объединены и таким образом была сформирована базовая эталонная модель взаимосвязи открытых систем, обычно и называемая эталонной моделью взаимосвязи открытых систем (англ. Open Systems Interconnection, OSI) или просто моделью OSI. Объединённый документ был опубликован в 1984 году (ISO — как стандарт ISO 7498, МККТТ — как Рекомендация МККТТ X.200 (ныне — Рекомендация МСЭ-Т X.200, поскольку в 1993 году МККТТ был преобразован в Сектор стандартизации электросвязи Международного союза электросвязи (МСЭ-Т))).
OSI состояла из двух основных компонентов: абстрактной модели сети, называемой базовой эталонной моделью или семислойной моделью, и набора сетевых протоколов. Основываясь на идее согласованной модели уровней протоколов, определяющей взаимодействие между сетевыми устройствами и программным обеспечением, эталонная модель OSI стала крупным достижением в стандартизации концепций сетевого взаимодействия.
Концепция семислойной модели была описана в работе американца Чарльза Бахмана из компании Honeywell Information Systems. Различные аспекты структуры OSI эволюционировали из опыта работы с сетью NPL, ARPANET, CYCLADES, EIN и International Networking Working Group (IFIP WG6.1). В этой модели система сетевого взаимодействия была разделена на слои. Внутри каждого слоя один или несколько объектов реализовывали его функциональность. Каждая сущность взаимодействовала непосредственно только со слоем, находящимся прямо под ней, и предоставляла средства для использования слоем, находящимся над ней.
OSI таким образом стала попыткой участников отрасли согласовать общие сетевые стандарты для обеспечения совместимости с оборудованием разных производителей. Для больших сетей зачастую поддерживались несколько наборов сетевых протоколов, причём многие устройства не могли взаимодействовать с другими устройствами именно из-за отсутствия общих протоколов.
В конце 1980-х и начале 1990-х годов в плане построения максимально надёжных компьютерных сетей с моделью OSI стал активно конкурировать Набор интернет-протоколов (TCP/IP), который стал широко использоваться в сетях с оборудованием разных производителей для работы в интернете. Тем не менее, модель OSI до сих пор используется в качестве эталона для обучения и документации.
Модель OSI, которая была определена в серии стандартов ISO/IEC 7498, состоит из следующих частей:
ISO/IEC 7498-1 — базовая модель;
ISO/IEC 7498-2 — архитектура безопасности;
ISO/IEC 7498-3 — наименования и адресация;
ISO/IEC 7498-4 — система менеджмента.
ISO/IEC 7498-1 также опубликован в качестве Рекомендации МСЭ-Т X.200[13]. Некоторые спецификации протокола также были доступны в рамках других Рекомендаций МСЭ-Т серии X. Эквивалентные стандарты ISO и ISO/IEC для модели OSI были доступны в ISO. Не все из них бесплатны
Протоколы связи позволяют структуре на одном хосте взаимодействовать с соответствующей структурой того же уровня на другом хосте.
На каждом уровне N два объекта обмениваются блоками данных (PDU) с помощью протокола данного уровня на соответствующих устройствах. Каждый PDU содержит блок служебных данных (SDU), связанный с верхним или нижним протоколом.
Обработка данных двумя взаимодействующими OSI-совместимыми устройствами происходит следующим образом:
1. Передаваемые данные составляются на самом верхнем уровне передающего устройства (уровень N) в протокольный блок данных (PDU).
2. PDU передаётся на уровень N-1, где он становится сервисным блоком данных (SDU).
3. На уровне N-1 SDU объединяется с верхним, нижним или обоими уровнями, создавая слой N-1 PDU. Затем он передаётся в слой N-2.
4. Процесс продолжается до достижения самого нижнего уровня, с которого данные передаются на принимающее устройство.
5. На приёмном устройстве данные передаются от самого низкого уровня к самому высокому в виде серии SDU, последовательно удаляясь из верхнего или нижнего колонтитула каждого слоя до достижения самого верхнего уровня, где принимаются последние данные.
Уровень (layer) | Тип данных (PDU) | Функции | Примеры | Оборудование |
---|---|---|---|---|
7. Прикладной (application) | Данные |
Доступ к сетевым службам | HTTP, FTP, POP3, SMTP, WebSocket | Хосты (клиенты сети), Межсетевой экран |
6. Представления (presentation) | Представление и шифрование данных | ASCII, EBCDIC, SSL, gzip | ||
5. Сеансовый (session) | Управление сеансом связи | RPC, PAP, L2TP, gRPC | ||
4. Транспортный (transport) | Сегменты (segment) / Датаграммы (datagram) | Прямая связь между конечными пунктами и надёжность | TCP, UDP, SCTP, Порты | |
3. Сетевой (network) | Пакеты (packet) | Определение маршрута и логическая адресация | IPv4, IPv6, IPsec, AppleTalk, ICMP | Маршрутизатор, Сетевой шлюз, Межсетевой экран |
2. Канальный (data link) | Биты (bit)/Кадры (frame) | Физическая адресация | PPP, IEEE 802.22, Ethernet, DSL, ARP, сетевая карта. | Сетевой мост, Коммутатор, точка доступа |
1. Физический (physical) | Биты (bit) | Работа со средой передачи, сигналами и двоичными данными | USB, RJ («витая пара», коаксиальный, оптоволоконный), радиоканал | Концентратор, Повторитель (сетевое оборудование) |
В литературе наиболее часто принято начинать описание уровней модели OSI с седьмого уровня, называемого прикладным, на котором пользовательские приложения обращаются к сети. Модель OSI заканчивается 1-м уровнем — физическим, на котором определены стандарты, предъявляемые независимыми производителями к средам передачи данных:
тип передающей среды (медный кабель, оптоволокно, радиоэфир и др.);
тип модуляции сигнала;
сигнальные уровни логических дискретных состояний (нули и единицы).
Любой протокол модели OSI должен взаимодействовать либо с протоколами своего уровня, либо с протоколами на единицу выше и/или ниже своего уровня. Взаимодействия с протоколами своего уровня называются горизонтальными, а с уровнями на единицу выше или ниже — вертикальными. Любой протокол модели OSI может выполнять только функции своего уровня и не может выполнять функций другого уровня, что не выполняется в протоколах альтернативных моделей.
Каждому уровню с некоторой долей условности соответствует свой операнд — логически неделимый элемент данных, которым на отдельном уровне можно оперировать в рамках модели и используемых протоколов: на физическом уровне мельчайшая единица — бит, на канальном уровне информация объединена в кадры, на сетевом — в пакеты (датаграммы), на транспортном — в сегменты. Любой фрагмент данных, логически объединённых для передачи — кадр, пакет, датаграмма — считается сообщением. Именно сообщения в общем виде являются операндами сеансового, представления и прикладного уровней.
К базовым сетевым технологиям относятся физический и канальный уровни.
Прикладной уровень (уровень приложений; англ. application layer) — верхний уровень модели, обеспечивающий взаимодействие пользовательских приложений с сетью:
позволяет приложениям использовать сетевые службы:
удалённый доступ к файлам и базам данных;
пересылка электронной почты;
отвечает за передачу служебной информации;
предоставляет приложениям информацию об ошибках;
формирует запросы к уровню представления.
Протоколы прикладного уровня: RDP, HTTP, SMTP, SNMP, POP3, FTP, XMPP, OSCAR, Modbus, SIP, TELNET и другие.
Определения протокола прикладного уровня и уровня представления очень размыты, и принадлежность протокола к тому или иному уровню, например, протокола HTTPS, зависит от конечного сервиса который предоставляет приложение.
В том случае, если протокол, например, HTTPS, используется для просмотра некой простой интернет-страницы через браузер, его можно рассматривать как протокол прикладного уровня. В том же случае, если протокол HTTPS используется как низкоуровневый протокол для передачи финансовой информации, например, по протоколу ISO 8583, то протокол HTTPS будет являться протоколом уровня представления, а протокол ISO 8583 — протоколом уровня приложения. То же касается иных протоколов прикладного уровня