Модель OSI: уровни модели OSI, протоколы, история.

Сетевая модель OSI (Open Systems Interconnection) — это концептуальная модель, которая описывает и стандартизирует функции компьютерных систем при их взаимодействии друг с другом. Каждый из семи уровней накладывается поверх предыдущего: от физического до прикладного, взаимодействуя с нижним и предоставляя средства для уровня выше. 

К настоящему времени стек протоколов TCP/IP практически вытеснил оригинальный стек OSI из реального использования. Модель TCP/IP не такая полная и включает только четыре уровня, но она стала стандартом де-факто.

Сравнение OSI и TCP/I
Сравнение OSI и TCP/I

Поскольку модель OSI лучше проработана, она считается эталонной и используется для обучения.

Зачем понадобилась концептуальная модель?

В конце 60-х гг в разных уголках мира начали строить первые компьютерные сети для университетов, госучреждений, армии. Многие сети разрабатывали частные компании. Например, IBM внедряла фирменную архитектуру Systems Network Architecture, а Digital Equipment Corporation — DECnet. В 1969 году минобороны США запустило свою сеть ARPANET.

Логическая карта ARPANET, март 1977
Логическая карта ARPANET, март 1977

Суть в том, что все разрозненные сети проектировали по собственным принципам, а часто на собственных стандартах и протоколах. Вскоре стало ясно, что для глобального взаимодействия нужно выработать стандарты и методы сетевого взаимодействия более высокого уровня.

В 1977 году Международная организация по стандартизации (ISO) сформировала комитет Open Systems Interconnection под председательством Чарльза Бахмана. Он говорит, что спроектировал дизайн системы под сильным влиянием IBM Systems Network Architecture (SNA) — проприетарной сетевой архитектуры для взаимодействия глобальной сети мейнфреймов IBM, там семиуровневый стек сетевых протоколов, очень похожий на OSI.

Уровни модели OSI

Вот уровни модели OSi сверху вниз, с указанием функций и PDU (блоки данных протокола) для уровней 1−4:

7. Прикладной (application). Доступ к сетевым службам

6. Представления (presentation). Представление и шифрование данных

5. Сеансовый (session). Управление сеансом связи. 

4. Транспортный (transport). Прямая связь между конечными пунктами и надёжность. Сегменты и датаграммы

3. Сетевой (network). Определение маршрута и логическая адресация. Пакеты

2. Канальный (data link). Физическая адресация. Кадры (фреймы)

1. Физический (physical). Работа со средой передачи, сигналами и двоичными данными. Биты, символы

Каждому уровню OSI соответствуют определённые функции, протоколы, оборудование и PDU. Для уровней 5-7 это любые данные.

Благодаря жёсткой абстракции в OSI реализована практически абсолютная гибкость. Пока слои реализуют правильный интерфейс сверху и ожидают правильного интерфейса снизу, можно использовать любую реализацию данного слоя.

Уровни модели OSI
Уровни модели OSI

Оригинальный стек модели OSI

модель OSI опубликовали в 1984 года как международный стандарт ISO 7498 и рекомендации X.200. Но разработка слишком затянулась, уже 1 января 1983 года минобороны США опубликовало распоряжение об обязательном использовании стека TCP/IP в сети ARPANET. Этот день считается датой рождения современного Интернета.

Вскоре после концептуальной модели OSI приняли отдельные стандарты OSI для транспортных протоколов, электронной почты, электронных каталогов, управления сетью и многих других функций. На практике эти «настоящие» протоколы OSI с их функциями не совсем вписываются в реально используемый стек TCP/IP. Например, в модели OSI канальный уровень 2 реализован в виде протокола X.212. Типичными протоколами уровня 3 являются Connectionless Network Protocol (CLNP) и Connection Oriented Network Protocol. Адресация OSI на этих уровнях основана на технологии Network Service Access Point или NSAP. Точки NSAP не включают информацию о маршрутизации, как в случае с IP-адресами, поэтому процесс маршрутизации трафика к конкретному NSAP включает «перевод» NSAP в более подробные типы адресации, которые могут зависеть от используемого уровня 2. В целом, адресация OSI в современном использовании во многом зависит от деталей конкретного приложения.

Транспортный уровень 4 добавляет дополнительные возможности по сравнению с уровнем 3, включая мультиплексирование нескольких потоков, восстановление ошибок, управление потоком и управление соединением (например, повторные попытки и повторные подключения). Существует пять классов уровня 4, от TP0 до высоконадёжного TP4, что не совсем логично с современной точки зрения. Поскольку уровень 4 предлагает общие функции обмена сообщениями, он, возможно, является ближайшим эквивалентом современных протоколов TCP и UDP в IP-стеке, хотя многие элементы UDP и TCP присутствуют и на более низких уровнях.

Сеансовый уровень 5 добавляет управление ассоциациями между хостами и статусом соединения между ними. Это немного запутано, поскольку в модели IP нет соответствующего эквивалента. Сеансовый уровень OSI определяется стандартом X.215, который отвечает за установку соединения.

Шестого уровня представления тоже не существует в стеке IP, и его ещё сложнее понять. Основная концепция заключается в том, что приложения должны взаимодействовать с использованием абстрактных представлений, а не реальных значений, закодированных в канале передачи. Эти абстрактные представления затем переводят в фактические значения, основанные на возможностях базовой сети. То есть это сжатие данных, шифрование, изменение кодировки и др. Уровень представления OSI реализован в протоколе X.216.

