Включите исполнение JavaScript в браузере, чтобы запустить приложение.

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

Что такое модель OSI и как она упрощает понимание сетевого взаимодействия? Погружаемся в мир сетевых технологий и разбираем 7 уровней модели OSI. Примеры и понятные объяснения — в статье GitVerse.

Что такое модель OSI

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

  • стандартизация — наличие общих правил делает возможным взаимодействие между устройствами от разных производителей;
  • оптимизация разработки и управления сетевыми системами за счет уровневой структуры модели.

Сегодня же интернет основан на модели TCP/IP — она появилась раньше и, соответственно, быстрее стала использоваться как стандарт. Тогда зачем знать о модели OSI? Чтобы ответить на этот вопрос, рассмотрим разницу между этими двумя моделями:

  • OSI имеет семь уровней, а TCP/IP — только четыре;
  • содержимое уровней TCP/IP менее строгое;
  • чтобы передача данных происходила корректно, необходимы все четыре уровня модели TCP/IP, а с OSI ситуация другая: некоторые уровни можно пропускать, правда, это правило действует не для всех приложений.

Таким образом, модель OSI можно использовать как теоретическую основу. Во-первых, она помогает подробнее рассмотреть и изучить работу сетей. Во-вторых, на нее можно опираться при устранении неполадок: за счет того, что OSI имеет больше уровней, чем TCP/IP, проблему проще классифицировать по уровню и работать непосредственно с ним.

Как работает модель OSI

Модель OSI описывает сетевое взаимодействие между устройствами путем передачи информации через семь уровней, каждый из которых:

  • независим;
  • может взаимодействовать с соседними уровнями (тем, что выше, и тем, что ниже);
  • выполняет определенные функции;
  • добавляет информацию к передаваемым данным (заголовки, метаданные).

Рассмотрим процесс передачи данных более подробно:

  1. Полученные на прикладном уровне данные передаются на следующий уровень — представления.
  2. К данным добавляется какая-то информация, после чего они передаются дальше вниз.
  3. Когда данные достигают физического уровня, они преобразуются в биты и передаются получателю по сети.
  4. На стороне получателя данные также поступают на физический уровень, а потом поднимаются, то есть распаковываются, до тех пор, пока не достигнут прикладного.

Несмотря на сложности процесса, в реальности все происходит очень быстро. Например, если пользователь вводит запрос в браузере, то в среднем он получает ответ за 200–400 миллисекунд (0,2–0,4 секунды).

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

Прикладной (L-7 OSI)

Верхний уровень модели OSI называется прикладным (application layer). Его основная функция — предоставить приложению (а вместе с ним и пользователю) интерфейс для работы с сетью и взаимодействия с другими уровнями. То есть непосредственно L-7 не занимается передачей данных: он лишь содержит протоколы, которые могут использовать приложения для доступа к услугам сети, например для запроса сетевых ресурсов или передачи файлов. Многие люди взаимодействуют с протоколами L-7 десятки и сотни раз ежедневно.

Распространенные протоколы на прикладном уровне:

  • HTTP (HyperText Transfer Protocol) — протокол передачи данных в интернете (еще есть HTTPS — аналог HTTP, который поддерживает технологию шифрования TLS/SSL);
  • DNS (Domain Name System) — используется для преобразования доменных имен в IP-адреса;
  • FTP (File Transfer Protocol) — этот протокол нужен для передачи файлов с одного устройства на другое по сети;
  • SMTP (Simple Mail Transfer Protocol) — протокол, который используется для передачи электронной почты.

Представления (L-6 OSI)

На уровне представления (presentation layer) происходит преобразование данных: кодирование или декодирование, сжатие, в некоторых случаях шифрование. Это нужно для того, чтобы данные передавались и отображались корректно: например, два компьютера могут использовать разную кодировку текста — тогда для правильной передачи данных между ними нужно обеспечить совместимость. Сжатие данных нужно, чтобы ускорить их передачу. Например, сжатие картинок на сайте в формат JPEG ускоряет его загрузку.

