Введение

Модель связи из семи уровней абстракции

Модель Open Systems Interconnection (OSI) является эталонной моделью Международной организации по стандартизации (ISO), которая "предоставляет общую основу для координации разработки стандартов с целью обеспечения взаимодействия систем". В эталонной модели OSI коммуникации между системами разделены на семь различных уровней абстракции: физический, канальный, сетевой, транспортный, сеансовый, представления и прикладной. Модель разделяет поток данных в системе связи на семь уровней абстракции для описания сетевого взаимодействия – от физической реализации передачи битов по среде передачи данных до наиболее высокого уровня представления данных распределенного приложения. Каждый промежуточный уровень предоставляет определенный набор функций уровню выше и использует функции уровня ниже. Наборы функций реализуются во всех разработках программного обеспечения посредством стандартизированных протоколов связи. Каждый уровень в модели OSI имеет четко определенные функции, а методы каждого уровня взаимодействуют с методами непосредственно выше и ниже расположенных уровней, по мере необходимости. Семейство протоколов Интернет, определенное в и , является моделью сетевого взаимодействия, разработанной одновременно с моделью OSI и финансируемой в основном Министерством обороны США. Она стала основой для развития Интернета. Она исходила из наличия универсальных физических каналов и была сосредоточена главным образом на программных уровнях связи, имея аналогичную, но гораздо менее строгую структуру, чем модель OSI. Для сравнения, несколько моделей сетевого взаимодействия стремились создать теоретическую основу для прояснения сетевых концепций и деятельности, но ни одна из них не достигла такого же успеха, как эталонная модель OSI, в качестве стандартной модели для обсуждения и обучения сетевому взаимодействию в области информационных технологий. Модель обеспечивает прозрачную связь посредством эквивалентного обмена протокольными данными (PDU) между двумя сторонами посредством так называемой одноранговой сети (также известной как одноранговая коммуникация). В результате эталонная модель OSI стала важной частью как для профессионалов, так и для непрофессионалов, а также во всех сетях между одной или несколькими сторонами, во многом благодаря общепринятой удобной структуре.

История