Наконец, самый верхний прикладной уровень 7. Хотя у него нет чётких определений, стек OSI поставлялся с большим количеством протоколов прикладного уровня. Можно вспомнить X.500, протокол службы каталогов, который считается прародителем LDAP, а также X.509, который описывает функцию криптографических сертификатов в экосистеме X.500. Формат и концепции сертификата X.509 непосредственно используются сегодня в TLS и других криптографических реализациях. Есть также протокол службы обмена сообщениями X.400, по сути, OSI-версия электронной почты. Как и следовало ожидать, он значительно мощнее и сложнее, чем электронная почта в современном виде. Долгое время Microsoft Exchange представлял собой наиболее полную реализацию X.400.

Описание стека OSI определено стандартами МСЭ, которые можно купить на официальном сайте ISO

Другие протоколы в модели OSI

Хотя модель OSI как стек оригинальных протоколов устарела, любую технологию и протокол связи можно спроецировать на один или несколько уровней OSI. Вот некоторые примеры.

Многие протоколы работают на нескольких уровнях OSI. Например, подуровни LLC (Logical Link Control) и MAC (Media Access Control) в IEEE 802. Или набор протоколов X.25, который покрывает три последних уровня.

1 (физический)

Физический уровень Bluetooth, шина CAN, DSL, Ethernet (10BASE-F и др.), GSM, физические уровни IEEE 802.15.4, IEEE 1394, IRDA, ISDN, I²C, LoRa, OTN, SMB, V.92, USB, PCI Express, физический уровень 802.11 Wi-Fi, IEEE 802.15.7

2 (канальный)

ARCnet, ATM, CDP, CAN, Ethernet, EAPS, FDDI, Frame Relay, IEEE 802.2 (функции подуровня LLC для подуровня MAC в IEEE 802), сеть IEEE 802.11, I²C, LLDP, PPP, IEEE 802.1aq, Token Ring

3 (сетевой)

CLNS, DDP, EIGRP, ICMP, IGMP, IPsec, IPv4/IPv6, IPX, OSPF, PIM, RIP

4 (транспортный)

ATP, CUDP, DCCP, FCP, IL, MPTCP, RDP, RUDP, SCTP, SPX, SST, TCP, UDP, UDP-Lite, µTP

5 (сеансовый)

ADSP, ASP, H.245, ISO-SP (X.225, ISO 8327), iSNS, L2F, L2TP, NetBIOS, PAP, PPTP, RPC, RTCP, SMPP, SCP, SOCKS, ZIP, SDP

6 (представления)

AFP, ICA, LPP, NCP, NDR, Tox, XDR, X.25

7 (прикладной)

Telnet, FTP, TFTP, SMTP, DNS, BOOTP, SNMP, CMOT

На уровнях 5−7 работают современные прикладные протоколы, таких как Bitcoin, BitTorrent, HTTP, IRV, IPFS, NTP, RDP, SIP, Tor, Tox, WebRTC, XMPP и многие другие.

Противостояние с TCP/IP

Разработка OSI продвигались настолько медленно, что вызывала сильное раздражение у всей индустрии. К началу 90-х годов стало понятно, что она не поспевает за реальным развитием телекома. 

Хотя правительства по всему миру рекомендовали соблюдать стандарты OSI, на практике телекомы предпочитали быстро соединять разнородные гетерогенные системы по протоколам TCP/IP, не соблюдая порядок и иерархию OSI. Интернет-инженер Маршалл Роуз писал в учебнике 1990 года, что «интернет-сообщество изо всех сил старается игнорировать сообщество OSI. По большому счету, технология OSI уродлива по сравнению с технологией Интернета».
Предвзятость интернет-сообщества привела к тому, что оно отвергало любые технические идеи OSI. Например, в 1992 году некоторые руководители IETF предложили принять продвинутый стандарт ISO Connectionless Network Protocol вместо IPv4, но сообщество отвергло эту идею.

Ещё одно преимущество TCP/IP было в том, что интернет-протоколы можно внедрять бесплатно, а чтобы использовать стандарты OSI, производители и интеграторы должны покупать бумажные копии стандартов у ISO.

Инженеры признавали, что у OSI архитектурно более проработанная модель, она гораздо более полная, более тщательная. Но на практике проще взять простой в реализации TCP/IP. Впрочем, модель OSI никто не отменял, и в неё вполне вписывается даже стек TCP/IP.

Модель OSI как теоретическая конструкция для обучения

Модель OSI сейчас используется в качестве эталонной, справочной модели для обучения студентов. Оригинальные протоколы OSI не получили распространения. Некоторые инженеры утверждают, что эталонная модель OSI по-прежнему актуальна для облачных вычислений. Другие говорят, что оригинальная модель не соответствует современным сетевым протоколам, а вместо неё лучше использовать упрощённый подход.

В отличие от большинства компьютерных сетей, которые ставят целью наладить простой канал связи с некоторыми дополнительными функциями, модель OSI пыталась закодировать в модели практически все возможные варианты приложений. Это привело к оверинжинирингу. Но история показала, что для сетей важнее простота реализации и удобство использования.