Соответственно, здесь можно встретить следующие понятия:

  • JPEG, GIF, PNG и MPEG, MP3 — форматы сжатия фото и аудио;
  • SSL (Secure Sockets Layer)/TLS (Transport Layer Security) — протоколы, обеспечивающие защищенную передачу данных по сети;
  • Sockets — программный интерфейс, предназначенный для обмена данными по сети.

Сеансовый (L-5 OSI)

Сеансовый уровень (session layer) управляет установкой соединения (сессии, сеанса) и поддерживает синхронизацию данных. Другими словами, здесь формируется и поддерживается соединение между двумя устройствами, а также при необходимости восстанавливается — например, если произошел сбой в интернет-соединении. 

Простой пример работы L5 — это видеозвонок в каком-то приложении. Когда два пользователя созваниваются, между их устройствами возникает соединение, по которому передается видео и аудио. Для того чтобы звонок продолжался, это соединение нужно поддерживать, а если оно нарушено, его нужно восстановить.

Транспортный (L-4 OSI)

Задачи транспортного уровня (transport layer) соответствуют его названию: он должен передавать данные по сети, при этом контролируя их последовательность и целостность. Обычно здесь используются два протокола:

  • TCP (Transmission Control Protocol), который делит пакет данных на сегменты и гарантирует доставку данных в целостности, но работает медленно относительно UDP. Деление данных на сегменты нужно для их оптимальной передачи в сетях с разной пропускной способностью. TCP используют, например, для передачи файлов по сети или при авторизации пользователя в сервисе;
  • UDP (User Datagram Protocol), который не гарантирует сохранение целостности пакетов, но работает быстрее. Для чего можно использовать UDP? Например, для видеозвонков или в онлайн-играх.

Сетевой (L-3 OSI)

Сетевой уровень (network layer) должен сформировать маршрут, по которому уже пакеты данных отправятся от одного устройства к другому. Для этого MAC-адрес преобразуется в IP (IPv4 и IPv6) с помощью протокола ARP (Address Resolution Protocol), который дополнительно хранит информацию об уже известных устройству IP-адресах. 

Канальный (L-2 OSI)

На канальном уровне (data link layer) данные разбиваются на кадры, или фреймы, каждый из которых содержит информацию об отправителе и получателе в виде MAC-адресов устройств, и, конечно, сами данные. Если, например, пользователь подключен к сети Ethernet, то его устройство передаст фреймы коммутатору, который «узнает» MAC-адрес получателя и направит данные ему. Еще одна задача L2 — проверить и исправить ошибки в полученных данных.

L2 делится на два подуровня:

  • управления доступом к среде (MAC (Media Access Control)) для работы с L1;
  • управления логическим каналом (LLC(Logical Link Control)) для работы с L3.

Физический (L-1 OSI)

Нижний уровень называется физическим (physical layer), его задача — передавать данные по кабелям, проводам, радиоволнам (например, если используется Wi-Fi или Bluetooth). Другими словами, L1 обеспечивает обмен оптическими, электрическими или радиосигналами между устройствами. Здесь данные не могут передаваться в привычном нам виде, поэтому преобразуются в биты.

Преимущества модели OSI

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

Недостатки модели OSI

  • Семиуровневая структура. Плюсы четкого разделения задач по уровням уже были описаны, теперь рассмотрим минусы. Не для каждой сети необходимо использовать все семь уровней: в некоторых случаях лучше объединить несколько из них или не использовать вовсе. И если модель OSI воспринимается разработчиком как единственная и правильная основа для проектирования сетевой архитектуры (которая не требует использования семи уровней), то разработка только усложняется, хотя целью модели является ее упрощение. В этом плане TCP/IP, содержащая 4 слоя, имеет преимущество. 
  • Меньшее распространение по сравнению с TCP/IP. Сейчас большинство реальных сетевых технологий основано на TCP/IP — возможно, в будущем ситуация изменится, но пока что модель OSI применять на практике полноценно нельзя. 
  • Отсутствие конкретных протоколов. Модель OSI описывает только функции каждого уровня: с одной стороны, это плюс, а с другой — причина, по которой эта модель не стала широко применяться на практике. Во-первых, это может усложнить разработку сети, а во-вторых, привести к созданию несовместимых между собой продуктов.

