В этой статье вы узнаете об основных понятиях модели Open Systems Interconnections (OSI) в простой и доступной форме. Многие, вероятно, знают основы того, что такое интернет и как он работает. Есть клиент и сервер, и они «общаются» друг с другом с помощью чего-то, называемого HTTP или HTTPS?

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

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

Модель Open Systems Interconnection или OSI - это, по сути, справочная система, определяющая, как компьютеры взаимодействуют друг с другом по сети.

Она была создана в 1983 году представителями телекоммуникационных компаний и официально стандартизирована в 1984 году Международной организацией по стандартизации (ISO).

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

Семь уровней:

  • Прикладной уровень

  • Уровень представления

  • Сеансовый уровень

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

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

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

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

Если представить это в терминах кодирования, то каждый слой - это класс с некоторой основной функциональностью, и каждый класс взаимодействует только с классом выше или ниже его.

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

Эта модель в «реальной жизни» называется моделью TCP/IP, на основе которой работает Интернет.

Модели OSI и TCP/IP
Модели OSI и TCP/IP

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

Почему важно понимать модель OSI?

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

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

Семь уровней модели OSI

Прикладной уровень(Application Layer)

Application Layer
Application Layer

Прикладной уровень - это то место, где работает большинство программистов.

Но это не конкретные приложения, такие как Chrome, Tik-Tok или Telegram. Это более фундаментальные вещи, такие как протоколы.

  • Ваш браузер делает запрос к веб-серверу по протоколу HTTP.

  • Ваше приложение электронной почты использует протокол SMTP для отправки и получения электронных писем.

  • Без протокола DNS вам пришлось бы набирать 142.250.150.138 вместо google.com.

  • В двух словах, прикладной уровень - это основа, которую используют почти все приложения для конечных пользователей.

Уровень представления(Presentation Layer)

После того как клиент выполнил HTTP-запрос, сам запрос передается на уровень представления. Этот слой выполняет три основные функции:

Шифрование и дешифрование

Я думаю вы не хотите, чтобы ваши данные находились в открытом доступе, поэтому умные люди создали систему Transport Layer Security(TLS). По сути, он шифрует ваши данные.И также отвечает за расшифровку запросов, поступающих с других серверов, для использования на прикладном уровне.

Сериализация и десериализация

Это сложные слова, но по сути они означают «перевод». Мы хотим «перевести» наши данные в формы, понятные нашему приложению. Например, простые структуры данных можно перевести в «объекты», которые понимает наше приложение JavaScript. С другой стороны, если мы хотим, чтобы наши данные передавались вниз по уровню, мы переведем наш объект в простые структуры данных, которые могут быть понятны на нижних уровнях.

Сжатие

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

Сеансовый уровень(Session Layer)

Сеансовый уровень отвечает за открытие, закрытие и поддержание соединений между клиентом и сервером. Этот уровень немного запутанный. И на самом деле я не смог найти для него много вариантов использования. Основная функция сеансового уровня - управление соединениями между клиентом и сервером.

Но что это значит? Допустим, вы хотите перейти на сайт google.com. Для этого вам сначала нужно установить соединение с google.com, поэтому вы говорите: «Эй, сервер, как дела, я хочу подключиться к google.com». Сервер отвечает: «Да, конечно». Поздравляем, вы только что установили соединение с сервером google.com и можете свободно отправить GET-запрос для получения страницы.

Короче говоря, этот уровень используется для:

  • открытия соединений

  • поддержания соединений

  • закрытия соединений.

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

Транспортный уровень (Transport Layer)

TCP и UDP
TCP и UDP

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

Два наиболее популярных из них:

  • Transmission Control Protocol (TCP)

  • Протокол пользовательских датаграмм (UDP)

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

С другой стороны, UDP не имеет статистики, то есть не сохраняет состояние между клиентом и сервером. Кроме того, он очень легкий и быстрый. Но его недостатком является ненадежность: пакеты могут пропадать, повреждаться и так далее. UDP используется в основном в тех случаях, когда вам неважно, потеряете ли вы несколько пакетов, на��ример, при передаче потокового видео. Также следует помнить, что данные на этом уровне называются сегментами.

Сетевой уровень (Network Layer)

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

Канальный уровень (Data-Link Layer)

Канальный уровень состоит из двух частей: MAC и LLC.

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

  • Logical Link Layer (LLC) - этот уровень обеспечивает управление потоком, подтверждение и обработку ошибок в случае, если что-то пошло не так.

  • Media Access Control (MAC) - этот уровень отвечает за присвоение уникального идентификационного номера, основанного на вашей сетевой карте, называемого MAC-адресом. Это означает, что ни одно устройство не имеет одинакового MAC-адреса.

Пакеты берутся с сетевого уровня и инкапсулируются с добавлением новых заголовков для MAC-адресов клиента и сервера. В конце пакета добавляется еще одно подмножество данных, которое используется для обнаружения ошибок. Это называется хвостом. После добавления этих метаданных данные теперь называются кадром.

Физический уровень(Physical Layer)

Биты могут передаваться с помощью электричества, радиоволн или даже света.

Когда мы говорим «физический» - мы говорим не только о проводах. Данные могут передаваться самыми разными способами, например радиоволнами или даже светом. К сожалению, эти способы передачи не знают «кадров», они знают только биты. Функция этого уровня заключается в том, чтобы просто преобразовать кадры в байты (8 бит) и отправить их по какому-либо способу транспортировки (электричество, волны, свет и так далее).

В итоге наш запрос будет передан на сервер, а сервер пройдет через тот же процесс, но в обратном порядке.

Заключение

  • Что модель OSI - это модель того, как две системы общаются друг с другом в сети.

  • В реальной жизни мы не используем эту модель. Вместо нее мы используем другую похожую модель, которая называется моделью TCP/IP.

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