Разработка модели OSI началась в конце 1970-х годов для поддержки появления разнообразных методов компьютерных сетей, конкурировавших за применение в крупных национальных сетевых проектах по всему миру (см. Протоколы OSI и Протокольные войны). В 1980-х годах модель стала рабочим продуктом группы по взаимосвязи открытых систем в Международной организации по стандартизации (ISO). Стремясь предоставить всестороннее описание сетей, модель не смогла завоевать признание при разработке Интернета, что отражается в менее строгой структуре Internet Protocol Suite, главным образом спонсируемой под эгидой Internet Engineering Task Force (IETF). В начале и середине 1970-х годов сети в основном финансировались государством (сеть NPL в Великобритании, ARPANET в США, CYCLADES во Франции) или разрабатывались поставщиками с использованием проприетарных стандартов, таких как архитектура сетей IBM Systems Network Architecture и DECnet от Digital Equipment Corporation. Общедоступные сети передачи данных только начинали появляться и стали использовать стандарт X.25 в конце 1970-х годов. Экспериментальная пакетная коммутируемая система в Великобритании в период с 1973 по 1975 год выявила необходимость определения протоколов более высокого уровня. Публикация Национального вычислительного центра Великобритании «Почему распределенные вычисления», основанная на значительных исследованиях будущих конфигураций компьютерных систем, привела к тому, что Великобритания представила аргументы в пользу создания международного комитета по стандартам в этой области на заседании ISO в Сиднее в марте 1977 года. Начиная с 1977 года, ISO инициировала программу по разработке общих стандартов и методов сетевого взаимодействия. Аналогичный процесс развивался в Международном консультативном комитете по телеграфу и телефону (CCITT, от фр. Comité Consultatif International Téléphonique et Télégraphique). Оба органа разработали документы, определяющие схожие модели сетей. Британский департамент торговли и промышленности выступал в качестве секретариата, а университеты в Соединенном Королевстве разрабатывали прототипы стандартов. Модель OSI была впервые определена в исходной форме в Вашингтоне, округ Колумбия, в феврале 1978 года французским инженером-программистом Юбером Циммерманом, а уточненный, но все еще проект стандарта был опубликован ISO в 1980 году. Разработчикам эталонной модели пришлось учитывать множество конкурирующих приоритетов и интересов. Скорость технологических изменений потребовала определения стандартов, к которым могли бы адаптироваться новые системы, а не стандартизации процедур задним числом, что противоречило традиционному подходу к разработке стандартов. Хотя сама по себе она не являлась стандартом, она представляла собой основу для определения будущих стандартов. В мае 1983 года документы CCITT и ISO были объединены в Базовую референсную модель для взаимосвязи открытых систем, обычно называемую Референсной моделью взаимосвязи открытых систем, Референсной моделью OSI или просто моделью OSI. Она была опубликована в 1984 году как ISO, в качестве стандарта ISO 7498, и переименованным CCITT (ныне называемым Сектором стандартизации телекоммуникаций Международного союза электросвязи или ITU T) в качестве стандарта X.200. OSI имела два основных компонента: абстрактную модель сетей, называемую Базовой референсной моделью или семислойной моделью, и набор конкретных протоколов. Референсная модель OSI стала важным шагом вперед в стандартизации сетевых концепций. Она продвигала идею последовательной модели протокольных уровней, определяющей взаимодействие между сетевыми устройствами и программным обеспечением. Концепция семислойной модели была предложена работой Чарльза Бахмана в Honeywell Information Systems. Различные аспекты проектирования OSI развивались на основе опыта работы с сетью NPL, ARPANET, CYCLADES, EIN и Международной рабочей группой по сетям (IFIP WG6.1). В этой модели сетевая система была разделена на уровни. В каждом уровне один или несколько компонентов реализуют его функциональность. Каждый компонент взаимодействовал напрямую только с непосредственно нижележащим уровнем и предоставлял средства для использования уровнем выше. Документы стандартов OSI доступны в ITU T в виде серии рекомендаций X.200. Некоторые спецификации протоколов также были доступны в рамках серии ITU T X. Эквивалентные стандарты ISO/IEC для модели OSI были доступны в ISO. Не все они бесплатны. OSI была отраслевой инициативой, направленной на достижение согласия между участниками отрасли по общим сетевым стандартам для обеспечения совместимости оборудования разных производителей. В течение определенного периода в конце 1980-х и начале 1990-х годов инженеры, организации и страны разделились во мнениях относительно того, какой стандарт – модель OSI или набор протоколов Интернет – приведет к созданию лучших и наиболее надежных компьютерных сетей. Однако, в то время как OSI разрабатывала свои сетевые стандарты в конце 1980-х годов, TCP/IP получило широкое распространение в сетях разных производителей для организации межсетевого взаимодействия. Модель OSI по-прежнему используется в качестве справочного материала для обучения и документации; однако протоколы OSI, первоначально разработанные для этой модели, не получили широкой популярности. Некоторые инженеры утверждают, что референсная модель OSI по-прежнему актуальна для облачных вычислений. Другие считают, что исходная модель OSI не соответствует современным сетевым протоколам и предлагают упрощенный подход. Уровень управления доступом к среде (MAC) – отвечает за управление тем, как устройства в сети получают доступ к среде и разрешение на передачу данных. Уровень логической связи данных (LLC) – отвечает за идентификацию и инкапсуляцию протоколов сетевого уровня, а также за контроль проверки ошибок и синхронизации кадров. Уровни MAC и LLC сетей IEEE 802, таких как 802.3 Ethernet, 802.11 Wi-Fi и 802.15.4 Zigbee, работают на уровне канала передачи данных. Протокол Point-to-Point Protocol (PPP) является протоколом уровня канала передачи данных, который может работать поверх различных физических уровней, таких как последовательные линии синхронного и асинхронного типа. Стандарт ITU T G.hn, обеспечивающий высокоскоростное локальное сетевое взаимодействие по существующим проводам (силовые линии, телефонные линии и коаксиальные кабели), включает в себя полный уровень канала передачи данных, обеспечивающий как коррекцию ошибок, так и управление потоком данных посредством протокола селективного повтора с использованием скользящего окна. Безопасность, в частности (аутентифицированное) шифрование, на этом уровне может быть применена с помощью MACsec.

Слой 3: Сетевой слой

Сетевой уровень предоставляет функциональные и процедурные средства для передачи пакетов от одного узла к другому, соединенных в "различных сетях". Сеть – это среда, к которой может быть подключено множество узлов, в которой каждый узел имеет адрес и которая позволяет подключенным к ней узлам передавать сообщения другим подключенным к ней узлам, просто предоставляя содержимое сообщения и адрес узла назначения, позволяя сети найти способ доставки сообщения в пункт назначения, возможно, маршрутизируя его через промежуточные узлы. Если сообщение слишком велико для передачи от одного узла к другому на канальном уровне между этими узлами, сеть может реализовать доставку сообщения, разделив его на несколько фрагментов в одном узле, отправив фрагменты независимо и собрав фрагменты в другом узле. Она может, но не обязана, сообщать об ошибках доставки. Доставка сообщений на сетевом уровне не обязательно гарантирована как надежная; протокол сетевого уровня может обеспечивать надежную доставку сообщений, но не обязан это делать. К сетевому уровню относится ряд протоколов управления слоем, функция которых определена в приложении по управлению, ISO 7498/4. К ним относятся протоколы маршрутизации, управление группами многоадресной рассылки, информация об ошибках и сетевом слое, а также назначение адресов сетевого уровня. Принадлежность этих протоколов к сетевому уровню определяется функцией полезной нагрузки, а не протоколом, который их передает.

