Модель OSI — это логическая и концептуальная модель, которая определяет сетевую связь, используемую системами, открытыми для взаимосвязи и общения с другими системами. Модель OSI (Open System Interconnection) также определяет логическую сеть и эффективно описывает передачу компьютерных пакетов с помощью протоколов различных уровней.
Модель OSI можно рассматривать как универсальный язык для компьютерных сетей. Она основана на концепции разделения коммуникационной системы на семь абстрактных уровней, каждый из которых накладывается на предыдущий.
Почему модель OSI имеет значение?
Модель Open System Interconnection (OSI) определила общую терминологию, используемую в обсуждениях и документации по сетевым технологиям. Это позволяет нам разобрать очень сложный коммуникационный процесс на части и оценить его компоненты.
Хотя эта модель не реализована непосредственно в наиболее распространенных сегодня сетях TCP/IP, она все же может помочь нам сделать гораздо больше, например:
- Облегчить поиск и устранение неисправностей и помочь выявить угрозы во всем стеке.
- Стимулировать производителей оборудования к созданию сетевых продуктов, которые могут взаимодействовать друг с другом по сети.
- Очень важно для развития мышления, ориентированного на безопасность.
- Разделение сложной функции на более простые компоненты.
Слои
Семь уровней абстракции модели OSI можно определить следующим образом, сверху вниз:
Приложение
Это единственный уровень, который непосредственно взаимодействует с данными пользователя. Такие программные приложения, как веб-браузеры и почтовые клиенты, полагаются на прикладной уровень для инициирования взаимодействия. Однако следует уточнить, что клиентские программные приложения не являются частью прикладного уровня, скорее прикладной уровень отвечает за протоколы и манипуляции с данными, на которые опирается программное обеспечение для представления пользователю значимых данных. К протоколам прикладного уровня относятся HTTP, а также SMTP.
Презентация
Презентационный уровень также называют уровнем перевода. Данные с прикладного уровня извлекаются здесь и манипулируются в соответствии с требуемым форматом для передачи по сети. Функциями презентационного уровня являются перевод, шифрование/дешифрование и сжатие.
Сессия
Этот уровень отвечает за открытие и закрытие связи между двумя устройствами. Время между открытием и закрытием связи называется сеансом. Сеансовый уровень обеспечивает, чтобы сеанс оставался открытым достаточно долго для передачи всех данных, которыми обмениваются, а затем быстро закрывает сеанс, чтобы избежать нерационального использования ресурсов. Сеансовый уровень также синхронизирует передачу данных с контрольными точками.
Транспорт
Транспортный уровень (также известный как уровень 4) отвечает за сквозную связь между двумя устройствами. Сюда входит получение данных с сеансового уровня и разбиение их на фрагменты, называемые сегментами, перед отправкой на сетевой уровень (уровень 3). Он также отвечает за сборку сегментов на принимающем устройстве в данные, которые может потреблять сеансовый уровень.
Сеть
Сетевой уровень отвечает за облегчение передачи данных между двумя различными сетями. Сетевой уровень разбивает сегменты транспортного уровня на более мелкие единицы, называемые пакетами, на устройстве отправителя и собирает эти пакеты на устройстве получателя. Сетевой уровень также находит наилучший физический путь для того, чтобы данные достигли места назначения, это называется маршрутизацией. Если два устройства находятся в одной сети, то сетевой уровень не нужен.
Канальный уровень
Канальный уровень очень похож на сетевой уровень, за исключением того, что канальный уровень обеспечивает передачу данных между двумя устройствами в одной сети. Канальный уровень принимает пакеты от сетевого уровня и разбивает их на более мелкие части, называемые кадрами.
Физический
Этот уровень включает физическое оборудование, участвующее в передаче данных, такое как кабели и коммутаторы. На этом уровне данные преобразуются в битовый поток, который представляет собой строку из 1 и 0. Физический уровень обоих устройств также должен договориться о сигнальном соглашении, чтобы можно было отличить 1 от 0 на обоих устройствах.
Эта статья является частью моего открытого курса по проектированию систем, доступного на Github.
karanpratapsingh / system-design
Узнайте, как проектировать системы в масштабе и подготовиться к собеседованиям по проектированию систем
Курс по проектированию систем
Привет, добро пожаловать на курс. Я надеюсь, что этот курс обеспечит вам отличный опыт обучения.
Оглавление
-
Начало
- Что такое проектирование систем?
-
Глава I
- IP
- Модель OSI
- TCP и UDP
- Система доменных имен (DNS)
- Балансировка нагрузки
- Кластеризация
- Кэширование
- Сеть доставки контента (CDN)
- Прокси
- Доступность
- Масштабируемость
- Хранение
-
Глава II
- Базы данных и СУБД
- Базы данных SQL
- Базы данных NoSQL
- Базы данных SQL против баз данных NoSQL
- Репликация баз данных
- Индексы
- Нормализация и денормализация
- Модели согласованности ACID и BASE
- Теорема CAP
- Теорема PACELC
- Транзакции
- Распределенные транзакции
- Шардинг
- Последовательное хэширование
- Федерация баз данных
-
Глава III
- N-уровневая архитектура
- Брокеры сообщений
- Очереди сообщений
- Publish-Subscribe
- Корпоративная сервисная шина (ESB)
- Монолиты и микросервисы
- Архитектура, управляемая событиями (EDA)
- Сорсинг событий
- Разделение ответственности команд и запросов (CQRS)
- API-шлюз
- REST, GraphQL, gRPC
- Длительный опрос, WebSockets, события, отправляемые сервером (SSE)
-
Глава IV
- Геохашинг и квадтрики
- Прерыватель цепи
- …