Unlocked VPN для iPhone. 7 дней бесплатно, далее 99 ₽/месЗагрузить в AppStore

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

Blog

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

Открытая Сетевая Модель Osi  Гайд Для Новичков

Понятие протокола

Протоколы обмена (или просто протоколы) необходимы, чтобы участники обмена информацией понимали друг друга. В работе компьютерных сетей задействуется множество протоколов, относящихся к разным сетевым уровням. Например, сетевая карта компьютера следует протоколу, который описывает перевод цифровых данных в передающийся по проводам аналоговый сигнал; браузер связывается с сайтом в Интернете при помощи транспортного протокола TCP; сервер и браузер общаются, используя протокол HTTP.

Иными словами, протокол — это набор соглашений между разработчиками ПО и аппаратуры. Текст протокола отвечает на вопрос: “Что нужно сделать, чтобы программы и устройства могли взаимодействовать с другими программами/устройствами, поддерживающими протокол”. 

OSI

OSI - это аббревиатура от Open Systems Interconnection, что в переводе буквально означает “Взаимодействие открытых систем”. Речь не идет об Open Source, открытые системы в данном случае являются системами, построенными на основе открытых (общедоступных) спецификаций, соответствующих стандартам. 

Часто можно встретить термин “эталонная модель OSI”. Эталонная модель описывает, какие уровни должны быть в сети и какие функции выполняются на каждом из уровней. OSI модель разделяет все протоколы на 7 таких уровней:

  • Физический (Physical)
  • Канальный (Datalink)
  • Сетевой (Network)
  • Транспортный (Transport)
  • Сеансовый (Session)
  • Представительный (Presentation)
  • Прикладной (Application)

Модель OSI не включает описание протоколов; они определяются в отдельных стандартах. Исторически вышло, что на практике модель взаимодействия открытых систем не применяется. Раньше существовали её буквальные реализации, содержащие ровно 7 слоев. Однако со временем их вытеснил менее предписывающий набор протоколов TCP/IP, на котором построен современный Интернет. 

Тем не менее ныне используемые протоколы приблизительно соответствуют уровням оси, а сама модель используется в качестве общего языка для описания устройства сетей. 

Физический уровень

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

Например, в случае обычной локальной сети на основе витой пары применяется спецификация 100BASE-TX (стандарт IEEE 802.3u), определяющая кабели и разъемы для соединения, технические характеристики проводов, частоты, напряжение, кодировку и многое другое. Подключения через Wi-Fi сложнее, так как данные передаются по радиоканалам, а эфир один на всех. Взаимодействие Wi-Fi устройств описывается спецификацией IEEE 802.11, которая, как и Ethernet, включает помимо физического уровня часть канального. 

При выходе в Интернет через сеть сотовой телефонной связи используются спецификации GSM, включающие специальные протоколы (например GPRS) и затрагивающие не только два первых, но и сетевой уровень. Бывают и относительно простые протоколы, например RS232. Он будет использоваться, если соединить два компьютера нуль-модемным кабелем через COM-порты.

Канальный уровень

Далее располагается канальный уровень модели osi. На этом слое пересылаются не биты, а целые сообщения (кадры, фреймы). Канальный уровень получает с физического поток бит, находит начало и конец сообщения и упаковывает биты в кадр. Также происходит обнаружение и коррекция ошибок. В многоточечных сетевых соединениях, где один и тот же канал связи используется разными компьютерами, канальный уровень дополнительно обеспечивает физическую адресацию и управление доступом к разделяемой среде передачи данных. 

Часть задач, которые в теории решают протоколы этого уровня, решена в спецификациях Ethernet и Wi-Fi, но есть кое-что еще. Сетевые интерфейсы в многоточечном соединении опознают друг друга по специальным шестибайтовым идентификаторам, mac-адресам. При настройке сети сетевые адаптеры должны знать, кто из них отвечает за какой сетевой адрес (ip-адрес), чтобы отправлять пакеты (блоки данных, передаваемые в пакетном режиме) по назначению. Для автоматического построения таблиц соответствия ip- и mac-адресов используется протокол ARP (Address Resolution Protocol).

В соединениях “точка-точка” ARP не нужен. Зато часто применяется протокол PPP (Point to Point Protocol). Кроме структуры кадра и контроля его целостности, он содержит правила для установления соединения, проверки состояния линии связи и аутентификации участников.

Сетевой уровень 

Следующий уровень — сетевой уровень модели osi. Он предназначен для построения крупных составных сетей на основе различных сетевых технологий. На этом уровне обеспечивается согласование различий в разных технологиях канального уровня и общая адресация с помощью глобальных адресов, позволяющих однозначно определить компьютер в сети. Также выполняется маршрутизация — определение маршрута пересылки пакетов через промежуточные узлы. 

Иногда можно столкнуться с утверждением, что в Интернете в роли этого уровня выступает протокол IP (Internet Protocol). С одной стороны это так: именно IP определяет структуру отдельного пакета, передающегося по сети через шлюзы, систему сетевых адресов и некоторые другие функции. С другой стороны существует несколько других протоколов, которые также можно отнести к сетевому уровню, хотя они и работают “поверх” IP. 

