Модель взаимодействия открытых систем ( модель OSI ) — это эталонная модель Международной организации по стандартизации (ISO), которая «обеспечивает общую основу для координации разработки стандартов с целью взаимосвязи систем». [2] В эталонной модели OSI связь между системами разделена на семь различных уровней абстракции: физический, канал передачи данных, сеть, транспорт, сеанс, представление и приложение. [3]
Модель разделяет поток данных в системе связи на семь уровней абстракции , чтобы описать сетевую связь от физической реализации передачи битов через среду связи до представления данных самого высокого уровня распределенного приложения . Каждый промежуточный уровень обслуживает определенный класс функциональности вышележащего уровня и обслуживается уровнем ниже него. Классы функциональности реализуются при разработке любого программного обеспечения посредством всех стандартизированных протоколов связи .
Каждый уровень модели OSI имеет четко определенные функции, а методы каждого уровня взаимодействуют и взаимодействуют с методами уровней непосредственно выше и ниже, в зависимости от ситуации.
Набор интернет -протоколов , определенный в RFC 1122 и RFC 1123, представляет собой модель сети, разработанную одновременно с моделью OSI и финансируемую в основном Министерством обороны США. Это послужило основой для развития Интернета . Она предполагала наличие общих физических каналов и фокусировалась в первую очередь на программных уровнях связи с аналогичной, но гораздо менее строгой структурой, чем модель OSI.
Для сравнения, несколько сетевых моделей пытались создать интеллектуальную основу для разъяснения сетевых концепций и деятельности, но ни одна из них не добилась такого успеха, как эталонная модель OSI, став стандартной моделью для обсуждения и обучения сетевым технологиям в области информации . технологии . Модель обеспечивает прозрачную связь посредством эквивалентного обмена блоками данных протокола (PDU) между двумя сторонами посредством так называемой одноранговой сети (также известной как одноранговая связь). В результате эталонная модель OSI стала важной частью не только среди профессионалов, но и среди непрофессионалов, но также и во всех сетях между одной или многими сторонами, во многом благодаря ее общепринятой, удобной для пользователя структуре. [4]
Разработка модели OSI началась в конце 1970-х годов для поддержки появления разнообразных методов компьютерных сетей, которые конкурировали за применение в крупных национальных сетевых проектах в мире (см. Протоколы OSI и Войны протоколов ). В 1980-х годах модель стала рабочим продуктом группы «Взаимосвязь открытых систем» Международной организации по стандартизации (ISO). Несмотря на попытку дать всестороннее описание сети, модель не смогла завоевать доверие при проектировании Интернета , что отражено в менее директивном наборе протоколов Интернета , в основном спонсируемом под эгидой Инженерной рабочей группы Интернета (IETF).
В начале и середине 1970 - х годов сетевые технологии в основном либо спонсировались государством ( сеть NPL в Великобритании, ARPANET в США, CYCLADES во Франции), либо разрабатывались поставщиками с использованием собственных стандартов, таких как IBM Systems Network Architecture и Digital. DECnet корпорации оборудования . Публичные сети передачи данных только начинали появляться, и в конце 1970-х годов они начали использовать стандарт X.25 . [5] [6]
Экспериментальная система коммутации пакетов в Великобритании c. 1973–1975 выявили необходимость определения протоколов более высокого уровня. [5] Публикация Национального вычислительного центра Великобритании «Почему распределенные вычисления» , которая стала результатом обширных исследований будущих конфигураций компьютерных систем, [7] привела к тому, что Великобритания представила аргументы в пользу создания международного комитета по стандартизации для освещения этой области на встрече ISO в Сидней в марте 1977 года. [8] [9]
Начиная с 1977 года, ISO инициировала программу по разработке общих стандартов и методов создания сетей. Аналогичный процесс развивался в Международном консультативном комитете по телеграфии и телефонии (CCITT, от французского Comité Consultatif International Téléphonique et Télégraphique ). Оба органа разработали документы, определяющие схожие сетевые модели. Британский департамент торговли и промышленности выступил в качестве секретариата, а университеты Соединенного Королевства разработали прототипы стандартов. [10]
Модель OSI была впервые определена в сырой форме в Вашингтоне, округ Колумбия , в феврале 1978 года французским инженером-программистом Юбертом Циммерманом , а усовершенствованный, но все еще черновой вариант стандарта был опубликован ISO в 1980 году. [11]
Разработчикам эталонной модели пришлось столкнуться со многими конкурирующими приоритетами и интересами. Скорость технологических изменений привела к необходимости определения стандартов, к которым могли бы приблизиться новые системы, а не стандартизации процедур постфактум; обратная сторона традиционного подхода к разработке стандартов. [12] Хотя это и не был стандарт сам по себе, это была основа, в которой можно было определить будущие стандарты. [13]
В мае 1983 года [14] документы CCITT и ISO были объединены в « Базовую эталонную модель взаимодействия открытых систем» , обычно называемую эталонной моделью взаимодействия открытых систем , эталонной моделью OSI или просто моделью OSI . Он был опубликован в 1984 году как ISO как стандарт ISO 7498, так и переименованным CCITT (теперь называемым Сектором стандартизации телекоммуникаций Международного союза электросвязи или ITU-T ) как стандарт X.200.
OSI состояла из двух основных компонентов: абстрактной модели сети, называемой базовой эталонной моделью или семиуровневой моделью, и набора конкретных протоколов . Эталонная модель OSI стала крупным достижением в стандартизации сетевых концепций. Он продвигал идею согласованной модели уровней протокола, определяющей совместимость между сетевыми устройствами и программным обеспечением.
Концепция семиуровневой модели была предложена в работе Чарльза Бахмана из Honeywell Information Systems . [15] Различные аспекты проектирования OSI возникли на основе опыта работы с сетью NPL, ARPANET, CYCLADES, EIN и Международной сетевой рабочей группой ( IFIP WG6.1). В этой модели сетевая система была разделена на уровни. Внутри каждого уровня один или несколько объектов реализуют его функциональность. Каждый объект напрямую взаимодействовал только с уровнем, находящимся непосредственно под ним, и предоставлял возможности для использования слоем выше него.
Документы по стандартам OSI доступны в ITU-T в виде рекомендаций серии X.200. [16] Некоторые спецификации протоколов также были доступны в рамках серии ITU-T X. Эквивалентные стандарты ISO/IEC для модели OSI были доступны в ISO. Не все они бесплатны. [17]
OSI представлял собой отраслевую попытку добиться согласия участников отрасли по общим сетевым стандартам для обеспечения совместимости устройств различных поставщиков. [18] В крупных сетях было обычным делом поддерживать несколько наборов сетевых протоколов, при этом многие устройства не могли взаимодействовать с другими устройствами из-за отсутствия общих протоколов. В течение периода конца 1980-х и начала 1990-х годов инженеры, организации и страны разделились по вопросу о том, какой стандарт — модель OSI или набор интернет-протоколов — приведет к созданию лучших и наиболее надежных компьютерных сетей. [9] [19] [20] Однако, в то время как OSI разработала свои сетевые стандарты в конце 1980-х годов, [21] [22] TCP/IP стал широко использоваться в сетях различных поставщиков для межсетевого взаимодействия .
Модель OSI до сих пор используется в качестве справочного материала для обучения и документации; [23] однако протоколы OSI, изначально задуманные для этой модели, не завоевали популярности. Некоторые инженеры утверждают, что эталонная модель OSI по-прежнему актуальна для облачных вычислений . [24] Другие утверждают, что первоначальная модель OSI не соответствует современным сетевым протоколам, и вместо этого предлагают упрощенный подход. [25] [26]
Протоколы связи позволяют объекту на одном хосте взаимодействовать с соответствующим объектом на том же уровне на другом хосте. Определения сервисов, как и модель OSI, абстрактно описывают функциональность, предоставляемую уровню N уровнем N-1 , где N — один из семи уровней протоколов, работающих на локальном хосте.
На каждом уровне N два объекта на взаимодействующих устройствах ( одноранговые узлы уровня N ) обмениваются блоками данных протокола (PDU) посредством протокола уровня N. Каждый PDU содержит полезную нагрузку, называемую блоком служебных данных (SDU), а также заголовки и нижние колонтитулы, связанные с протоколом.
Обработка данных двумя взаимодействующими OSI-совместимыми устройствами происходит следующим образом:
Модель OSI определена в стандарте ISO/IEC 7498 и состоит из следующих частей:
ISO/IEC 7498-1 также опубликован как Рекомендация ITU-T X.200.
В рекомендации X.200 описываются семь уровней, обозначенных от 1 до 7. Уровень 1 является самым низким уровнем в этой модели.
Физический уровень отвечает за передачу и прием неструктурированных необработанных данных между устройством, например контроллером сетевого интерфейса , концентратором Ethernet или сетевым коммутатором , и физической средой передачи . Он преобразует цифровые биты в электрические, радио или оптические сигналы. Спецификации уровней определяют такие характеристики, как уровни напряжения, время изменения напряжения, физические скорости передачи данных, максимальные расстояния передачи, схему модуляции, метод доступа к каналу и физические разъемы. Сюда входит расположение контактов , напряжения , сопротивление линии , характеристики кабеля, синхронизация сигнала и частота для беспроводных устройств. Управление скоростью передачи данных осуществляется на физическом уровне и может определять режим передачи как симплексный , полудуплексный и полнодуплексный . Компоненты физического уровня можно описать с точки зрения топологии сети . Спецификации физического уровня включены в спецификации вездесущих стандартов Bluetooth , Ethernet и USB . Примером менее известной спецификации физического уровня может служить стандарт CAN .
Физический уровень также определяет, как происходит кодирование физического сигнала, такого как электрическое напряжение или световой импульс. Например, бит 1 может быть представлен на медном проводе переходом от сигнала 0 В к сигналу 5 В, тогда как бит 0 может быть представлен переходом от сигнала 5 В к сигналу 0 В. В результате общие проблемы, возникающие на физическом уровне, часто связаны с неправильным терминированием среды передачи, электромагнитными помехами или шумовым скремблированием, а также с сетевыми адаптерами и концентраторами, которые неправильно настроены или работают неправильно.
Уровень канала передачи данных обеспечивает передачу данных от узла к узлу — связь между двумя напрямую соединенными узлами. Он обнаруживает и, возможно, исправляет ошибки, которые могут возникнуть на физическом уровне. Он определяет протокол для установления и разрыва соединения между двумя физически подключенными устройствами. Он также определяет протокол управления потоками между ними.
IEEE 802 делит уровень канала передачи данных на два подуровня: [28]
Уровни MAC и LLC сетей IEEE 802, таких как 802.3 Ethernet , 802.11 Wi-Fi и 802.15.4 Zigbee, работают на уровне канала передачи данных.
Протокол «точка-точка» (PPP) — это протокол канального уровня, который может работать на нескольких различных физических уровнях, таких как синхронные и асинхронные последовательные линии.
Стандарт ITU -T G.hn , который обеспечивает высокоскоростную локальную сеть по существующим проводам (линиям электропередачи, телефонным линиям и коаксиальным кабелям), включает в себя полный уровень канала передачи данных, который обеспечивает как исправление ошибок , так и управление потоком данных посредством селективного -повторить протокол скользящего окна .
Безопасность, в частности (шифрование с проверкой подлинности), на этом уровне может применяться с помощью MACsec .
Сетевой уровень предоставляет функциональные и процедурные средства передачи пакетов от одного узла к другому, подключенному к «разным сетям». Сеть — это среда, к которой может быть подключено множество узлов, в которой каждый узел имеет адрес и которая позволяет узлам, подключенным к ней, передавать сообщения другим узлам, подключенным к ней, просто предоставляя содержимое сообщения и адрес назначения. узел и позволяя сети найти способ доставить сообщение к узлу назначения, возможно, маршрутизируя его через промежуточные узлы. Если сообщение слишком велико для передачи от одного узла к другому на канальном уровне между этими узлами, сеть может реализовать доставку сообщения путем разделения сообщения на несколько фрагментов в одном узле, отправки фрагментов независимо и повторной сборки фрагментов в одном узле. еще один узел. Он может, но не обязан сообщать об ошибках доставки.
Доставка сообщений на сетевом уровне не обязательно является надежной; протокол сетевого уровня может обеспечить надежную доставку сообщений, но это не обязательно.
Ряд протоколов управления уровнями, функция которых определена в приложении управления ISO 7498/4, относятся к сетевому уровню. К ним относятся протоколы маршрутизации, управление группами многоадресной рассылки, информация и ошибки сетевого уровня, а также назначение адресов сетевого уровня. Именно функция полезной нагрузки делает их принадлежащими сетевому уровню, а не протоколу, который их передает. [29]
Транспортный уровень предоставляет функциональные и процедурные средства передачи последовательностей данных переменной длины от хоста-источника к хосту-получателю от одного приложения к другому по сети, сохраняя при этом функции качества обслуживания. Транспортные протоколы могут быть ориентированными на установление соединения или без установления соединения.
Это может потребовать разбиения больших блоков данных протокола или длинных потоков данных на более мелкие фрагменты, называемые «сегментами», поскольку сетевой уровень устанавливает максимальный размер пакета, называемый максимальной единицей передачи (MTU), который зависит от максимального размера пакета, установленного всеми каналами передачи данных. уровни на сетевом пути между двумя хостами. Объем данных в сегменте данных должен быть достаточно небольшим, чтобы можно было использовать заголовок сетевого уровня и заголовок транспортного уровня. Например, для данных, передаваемых через Ethernet , MTU составляет 1500 байт, минимальный размер заголовка TCP — 20 байт, а минимальный размер заголовка IPv4 — 20 байт, поэтому максимальный размер сегмента составляет 1500–(20+ 20) байт или 1460 байт. Процесс разделения данных на сегменты называется сегментацией ; это необязательная функция транспортного уровня. Некоторые транспортные протоколы, ориентированные на соединение, такие как TCP и транспортный протокол, ориентированный на соединение (COTP), выполняют сегментацию и повторную сборку сегментов на принимающей стороне; транспортные протоколы без установления соединения, такие как UDP и транспортный протокол без установления соединения (CLTP) OSI, обычно этого не делают.
Транспортный уровень также контролирует надежность данного канала между источником и хостом назначения посредством управления потоком, контроля ошибок и подтверждений последовательности и существования. Некоторые протоколы ориентированы на состояние и соединение . Это означает, что транспортный уровень может отслеживать сегменты и повторно передавать те, которые не доставлены, через систему подтверждения установления связи. Транспортный уровень также обеспечивает подтверждение успешной передачи данных и отправляет следующие данные, если ошибок не произошло.
Однако надежность не является строгим требованием на транспортном уровне. Например, такие протоколы, как UDP, используются в приложениях, которые допускают некоторую потерю пакетов, переупорядочение, ошибки или дублирование. Потоковое мультимедиа , многопользовательские игры в реальном времени и передача голоса по IP (VoIP) являются примерами приложений, в которых потеря пакетов обычно не является фатальной проблемой.
Транспортный протокол OSI, ориентированный на соединение, определяет пять классов транспортных протоколов в режиме соединения: от класса 0 (который также известен как TP0 и обеспечивает наименьшее количество функций) до класса 4 (TP4, предназначенный для менее надежных сетей, подобных Интернету). ). Класс 0 не содержит восстановления после ошибок и был разработан для использования на сетевых уровнях, обеспечивающих безошибочные соединения. Класс 4 наиболее близок к TCP, хотя TCP содержит такие функции, как плавное закрытие, которые OSI назначает сеансовому уровню. Кроме того, все классы протоколов режима соединения OSI TP обеспечивают ускоренную передачу данных и сохранение границ записей. Подробные характеристики классов TP0–4 приведены в следующей таблице: [30]
Самый простой способ визуализировать транспортный уровень — сравнить его с почтовым отделением, которое занимается отправкой и классификацией отправляемых писем и посылок. Почтовое отделение проверяет только внешний конверт почты, чтобы определить ее доставку. Более высокие уровни могут иметь эквивалент двойных конвертов, например службы криптографических презентаций, которые может прочитать только адресат. Грубо говоря, протоколы туннелирования работают на транспортном уровне, например, передавая протоколы, отличные от IP, такие как SNA IBM или IPX Novell , по IP-сети или сквозное шифрование с помощью IPsec . Хотя инкапсуляция универсальной маршрутизации (GRE) может показаться протоколом сетевого уровня, если инкапсуляция полезной нагрузки происходит только в конечной точке, GRE становится ближе к транспортному протоколу, который использует заголовки IP, но содержит полные кадры уровня 2 или уровня 3. пакеты для доставки в конечную точку. L2TP передает кадры PPP внутри транспортных сегментов.
Несмотря на то, что протокол управления передачей (TCP) и протокол пользовательских дейтаграмм (UDP) из пакета интернет-протоколов не разработаны в соответствии с эталонной моделью OSI и не соответствуют строгому определению транспортного уровня в OSI, они обычно классифицируются как протоколы уровня 4 в рамках OSI. .
Безопасность транспортного уровня (TLS) также не совсем вписывается в эту модель. Он содержит характеристики транспортного и презентационного уровней. [31] [32]
Уровень сеанса создает настройку, контролирует соединения и завершает разрыв между двумя или более компьютерами, который называется «сеансом». Поскольку DNS и другие протоколы разрешения имен работают на этой части уровня, общие функции сеансового уровня включают функции входа пользователя в систему (установление), поиска имени (управление) и выхода пользователя из системы (завершение). В том числе протоколы аутентификации также встроены в большинство клиентских программ, таких как FTP-клиент и NFS-клиент для сетей Microsoft. Таким образом, сеансовый уровень устанавливает, управляет и разрывает соединения между локальным и удаленным приложением. Уровень сеанса также обеспечивает полнодуплексную , полудуплексную или симплексную работу и устанавливает процедуры для проверки контрольных точек, приостановки, перезапуска и завершения сеанса между двумя связанными потоками данных, такими как аудио- и видеопоток в сети. - приложение для проведения конференций. Поэтому сеансовый уровень обычно реализуется явно в средах приложений, использующих удаленные вызовы процедур .
Уровень представления устанавливает форматирование и преобразование данных в формат, указанный прикладным уровнем во время инкапсуляции исходящих сообщений при передаче по стеку протоколов и, возможно, обратный во время деинкапсуляции входящих сообщений при их передаче вверх по стеку протоколов. Именно по этой причине исходящие сообщения во время инкапсуляции преобразуются в формат, заданный прикладным уровнем, а преобразование входящих сообщений во время деинкапсуляции происходит в обратном порядке.
Уровень представления обрабатывает преобразование протоколов, шифрование данных, расшифровку данных, сжатие данных, распаковку данных, несовместимость представления данных между операционными системами и графические команды. Уровень представления преобразует данные в форму, которую принимает уровень приложений, для отправки по сети. Поскольку уровень представления преобразует данные и графику в формат отображения для уровня приложения, уровень представления иногда называют уровнем синтаксиса. [33] По этой причине уровень представления согласовывает передачу синтаксической структуры посредством основных правил кодирования абстрактной синтаксической нотации один (ASN.1) с такими возможностями, как преобразование текстового файла с кодировкой EBCDIC в файл с кодировкой ASCII , или сериализация объектов и других структур данных из XML и в XML . [4]
Уровень приложения — это уровень модели OSI, который наиболее близок к конечному пользователю. Это означает, что и уровень приложения OSI, и пользователь напрямую взаимодействуют с программным приложением, которое реализует компонент связи между клиентом и сервером, например проводник . и Microsoft Word . Такие прикладные программы выходят за рамки модели OSI, если они не интегрированы напрямую в прикладной уровень посредством функций связи, как в случае с такими приложениями, как веб-браузеры и программы электронной почты . Другими примерами программного обеспечения являются сетевое программное обеспечение Microsoft для общего доступа к файлам и принтерам и клиент сетевой файловой системы Unix/Linux для доступа к общим файловым ресурсам.
Функции уровня приложения обычно включают общий доступ к файлам, обработку сообщений и доступ к базе данных через наиболее распространенные протоколы уровня приложения, известные как HTTP, FTP, SMB/CIFS, TFTP и SMTP. При идентификации партнеров по связи уровень приложения определяет личность и доступность партнеров по связи для приложения с данными для передачи. Наиболее важным различием на уровне приложения является различие между объектом-приложением и приложением. Например, веб-сайт бронирования может иметь два объекта-приложения: один использует HTTP для связи со своими пользователями, а другой — протокол удаленной базы данных для записи резервирований. Ни один из этих протоколов не имеет ничего общего с оговорками. Эта логика находится в самом приложении. Уровень приложений не имеет средств для определения доступности ресурсов в сети. [4]
Межуровневые функции — это сервисы, которые не привязаны к конкретному уровню, но могут влиять на более чем один уровень. [34] Некоторые ортогональные аспекты, такие как управление и безопасность , затрагивают все уровни (см. Рекомендацию ITU-T X.800 [35] ). Эти услуги направлены на улучшение триады ЦРУ — конфиденциальности , целостности и доступности — передаваемых данных. На практике межуровневые функции являются нормой, поскольку доступность услуги связи определяется взаимодействием между проектом сети и протоколами управления сетью .
Конкретные примеры межуровневых функций включают следующее:
Ни эталонная модель OSI, ни какие-либо спецификации протокола OSI не описывают какие-либо программные интерфейсы, кроме намеренно абстрактных описаний сервисов. Спецификации протокола определяют методологию связи между узлами, но программные интерфейсы зависят от реализации.
Например, спецификация интерфейса сетевого драйвера (NDIS) и открытый интерфейс передачи данных (ODI) являются интерфейсами между средой передачи (уровень 2) и сетевым протоколом (уровень 3).
В таблице ниже представлен список уровней OSI, исходных протоколов OSI и некоторых приблизительных современных совпадений. Это соответствие грубое: модель OSI содержит особенности, отсутствующие в более поздних системах, таких как стек IP в современном Интернете. [26]
Проектирование протоколов в модели Интернета TCP/IP не связано со строгой иерархической инкапсуляцией и многоуровневым представлением. RFC 3439 содержит раздел под названием «Многослойность считается вредной ». [43] TCP/IP признает четыре широких уровня функциональности, которые вытекают из области действия содержащихся в них протоколов: область применения программного обеспечения; транспортный путь между хостами; диапазон межсетевого взаимодействия; и объем прямых ссылок на другие узлы локальной сети. [44]
Несмотря на то, что используется концепция многоуровневого образования, отличная от модели OSI, эти уровни часто сравнивают со схемой многоуровневого образования OSI следующим образом:
Эти сравнения основаны на исходной семиуровневой модели протокола, определенной в ISO 7498, а не на уточнениях внутренней организации сетевого уровня.
Набор протоколов OSI , указанный в рамках проекта OSI, многие считали слишком сложным, неэффективным и в значительной степени нереализуемым. [45] Применив подход «модернизации погрузчика» к сети, он предусматривал устранение всех существующих сетевых протоколов и замену их на всех уровнях стека. Это затруднило внедрение, и этому сопротивлялись многие поставщики и пользователи, инвестировавшие значительные средства в другие сетевые технологии. Кроме того, протоколы включали так много дополнительных функций, что реализации многих поставщиков не были совместимыми. [45]
Хотя на модель OSI все еще часто ссылаются, набор протоколов Интернета стал стандартом для сетей. Прагматичный подход TCP/IP к компьютерным сетям и независимым реализациям упрощенных протоколов сделал его практической методологией. [45] Некоторые протоколы и спецификации в стеке OSI продолжают использоваться, одним из примеров является IS-IS , который был указан для OSI как ISO/IEC 10589:2002 и адаптирован для использования в Интернете с TCP/IP как RFC 1142.
{{cite web}}
: CS1 maint: others (link)