Ни один курс по сетевым технологиям не обходится без модели Open Systems Interconnection или попросту OSI. Как говорится, «это баааза», на принципах которой создавались другие современные модели. Хотя сегодня она не особо применяется на практике, это не значит, что сетевым специалистам не нужно понимать ее принципы.  История модели OSI задокументирована не полностью, но нам известны имена людей и названия организаций, вовлеченных в ее создание. Поэтому в этой статье были собраны известные факты об OSI на основе материалов из Интернета, например, онлайн-книги Джеймса Пелки «History And Development Of The Osi Model» и данных из интервью 1 и интервью 2 с Чарльзом Бакманом. Также на Habr я наткнулась на перевод статьи «OSI: Интернет, которого не было», где представлена история о моделях OSI и TCP/IP. Однако я решила самостоятельно изучить истоки OSI и больше углубится в этот период. Если вам интересно понять, что же тогда происходило, то приступим. Начнем с главных героев этой истории. Honeywell Information System – американская корпорация, производящая электронные системы управления и автоматизации. Именно здесь была собрана группа ученых, работающая над созданием семиуровневой модели.   Майк Канепа (Mike Canepa) и Чарльз Бакман (Charles Bachman) – ученые и главы группы разработки модели OSI в компании Honeywell Information System. К сожалению, о Майке Канепа известно мало, но он часто упоминается в этой истории. А вот Чарльз Бакман является известным специалистом, интервью которого позволяют понять, что происходило в период разработки OSI. Он был пионером в области управления компьютерными системами и разработки баз данных. В группе создания OSI Чарльз также являлся главным техническим специалистом.  Юбер Циммерманн (Hubert Zimmerman) – французский инженер-программист, специалист по компьютерным сетям и один из председателей группы ISO. Был одной из ключевых фигур, продвигающей идею эталонной модели OSI. Следующая и важнейшая компания в этой истории – это Международная организация по стандартизации (ISO). Независимая неправительственная организация, которая занимается разработкой международных стандартов. Здесь также стоит упомянуть американское объединение ANSI, поддерживающее деятельность ISO. История разработки OSI началась с небольшой группы ученых, во главе которой стояли Майк Канепа и Чарльз Бакман. В начале и середине 1970-х годов основное внимание группы было сосредоточено на проектировании и разработке прототипов систем для компании Honeywell Information System. А в середине 1970-х группа поняла, что для поддержки машин с базами данных распределенного доступа и их взаимодействия необходима более структурированная коммуникационная архитектура. Ученые стали изучать некоторые из существующих тогда решений, в том числе и многоуровневую сетевую архитектуру IBM (SNA). Уже тогда они поняли, что будут конкурировать с ней, так как модель оказалась схожа с той, что разрабатывали в Honeywell. SNA (Systems Network Architecture) была создана IBM для определения общих соглашений связи и передачи данных между аппаратными и программными продуктами IBM. Она представляла собой иерархический подход к системам и имела архитектуру терминал-компьютер. В одном из своих интервью Чарльз Бакман отмечает, что у SNA были фундаментальные проблемы, связанные с ее иерархической системой, поэтому группа работала над собственной моделью.   Возвращаемся к истории. Результатом исследований и работы над проектированием собственного решения стала разработка в 1977 году многоуровневой архитектуры, известной как архитектура распределенных систем HDSA (Honeywell Distributed System Architecture). Этот проект создавался, чтобы предоставить виды протоколов «процессор-процессор» и «процессор-терминал», необходимые для взаимодействия произвольного количества машин и произвольного количества людей. Это должно было стать основой для создания системных приложений (Чарльз Бакман, интервью Джеймса Л.Пелки).   В 1977 году Британский институт стандартов предложил Международной организации по стандартизации (ISO) создать стандарты для открытого взаимодействия между устройствами. Новые стандарты должны были предложить альтернативу закрытым системам традиционных компьютеров, разработанных без возможности взаимодействия друг с другом.  В результате ISO сформировала комитет по взаимосвязи открытых систем (OSI). А американскому национальному институту стандартов (ANSI), входящему в ISO, было поручено разработать предложения для первого заседания комитета. Бакман принял участие во встречах ANSI и представил многоуровневую модель. Она была выбрана как единственное предложение, которое представили комитету ISO SC-16. С 28 февраля по 2 марта 1978 года в Вашингтоне проходило собрание ISO, где команда Honeywell презентовала свое решение ISO. На встрече собралось множество делегатов из десяти стран и наблюдатели из 4 международных организаций. На этом совещании было достигнуто соглашение, что многоуровневая архитектура HDSA удовлетворяет большинству требований и что ее можно будет расширить позже.  Для дальнейшей работы над усовершенствованием модели было решено собрать рабочие группы. Их главной целью было составление общего международного архитектурного положения. Модель, которую представили на собрании, состояла из шести слоев, куда изначально не входил нижний, физический уровень. И здесь вступает в игру Юбер Циммерманн, председатель OSI и глава архитектурной группы, который и предложил включить в модель физический уровень. Необходимо было узнать, как подавать импульсы на провода. Чарльз Бакман отмечает, что Юбер был одним из самых важных людей в этом комитете, с точки зрения его вклада в работу.   Ученые проводили собрания каждые шесть месяцев и укладывались в очень жесткие графики. В интервью Бакман вспоминает, что все ночи, в которые проходили встречи и велись работы, были долгими и поздними, группы стремились достичь главной цели и создать международное предложение по стандартизации. Следующая встреча была в Париже. Перед ней группа ученых в 2 или 3 часа ночи обновляла и копировала текст документа (вспоминаются студенты перед сессией). Забавный факт: 6 или 7 человек группы Бакмана поместились, а точнее навалились друг на друга, в маленькую французскую машину Юбера Citroën 2CV (Deux Chevaux), чтобы успеть на собрание. Цель, которая двигала Бакмана и его коллег вперед – это возможность использовать модель на практике, познакомить всех с понятием многоуровневой архитектуры.  Бакман отмечает, что каждая встреча была важна, на всех из них добивались прогресса. Однако на каждом собрании всегда присутствовали новые люди, поэтому часть времени тратилась на то, чтобы вовлечь их в процесс. Начиная с 1977 года, ISO провела программу по разработке общих стандартов и методов создания сетей, но аналогичный процесс появился в некоммерческой организации по стандартизации информационных и коммуникационных систем (ECMA) и Международном консультативном комитете по телеграфу и телефону (CCITT). Делегаты от этих групп присутствовали на собраниях ISO, и все они работали над одной целью. Позже CCITT приняла документы, которые почти идентичны документам ISO, и группа стала сотрудничать с ISO. В 1983 году документы CCITT и ISO были объединены, чтобы сформировать Базовую эталонную модель взаимодействия открытых систем или просто модель OSI. Общий документ был опубликован в 1984 году как стандарт ISO 7498. Теперь немного подробнее о самой модели OSI и ее принципах. Как вы поняли из истории, это набор правил, который описывает процесс взаимодействия устройств по сети. OSI выступает первой стандартной моделью в области сетевых коммуникаций. По модели процесс передачи данных по сети происходит постепенно от одного уровня к другому. На каждом из них используются информация с прошлого уровня и определенные протоколы. Главными героями здесь выступают устройства отправителя и получателя, а также сами передаваемые данные. И как раз процесс обмена информации между устройствами определяет модель OSI.  На физическом уровне информация предстает в виде битов, а на прикладном она отражается в более привычном для нас виде, в виде данных. Существует два процесса перехода от первого уровня к седьмому и наоборот. Первый – это инкапсуляция, когда данные отправляются с устройства и переводятся в биты. Второй – декапсуляция, обратный переход, когда биты трансформируются в данные. Разбираемся, что конкретно делают уровни, и что же там происходит. Смотрим на модель снизу вверх. Начнем (кто бы удивился) с уровня 1. Здесь происходит обмен оптическими, электрическими или радиосигналами между устройствами отправителя и получателя.  На этом уровне железо не распознает данные в классическом для нас виде (картинки, текст, видео), но оно понимает биты (единицы и нули) и работает только с сигналами. Таким оборудованием выступают концентраторы, медиаконвертеры или репитеры. Здесь информация или биты передаются либо по проводам, кабелям, либо без них, например через Bluetooth, Wi-Fi.  Когда возникает проблема с сетью, многие специалисты сразу же обращаются к физическому уровню, чтобы проверить, например, не отключен ли сетевой кабель от устройства. Мы прошли первый уровень. Что же дальше? Если в локальной сети находится более двух устройств, то необходимо определить, куда конкретно направлять информацию. Этим занимается как раз канальный уровень, принимающий на себя важную роль адресации.  Второй уровень принимает биты и трансформирует их в кадры (фреймы). Здесь существуют MAC-адреса (Media Access Control), которые необходимы для идентификации устройств. На втором уровне происходит еще проверка на ошибки, и исправление информации, а также управление ее передачей. Этим занимается LLC (Logical Link Control). На канальном уровне работают уже более умные железки – коммутаторы. Их задачей является передача кадров от одного устройства другому, используя MAC-адреса. На третьем уровне происходит маршрутизация трафика. Этим занимаются такие устройства, как роутеры или маршрутизаторы.  На сетевом уровне работает протокол ARP (Address Resolution Protocol), который определяет соответствие между логическим адресом сетевого уровня (IP) и физическим адресом устройства (MAC). Здесь пересылаемая информация выступает уже в виде пакетов, состоящих из заголовка и поля данных. Информация об известных IP и MAC-адресах хранится в виде таблицы (ARP-таблица) с данными, что позволяет устройствам не тратить время на повторную идентификацию.  Четвертый уровень получает пакеты и передает их по сети. Он отвечает за установку соединения, надежность и управление потоком. Блоки данных делятся на отдельные фрагменты, размеры которых зависят от используемого протокола. Главными героями тут выступают 2 протокола TCP (Transmission Control Protocol) и UDP (User Datagram Protocol). В чем их отличие и когда их применять? При транспортировке данных, наиболее восприимчивых к потерям, например, web-страницы, задействуется протокол TCP с установлением соединения. Он контролирует целостность информации, в данном случае нашей страницы, ибо потеря какого-то контента заставит задуматься пользователя о его полезности. Чтобы сделать передачу более эффективной и быстрой, транспортный уровень разбивает данные на более мелкие сегменты. UDP-протокол используется с данными, для которых потери не так критичны, например, мультимедиа-трафик. Для них более заметна будет задержка, поэтому UDP обеспечивает связь без установки соединения. Во время передачи данных с помощью протокола UDP, пакеты делятся уже на автономные датаграммы. Они могут доставляться по разным маршрутам и в разной последовательности. Уровни с пятого по седьмой уже работают с чистыми данными. И здесь за дело берутся не сетевые инженеры, а разработчики. Сеансовый уровень, исходя из названия, отвечает за поддержание сеанса или сессии. Он координирует коммуникацию между приложениями и отвечает за установление, поддержание и завершение связи, синхронизацию задач и сам обмен информацией. Примером для пятого уровня можно назвать созвон в Zoom или прямой эфир на YouTube. Во время сессии необходимо обеспечивать синхронизированную передачу аудио и видео для всех участников, а также поддерживать саму связь. За это как раз отвечают протоколы сеансового уровня (RPC, H.245, RTCP). Шестой уровень подготавливает информацию для последнего и преобразует (сжимает, кодирует, шифрует) их в понятный язык для пользователя или машины. Например, если вы отправляете картинку, то она сначала приходит в виде битов, а потом трансформируются в JPEG, GIF или другой формат. Верхний уровень модели OSI – это прикладной. С помощью своих протоколов он отображает данные в понятном конечному пользователю формате. Сюда входят такие технологии, как HTTP, DNS, FTP, SSH и многое другое. Почти каждый человек ежедневно взаимодействует с протоколами прикладного уровня. Чтобы информация могла быть передана по сети от устройства к устройству, данные должны пройти семь кругов, а точнее уровней по модели OSI. Информация передается с уровня 7 вниз на уровень 1 от отправителя, а затем передается с уровня 1 на уровень 7 на устройстве получателя.  Примером передачи данных по модели OSI является приложение электронной почты. Когда пользователь отправляет письмо, оно приходит на уровень представления с использованием определенного протокола (SMTP для исходящей электронной почты). Уровень представления сжимает информацию и отправляет сообщение на сеансовый, который открывает сессию для связи между устройством отправителя и исходящим сервером. Далее вступает в силу транспортный уровень, где сегментируются полученные данные. Затем сетевой уровень разбивает сегменты на пакеты и отправляет их на канальный уровень, где они разбиваются на фреймы. Фреймы переходят на физический уровень, где информация преобразуется в биты и передается через физическую среду, ​​беспроводные соединения или кабели. Когда сообщение доходит до получателя, происходит обратный процесс, где информация переходит из битовых единиц и нулей в сообщение на почте получателя. Как-то так. Если кратко разбирать, что произошло дальше, то в 1970-90-х существовало два конкурирующих стандарта: протокол TCP/IP и OSI. Несмотря на годы разработки, серьезные усилия со стороны лидеров отрасли, правительств и ученых, OSI была отвергнута на практике, и TCP/IP стал стандартом де-факто для всего интернет-трафика. OSI была попыткой отрасли убедить участников согласовать общие сетевые стандарты. В течение периода в конце 1980-х и начале 1990-х инженеры, организации и страны поляризовались по вопросу о том, какой стандарт, модель OSI или TCP/IP сделает компьютерные сети надежными. Однако в то время как OSI разработала свои сетевые стандарты в конце 1980-х, TCP/IP стал широко использоваться для межсетевого взаимодействия. Строгую многоуровневую структуру OSI интернет-защитники считали неэффективной. Модель OSI все еще используется в качестве эталона, однако протоколы, изначально задуманные для этой модели, не приобрели популярности. Некоторые инженеры утверждают, что эталонная модель по-прежнему актуальна для облачных вычислений. Другие говорят, что исходная модель OSI не соответствует сегодняшним сетевым протоколам, и предлагают вместо этого упрощенный подход. В статье была описана история появления модели OSI и принцип ее работы. Она подходит для теоретического понимания сетевого стека, поскольку это базовая и обязательная технология для работы с сетями, но ее, на самом деле, не так просто использовать на практике. В настоящее время применяют модель TCP/IP, на которой работает Интернет. Она имеет аналогичную многоуровневую структуру, но не такую сложную, потому что объединяет некоторые уровни OSI.  Если нашли неточности или знаете дополнительные факты об истории OSI, буду рада видеть их в комментариях. Здесь собраны материалы, которые использовались в статье и которые можно почитать/посмотреть, чтобы еще больше углубится в историю: Почитать об отличиях модели SNA и OSI можно в статье «SNA and OSI: Three Strategies for Interconnection» от Мэтью Тилмана (Matthew A. Tillman) и Дэвида Йена (David Chi-Chung Yen). В интервью Джеймса Пелки Чарльз Бакман отвечает на вопросы о модели OSI,  рассказывает о собраниях ISO и их участниках. Веб-сайт, созданный на основе книги Джеймса Пелки «The History of Computer Communications». Тут собраны личные рассказы людей, участвовавших в развитии компьютерных коммуникаций. В публикации на Habr представлен перевод статьи «OSI: Интернет, которого не было» Эндрю Л. Рассела. Если вы хотите узнать, как же TCP/IP превзошел OSI, то вам сюда. В видеоинтервью Гарденера Хендри Чарльз Бакман рассказывает про «Проект интегрированных систем 2» General Electric, который был предназначен для создания общей «Производственной информации и системы управления» или MIACS. Этот проект, в свою очередь, создал интегрированное хранилище данных (IDS), первую систему управления базами данных. Здесь он также упоминает и про OSI. UPD: Citroën 2CV (Deux Chevaux) — это французский автомобиль, а не британский.  Контент-менеджер в Serverspace