Изменения
→Уровни модели OSI
{{Нет ссылок|дата=14 мая 2011}}
'''Сетевая модель OSI''' (The '''Open Systems Interconnection''' model''')''' — [[Компьютерная сеть|сетевая]] модель стека (магазина) сетевых протоколов OSI/ISO. Посредством данной модели различные сетевые устройства могут взаимодействовать друг с другом. Модель определяет различные уровни взаимодействия систем. Каждый уровень выполняет определённые функции при таком взаимодействии.
Модель OSI была разработана в конце 1970-х годов<ref>{{Cite web|url=https://qastack.ru/networkengineering/6380/osi-model-and-networking-protocols-relationship|title=Модель OSI и сетевые протоколы|website=qastack.ru|access-date=2022-01-31|archive-date=2022-01-31|archive-url=https://web.archive.org/web/20220131151434/https://qastack.ru/networkengineering/6380/osi-model-and-networking-protocols-relationship|deadlink=no}}</ref> для поддержания разнообразных методов компьютерных сетей, которые в это время конкурировали за применение в крупных национальных сетевых взаимодействиях во Франции, Великобритании и США. В 1980-х годах она стала рабочим продуктом группы взаимодействия открытых систем [[Международная организация по стандартизации|Международной организации по стандартизации]] (ISO). Модель не смогла дать полное описание сети и не получила поддержку архитекторов на заре Интернета, который впоследствии нашёл отражение в менее предписывающем [[TCP/IP]], в основном под руководством [[Инженерный совет Интернета|Инженерного совета Интернета]] (IETF).
[[Файл:OSI Model v1.svg|мини|Диаграмма уровней сетевой модели OSI]]
== История ==
В начале и середине 1970-х годов сеть в основном либо спонсировалась государством ([[:en:NPL network|NPL network]] в Великобритании, [[ARPANET]] в США, CYCLADES во Франции), либо разрабатывалась вендорами с использованием собственных стандартов, таких как IBM Systems Network Architecture и Digital Equipment Corporation DECnet. Общественные сети передачи данных только начинали появляться, и в конце 1970-х годов они использовали стандарт [[X.25]].
[[:en:Packet switching#EPSS|Экспериментальная система коммутации пакетов]] в Великобритании примерно в 1973—1975 годах выявила необходимость определения протоколов более высокого уровня<ref>{{Книга|ссылка=https://books.google.ru/books?id=DN-t8MpZ0-wC&pg=PA3&redir_esc=y|автор=Howard Davies, Beatrice Bressan|заглавие=A History of International Research Networking: The People who Made it Happen|год=2010-04-26|издательство=John Wiley & Sons|страниц=347|isbn=978-3-527-32710-2|archive-date=2022-03-16|archive-url=https://web.archive.org/web/20220316042000/https://books.google.ru/books?id=DN-t8MpZ0-wC&pg=PA3&redir_esc=y}}</ref>. После публикации британского {{нп5|Национальный вычислительный центр|Национального вычислительного центра||National Computing Centre}} «Для чего нужны распределённые вычисления», ставшей результатом крупных исследований будущих конфигураций компьютерных систем<ref>{{Книга|ссылка=https://books.google.ru/books?id=fbm7AAAAIAAJ&redir_esc=y|автор=Peter John Down, Frank Edward Taylor|заглавие=Why Distributed Computing?: An NCC Review of Potential and Experience in the UK|год=1976|издательство=NCC Publications|страниц=188|archive-date=2022-03-16|archive-url=https://web.archive.org/web/20220316042003/https://books.google.ru/books?id=fbm7AAAAIAAJ&redir_esc=y}}</ref>, Великобритания представила аргументы в пользу создания Международной комиссии по стандартам для охвата этой области на совещании ISO в Сиднее в марте 1977 года<ref name="автоссылка1">{{Cite web|lang=en|url=https://spectrum.ieee.org/tech-history/cyberspace/osi-the-internet-that-wasnt|title=Full Page Reload|website=IEEE Spectrum: Technology, Engineering, and Science News|accessdate=2020-11-21|archive-date=2017-09-27|archive-url=https://web.archive.org/web/20170927214351/https://spectrum.ieee.org/tech-history/cyberspace/osi-the-internet-that-wasnt|deadlink=no}}</ref>.
С 1977 года ISO реализовала программу по разработке общих стандартов и методов сетевого взаимодействия. Аналогичный процесс развивался и в [[Международный консультативный комитет по телеграфии и телефонии|Международном консультативном комитете по телеграфии и телефонии]] (МККТТ). Оба органа разработали документы, определяющие схожие сетевые модели. Модель OSI была впервые определена в исходном виде в [[Вашингтон]]е в феврале 1978 года французом {{нп5|Циммерман, Хьюберт|Хьюбертом Циммерманом||Hubert Zimmermann}}, немного доработанный проект стандарта был опубликован ISO в 1980 году<ref name="автоссылка1" />.
Разработчикам модели пришлось столкнуться с конкурирующими приоритетами и интересами. Темпы технологических изменений обусловили необходимость определения стандартов, к которым новые системы могли бы сходиться, а не стандартизировать процедуры постфактум, тогда как традиционный подход к разработке стандартов был противоположным<ref>{{Книга|ссылка=https://books.google.de/books?id=Hzj2BwAAQBAJ&pg=PA35&redir_esc=y|автор=Carl A. Sunshine|заглавие=Computer Network Architectures and Protocols|год=2013-06-29|издательство=Springer Science & Business Media|страниц=542|isbn=978-1-4613-0809-6|archive-date=2020-11-29|archive-url=https://web.archive.org/web/20201129141632/https://books.google.de/books?id=Hzj2BwAAQBAJ&pg=PA35&redir_esc=y#v=onepage&q&f=false}}</ref>. Хотя это и не был сам стандарт, он представлял собой основу, на базе которой можно было бы определить будущие стандарты<ref>{{Книга|ссылка=https://books.google.de/books?id=u2KyQjiwwTUC&pg=PA251&redir_esc=y|автор=A. Hasman|заглавие=Education and Training in Health Informatics in Europe: State of the Art, Guidelines, Applications|год=1995|издательство=IOS Press|страниц=288|isbn=978-90-5199-234-2|archive-date=2020-11-29|archive-url=https://web.archive.org/web/20201129192942/https://books.google.de/books?id=u2KyQjiwwTUC&pg=PA251&redir_esc=y}}</ref>.
В 1983 году документы МККТТ и ISO были объединены и таким образом была сформирована базовая эталонная модель взаимосвязи открытых систем, обычно и называемая эталонной моделью взаимосвязи открытых систем ({{lang-en|[[Open Systems Interconnection]]}}, {{lang-en2|OSI}}) или просто моделью OSI. Объединённый документ был опубликован в 1984 году (ISO — как стандарт ISO 7498, МККТТ — как рекомендация МККТТ X.200 (ныне — рекомендация МСЭ-Т X.200, поскольку в 1993 году МККТТ был преобразован в Сектор стандартизации электросвязи [[Международный союз электросвязи|Международного союза электросвязи]] (МСЭ-Т)))<ref>{{Cite web|lang=en|url=https://mac.eltima.com/best-ftp-mac.html|title=11 Best FTP Clients for Mac in 2021. Only One Winner!|author=Olga Wais|website=Eltima Software|access-date=2021-04-18|archive-date=2021-04-18|archive-url=https://web.archive.org/web/20210418083144/https://mac.eltima.com/best-ftp-mac.html|deadlink=no}}</ref>.
OSI состояла из двух основных компонентов: абстрактной модели сети, называемой базовой эталонной моделью или семислойной моделью, и [[Список сетевых протоколов|набора сетевых протоколов]]. Основываясь на идее согласованной модели уровней протоколов, определяющей взаимодействие между сетевыми устройствами и программным обеспечением, эталонная модель OSI стала крупным достижением в стандартизации концепций сетевого взаимодействия.
Концепция семислойной модели была описана в работе американца [[Бахман, Чарльз Уильям|Чарльза Бахмана]] из компании [[Honeywell|Honeywell Information Systems]]<ref>{{Cite web|url=https://history.computer.org/pioneers/bachman.html|title=Computer Pioneers - Bachman, Charles|website=history.computer.org|accessdate=2020-11-22|archive-date=2020-11-29|archive-url=https://web.archive.org/web/20201129151220/https://history.computer.org/pioneers/bachman.html|deadlink=no}}</ref>. Различные аспекты структуры OSI эволюционировали из опыта работы с сетью NPL, ARPANET, CYCLADES, EIN и {{нп5|International Networking Working Group|||International Networking Working Group}} ([[Международная федерация по обработке информации|IFIP]] WG6.1). В этой модели система сетевого взаимодействия была разделена на слои. Внутри каждого слоя один или несколько объектов реализовывали его функциональность. Каждая сущность взаимодействовала непосредственно только со слоем, находящимся прямо под ней, и предоставляла средства для использования слоем, находящимся над ней.
OSI таким образом стала попыткой участников отрасли согласовать общие сетевые стандарты для обеспечения совместимости с оборудованием разных производителей<ref>{{Книга|ссылка=https://books.google.com/books?id=OVpzAwAAQBAJ&q=Open+Standards+and+the+Digital+Age:+History,+Ideology,+and+Networks|автор=Andrew L. Russell|заглавие=Open Standards and the Digital Age: History, Ideology, and Networks|год=2014-04-28|издательство=Cambridge University Press|страниц=325|isbn=978-1-139-91661-5|archive-date=2021-08-09|archive-url=https://web.archive.org/web/20210809045255/https://books.google.com/books?id=OVpzAwAAQBAJ&q=Open+Standards+and+the+Digital+Age:+History,+Ideology,+and+Networks}}</ref>. Для больших сетей зачастую поддерживались несколько наборов сетевых протоколов, причём многие устройства не могли взаимодействовать с другими устройствами именно из-за отсутствия общих протоколов.
В конце 1980-х и начале 1990-х годов в плане построения максимально надёжных компьютерных сетей с моделью OSI стал активно [[:en:Protocol Wars|конкурировать]] [[TCP/IP|Набор интернет-протоколов]] (TCP/IP), который стал широко использоваться в сетях с оборудованием разных производителей для работы в интернете<ref>{{Cite web|title=Rough Consensus and Running Code' and the Internet-OSI Standards War |url=https://www2.cs.duke.edu/courses/common/compsci092/papers/govern/consensus.pdf|last=Russell|first=Andrew L.|publisher=IEEE Annals of the History of Computing|access-date=2021-05-31|archive-date=2019-11-17|archive-url=https://web.archive.org/web/20191117080112/https://www2.cs.duke.edu/courses/common/compsci092/papers/govern/consensus.pdf|deadlink=no}}</ref><ref>{{Cite web|date=2006|lang=en |title=Standards Wars|url=https://courses.cs.washington.edu/courses/csep590a/06au/projects/standards-wars.pdf|website=[[Вашингтонский университет|University of Washington]]|access-date=2021-05-31 |archive-date=2021-02-24|archive-url=https://web.archive.org/web/20210224162416/https://courses.cs.washington.edu/courses/csep590a/06au/projects/standards-wars.pdf|url-status=live}}</ref>. Тем не менее, модель OSI до сих пор используется в качестве эталона для обучения и документации<ref name="networkworld">{{Cite web|lang=en|url=https://www.networkworld.com/article/3239677/the-osi-model-explained-and-how-to-easily-remember-its-7-layers.html|title=The OSI model explained and how to easily remember its 7 layers|author=Keith Shaw|website=Network World|date=2020-10-14|accessdate=2020-11-22|archive-date=2021-08-19|archive-url=https://web.archive.org/web/20210819061325/https://www.networkworld.com/article/3239677/the-osi-model-explained-and-how-to-easily-remember-its-7-layers.html|deadlink=no}}</ref>.
== Концепция ==
=== Стандарты ===
Модель 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<ref>{{Cite web|url=https://www.itu.int/rec/T-REC-X.200/en|title=ITU-T Recommendation X.200|website=www.itu.int|accessdate=2024-11-16|archive-date=2024-04-23|archive-url=https://web.archive.org/web/20240423045138/https://www.itu.int/rec/T-REC-X.200/en|deadlink=no}}</ref>. Некоторые спецификации протокола также были доступны в рамках других рекомендаций МСЭ-Т серии X. Эквивалентные стандарты ISO и ISO/IEC для модели OSI были доступны в ISO. Не все из них бесплатны<ref>{{Cite web|url=https://standards.iso.org/ittf/PubliclyAvailableStandards/index.html|title=Publicly Available Standards|website=standards.iso.org|accessdate=2020-11-22|archive-date=2022-01-19|archive-url=https://web.archive.org/web/20220119053657/https://standards.iso.org/ittf/PubliclyAvailableStandards/index.html|deadlink=no}}</ref>.
=== Основные принципы ===
Протоколы связи позволяют структуре на одном хосте взаимодействовать с соответствующей структурой того же уровня на другом хосте.
На каждом уровне N два объекта обмениваются блоками данных ([[:en:Protocol data unit|PDU]]) с помощью протокола данного уровня на соответствующих устройствах. Каждый PDU содержит блок служебных данных ([[:en:Service data unit|SDU]]), связанный с верхним или нижним протоколом.
Обработка данных двумя взаимодействующими OSI-совместимыми устройствами происходит следующим образом:
# Передаваемые данные составляются на самом верхнем уровне передающего устройства (уровень N) в протокольный блок данных (PDU).
# PDU передаётся на уровень N-1, где он становится сервисным блоком данных (SDU).
# На уровне N-1 SDU объединяется с верхним, нижним или обоими уровнями, создавая слой N-1 PDU. Затем он передаётся в слой N-2.
# Процесс продолжается до достижения самого нижнего уровня, с которого данные передаются на принимающее устройство.
# На приёмном устройстве данные передаются от самого низкого уровня к самому высокому в виде серии SDU, последовательно удаляясь из верхнего или нижнего колонтитула каждого слоя до достижения самого верхнего уровня, где принимаются последние данные.
=== Уровни модели OSI ===
{|class="wikitable" border="1"
|-
! colspan="6" | Модель
|-
! colspan="2" style="width:10em;" | Уровень (layer)
! style="width:5em;" | Тип данных (PDU)
! style="width:10em;" |
! style="width:5em;" | Примеры
!Оборудование
|-
! rowspan="4" | Host<br>layers
| style="background:#d8ec9b;" | 7. [[Прикладной уровень|Прикладной (application)]]
| rowspan="3" style="background:#d8ec9c;" |Данные
| style="background:#d8ec9c;" | <small>Доступ к сетевым службам</small>
| [[HTTP]], [[FTP]], [[POP3]], [[SMTP]], [[WebSocket]]
| rowspan="4" |[[Хост]]ы (клиенты сети),
[[Межсетевой экран]]
|-
| style="background:#d8ec9b;" | 6. [[Представительский уровень|Представления (presentation)]]
| style="background:#d8ec9b;" | <small>Представление и [[шифрование]] данных</small>
| [[ASCII]], [[EBCDIC]], [[SSL]], [[gzip]]
|-11
| style="background:#d8ec9b;" | 5. [[Сеансовый уровень|Сеансовый (session)]]
| style="background:#d8ec9b;" | <small>Управление сеансом связи</small>
| [[Remote Procedure Call|RPC]], [[Password Authentication Protocol|PAP]], [[L2TP]], [[gRPC]]
|-
| style="background:#e7ed9c;" | 4. [[Транспортный уровень|Транспортный (transport)]]
| style="background:#e7ed9c;" |[[Сегментация пакетов|Сегменты]]
(segment) /[[Датаграмма|Датаграммы]] (datagram)
| style="background:#e7ed9c;" | <small>Прямая связь между конечными пунктами и надёжность</small>
| [[Transmission Control Protocol|TCP]], [[User Datagram Protocol|UDP]], [[SCTP]], [[Порт (компьютерные сети)|Порты]]
|-
! rowspan="3" | Media<br>layers
| style="background:#eddc9c;" | 3. [[Сетевой уровень|Сетевой (network)]]
| style="background:#eddc9c;" | [[Пакет (сетевые технологии)|Пакеты]] (packet)
| style="background:#eddc9c;" | <small>Определение маршрута и логическая адресация</small>
| [[IPv4]], [[IPv6]], [[IPsec]], [[AppleTalk]], [[ICMP]]
|[[Маршрутизатор]], [[Сетевой шлюз]],
[[Межсетевой экран]]
|-
| style="background:#e9c189;" | 2. [[Канальный уровень|Канальный (data link)]]
| style="background:#e9c189;" | Биты (bit)/<br>[[Кадр (телекоммуникации)|Кадры]] (frame)
| style="background:#e9c189;" | <small>Физическая адресация</small>
| [[Point-to-Point Protocol|PPP]], [[IEEE 802.22]], [[Ethernet]], [[xDSL|DSL]], [[ARP]], [[сетевая карта]].
|[[Сетевой мост]], [[Коммутатор Ethernet|Коммутатор]],
[[Беспроводная точка доступа|точка доступа]]
|-
| style="background:#e9988a;" | 1. [[Физический слой|Физический (physical)]]
| style="background:#e9988a;" | [[Бит]]ы (bit)
| style="background:#e9988a;" | <small>Работа со средой передачи, сигналами и двоичными данными</small>
| [[USB]], [[Registered Jack|RJ]] («витая пара», коаксиальный, оптоволоконный), радиоканал
|[[Сетевой концентратор|Концентратор]],
[[Повторитель (сетевое оборудование)]]
|}
<!--{|class="standard"
!Уровень OSI
!Протоколы
|-
|bgcolor="#ffffff"|Прикладной
|[[HTTP]], [[gopher (сетевой протокол)|gopher]], [[Telnet]], [[DNS]], [[SMTP]], [[SNMP]], [[CMIP]], [[FTP]], [[TFTP]], [[SSH]], [[IRC]], [[AIM]], [[Network File System|NFS]], [[NNTP]], [[NTP]], [[SNTP]], [[XMPP]], [[FTAM]], [[APPC]], [[X.400]], [[X.500]], [[Apple Filing Protocol|AFP]], [[LDAP]], [[SIP]], [[ITMS]], [[Modbus TCP]], [[BACnet IP]], [[IMAP]], [[POP3]], [[SMB]], [[Multisource File Transfer Protocol|MFTP]], [[BitTorrent]], [[EDonkey|eD2k]], [[PROFIBUS]], [[NCP]]
Это всего лишь несколько самых распространённых протоколов прикладного уровня, коих существует великое множество. Все из них невозможно описать в рамках данной статьи.
|-
|bgcolor="#ffffff"|Представления
|[[XML-RPC]], [[TDI]], [[XDR]], [[SNMP]], [[Telnet]], [[NCP]], [[Apple Filing Protocol|AFP]], [[ICA]]
|-
|bgcolor="#ffffff"|Сеансовый
|[[AppleTalk|ASP]], [[ADSP]], [[DLC]], [[Named Pipes]], [[NBT]], [[NetBIOS]], [[NWLink]], [[Printer Access Protocol]], [[Zone Information Protocol]], [[SSL]], [[TLS]], [[Remote Procedure Call|RPC]]
|-
|bgcolor="#ffffff"|Транспортный
|[[TCP]], [[UDP]], [[SOCKS]], [[NetBEUI]], [[AEP]], [[ATP]], [[IL Protocol|IL]], [[NBP]], [[RTMP]], [[SMB]], [[SPX]], [[SCTP]], [[DCCP]], [[RTP]], [[TFTP]]
|-
|bgcolor="#ffffff"|Сетевой
|[[IP]], [[IPv6]], [[ICMP]], [[IGMP]], [[IPX]], [[NWLink]], [[NetBEUI]], [[DDP]], [[IPSec]], [[RARP]], [[BOOTP]], [[SKIP]], [[RIP2|RIP]],[[L2TP]], [[PPTP]], [[GRE (протокол)|GRE]]
|-
|bgcolor="#ffffff"|Канальный
|[[STP]], [[ARCnet]], [[ATM]], [[Dynamic Synchronous Transfer Mode|DTM]], [[SLIP]], [[SMDS]], [[Ethernet]], [[FDDI]], [[Frame Relay]], [[LocalTalk]], [[Token ring]], [[StarLan]], [[L2F]], [[PPP (сетевой протокол)|PPP]],[[DHCP]], [[PPPoE]], [[PROFIBUS]], [[CSMA/CD]], [[CSMA/CA]], [[ARP]], [[ICMP]](mac ping)
|-
|bgcolor="#ffffff"|Физический
|[[RS-232]], [[RS-422]], [[RS-423]], [[RS-449]], [[RS-485]], [[xDSL]], [[ISDN]] ([[T1]], [[E1 (ISDN)|E1]]), [[Ethernet]] ([[10BASE-T]], [[10BASE2]], [[10BASE5]]), [[Fast Ethernet]] ([[100BASE-T]], [[100BASE-TX]], [[100BASE-T4]], [[100BASE-FX]]), [[Gigabit Ethernet]] ([[1000BASE-T]], [[1000BASE-TX]], [[1000BASE-SX]])
|}
-->
В литературе наиболее часто принято начинать описание уровней модели OSI с седьмого уровня, называемого прикладным, на котором пользовательские приложения обращаются к сети. Модель OSI заканчивается 1-м уровнем — физическим, на котором определены стандарты, предъявляемые независимыми производителями к средам передачи данных:
* тип передающей среды (медный кабель, оптоволокно, радиоэфир и др.),
* тип модуляции сигнала,
* сигнальные уровни логических дискретных состояний (нули и единицы).
Любой протокол модели OSI должен взаимодействовать либо с протоколами своего уровня, либо с протоколами на единицу выше и/или ниже своего уровня. Взаимодействия с протоколами своего уровня называются горизонтальными, а с уровнями на единицу выше или ниже — вертикальными. Любой протокол модели OSI может выполнять только функции своего уровня и не может выполнять функций другого уровня, что не выполняется в протоколах альтернативных моделей.
Каждому уровню с некоторой долей условности соответствует свой операнд — логически неделимый элемент данных, которым на отдельном уровне можно оперировать в рамках модели и используемых протоколов: на физическом уровне мельчайшая единица — бит, на канальном уровне информация объединена в кадры, на сетевом — в пакеты (датаграммы), на транспортном — в сегменты. Любой фрагмент данных, логически объединённых для передачи — кадр, пакет, датаграмма — считается сообщением. Именно сообщения в общем виде являются операндами сеансового, представления и прикладного уровней.
К базовым сетевым технологиям относятся физический и канальный уровни.
==== Прикладной уровень ====
{{main|Прикладной уровень}}
Прикладной уровень (уровень приложений; {{lang-en|application layer}}) — верхний уровень модели, обеспечивающий взаимодействие пользовательских приложений с сетью:
* позволяет приложениям использовать сетевые службы:
** удалённый доступ к файлам и базам данных,
** пересылка электронной почты;
* отвечает за передачу служебной информации;
* предоставляет приложениям информацию об ошибках;
* формирует запросы к уровню представления.
Протоколы прикладного уровня: [[Remote Desktop Protocol|RDP]], [[HTTP]], [[SMTP]], [[SNMP]], [[Post Office Protocol|POP3]], [[FTP]], [[XMPP]], [[OSCAR]], [[Modbus]], [[SIP]], [[TELNET]] и другие.
Определения протокола прикладного уровня и уровня представления очень размыты, и принадлежность протокола к тому или иному уровню, например, протокола HTTPS, зависит от конечного сервиса который предоставляет приложение.
В том случае, если протокол, например, HTTPS, используется для просмотра некой простой интернет-страницы через браузер, его можно рассматривать как протокол прикладного уровня. В том же случае, если протокол HTTPS используется как низкоуровневый протокол для передачи финансовой информации, например, по протоколу ISO 8583, то протокол HTTPS будет являться протоколом уровня представления, а протокол ISO 8583 — протоколом уровня приложения. То же касается иных протоколов прикладного уровня{{нет АИ|26|05|2021}}.
==== Уровень представления ====
{{main|Уровень представления}}
Уровень представления ({{lang-en|presentation layer}}) обеспечивает преобразование протоколов и кодирование/декодирование данных. Запросы приложений, полученные с прикладного уровня, на уровне представления преобразуются в формат для передачи по сети, а полученные из сети данные преобразуются в формат приложений. На этом уровне может осуществляться сжатие/распаковка или шифрование/дешифрование, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально.
Уровень представлений обычно представляет собой промежуточный протокол для преобразования информации из соседних уровней. Это позволяет осуществлять обмен между приложениями на разнородных компьютерных системах прозрачным для приложений образом. Уровень представлений обеспечивает форматирование и преобразование кода. Форматирование кода используется для того, чтобы гарантировать приложению поступление информации для обработки, которая имела бы для него смысл. При необходимости этот уровень может выполнять перевод из одного формата данных в другой.
Уровень представлений имеет дело не только с форматами и представлением данных, он также занимается структурами данных, которые используются программами. Таким образом, уровень 6 обеспечивает организацию данных при их пересылке.
Чтобы понять, как это работает, представим, что имеются две системы. Одна использует для представления данных расширенный двоичный код обмена информацией [[EBCDIC]], например, это может быть [[мейнфрейм]] компании [[IBM]], а другая — американский стандартный код обмена информацией [[ASCII]] (его использует большинство других производителей компьютеров). Если этим двум системам необходимо обменяться информацией, то нужен уровень представлений, который выполнит преобразование и осуществит перевод между двумя различными форматами.
Другой функцией, выполняемой на уровне представлений, является шифрование данных, которое применяется в тех случаях, когда необходимо защитить передаваемую информацию от доступа несанкционированными получателями. Чтобы решить эту задачу, процессы и коды, находящиеся на уровне представлений, должны выполнить преобразование данных. На этом уровне существуют и другие подпрограммы, которые сжимают тексты и преобразовывают графические изображения в битовые потоки, так, что они могут передаваться по сети.
Стандарты уровня представлений также определяют способы представления графических изображений. Для этих целей может использоваться формат [[PICT]] — формат изображений, применяемый для передачи графики QuickDraw между программами.
Другим форматом представлений является тэгированный формат файлов изображений [[TIFF]], который обычно используется для растровых изображений с высоким [[Разрешение (компьютерная графика)|разрешением]]. Следующим стандартом уровня представлений, который может использоваться для графических изображений, является стандарт, разработанный Объединённой экспертной группой по фотографии (Joint Photographic Expert Group); в повседневном пользовании этот стандарт называют просто [[JPEG]].
Существует другая группа стандартов уровня представлений, которая определяет представление звука и кинофрагментов. Сюда входят интерфейс электронных музыкальных инструментов ({{lang-en|Musical Instrument Digital Interface}}, [[MIDI]]) для цифрового представления музыки, разработанный Экспертной группой по кинематографии стандарт [[MPEG]], используемый для сжатия и кодирования видеороликов на компакт-дисках, хранения в оцифрованном виде и передачи со скоростями до 1,5 Мбит/с, и [[QuickTime]] — стандарт, описывающий звуковые и видео элементы для программ, выполняемых на компьютерах Macintosh и PowerPC.
Протоколы уровня представления: AFP — [[Apple Filing Protocol]], ICA — [[Independent Computing Architecture]], LPP — Lightweight Presentation Protocol, NCP — [[NetWare Core Protocol]], NDR — [[Network Data Representation]], XDR — [[External Data Representation|eXternal Data Representation]], X.25 PAD — [[X.25|Packet Assembler/Disassembler Protocol]].
==== Сеансовый уровень ====
{{main|Сеансовый уровень}}
Сеансовый уровень ({{lang-en|session layer}}) модели обеспечивает поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений.
Протоколы сеансового уровня: H.245 ([[H.245|Call Control Protocol for Multimedia Communication]]), ISO-SP (OSI Session Layer Protocol (X.225, ISO 8327)), iSNS ([[Internet Storage Name Service]]), L2F ([[Layer 2 Forwarding Protocol]]), L2TP ([[L2TP|Layer 2 Tunneling Protocol]]), NetBIOS ([[NetBIOS|Network Basic Input Output System]]), PAP ([[Password Authentication Protocol]]), PPTP ([[PPTP|Point-to-Point Tunneling Protocol]]), RPC ([[remote procedure call|Remote Procedure Call Protocol]]), RTCP ([[RTCP|Real-time Transport Control Protocol]]), SMPP ([[SMPP|Short Message Peer-to-Peer]]), SCP ([[Session Control Protocol]]), ZIP ([[Zone Information Protocol]]), SDP ([[Sockets Direct Protocol]])…
==== Транспортный уровень ====
{{main|Транспортный уровень}}
Транспортный уровень ({{lang-en|transport layer}}) модели предназначен для обеспечения надёжной передачи данных от отправителя к получателю. При этом уровень надёжности может варьироваться в широких пределах. Существует множество классов протоколов транспортного уровня, начиная от протоколов, предоставляющих только основные транспортные функции (например, функции передачи данных без подтверждения приёма), и заканчивая протоколами, которые гарантируют доставку в пункт назначения нескольких пакетов данных в надлежащей последовательности, мультиплексируют несколько потоков данных, обеспечивают механизм управления потоками данных и гарантируют достоверность принятых данных. Например, [[UDP]] ограничивается контролем целостности данных в рамках одной датаграммы и не исключает возможности потери пакета целиком или дублирования пакетов, нарушение порядка получения пакетов данных;
[[TCP]] обеспечивает надёжную непрерывную передачу данных, исключающую потерю данных или нарушение порядка их поступления или дублирования, может перераспределять данные, разбивая большие порции данных на фрагменты и наоборот, склеивая фрагменты в один пакет.
Протоколы транспортного уровня: ATP ([[AppleTalk|AppleTalk Transaction Protocol]]), CUDP ([[Cyclic UDP]]), DCCP ([[Datagram Congestion Control Protocol]]), FCP ([[Fibre Channel|Fibre Channel Protocol]]), IL ([[IL Protocol]]), NBF ([[NetBIOS Frame Protocol|NetBIOS Frames protocol]]), NCP ([[NetWare Core Protocol]]), SCTP ([[Stream Control Transmission Protocol]]), SPX ([[IPX/SPX|Sequenced Packet Exchange]]), SST ([[Structured Stream Transport]]), TCP ([[Transmission Control Protocol]]), UDP ([[User Datagram Protocol]]).
==== Сетевой уровень ====
{{main|Сетевой уровень}}
Сетевой уровень ({{lang-en|network layer}}) модели предназначен для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию, отслеживание неполадок и «заторов» в сети.
Протоколы сетевого уровня маршрутизируют данные от источника к получателю. Работающие на этом уровне устройства ([[маршрутизатор]]ы) условно называют устройствами третьего уровня (по номеру уровня в модели OSI).
Протоколы сетевого уровня: IP/IPv4/IPv6 ([[Internet Protocol]]), IPX ([[Internetwork Packet Exchange]], протокол межсетевого обмена), X.25 (частично этот протокол реализован на уровне 2), CLNP (сетевой протокол без организации соединений), IPsec ([[Internet Protocol Security]]).
Протоколы маршрутизации — RIP ([[Routing Information Protocol]]), OSPF ([[Open Shortest Path First]]).
==== Канальный уровень ====
{{main|Канальный уровень}}
Канальный уровень ({{lang-en|data link layer}}) предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля ошибок, которые могут возникнуть. Полученные с физического уровня данные, представленные в битах, он упаковывает в [[Кадр (телекоммуникации)|кадры]], проверяет их на целостность и, если нужно, исправляет ошибки (либо формирует повторный запрос повреждённого кадра) и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием.
Спецификация [[IEEE 802]] разделяет этот уровень на два подуровня: [[Media Access Control|MAC]] ({{lang-en|media access control}}) регулирует доступ к разделяемой физической среде, [[Logical link control|LLC]] ({{lang-en|logical link control}}) обеспечивает обслуживание сетевого уровня.
На этом уровне работают [[Сетевой коммутатор|коммутаторы]], [[Сетевой мост|мосты]] и другие устройства. Эти устройства используют адресацию второго уровня (по номеру уровня в модели OSI).
Протоколы канального уровня: [[ARCnet]], [[Asynchronous Transfer Mode|ATM]], [[Controller Area Network]] (CAN), [[Econet]], [[IEEE 802.3]] ([[Ethernet]]), [[Ethernet Automatic Protection Switching]] (EAPS), [[Fiber Distributed Data Interface]] (FDDI), [[Frame Relay]], [[High-Level Data Link Control]] (HDLC), [[IEEE 802.2]] (предоставляет функции LLC для подуровня IEEE 802 MAC), [[Link Access Procedures, D channel]] (LAPD), [[IEEE 802.11]] [[wireless LAN]], [[LocalTalk]], [[Multiprotocol Label Switching]] (MPLS), [[Point-to-Point Protocol]] (PPP), [[PPPoE|Point-to-Point Protocol over Ethernet]] (PPPoE), [[SLIP|Serial Line Internet Protocol]] (SLIP, устарел), [[StarLan]], [[Token ring]], {{iw|Unidirectional Link Detection}} (UDLD), [[X.25]], [[ARP]].
При разработке стеков протоколов на этом уровне решаются задачи помехоустойчивого кодирования. К таким способам кодирования относится [[Код Хэмминга|код Хемминга]], блочное кодирование, [[код Рида — Соломона]].
В программировании этот уровень представляет [[драйвер]] сетевой платы, в [[Операционная система|операционных системах]] имеется программный интерфейс взаимодействия канального и сетевого уровней между собой. Это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: {{не переведено|ODI (интерфейс)|ODI|en|Open Data-Link Interface}}, [[NDIS]], [[UDI]].
==== Физический уровень ====
{{main|Физический уровень}}
Физический уровень ({{lang-en|physical layer}}) — нижний уровень модели, который определяет метод передачи данных, представленных в двоичном виде, от одного устройства (компьютера) к другому. Составлением таких методов занимаются разные организации, в том числе: [[Институт инженеров электротехники и электроники|Институт инженеров по электротехнике и электронике]], [[Electronic Industries Alliance|Альянс электронной промышленности]], [[Европейский институт телекоммуникационных стандартов]] и другие. Осуществляют передачу электрических или оптических сигналов в кабель или в радиоэфир и, соответственно, их приём и преобразование в биты данных в соответствии с [[Физическое кодирование|методами кодирования цифровых сигналов]].
На этом уровне также работают [[Сетевой концентратор|концентраторы]], [[Повторитель (сетевое оборудование)|повторители]] сигнала и [[медиаконвертер]]ы.
Функции физического уровня реализуются на всех устройствах, подключённых к сети. Со стороны компьютера функции физического уровня выполняются сетевым адаптером или последовательным портом. К физическому уровню относятся физические, электрические и механические интерфейсы между двумя системами. Физический уровень определяет такие виды сред передачи данных как [[Оптическое волокно|оптоволокно]], [[витая пара]], [[коаксиальный кабель]], спутниковый канал передач данных и т. п. Стандартными типами сетевых интерфейсов, относящимися к физическому уровню, являются: [[V.35]], [[RS-232]], [[RS-485]], [[RJ-45|RJ-11]], [[RJ-45]], разъёмы [[AUI]] и [[BNC-коннектор|BNC]].
При разработке стеков протоколов на этом уровне решаются задачи синхронизации и линейного кодирования. К таким способам кодирования относится [[NRZ (прямой)|код NRZ]], [[RZ|код RZ]], [[MLT-3]], [[Потенциальный код 2B1Q|PAM5]], [[Манчестерский код|Манчестер II]].
Протоколы физического уровня: [[Bluetooth|IEEE 802.15 (Bluetooth)]], [[Infrared Data Association|IRDA]], [[Electronic Industries Alliance|EIA]] [[RS-232]], [[EIA-422]], [[RS-423|EIA-423]], [[RS-449]], [[RS-485]], [[Digital subscriber line|DSL]], [[Integrated Services Digital Network|ISDN]], [[synchronous optical network|SONET/SDH]], [[802.11]] [[Wi-Fi]], [[Etherloop]], [[GSM]] [[Um Interface|Um radio interface]], ряд протоколов [[Сектор стандартизации электросвязи МСЭ|МСЭ-Т]] {{iw|G.hn}}, {{iw|TransferJet}}, [[ARINC 818]], [[G.hn]]/[[G.9960]], [[Modbus Plus]].
== Соответствие модели OSI и других моделей сетевого взаимодействия ==
Поскольку наиболее востребованными и практически используемыми стали протоколы (например TCP/IP), разработанные с использованием других моделей сетевого взаимодействия, далее необходимо описать возможное включение отдельных протоколов других моделей в различные уровни модели OSI.
=== Семейство TCP/IP ===
Семейство [[TCP/IP]] имеет три транспортных протокола: TCP, полностью соответствующий OSI, обеспечивающий проверку получения данных; [[UDP]], отвечающий транспортному уровню только наличием порта, обеспечивающий обмен [[Дейтаграмма|датаграммами]] между приложениями, не гарантирующий получения данных; и [[SCTP]], разработанный для устранения некоторых недостатков TCP, в который добавлены некоторые новшества. В семействе TCP/IP есть ещё около двухсот протоколов, самым известным из которых является служебный протокол [[ICMP]], используемый для внутренних нужд обеспечения работы; остальные также не являются транспортными протоколами.
=== Семейство IPX/SPX ===
В семействе [[IPX/SPX]] порты появляются в протоколе сетевого уровня IPX, обеспечивая обмен [[Дейтаграмма|датаграммами]] между приложениями (операционная система резервирует часть сокетов для себя). Протокол SPX, в свою очередь, дополняет IPX всеми остальными возможностями транспортного уровня в полном соответствии с OSI.
В качестве адреса хоста ICX использует идентификатор, образованный из четырёхбайтного номера сети (назначаемого [[маршрутизатор]]ами) и MAC-адреса сетевого адаптера.
== Критика ==
В конце 1990-х годов семиуровневая модель OSI критиковалась отдельными авторами. В частности, в книге «UNIX. Руководство системного администратора» Эви Немет ({{lang-en|Evi Nemeth}}) писала:
{{начало цитаты}}
Пока комитеты [[ISO]] спорили о своих стандартах, за их спиной менялась вся концепция организации сетей и по всему миру внедрялся протокол [[TCP/IP]].
<…>
И вот, когда протоколы ISO были наконец реализованы, выявился целый ряд проблем:
* эти протоколы основывались на концепциях, не имеющих в современных сетях никакого смысла;
* их спецификации были в некоторых случаях неполными;
* по своим функциональным возможностям они уступали другим протоколам;
* наличие многочисленных уровней сделало эти протоколы медлительными и трудными для реализации.
<…>
Сейчас даже самые ярые сторонники этих протоколов признают, что OSI постепенно движется к тому, чтобы стать маленькой сноской на страницах истории компьютеров.
{{конец цитаты|источник=Эви Нэмет<ref>''Эви Нэмет.'' UNIX. Руководство системного администратора. — 1998.</ref>}}
Несмотря на то, что модель OSI до сих пор используется в качестве эталона для обучения и документации<ref name="networkworld"/>, протоколы OSI, изначально задуманные для этой модели, не получили популярности. Некоторые инженеры утверждают, что эталонная модель OSI всё ещё актуальна для облачных вычислений. Другие считают, что оригинальная модель OSI не соответствует современным сетевым протоколам, и вместо этого предлагают упрощённый подход<ref>{{Cite web|lang=en|url=https://www.networkworld.com/article/2276158/why-it-s-time-to-let-the-osi-model-die.html|title=Why it's time to let the OSI model die|author=Steve Taylor and Jim Metzler|website=Network World|date=2008-09-23|accessdate=2020-11-22|archive-date=2020-11-12|archive-url=https://web.archive.org/web/20201112040256/https://www.networkworld.com/article/2276158/why-it-s-time-to-let-the-osi-model-die.html|deadlink=no}}</ref>.
== См. также ==
* [[Модель DOD]]
* [[IEEE 802]]
* [[NBAR]]
== Примечания ==
{{примечания}}
== Литература ==
* ''А. Филимонов.'' Построение мультисервисных сетей Ethernet. — М.: BHV, 2007. — ISBN 978-5-9775-0007-4.
* Руководство по технологиям объединённых сетей. 4-е изд. — М.: Вильямс, 2005. — ISBN 5-8459-0787-X.
* Протоколы и ресурсы Интернет. — М.: Радио и связь, 1996.
* Сети Интернет. Архитектура и протоколы. — М.: Сиринъ, 1998.
* Протоколы Интернет. Энциклопедия. — М.: «Горячая линия — Телеком», 2001. — 1100 с.
* Протоколы Internet для электронной торговли. — М.: «Горячая линия — Телеком», 2003. — 730 с.
* ГОСТ Р ИСО/МЭК 7498-1-99. ВОС. Базовая эталонная модель. Часть 1. Базовая модель.
* ГОСТ Р ИСО 7498-2-99. ВОС. Базовая эталонная модель. Часть 2. Архитектура защиты информации.
* ГОСТ Р ИСО 7498-3-97. ВОС. Базовая эталонная модель. Часть 3. Присвоение имён и адресация.
* ГОСТ Р ИСО/МЭК 7498-4-99. ВОС. Базовая эталонная модель. Часть 4. Основы административного управления.
{{Стандарты ISO}}
{{IPstack}}
[[Категория:Сетевые протоколы]]
[[Категория:Стандарты ISO]]
[[Категория:Рекомендации ITU-T]]
[[Категория:Эталонные модели]]
[[Категория:Протоколы OSI]]
'''Сетевая модель OSI''' (The '''Open Systems Interconnection''' model''')''' — [[Компьютерная сеть|сетевая]] модель стека (магазина) сетевых протоколов OSI/ISO. Посредством данной модели различные сетевые устройства могут взаимодействовать друг с другом. Модель определяет различные уровни взаимодействия систем. Каждый уровень выполняет определённые функции при таком взаимодействии.
Модель OSI была разработана в конце 1970-х годов<ref>{{Cite web|url=https://qastack.ru/networkengineering/6380/osi-model-and-networking-protocols-relationship|title=Модель OSI и сетевые протоколы|website=qastack.ru|access-date=2022-01-31|archive-date=2022-01-31|archive-url=https://web.archive.org/web/20220131151434/https://qastack.ru/networkengineering/6380/osi-model-and-networking-protocols-relationship|deadlink=no}}</ref> для поддержания разнообразных методов компьютерных сетей, которые в это время конкурировали за применение в крупных национальных сетевых взаимодействиях во Франции, Великобритании и США. В 1980-х годах она стала рабочим продуктом группы взаимодействия открытых систем [[Международная организация по стандартизации|Международной организации по стандартизации]] (ISO). Модель не смогла дать полное описание сети и не получила поддержку архитекторов на заре Интернета, который впоследствии нашёл отражение в менее предписывающем [[TCP/IP]], в основном под руководством [[Инженерный совет Интернета|Инженерного совета Интернета]] (IETF).
[[Файл:OSI Model v1.svg|мини|Диаграмма уровней сетевой модели OSI]]
== История ==
В начале и середине 1970-х годов сеть в основном либо спонсировалась государством ([[:en:NPL network|NPL network]] в Великобритании, [[ARPANET]] в США, CYCLADES во Франции), либо разрабатывалась вендорами с использованием собственных стандартов, таких как IBM Systems Network Architecture и Digital Equipment Corporation DECnet. Общественные сети передачи данных только начинали появляться, и в конце 1970-х годов они использовали стандарт [[X.25]].
[[:en:Packet switching#EPSS|Экспериментальная система коммутации пакетов]] в Великобритании примерно в 1973—1975 годах выявила необходимость определения протоколов более высокого уровня<ref>{{Книга|ссылка=https://books.google.ru/books?id=DN-t8MpZ0-wC&pg=PA3&redir_esc=y|автор=Howard Davies, Beatrice Bressan|заглавие=A History of International Research Networking: The People who Made it Happen|год=2010-04-26|издательство=John Wiley & Sons|страниц=347|isbn=978-3-527-32710-2|archive-date=2022-03-16|archive-url=https://web.archive.org/web/20220316042000/https://books.google.ru/books?id=DN-t8MpZ0-wC&pg=PA3&redir_esc=y}}</ref>. После публикации британского {{нп5|Национальный вычислительный центр|Национального вычислительного центра||National Computing Centre}} «Для чего нужны распределённые вычисления», ставшей результатом крупных исследований будущих конфигураций компьютерных систем<ref>{{Книга|ссылка=https://books.google.ru/books?id=fbm7AAAAIAAJ&redir_esc=y|автор=Peter John Down, Frank Edward Taylor|заглавие=Why Distributed Computing?: An NCC Review of Potential and Experience in the UK|год=1976|издательство=NCC Publications|страниц=188|archive-date=2022-03-16|archive-url=https://web.archive.org/web/20220316042003/https://books.google.ru/books?id=fbm7AAAAIAAJ&redir_esc=y}}</ref>, Великобритания представила аргументы в пользу создания Международной комиссии по стандартам для охвата этой области на совещании ISO в Сиднее в марте 1977 года<ref name="автоссылка1">{{Cite web|lang=en|url=https://spectrum.ieee.org/tech-history/cyberspace/osi-the-internet-that-wasnt|title=Full Page Reload|website=IEEE Spectrum: Technology, Engineering, and Science News|accessdate=2020-11-21|archive-date=2017-09-27|archive-url=https://web.archive.org/web/20170927214351/https://spectrum.ieee.org/tech-history/cyberspace/osi-the-internet-that-wasnt|deadlink=no}}</ref>.
С 1977 года ISO реализовала программу по разработке общих стандартов и методов сетевого взаимодействия. Аналогичный процесс развивался и в [[Международный консультативный комитет по телеграфии и телефонии|Международном консультативном комитете по телеграфии и телефонии]] (МККТТ). Оба органа разработали документы, определяющие схожие сетевые модели. Модель OSI была впервые определена в исходном виде в [[Вашингтон]]е в феврале 1978 года французом {{нп5|Циммерман, Хьюберт|Хьюбертом Циммерманом||Hubert Zimmermann}}, немного доработанный проект стандарта был опубликован ISO в 1980 году<ref name="автоссылка1" />.
Разработчикам модели пришлось столкнуться с конкурирующими приоритетами и интересами. Темпы технологических изменений обусловили необходимость определения стандартов, к которым новые системы могли бы сходиться, а не стандартизировать процедуры постфактум, тогда как традиционный подход к разработке стандартов был противоположным<ref>{{Книга|ссылка=https://books.google.de/books?id=Hzj2BwAAQBAJ&pg=PA35&redir_esc=y|автор=Carl A. Sunshine|заглавие=Computer Network Architectures and Protocols|год=2013-06-29|издательство=Springer Science & Business Media|страниц=542|isbn=978-1-4613-0809-6|archive-date=2020-11-29|archive-url=https://web.archive.org/web/20201129141632/https://books.google.de/books?id=Hzj2BwAAQBAJ&pg=PA35&redir_esc=y#v=onepage&q&f=false}}</ref>. Хотя это и не был сам стандарт, он представлял собой основу, на базе которой можно было бы определить будущие стандарты<ref>{{Книга|ссылка=https://books.google.de/books?id=u2KyQjiwwTUC&pg=PA251&redir_esc=y|автор=A. Hasman|заглавие=Education and Training in Health Informatics in Europe: State of the Art, Guidelines, Applications|год=1995|издательство=IOS Press|страниц=288|isbn=978-90-5199-234-2|archive-date=2020-11-29|archive-url=https://web.archive.org/web/20201129192942/https://books.google.de/books?id=u2KyQjiwwTUC&pg=PA251&redir_esc=y}}</ref>.
В 1983 году документы МККТТ и ISO были объединены и таким образом была сформирована базовая эталонная модель взаимосвязи открытых систем, обычно и называемая эталонной моделью взаимосвязи открытых систем ({{lang-en|[[Open Systems Interconnection]]}}, {{lang-en2|OSI}}) или просто моделью OSI. Объединённый документ был опубликован в 1984 году (ISO — как стандарт ISO 7498, МККТТ — как рекомендация МККТТ X.200 (ныне — рекомендация МСЭ-Т X.200, поскольку в 1993 году МККТТ был преобразован в Сектор стандартизации электросвязи [[Международный союз электросвязи|Международного союза электросвязи]] (МСЭ-Т)))<ref>{{Cite web|lang=en|url=https://mac.eltima.com/best-ftp-mac.html|title=11 Best FTP Clients for Mac in 2021. Only One Winner!|author=Olga Wais|website=Eltima Software|access-date=2021-04-18|archive-date=2021-04-18|archive-url=https://web.archive.org/web/20210418083144/https://mac.eltima.com/best-ftp-mac.html|deadlink=no}}</ref>.
OSI состояла из двух основных компонентов: абстрактной модели сети, называемой базовой эталонной моделью или семислойной моделью, и [[Список сетевых протоколов|набора сетевых протоколов]]. Основываясь на идее согласованной модели уровней протоколов, определяющей взаимодействие между сетевыми устройствами и программным обеспечением, эталонная модель OSI стала крупным достижением в стандартизации концепций сетевого взаимодействия.
Концепция семислойной модели была описана в работе американца [[Бахман, Чарльз Уильям|Чарльза Бахмана]] из компании [[Honeywell|Honeywell Information Systems]]<ref>{{Cite web|url=https://history.computer.org/pioneers/bachman.html|title=Computer Pioneers - Bachman, Charles|website=history.computer.org|accessdate=2020-11-22|archive-date=2020-11-29|archive-url=https://web.archive.org/web/20201129151220/https://history.computer.org/pioneers/bachman.html|deadlink=no}}</ref>. Различные аспекты структуры OSI эволюционировали из опыта работы с сетью NPL, ARPANET, CYCLADES, EIN и {{нп5|International Networking Working Group|||International Networking Working Group}} ([[Международная федерация по обработке информации|IFIP]] WG6.1). В этой модели система сетевого взаимодействия была разделена на слои. Внутри каждого слоя один или несколько объектов реализовывали его функциональность. Каждая сущность взаимодействовала непосредственно только со слоем, находящимся прямо под ней, и предоставляла средства для использования слоем, находящимся над ней.
OSI таким образом стала попыткой участников отрасли согласовать общие сетевые стандарты для обеспечения совместимости с оборудованием разных производителей<ref>{{Книга|ссылка=https://books.google.com/books?id=OVpzAwAAQBAJ&q=Open+Standards+and+the+Digital+Age:+History,+Ideology,+and+Networks|автор=Andrew L. Russell|заглавие=Open Standards and the Digital Age: History, Ideology, and Networks|год=2014-04-28|издательство=Cambridge University Press|страниц=325|isbn=978-1-139-91661-5|archive-date=2021-08-09|archive-url=https://web.archive.org/web/20210809045255/https://books.google.com/books?id=OVpzAwAAQBAJ&q=Open+Standards+and+the+Digital+Age:+History,+Ideology,+and+Networks}}</ref>. Для больших сетей зачастую поддерживались несколько наборов сетевых протоколов, причём многие устройства не могли взаимодействовать с другими устройствами именно из-за отсутствия общих протоколов.
В конце 1980-х и начале 1990-х годов в плане построения максимально надёжных компьютерных сетей с моделью OSI стал активно [[:en:Protocol Wars|конкурировать]] [[TCP/IP|Набор интернет-протоколов]] (TCP/IP), который стал широко использоваться в сетях с оборудованием разных производителей для работы в интернете<ref>{{Cite web|title=Rough Consensus and Running Code' and the Internet-OSI Standards War |url=https://www2.cs.duke.edu/courses/common/compsci092/papers/govern/consensus.pdf|last=Russell|first=Andrew L.|publisher=IEEE Annals of the History of Computing|access-date=2021-05-31|archive-date=2019-11-17|archive-url=https://web.archive.org/web/20191117080112/https://www2.cs.duke.edu/courses/common/compsci092/papers/govern/consensus.pdf|deadlink=no}}</ref><ref>{{Cite web|date=2006|lang=en |title=Standards Wars|url=https://courses.cs.washington.edu/courses/csep590a/06au/projects/standards-wars.pdf|website=[[Вашингтонский университет|University of Washington]]|access-date=2021-05-31 |archive-date=2021-02-24|archive-url=https://web.archive.org/web/20210224162416/https://courses.cs.washington.edu/courses/csep590a/06au/projects/standards-wars.pdf|url-status=live}}</ref>. Тем не менее, модель OSI до сих пор используется в качестве эталона для обучения и документации<ref name="networkworld">{{Cite web|lang=en|url=https://www.networkworld.com/article/3239677/the-osi-model-explained-and-how-to-easily-remember-its-7-layers.html|title=The OSI model explained and how to easily remember its 7 layers|author=Keith Shaw|website=Network World|date=2020-10-14|accessdate=2020-11-22|archive-date=2021-08-19|archive-url=https://web.archive.org/web/20210819061325/https://www.networkworld.com/article/3239677/the-osi-model-explained-and-how-to-easily-remember-its-7-layers.html|deadlink=no}}</ref>.
== Концепция ==
=== Стандарты ===
Модель 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<ref>{{Cite web|url=https://www.itu.int/rec/T-REC-X.200/en|title=ITU-T Recommendation X.200|website=www.itu.int|accessdate=2024-11-16|archive-date=2024-04-23|archive-url=https://web.archive.org/web/20240423045138/https://www.itu.int/rec/T-REC-X.200/en|deadlink=no}}</ref>. Некоторые спецификации протокола также были доступны в рамках других рекомендаций МСЭ-Т серии X. Эквивалентные стандарты ISO и ISO/IEC для модели OSI были доступны в ISO. Не все из них бесплатны<ref>{{Cite web|url=https://standards.iso.org/ittf/PubliclyAvailableStandards/index.html|title=Publicly Available Standards|website=standards.iso.org|accessdate=2020-11-22|archive-date=2022-01-19|archive-url=https://web.archive.org/web/20220119053657/https://standards.iso.org/ittf/PubliclyAvailableStandards/index.html|deadlink=no}}</ref>.
=== Основные принципы ===
Протоколы связи позволяют структуре на одном хосте взаимодействовать с соответствующей структурой того же уровня на другом хосте.
На каждом уровне N два объекта обмениваются блоками данных ([[:en:Protocol data unit|PDU]]) с помощью протокола данного уровня на соответствующих устройствах. Каждый PDU содержит блок служебных данных ([[:en:Service data unit|SDU]]), связанный с верхним или нижним протоколом.
Обработка данных двумя взаимодействующими OSI-совместимыми устройствами происходит следующим образом:
# Передаваемые данные составляются на самом верхнем уровне передающего устройства (уровень N) в протокольный блок данных (PDU).
# PDU передаётся на уровень N-1, где он становится сервисным блоком данных (SDU).
# На уровне N-1 SDU объединяется с верхним, нижним или обоими уровнями, создавая слой N-1 PDU. Затем он передаётся в слой N-2.
# Процесс продолжается до достижения самого нижнего уровня, с которого данные передаются на принимающее устройство.
# На приёмном устройстве данные передаются от самого низкого уровня к самому высокому в виде серии SDU, последовательно удаляясь из верхнего или нижнего колонтитула каждого слоя до достижения самого верхнего уровня, где принимаются последние данные.
=== Уровни модели OSI ===
{|class="wikitable" border="1"
|-
! colspan="6" | Модель
|-
! colspan="2" style="width:10em;" | Уровень (layer)
! style="width:5em;" | Тип данных (PDU)
! style="width:10em;" |
! style="width:5em;" | Примеры
!Оборудование
|-
! rowspan="4" | Host<br>layers
| style="background:#d8ec9b;" | 7. [[Прикладной уровень|Прикладной (application)]]
| rowspan="3" style="background:#d8ec9c;" |Данные
| style="background:#d8ec9c;" | <small>Доступ к сетевым службам</small>
| [[HTTP]], [[FTP]], [[POP3]], [[SMTP]], [[WebSocket]]
| rowspan="4" |[[Хост]]ы (клиенты сети),
[[Межсетевой экран]]
|-
| style="background:#d8ec9b;" | 6. [[Представительский уровень|Представления (presentation)]]
| style="background:#d8ec9b;" | <small>Представление и [[шифрование]] данных</small>
| [[ASCII]], [[EBCDIC]], [[SSL]], [[gzip]]
|-11
| style="background:#d8ec9b;" | 5. [[Сеансовый уровень|Сеансовый (session)]]
| style="background:#d8ec9b;" | <small>Управление сеансом связи</small>
| [[Remote Procedure Call|RPC]], [[Password Authentication Protocol|PAP]], [[L2TP]], [[gRPC]]
|-
| style="background:#e7ed9c;" | 4. [[Транспортный уровень|Транспортный (transport)]]
| style="background:#e7ed9c;" |[[Сегментация пакетов|Сегменты]]
(segment) /[[Датаграмма|Датаграммы]] (datagram)
| style="background:#e7ed9c;" | <small>Прямая связь между конечными пунктами и надёжность</small>
| [[Transmission Control Protocol|TCP]], [[User Datagram Protocol|UDP]], [[SCTP]], [[Порт (компьютерные сети)|Порты]]
|-
! rowspan="3" | Media<br>layers
| style="background:#eddc9c;" | 3. [[Сетевой уровень|Сетевой (network)]]
| style="background:#eddc9c;" | [[Пакет (сетевые технологии)|Пакеты]] (packet)
| style="background:#eddc9c;" | <small>Определение маршрута и логическая адресация</small>
| [[IPv4]], [[IPv6]], [[IPsec]], [[AppleTalk]], [[ICMP]]
|[[Маршрутизатор]], [[Сетевой шлюз]],
[[Межсетевой экран]]
|-
| style="background:#e9c189;" | 2. [[Канальный уровень|Канальный (data link)]]
| style="background:#e9c189;" | Биты (bit)/<br>[[Кадр (телекоммуникации)|Кадры]] (frame)
| style="background:#e9c189;" | <small>Физическая адресация</small>
| [[Point-to-Point Protocol|PPP]], [[IEEE 802.22]], [[Ethernet]], [[xDSL|DSL]], [[ARP]], [[сетевая карта]].
|[[Сетевой мост]], [[Коммутатор Ethernet|Коммутатор]],
[[Беспроводная точка доступа|точка доступа]]
|-
| style="background:#e9988a;" | 1. [[Физический слой|Физический (physical)]]
| style="background:#e9988a;" | [[Бит]]ы (bit)
| style="background:#e9988a;" | <small>Работа со средой передачи, сигналами и двоичными данными</small>
| [[USB]], [[Registered Jack|RJ]] («витая пара», коаксиальный, оптоволоконный), радиоканал
|[[Сетевой концентратор|Концентратор]],
[[Повторитель (сетевое оборудование)]]
|}
<!--{|class="standard"
!Уровень OSI
!Протоколы
|-
|bgcolor="#ffffff"|Прикладной
|[[HTTP]], [[gopher (сетевой протокол)|gopher]], [[Telnet]], [[DNS]], [[SMTP]], [[SNMP]], [[CMIP]], [[FTP]], [[TFTP]], [[SSH]], [[IRC]], [[AIM]], [[Network File System|NFS]], [[NNTP]], [[NTP]], [[SNTP]], [[XMPP]], [[FTAM]], [[APPC]], [[X.400]], [[X.500]], [[Apple Filing Protocol|AFP]], [[LDAP]], [[SIP]], [[ITMS]], [[Modbus TCP]], [[BACnet IP]], [[IMAP]], [[POP3]], [[SMB]], [[Multisource File Transfer Protocol|MFTP]], [[BitTorrent]], [[EDonkey|eD2k]], [[PROFIBUS]], [[NCP]]
Это всего лишь несколько самых распространённых протоколов прикладного уровня, коих существует великое множество. Все из них невозможно описать в рамках данной статьи.
|-
|bgcolor="#ffffff"|Представления
|[[XML-RPC]], [[TDI]], [[XDR]], [[SNMP]], [[Telnet]], [[NCP]], [[Apple Filing Protocol|AFP]], [[ICA]]
|-
|bgcolor="#ffffff"|Сеансовый
|[[AppleTalk|ASP]], [[ADSP]], [[DLC]], [[Named Pipes]], [[NBT]], [[NetBIOS]], [[NWLink]], [[Printer Access Protocol]], [[Zone Information Protocol]], [[SSL]], [[TLS]], [[Remote Procedure Call|RPC]]
|-
|bgcolor="#ffffff"|Транспортный
|[[TCP]], [[UDP]], [[SOCKS]], [[NetBEUI]], [[AEP]], [[ATP]], [[IL Protocol|IL]], [[NBP]], [[RTMP]], [[SMB]], [[SPX]], [[SCTP]], [[DCCP]], [[RTP]], [[TFTP]]
|-
|bgcolor="#ffffff"|Сетевой
|[[IP]], [[IPv6]], [[ICMP]], [[IGMP]], [[IPX]], [[NWLink]], [[NetBEUI]], [[DDP]], [[IPSec]], [[RARP]], [[BOOTP]], [[SKIP]], [[RIP2|RIP]],[[L2TP]], [[PPTP]], [[GRE (протокол)|GRE]]
|-
|bgcolor="#ffffff"|Канальный
|[[STP]], [[ARCnet]], [[ATM]], [[Dynamic Synchronous Transfer Mode|DTM]], [[SLIP]], [[SMDS]], [[Ethernet]], [[FDDI]], [[Frame Relay]], [[LocalTalk]], [[Token ring]], [[StarLan]], [[L2F]], [[PPP (сетевой протокол)|PPP]],[[DHCP]], [[PPPoE]], [[PROFIBUS]], [[CSMA/CD]], [[CSMA/CA]], [[ARP]], [[ICMP]](mac ping)
|-
|bgcolor="#ffffff"|Физический
|[[RS-232]], [[RS-422]], [[RS-423]], [[RS-449]], [[RS-485]], [[xDSL]], [[ISDN]] ([[T1]], [[E1 (ISDN)|E1]]), [[Ethernet]] ([[10BASE-T]], [[10BASE2]], [[10BASE5]]), [[Fast Ethernet]] ([[100BASE-T]], [[100BASE-TX]], [[100BASE-T4]], [[100BASE-FX]]), [[Gigabit Ethernet]] ([[1000BASE-T]], [[1000BASE-TX]], [[1000BASE-SX]])
|}
-->
В литературе наиболее часто принято начинать описание уровней модели OSI с седьмого уровня, называемого прикладным, на котором пользовательские приложения обращаются к сети. Модель OSI заканчивается 1-м уровнем — физическим, на котором определены стандарты, предъявляемые независимыми производителями к средам передачи данных:
* тип передающей среды (медный кабель, оптоволокно, радиоэфир и др.),
* тип модуляции сигнала,
* сигнальные уровни логических дискретных состояний (нули и единицы).
Любой протокол модели OSI должен взаимодействовать либо с протоколами своего уровня, либо с протоколами на единицу выше и/или ниже своего уровня. Взаимодействия с протоколами своего уровня называются горизонтальными, а с уровнями на единицу выше или ниже — вертикальными. Любой протокол модели OSI может выполнять только функции своего уровня и не может выполнять функций другого уровня, что не выполняется в протоколах альтернативных моделей.
Каждому уровню с некоторой долей условности соответствует свой операнд — логически неделимый элемент данных, которым на отдельном уровне можно оперировать в рамках модели и используемых протоколов: на физическом уровне мельчайшая единица — бит, на канальном уровне информация объединена в кадры, на сетевом — в пакеты (датаграммы), на транспортном — в сегменты. Любой фрагмент данных, логически объединённых для передачи — кадр, пакет, датаграмма — считается сообщением. Именно сообщения в общем виде являются операндами сеансового, представления и прикладного уровней.
К базовым сетевым технологиям относятся физический и канальный уровни.
==== Прикладной уровень ====
{{main|Прикладной уровень}}
Прикладной уровень (уровень приложений; {{lang-en|application layer}}) — верхний уровень модели, обеспечивающий взаимодействие пользовательских приложений с сетью:
* позволяет приложениям использовать сетевые службы:
** удалённый доступ к файлам и базам данных,
** пересылка электронной почты;
* отвечает за передачу служебной информации;
* предоставляет приложениям информацию об ошибках;
* формирует запросы к уровню представления.
Протоколы прикладного уровня: [[Remote Desktop Protocol|RDP]], [[HTTP]], [[SMTP]], [[SNMP]], [[Post Office Protocol|POP3]], [[FTP]], [[XMPP]], [[OSCAR]], [[Modbus]], [[SIP]], [[TELNET]] и другие.
Определения протокола прикладного уровня и уровня представления очень размыты, и принадлежность протокола к тому или иному уровню, например, протокола HTTPS, зависит от конечного сервиса который предоставляет приложение.
В том случае, если протокол, например, HTTPS, используется для просмотра некой простой интернет-страницы через браузер, его можно рассматривать как протокол прикладного уровня. В том же случае, если протокол HTTPS используется как низкоуровневый протокол для передачи финансовой информации, например, по протоколу ISO 8583, то протокол HTTPS будет являться протоколом уровня представления, а протокол ISO 8583 — протоколом уровня приложения. То же касается иных протоколов прикладного уровня{{нет АИ|26|05|2021}}.
==== Уровень представления ====
{{main|Уровень представления}}
Уровень представления ({{lang-en|presentation layer}}) обеспечивает преобразование протоколов и кодирование/декодирование данных. Запросы приложений, полученные с прикладного уровня, на уровне представления преобразуются в формат для передачи по сети, а полученные из сети данные преобразуются в формат приложений. На этом уровне может осуществляться сжатие/распаковка или шифрование/дешифрование, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально.
Уровень представлений обычно представляет собой промежуточный протокол для преобразования информации из соседних уровней. Это позволяет осуществлять обмен между приложениями на разнородных компьютерных системах прозрачным для приложений образом. Уровень представлений обеспечивает форматирование и преобразование кода. Форматирование кода используется для того, чтобы гарантировать приложению поступление информации для обработки, которая имела бы для него смысл. При необходимости этот уровень может выполнять перевод из одного формата данных в другой.
Уровень представлений имеет дело не только с форматами и представлением данных, он также занимается структурами данных, которые используются программами. Таким образом, уровень 6 обеспечивает организацию данных при их пересылке.
Чтобы понять, как это работает, представим, что имеются две системы. Одна использует для представления данных расширенный двоичный код обмена информацией [[EBCDIC]], например, это может быть [[мейнфрейм]] компании [[IBM]], а другая — американский стандартный код обмена информацией [[ASCII]] (его использует большинство других производителей компьютеров). Если этим двум системам необходимо обменяться информацией, то нужен уровень представлений, который выполнит преобразование и осуществит перевод между двумя различными форматами.
Другой функцией, выполняемой на уровне представлений, является шифрование данных, которое применяется в тех случаях, когда необходимо защитить передаваемую информацию от доступа несанкционированными получателями. Чтобы решить эту задачу, процессы и коды, находящиеся на уровне представлений, должны выполнить преобразование данных. На этом уровне существуют и другие подпрограммы, которые сжимают тексты и преобразовывают графические изображения в битовые потоки, так, что они могут передаваться по сети.
Стандарты уровня представлений также определяют способы представления графических изображений. Для этих целей может использоваться формат [[PICT]] — формат изображений, применяемый для передачи графики QuickDraw между программами.
Другим форматом представлений является тэгированный формат файлов изображений [[TIFF]], который обычно используется для растровых изображений с высоким [[Разрешение (компьютерная графика)|разрешением]]. Следующим стандартом уровня представлений, который может использоваться для графических изображений, является стандарт, разработанный Объединённой экспертной группой по фотографии (Joint Photographic Expert Group); в повседневном пользовании этот стандарт называют просто [[JPEG]].
Существует другая группа стандартов уровня представлений, которая определяет представление звука и кинофрагментов. Сюда входят интерфейс электронных музыкальных инструментов ({{lang-en|Musical Instrument Digital Interface}}, [[MIDI]]) для цифрового представления музыки, разработанный Экспертной группой по кинематографии стандарт [[MPEG]], используемый для сжатия и кодирования видеороликов на компакт-дисках, хранения в оцифрованном виде и передачи со скоростями до 1,5 Мбит/с, и [[QuickTime]] — стандарт, описывающий звуковые и видео элементы для программ, выполняемых на компьютерах Macintosh и PowerPC.
Протоколы уровня представления: AFP — [[Apple Filing Protocol]], ICA — [[Independent Computing Architecture]], LPP — Lightweight Presentation Protocol, NCP — [[NetWare Core Protocol]], NDR — [[Network Data Representation]], XDR — [[External Data Representation|eXternal Data Representation]], X.25 PAD — [[X.25|Packet Assembler/Disassembler Protocol]].
==== Сеансовый уровень ====
{{main|Сеансовый уровень}}
Сеансовый уровень ({{lang-en|session layer}}) модели обеспечивает поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений.
Протоколы сеансового уровня: H.245 ([[H.245|Call Control Protocol for Multimedia Communication]]), ISO-SP (OSI Session Layer Protocol (X.225, ISO 8327)), iSNS ([[Internet Storage Name Service]]), L2F ([[Layer 2 Forwarding Protocol]]), L2TP ([[L2TP|Layer 2 Tunneling Protocol]]), NetBIOS ([[NetBIOS|Network Basic Input Output System]]), PAP ([[Password Authentication Protocol]]), PPTP ([[PPTP|Point-to-Point Tunneling Protocol]]), RPC ([[remote procedure call|Remote Procedure Call Protocol]]), RTCP ([[RTCP|Real-time Transport Control Protocol]]), SMPP ([[SMPP|Short Message Peer-to-Peer]]), SCP ([[Session Control Protocol]]), ZIP ([[Zone Information Protocol]]), SDP ([[Sockets Direct Protocol]])…
==== Транспортный уровень ====
{{main|Транспортный уровень}}
Транспортный уровень ({{lang-en|transport layer}}) модели предназначен для обеспечения надёжной передачи данных от отправителя к получателю. При этом уровень надёжности может варьироваться в широких пределах. Существует множество классов протоколов транспортного уровня, начиная от протоколов, предоставляющих только основные транспортные функции (например, функции передачи данных без подтверждения приёма), и заканчивая протоколами, которые гарантируют доставку в пункт назначения нескольких пакетов данных в надлежащей последовательности, мультиплексируют несколько потоков данных, обеспечивают механизм управления потоками данных и гарантируют достоверность принятых данных. Например, [[UDP]] ограничивается контролем целостности данных в рамках одной датаграммы и не исключает возможности потери пакета целиком или дублирования пакетов, нарушение порядка получения пакетов данных;
[[TCP]] обеспечивает надёжную непрерывную передачу данных, исключающую потерю данных или нарушение порядка их поступления или дублирования, может перераспределять данные, разбивая большие порции данных на фрагменты и наоборот, склеивая фрагменты в один пакет.
Протоколы транспортного уровня: ATP ([[AppleTalk|AppleTalk Transaction Protocol]]), CUDP ([[Cyclic UDP]]), DCCP ([[Datagram Congestion Control Protocol]]), FCP ([[Fibre Channel|Fibre Channel Protocol]]), IL ([[IL Protocol]]), NBF ([[NetBIOS Frame Protocol|NetBIOS Frames protocol]]), NCP ([[NetWare Core Protocol]]), SCTP ([[Stream Control Transmission Protocol]]), SPX ([[IPX/SPX|Sequenced Packet Exchange]]), SST ([[Structured Stream Transport]]), TCP ([[Transmission Control Protocol]]), UDP ([[User Datagram Protocol]]).
==== Сетевой уровень ====
{{main|Сетевой уровень}}
Сетевой уровень ({{lang-en|network layer}}) модели предназначен для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию, отслеживание неполадок и «заторов» в сети.
Протоколы сетевого уровня маршрутизируют данные от источника к получателю. Работающие на этом уровне устройства ([[маршрутизатор]]ы) условно называют устройствами третьего уровня (по номеру уровня в модели OSI).
Протоколы сетевого уровня: IP/IPv4/IPv6 ([[Internet Protocol]]), IPX ([[Internetwork Packet Exchange]], протокол межсетевого обмена), X.25 (частично этот протокол реализован на уровне 2), CLNP (сетевой протокол без организации соединений), IPsec ([[Internet Protocol Security]]).
Протоколы маршрутизации — RIP ([[Routing Information Protocol]]), OSPF ([[Open Shortest Path First]]).
==== Канальный уровень ====
{{main|Канальный уровень}}
Канальный уровень ({{lang-en|data link layer}}) предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля ошибок, которые могут возникнуть. Полученные с физического уровня данные, представленные в битах, он упаковывает в [[Кадр (телекоммуникации)|кадры]], проверяет их на целостность и, если нужно, исправляет ошибки (либо формирует повторный запрос повреждённого кадра) и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием.
Спецификация [[IEEE 802]] разделяет этот уровень на два подуровня: [[Media Access Control|MAC]] ({{lang-en|media access control}}) регулирует доступ к разделяемой физической среде, [[Logical link control|LLC]] ({{lang-en|logical link control}}) обеспечивает обслуживание сетевого уровня.
На этом уровне работают [[Сетевой коммутатор|коммутаторы]], [[Сетевой мост|мосты]] и другие устройства. Эти устройства используют адресацию второго уровня (по номеру уровня в модели OSI).
Протоколы канального уровня: [[ARCnet]], [[Asynchronous Transfer Mode|ATM]], [[Controller Area Network]] (CAN), [[Econet]], [[IEEE 802.3]] ([[Ethernet]]), [[Ethernet Automatic Protection Switching]] (EAPS), [[Fiber Distributed Data Interface]] (FDDI), [[Frame Relay]], [[High-Level Data Link Control]] (HDLC), [[IEEE 802.2]] (предоставляет функции LLC для подуровня IEEE 802 MAC), [[Link Access Procedures, D channel]] (LAPD), [[IEEE 802.11]] [[wireless LAN]], [[LocalTalk]], [[Multiprotocol Label Switching]] (MPLS), [[Point-to-Point Protocol]] (PPP), [[PPPoE|Point-to-Point Protocol over Ethernet]] (PPPoE), [[SLIP|Serial Line Internet Protocol]] (SLIP, устарел), [[StarLan]], [[Token ring]], {{iw|Unidirectional Link Detection}} (UDLD), [[X.25]], [[ARP]].
При разработке стеков протоколов на этом уровне решаются задачи помехоустойчивого кодирования. К таким способам кодирования относится [[Код Хэмминга|код Хемминга]], блочное кодирование, [[код Рида — Соломона]].
В программировании этот уровень представляет [[драйвер]] сетевой платы, в [[Операционная система|операционных системах]] имеется программный интерфейс взаимодействия канального и сетевого уровней между собой. Это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: {{не переведено|ODI (интерфейс)|ODI|en|Open Data-Link Interface}}, [[NDIS]], [[UDI]].
==== Физический уровень ====
{{main|Физический уровень}}
Физический уровень ({{lang-en|physical layer}}) — нижний уровень модели, который определяет метод передачи данных, представленных в двоичном виде, от одного устройства (компьютера) к другому. Составлением таких методов занимаются разные организации, в том числе: [[Институт инженеров электротехники и электроники|Институт инженеров по электротехнике и электронике]], [[Electronic Industries Alliance|Альянс электронной промышленности]], [[Европейский институт телекоммуникационных стандартов]] и другие. Осуществляют передачу электрических или оптических сигналов в кабель или в радиоэфир и, соответственно, их приём и преобразование в биты данных в соответствии с [[Физическое кодирование|методами кодирования цифровых сигналов]].
На этом уровне также работают [[Сетевой концентратор|концентраторы]], [[Повторитель (сетевое оборудование)|повторители]] сигнала и [[медиаконвертер]]ы.
Функции физического уровня реализуются на всех устройствах, подключённых к сети. Со стороны компьютера функции физического уровня выполняются сетевым адаптером или последовательным портом. К физическому уровню относятся физические, электрические и механические интерфейсы между двумя системами. Физический уровень определяет такие виды сред передачи данных как [[Оптическое волокно|оптоволокно]], [[витая пара]], [[коаксиальный кабель]], спутниковый канал передач данных и т. п. Стандартными типами сетевых интерфейсов, относящимися к физическому уровню, являются: [[V.35]], [[RS-232]], [[RS-485]], [[RJ-45|RJ-11]], [[RJ-45]], разъёмы [[AUI]] и [[BNC-коннектор|BNC]].
При разработке стеков протоколов на этом уровне решаются задачи синхронизации и линейного кодирования. К таким способам кодирования относится [[NRZ (прямой)|код NRZ]], [[RZ|код RZ]], [[MLT-3]], [[Потенциальный код 2B1Q|PAM5]], [[Манчестерский код|Манчестер II]].
Протоколы физического уровня: [[Bluetooth|IEEE 802.15 (Bluetooth)]], [[Infrared Data Association|IRDA]], [[Electronic Industries Alliance|EIA]] [[RS-232]], [[EIA-422]], [[RS-423|EIA-423]], [[RS-449]], [[RS-485]], [[Digital subscriber line|DSL]], [[Integrated Services Digital Network|ISDN]], [[synchronous optical network|SONET/SDH]], [[802.11]] [[Wi-Fi]], [[Etherloop]], [[GSM]] [[Um Interface|Um radio interface]], ряд протоколов [[Сектор стандартизации электросвязи МСЭ|МСЭ-Т]] {{iw|G.hn}}, {{iw|TransferJet}}, [[ARINC 818]], [[G.hn]]/[[G.9960]], [[Modbus Plus]].
== Соответствие модели OSI и других моделей сетевого взаимодействия ==
Поскольку наиболее востребованными и практически используемыми стали протоколы (например TCP/IP), разработанные с использованием других моделей сетевого взаимодействия, далее необходимо описать возможное включение отдельных протоколов других моделей в различные уровни модели OSI.
=== Семейство TCP/IP ===
Семейство [[TCP/IP]] имеет три транспортных протокола: TCP, полностью соответствующий OSI, обеспечивающий проверку получения данных; [[UDP]], отвечающий транспортному уровню только наличием порта, обеспечивающий обмен [[Дейтаграмма|датаграммами]] между приложениями, не гарантирующий получения данных; и [[SCTP]], разработанный для устранения некоторых недостатков TCP, в который добавлены некоторые новшества. В семействе TCP/IP есть ещё около двухсот протоколов, самым известным из которых является служебный протокол [[ICMP]], используемый для внутренних нужд обеспечения работы; остальные также не являются транспортными протоколами.
=== Семейство IPX/SPX ===
В семействе [[IPX/SPX]] порты появляются в протоколе сетевого уровня IPX, обеспечивая обмен [[Дейтаграмма|датаграммами]] между приложениями (операционная система резервирует часть сокетов для себя). Протокол SPX, в свою очередь, дополняет IPX всеми остальными возможностями транспортного уровня в полном соответствии с OSI.
В качестве адреса хоста ICX использует идентификатор, образованный из четырёхбайтного номера сети (назначаемого [[маршрутизатор]]ами) и MAC-адреса сетевого адаптера.
== Критика ==
В конце 1990-х годов семиуровневая модель OSI критиковалась отдельными авторами. В частности, в книге «UNIX. Руководство системного администратора» Эви Немет ({{lang-en|Evi Nemeth}}) писала:
{{начало цитаты}}
Пока комитеты [[ISO]] спорили о своих стандартах, за их спиной менялась вся концепция организации сетей и по всему миру внедрялся протокол [[TCP/IP]].
<…>
И вот, когда протоколы ISO были наконец реализованы, выявился целый ряд проблем:
* эти протоколы основывались на концепциях, не имеющих в современных сетях никакого смысла;
* их спецификации были в некоторых случаях неполными;
* по своим функциональным возможностям они уступали другим протоколам;
* наличие многочисленных уровней сделало эти протоколы медлительными и трудными для реализации.
<…>
Сейчас даже самые ярые сторонники этих протоколов признают, что OSI постепенно движется к тому, чтобы стать маленькой сноской на страницах истории компьютеров.
{{конец цитаты|источник=Эви Нэмет<ref>''Эви Нэмет.'' UNIX. Руководство системного администратора. — 1998.</ref>}}
Несмотря на то, что модель OSI до сих пор используется в качестве эталона для обучения и документации<ref name="networkworld"/>, протоколы OSI, изначально задуманные для этой модели, не получили популярности. Некоторые инженеры утверждают, что эталонная модель OSI всё ещё актуальна для облачных вычислений. Другие считают, что оригинальная модель OSI не соответствует современным сетевым протоколам, и вместо этого предлагают упрощённый подход<ref>{{Cite web|lang=en|url=https://www.networkworld.com/article/2276158/why-it-s-time-to-let-the-osi-model-die.html|title=Why it's time to let the OSI model die|author=Steve Taylor and Jim Metzler|website=Network World|date=2008-09-23|accessdate=2020-11-22|archive-date=2020-11-12|archive-url=https://web.archive.org/web/20201112040256/https://www.networkworld.com/article/2276158/why-it-s-time-to-let-the-osi-model-die.html|deadlink=no}}</ref>.
== См. также ==
* [[Модель DOD]]
* [[IEEE 802]]
* [[NBAR]]
== Примечания ==
{{примечания}}
== Литература ==
* ''А. Филимонов.'' Построение мультисервисных сетей Ethernet. — М.: BHV, 2007. — ISBN 978-5-9775-0007-4.
* Руководство по технологиям объединённых сетей. 4-е изд. — М.: Вильямс, 2005. — ISBN 5-8459-0787-X.
* Протоколы и ресурсы Интернет. — М.: Радио и связь, 1996.
* Сети Интернет. Архитектура и протоколы. — М.: Сиринъ, 1998.
* Протоколы Интернет. Энциклопедия. — М.: «Горячая линия — Телеком», 2001. — 1100 с.
* Протоколы Internet для электронной торговли. — М.: «Горячая линия — Телеком», 2003. — 730 с.
* ГОСТ Р ИСО/МЭК 7498-1-99. ВОС. Базовая эталонная модель. Часть 1. Базовая модель.
* ГОСТ Р ИСО 7498-2-99. ВОС. Базовая эталонная модель. Часть 2. Архитектура защиты информации.
* ГОСТ Р ИСО 7498-3-97. ВОС. Базовая эталонная модель. Часть 3. Присвоение имён и адресация.
* ГОСТ Р ИСО/МЭК 7498-4-99. ВОС. Базовая эталонная модель. Часть 4. Основы административного управления.
{{Стандарты ISO}}
{{IPstack}}
[[Категория:Сетевые протоколы]]
[[Категория:Стандарты ISO]]
[[Категория:Рекомендации ITU-T]]
[[Категория:Эталонные модели]]
[[Категория:Протоколы OSI]]