Слой 4: Транспортный слой

Транспортный уровень обеспечивает функциональные и процедурные средства передачи последовательностей данных переменной длины от исходного хоста к целевому хосту от одного приложения к другому по сети, поддерживая при этом функции качества обслуживания. Транспортные протоколы могут быть с установлением соединения или без установления соединения. Это может потребовать разбиения больших протокольных данных или длинных потоков данных на меньшие части, называемые "сегментами", поскольку сетевой уровень накладывает ограничение на максимальный размер пакета, называемый максимальной единицей передачи (MTU), который зависит от максимального размера пакета, накладываемого всеми уровнями канального уровня на сетевом пути между двумя хостами. Объем данных в сегменте должен быть достаточно мал, чтобы вместить заголовок сетевого уровня и заголовок транспортного уровня. Например, при передаче данных по Ethernet MTU составляет 1500 байт, минимальный размер заголовка TCP – 20 байт, а минимальный размер заголовка IPv4 – 20 байт, следовательно, максимальный размер сегмента составляет 1500–(20+20) байт, то есть 1460 байт. Процесс разделения данных на сегменты называется сегментацией; это необязательная функция транспортного уровня. Некоторые протоколы с установлением соединения, такие как TCP и протокол транспортного уровня OSI с установлением соединения (COTP), выполняют сегментацию и повторную сборку сегментов на принимающей стороне; протоколы без установления соединения, такие как UDP и протокол транспортного уровня OSI без установления соединения (CLTP), обычно этого не делают. Транспортный уровень также контролирует надежность соединения между исходным и целевым хостом посредством управления потоком, контроля ошибок и подтверждения последовательности и существования. Некоторые протоколы сохраняют состояние и ориентированы на соединение. Это означает, что транспортный уровень может отслеживать сегменты и повторно передавать те, которые не были доставлены, посредством механизма подтверждения установления соединения. Транспортный уровень также предоставляет подтверждение об успешной передаче данных и отправляет следующие данные, если ошибок не обнаружено. Однако надежность не является строгим требованием транспортного уровня. Протоколы, такие как UDP, например, используются в приложениях, которые готовы принять некоторую потерю пакетов, изменение порядка, ошибки или дублирование. Потоковое мультимедиа, многопользовательские игры в реальном времени и голосовая связь по IP (VoIP) являются примерами приложений, в которых потеря пакетов обычно не является критической проблемой. Протокол транспортного уровня OSI с установлением соединения определяет пять классов протоколов транспортного уровня с установлением соединения, от класса 0 (также известного как TP0, предоставляющего наименьшее количество функций) до класса 4 (TP4, предназначенного для менее надежных сетей, подобных Интернету). Класс 0 не содержит восстановления ошибок и предназначен для использования на сетевых уровнях, обеспечивающих соединение без ошибок. Класс 4 наиболее близок к TCP, хотя TCP содержит функции, такие как корректное закрытие соединения, которые OSI относит к сеансовому уровню. Кроме того, все классы протоколов режима соединения OSI TP обеспечивают ускоренную передачу данных и сохранение границ записей. Легкий способ представить транспортный уровень – сравнить его с почтовым отделением, которое занимается отправкой и классификацией отправляемых писем и посылок. Почтовое отделение проверяет только внешний конверт письма для определения адреса доставки. Более высокие уровни могут иметь эквивалент двойных конвертов, например, службы криптографической презентации, которые могут быть прочитаны только адресатом. В общем, туннельные протоколы работают на транспортном уровне, например, перенося протоколы, отличные от IP, такие как SNA от IBM или IPX от Novell, по IP-сети, или обеспечивая сквозное шифрование с помощью IPsec. Хотя Generic Routing Encapsulation (GRE) может показаться протоколом сетевого уровня, если инкапсуляция полезной нагрузки происходит только в конечной точке, GRE становится ближе к транспортному протоколу, использующему IP-заголовки, но содержащему полные кадры уровня 2 или пакеты уровня 3 для доставки в конечную точку. L2TP передает кадры PPP внутри транспортных сегментов. Хотя протоколы TCP и UDP не были разработаны в соответствии с эталонной моделью OSI и не строго соответствуют определению транспортного уровня OSI, они обычно классифицируются как протоколы 4-го уровня в рамках OSI. Transport Layer Security (TLS) также не полностью соответствует модели. Он содержит характеристики транспортного и презентационного уровней.