Наиболее важным среди них можно считать протокол ICMP (Internet Control Message Protocol). Благодаря ему участники соединений обмениваются сообщениями о всяких штатных и нештатных ситуациях: обрыв соединения, отсутствие подходящего маршрута и другие случаи невозможности доставки пакета. Иногда сообщения ICMP содержат рекомендации по использованию альтернативного маршрута.

Транспортный уровень

Пакеты, передаваемые по сети при помощи протоколов сетевого уровня, обычно ограничены в размерах. Они могут доставляться не в том порядке, в котором были отправлены, теряться, или, наоборот, дублироваться. Прикладным программам требуется более высокий уровень сервиса, обеспечивающий надежность доставки данных и простоту работы. За это как раз отвечают протоколы транспортного уровня модели osi. Они следят за доставкой пакетов, отправляя и анализируя соответствующие подтверждения, нумеруют пакеты и расставляют их в нужном порядке после получения.

Как говорилось выше, протоколы сетевого уровня не гарантируют доставку пакета. Отправленный пакет может потеряться или, наоборот, прийти в двух экземплярах, а пакеты, отправленные раньше других, могут прийти к получателю позже. Содержимое такого пакета обычно называют дейтаграммой (datagram). 

Одним из самых простых транспортных протоколов является UDP (user datagram protocol). Участники сетевого взаимодействия, работающие на одном компьютере, идентифицируются целыми числами, называемыми номерами портов (или просто портами). Протокол UDP предписывает добавлять к передаваемым через сеть данным номер порта отправителя и получателя, длину дейтаграммы и ее контрольную сумму. Все это “заворачивается” в пакет в соответствии с соглашениями протокола IP. При этом ответственность о подтверждениях, повторных отправках, о делении информации на небольшие порции и о последующем восстановлении исходной последовательности лежит на авторе программ. Поэтому UDP не защищает от возможности потери, дублирования пакета и нарушения порядка получения  обеспечивается только целостность данных внутри одной дейтаграммы.

Существует также второй вид транспортного взаимодействия — потоковое. Решение всех проблем, связанных с потерями пакетов, восстановлением данных из отдельных фрагментов берет на себя реализация транспортного протокола, которая оказывается гораздо сложнее реализации протокола дейтаграммного. Соответствующий транспортный протокол, используемый в Интернете, называется TCP (transmission control protocol). В отличие от работы с UDP, при потоковой работе необходимо установить соединение. Гарантируется, что все байты, записанные в поток, будут затем доступны для чтения на другом конце потока, причем их порядок будет сохранен; при невозможности соблюдения этой гарантии соединение окажется разорвано, о чем узнают оба партнера. Протокол TCP предусматривает целый ряд нетривиальных соглашений, к счастью, всю их реализацию берет на себя операционная система.

Остальные уровни

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

Следующий слой — уровень представления. Его задача заключается в предоставлении данных в виде, понятном как отправителю, так и получателю. Сюда можно включить различные форматы данных и правила их интерпретации: протоколы кодировки текста (ASCII, UTF-8, koi8r), спецификации разнообразных версий HTML\XHTML, графические форматы (JPEG, GIF, PNG), набор спецификаций MIME и прочее. На уровне представления реализуется шифрование и дешифрование. Самые популярные примеры - Transport Layer Security (TLS)/Secure Socket Layer (SSL).

С прикладным уровнем все просто. На нем организуется взаимодействие приложений, которыми пользуются конечные пользователи. Сюда входит электронная почта, “Всемирная паутина” (World Wide Web), социальные сети, видео и аудиосвязь и т.п.

Плюсы и минусы 

Модель OSI была принята Международной организацией по стандартизации (ISO) в 1983 году. В то время сетевые технологии активно развивались. Пока в комитете спорили о стандартах, все постепенно переходили на стек TCP/IP, вытесняющий другие протоколы. Когда свет увидел реализацию протоколов OSI, на нее обрушился шквал критики. Их ругали за несоответствие реальным технологиям, неполную спецификацию, малый спектр возможностей по сравнению с существующими протоколами. 

Кроме того, эксперты отмечали деление на 7 уровней необоснованным. Некоторые слои практически не использовались, а одни и те же задачи решались на разных уровнях. Специалисты шутят, что модель OSI вышла семиуровневой, потому что в соответствующем комитете образовалось 7 подкомитетов и каждый предложил что-то свое. Между тем набор протоколов TCP/IP, на котором построен весь современный Интернет, разрабатывался узкой группой людей по принципу ad hoc - решение задачи здесь и сейчас. Никаких комитетов в создании TCP/IP участия не принимало. 

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

Telegram
VK
Скопировать ссылку

Зарегистрируйтесь и начните пользоваться
сервисами Timeweb Cloud прямо сейчас

15 лет опыта
Сосредоточьтесь на своей работе: об остальном позаботимся мы
165 000 клиентов
Нам доверяют частные лица и компании, от небольших фирм до корпораций
Поддержка 24/7
100+ специалистов поддержки, готовых помочь в чате, тикете и по телефону