<НазадЗнакомство с моделью OSI
8/19/2022Всем привет! 🖖
В этой статье мы начнем рассматривать фундаментальную модель сетевого взаимодействия - OSI.
Уже к 70-м годам существовало множество различных стеков коммуникационных протоколов: TCP/IP, IBM SNA и другие. Подобное разнообразие породило проблему несовместимости устройств, использующих разные протоколы. В начале 80-х ISO (International Standards Organization) и ITU (International Telecommunications Union) разработали стандартную модель взаимодействия открытых систем (OSI).
Модель OSI определяет:
- уровни взаимодействия;
- стандартные названия уровней;
- функции уровней.
Средства взаимодействия в модели OSI делятся на семь уровней:
- прикладной (application layer);
- представления (presentation layer);
- сеансовый (session layer);
- транспортный (transport layer);
- сетевой (network layer);
- канальный (data link layer);
- физический (physical layer).
Давайте, абстрактно, рассмотрим как происходит взаимодействие по модели OSI между двумя приложениями.
Предположим, у нас есть два приложения A и B, которые запущены на разных компьютерах. Приложение А это браузер, а приложение B это сервер интернет-магазина. Они обмениваются различными сообщениями, например информацией о товарах или заказах.
Браузер с помощью системных вызовов операционной системы, образующих API, отправляет запросы к системным средствам прикладного уровня с просьбой передать запрос на сервер-интернет магазина. Далее это сообщение проходит через каждый уровень, который отвечает за конкретную функцию, например уровень представления за перекодировку сообщения. На каждом уровне к сообщению добавляются служебные заголовки уровня, которые будут анализироваться на компьютере, которому адресован запрос (на изображении клетки с цифрами 1-7).
Когда сообщение достигает средств физического уровня, который и отвечает за передачу запроса по линиям связи, оно отправляется к адресату.
Стоит отметить, что в данном примере хождение по уровням, до момента попадания на линию происходит в рамках процессов на одном компьютере.
Когда отправленный запрос доходит до второго компьютера, оно принимается его физическим уровнем и последовательно перемещается вверх уровень за уровнем. На каждом уровне происходит анализ заголовков, присвоенных на уровнях компьютера с браузером.
Протоколы нижних четырех уровней обобщенно называют сетевым транспортом, так как они полностью решают задачу транспортировки сообщений с заданным уровнем качества в составных сетях с произвольной топологией и различными технологиями. Оставшиеся три уровня объединяет то, что они тесно связаны с пользовательскими приложениями, предоставляя им высокоуровневые услуги по использованию сетевых ресурсов и сервисов.
В следующих статьях мы рассмотрим каждый из уровней более детально.
Самое свежее
Простыми словами о графах
12/18/2022В этой статье мы начнем знакомство с графами, познакомимся с одним из алгоритмов для работы с графами и реализуем граф на языке программирования Rust.
В чем отличие аутсорсинга разработки от аутстаффинга ИТ-сотрудника для разработки?
10/17/2022В этой статье разберемся, что такое аутсорс- и аутстафф-разработка.
UI/UX дизайн: Процесс создания
4/9/2023В этой статье поговорим об основных шагах в процессе создания UI/UX дизайна.
UI/UX дизайн: Введение
3/29/2023В этой статье мы начинаем знакомиться с UI/UX дизайном. Это важнейший этап в разработке любого визуального интерфейса приложений.
Знакомьтесь, Пентест
8/22/2022Начинаем рассматривать один из основных методов оценки безопасности компьютерных систем и сетей на предмет потенциальных уязвимостей - тестирование на проникновение
Сокращаем срок реализации MVP
12/8/2022Разберемся со сроками реализации MVP.
Выбираем язык программирования
3/17/2023В этой статье мы поговорим о выборе языка программирования для изучения
Тестирование концепции MVP
1/9/2023Разбираемся с тем, как не потратить бюджеты на разработку MVP впустую
Проектирование архитектуры приложений: Введение
3/6/2023В этой статье поговорим о процессе создания архитектуры ИТ-решения
Техническое задание: Структура
2/17/2023В этой публикации мы рассмотрим универсальную структуру ТЗ
Неверная оценка стоимости услуг ИТ подрядчика
9/10/2022Сегодня мы поговорим о неверной оценке стоимости разработки ИТ решений. Эта боль - одна из основных для предприятий и стартапов, включая самих ИТ подрядчиков.
Введение в паттерны проектирования в разработке программного обеспечения
10/3/2022В этой статье мы начнем погружаться в мир оптимизации архитектуры приложений с помощью шаблонов проектирования
Выбираем направление разработки для обучения программированию
2/5/2023В этой статье вы узнаете какие бывают направления разработки, чем они отличаются и в каком больше платят.
Уровни модели OSI
9/6/2022В этой статье мы более подробно рассмотрим каждый из уровней модели OSI
Основные типы архитектуры приложений
3/7/2023В этой публикации разберемся с тем, какие бывают архитектуры приложений
10 способов использования Rust Cargo
2/11/2023В этой небольшой статье я собрал 10 способов использования системы сборки и менеджера пакетов языка программирования Rust
Документирование кода в языке программирования Rust
8/24/2022В этой статье рассмотрим то, как происходит документирование в Rust и рассмотрим очень полезную возможность - написание тестов через документирование.
CSS анимация пульсации
8/31/2022Простой пример того, как реализовать анимацию пульсации, используя HTML и CSS
Для чего нужна ER-диаграмма в процессе разработки?
4/28/2023Обсудим в общих чертах, что такое ER-диаграмма и для чего она нужна.
От концепции к MVP
11/18/2022В этой статье вы узнаете, на примере, о том, как перейти от концепции к MVP без лишних усложнений в функционале продукта
Для чего нужны UML диаграммы?
5/23/2023В этой статье мы поговорим о том, что такое UML диаграммы, какие они бывают и где используются
Введение в написание технического задания
1/31/2023Техническое задание - это важная часть процесса разработки. В этой статье начнем погружение в данный вопрос.
Введение в разработку
10/10/2022Сегодня большинство компаний сталкивается с ИТ-разработкой и часто не получают то, чего хотят. В этой статье мы начинаем погружение в процесс создания ИТ-решений.
От идеи к концепции
10/27/2022В этой публикации мы поговорим о том, чем идея отличается от концепции. Сделаем это на примере конкретной цели
Взвешенные графы
12/26/2022В этой статье мы познакомимся со взвешенными графами, алгоритмом Дейкстры и его реализацией на языке программирования Rust.
Зачем VPN бизнесу?
9/27/2022В этой статье мы рассмотрим то, как можно обезопасить доступ к облачным ресурсам предприятия с помощью VPN