Слой 5: Слой сеанса

Уровень сеанса устанавливает соединение, управляет им и завершает его между двумя или более компьютерами, что называется "сеансом". Типичные функции уровня сеанса включают в себя аутентификацию пользователя (установление сеанса) и завершение сеанса пользователя. Методы аутентификации также встроены в большинство клиентских программ, таких как FTP-клиент и NFS-клиент для сетей Microsoft. Таким образом, уровень сеанса устанавливает, управляет и завершает соединения между локальным и удаленным приложениями. Уровень сеанса также поддерживает режимы работы с полной, полу- и односторонней дуплексной связью, а также определяет процедуры для установки контрольных точек, приостановки, перезапуска и завершения сеанса между двумя связанными потоками данных, например, аудио- и видеопотоками в приложениях для веб-конференций. Поэтому уровень сеанса часто явно реализуется в приложениях, использующих удаленные вызовы процедур.

Слой 6: Слой представления

Слой представления устанавливает форматирование данных и преобразование данных в формат, указанный слоем приложения при инкапсуляции исходящих сообщений во время передачи по стеку протоколов, и, возможно, обратное преобразование при деинкапсуляции входящих сообщений во время передачи по стеку протоколов. По этой причине исходящие сообщения при инкапсуляции преобразуются в формат, указанный слоем приложения, а преобразование входящих сообщений при деинкапсуляции выполняется в обратном порядке. Слой представления обрабатывает преобразование протоколов, шифрование данных, расшифровку данных, сжатие данных, распаковку данных, несовместимость представления данных между операционными системами и графические команды. Слой представления преобразует данные в форму, приемлемую для слоя приложения, для отправки по сети. Поскольку слой представления преобразует данные и графику в формат отображения для слоя приложения, он иногда называется синтаксическим слоем. В связи с этим слой представления согласовывает передачу синтаксической структуры посредством Основных правил кодирования Абстрактного синтаксического обозначения Один (ASN.1), с возможностями, такими как преобразование текстового файла с кодировкой EBCDIC в файл с кодировкой ASCII или сериализация объектов и других структур данных в XML и из XML. Некоторые ортогональные аспекты, такие как управление и безопасность, затрагивают все слои (см. Рекомендацию ITU-T X.800, определенную в рекомендации ITU-T X.800. Функции управления, то есть функции, позволяющие настраивать, создавать экземпляры, контролировать и завершать связь двух или более сущностей: существует специальный протокол прикладного уровня – Общий протокол управления информацией (CMIP) и соответствующая ему служба – Общая служба управления информацией (CMIS), которым необходимо взаимодействовать с каждым слоем для обработки своих экземпляров). Многопротокольная коммутация меток (MPLS), ATM и X.25 являются протоколами 3a. OSI подразделяет сетевой уровень на три подслоя: 3a) Доступ к подсети, 3b) Сближение, зависящее от подсети, и 3c) Сближение, не зависящее от подсети. Он был разработан для обеспечения единой службы передачи данных как для клиентов, работающих по принципу коммутации каналов, так и для клиентов, использующих коммутацию пакетов, которые предоставляют модель обслуживания на основе датаграмм. Он может использоваться для передачи различных типов трафика, включая IP-пакеты, а также собственные кадры ATM, SONET и Ethernet. Иногда встречается упоминание о слое 2.5. Согласование расписания MAC и PHY имеет важное значение в беспроводных сетях из-за изменяющегося во времени характера беспроводных каналов. Планируя передачу пакетов только в благоприятных условиях канала, что требует от MAC-слоя получения информации о состоянии канала от PHY-слоя, можно значительно повысить пропускную способность сети и избежать потерь энергии.

Интерфейсы программирования

Ни эталонная модель OSI, ни спецификации протоколов OSI не определяют какие-либо программные интерфейсы, за исключением намеренно абстрактных описаний служб. Спецификации протоколов определяют методологию обмена данными между равноправными узлами, однако программные интерфейсы зависят от конкретной реализации. Например, спецификация интерфейса сетевого драйвера (NDIS) и интерфейс канала передачи данных (ODI) — это интерфейсы между средой передачи (уровнем 2) и сетевым протоколом (уровнем 3).