Модель OSI и защита от DDoS

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

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

  • сетевой и транспортный уровни. Сюда относятся SYN-флуд, UDP-флуд, ICMP-флуд и другие атаки, направленные на перегрузку пропускной способности сети (или сервера приложения). «Плюс» таких атак в том, что их признаки относительно легко обнаружить. Что делают, чтобы защититься от них? Ограничивают количество обрабатываемых запросов по протоколу ICMP, настраивают лимиты на объем UDP-трафика, внедряют брандмауэры и системы предотвращения вторжений (IPS): они отслеживают трафик и блокируют подозрительные запросы;
  • прикладной и уровень представления. Здесь распространены атаки HTTP-запросами, DNS-флуд, внедрение SQL-кода, взлом системы шифрования и так далее. В отличие от вышеперечисленных атак, эти менее массовые и направлены на перегрузку конкретного приложения, также их труднее обнаружить. Методы защиты от таких атак: мониторинг сетевого трафика, использование Web Application Firewall, CDN, актуальных протоколов шифрования и двухфакторной аутентификации.

Как модель OSI работает на практике

Один из самых простых примеров, на которых можно рассмотреть работу OSI — это просмотр сайтов в интернете:

  1. Допустим, пользователь вводит в поисковой строке URL страницы, например gitverse.ru, и нажимает на Enter. Затем браузер отправляет запрос на сервер с помощью HTTP или HTTPS (в данном случае HTTPS). В результате запрос должен вернуть данные, которые нужны для корректного отображения страницы. Все это происходит на прикладном уровне.
  2. На уровне представления происходит преобразование данных, а в ситуации с HTTPS-соединением — шифрование с использованием SSL/TLS. Так соединение становится безопасным — пользователи могут не беспокоиться о сохранности данных, которые они оставляют на сайте: адрес, пароль, платежная информация и так далее.
  3. Главная задача следующего (сеансового) уровня — обеспечить устойчивое соединение между браузером и сервером. Это соединение (сеанс) должно оставаться активным во время загрузки или обновления страницы (иначе пользователь будет вынужден, к примеру, заново входить в свой аккаунт при каждом обновлении страницы). Если сеанс прервался, то восстановить его — это тоже задача L6. В контексте нынешних браузеров обычно эти функции берут на себя другие уровни — здесь работа L6 описана для общего понимания.
  4. Транспортный уровень нужен для того, чтобы данные дошли до браузера в целостности. Обычно для этого используется TCP, который делит данные на сегменты и обеспечивает получение браузером каждого из них. Если какой-то сегмент не был доставлен, то он будет отправлен еще раз.
  5. Сетевой уровень должен найти маршрут, по которому пакеты данных отправятся на сервер, или, наоборот, с сервера к браузеру. Для этого используется протокол IP.
  6. Задача канального уровня — передавать кадры данных (полученные в результате преобразования пакетов) по локальной сети, при этом исключая ошибки. Здесь для передачи данных используются MAC-адреса.
  7. На физическом уровне данные передаются в виде битов. Если устройство пользователя подключено к Wi-Fi, то данные передаются по радиоволнам, если у пользователя кабельный интернет — по кабелю.
  8. Сервер получает данные (запрос), они снова поднимаются до 7 уровня и обрабатываются им. Затем сервер формирует ответ, данные «спускаются» на стороне сервера и поднимаются на устройстве пользователя вновь, после чего страница отображается.

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