Модель OSI

Материал из llmdocs — справочник разработчика
Модель OSI
Полное названиеOpen Systems Interconnection Basic Reference Model
РазработчикISO и CCITT (ныне ITU-T)
СтандартISO/IEC 7498-1, ITU-T X.200
Первая редакция1984
Число уровней7
Альтернативамодель TCP/IP (4 уровня)

Модель OSI (англ. Open Systems Interconnection — «взаимодействие открытых систем») — эталонная модель, которая делит сетевое взаимодействие на семь уровней, от передачи битов по проводу до прикладных программ. Каждый уровень решает свою задачу, пользуется услугами нижележащего и предоставляет услуги вышележащему. Модель утверждена Международной организацией по стандартизации (ISO) в 1984 году.[2]

Сами протоколы OSI почти не прижились — интернет построен на стеке TCP/IP. Но модель осталась общим языком сетевых инженеров: выражения «проблема на втором уровне», «балансировщик L4» или «файрвол L7» отсылают именно к её нумерации.

История

В конце 1970-х сети разных производителей (IBM SNA, DECnet) были несовместимы друг с другом. ISO и международный консультативный комитет по телеграфии и телефонии CCITT (ныне ITU-T) взялись создать открытую архитектуру, в которой любая система сможет общаться с любой. Эталонная модель вышла как стандарт ISO 7498 (1984) и рекомендация X.200; действующая редакция — ISO/IEC 7498-1:1994.[1]

Параллельно развивался стек TCP/IP, уже работавший в ARPANET и бесплатно распространявшийся вместе с BSD Unix. Протоколы OSI оказались сложными, а их реализации — запоздавшими и дорогими; к середине 1990-х так называемая «война протоколов» закончилась победой TCP/IP. Из мира OSI в широком употреблении остались модель уровней, служба каталогов X.500 (из неё вырос формат сертификатов X.509) и протокол маршрутизации IS-IS.

Семь уровней

№ Уровень Что делает Единица данных Примеры
7 Прикладной (application) сетевые функции для приложений сообщение HTTP, DNS, SMTP, SSH
6 Представления (presentation) кодирование, сжатие, шифрование TLS (частично), MIME, ASN.1
5 Сеансовый (session) установление и поддержание сеансов RPC, NetBIOS
4 Транспортный (transport) доставка между процессами, порты, надёжность сегмент / датаграмма TCP, UDP, QUIC
3 Сетевой (network) адресация и маршрутизация между сетями пакет IP, ICMP
2 Канальный (data link) передача кадров в пределах одной сети, MAC-адреса кадр Ethernet, Wi-Fi, ARP
1 Физический (physical) биты в виде сигналов: напряжение, свет, радио бит витая пара, оптоволокно, радиоэфир

Для запоминания порядка снизу вверх в англоязычной литературе используют фразу «Please Do Not Throw Sausage Pizza Away».

Инкапсуляция

При отправке данные спускаются по уровням, и каждый уровень добавляет свой заголовок: HTTP-запрос помещается в TCP-сегмент с номерами портов, сегмент — в IP-пакет с адресами отправителя и получателя (IP-адреса), пакет — в Ethernet-кадр с MAC-адресами. Получатель снимает заголовки в обратном порядке. Каждый уровень «разговаривает» только с одноимённым уровнем на другой стороне и ничего не знает о содержимом.

[ Ethernet | IP | TCP | HTTP-запрос | контрольная сумма кадра ]
   L2        L3   L4     L7

OSI и TCP/IP

Модель TCP/IP, описанная в RFC 1122, проще: в ней четыре уровня — канальный, межсетевой, транспортный и прикладной.[3] Три верхних уровня OSI соответствуют одному прикладному уровню TCP/IP, а физический и канальный объединены.

Реальные протоколы плохо укладываются в строгую схему. TLS работает поверх TCP, но под прикладным протоколом — его относят то к шестому, то к четвёртому уровню. QUIC реализует надёжную доставку как транспортный протокол, но работает поверх UDP и включает шифрование. Создатели интернета прямо предупреждали, что слишком жёсткое разделение на уровни может вредить (RFC 3439).[4] Поэтому модель OSI полезна как система координат, а не как точное описание.

Как используется на практике

  • Классы оборудования. Коммутатор работает на втором уровне (пересылает кадры по MAC-адресам), маршрутизатор — на третьем (пересылает пакеты по IP-адресам).
  • Балансировщики и прокси. Балансировщик L4 распределяет TCP- и UDP-соединения, не заглядывая внутрь; балансировщик L7, например nginx в роли обратного прокси, читает HTTP-запросы и может маршрутизировать по пути URL или заголовкам.
  • Безопасность. Межсетевые экраны фильтруют по адресам и портам (L3–L4), а WAF анализирует содержимое HTTP (L7). DDoS-атаки делят на объёмные (L3–L4) и прикладные (L7).[5]
  • Диагностика. Поиск неисправности обычно идёт снизу вверх: есть ли физическое соединение, получен ли IP-адрес, проходит ли ping, открыт ли порт, отвечает ли приложение.

См. также

Источники

  1. ITU-T X.200 — Open Systems Interconnection: Basic Reference Model
  2. ISO/IEC 7498-1:1994 — OSI Basic Reference Model
  3. RFC 1122 — Requirements for Internet Hosts: Communication Layers
  4. RFC 3439 — Some Internet Architectural Guidelines and Philosophy
  5. Cloudflare Learning — What is the OSI model?