<Назад
Уровни модели OSI

В прошлой статье мы познакомились с моделью OSI. Пришло время рассмотреть подробнее каждый из уровней.


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


Этот уровень модели OSI отвечает за передачу потока битов по физическим каналам связи - различные кабеля и беспроводные линии связи.


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


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


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


Это уровень предоставляет, вышележащему, сетевому, следующие услуги:

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


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


Единица данных данного уровня - кадр. В поле данных кадра размещается сообщение сетевого уровня, а в заголовке - служебная информация, включающая адрес назначения.


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


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


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


Функции сетевого уровня реализуются:

  • группой протоколов;
  • маршрутизаторами.


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


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


Чтобы пакеты были доставлены любому узлу в составной сети, они должны иметь уникальные адреса в ее пределах - сетевые или глобальные.


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


Информацию о топологии связей маршрутизатор хранит в таблицах маршрутизации.


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


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


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


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


Самые яркие представители протоколов данного уровня - протоколы TCP и UDP стека TCP/IP.


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


Этот уровень управляет взаимодействием сторон: фиксирует, какая из сторон является активной в настоящий момент и предоставляет инструменты для синхронизации сеанса. Функции данного уровня часто объединяются с функциями прикладного уровня и реализуются в одном протоколе.


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


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


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


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


Для запросов к этому уровню используются системные вызовы операционной системы, образующие API.


Примеры протоколов прикладного уровня: SSH, FTP, HTTP и др.


Заключение


Мы в общих чертах рассмотрели все уровни модели OSI, что является полезным знанием. В следующих статьях начнем углубляться в стек TCP/IP.

Хэштеги:
#сети
#osi
Поделиться:

Самое свежее

Состав команды разработки

В этой статье мы рассмотрим состав команды разработки ИТ решения

#процессразработки

Простыми словами о графах

В этой статье мы начнем знакомство с графами, познакомимся с одним из алгоритмов для работы с графами и реализуем граф на языке программирования Rust.

#графы
#алгоритмы
#rust

В чем отличие аутсорсинга разработки от аутстаффинга ИТ-сотрудника для разработки?

В этой статье разберемся, что такое аутсорс- и аутстафф-разработка.

#процессразработки

UI/UX дизайн: Процесс создания

В этой статье поговорим об основных шагах в процессе создания UI/UX дизайна.

#процессразработки

UI/UX дизайн: Введение

В этой статье мы начинаем знакомиться с UI/UX дизайном. Это важнейший этап в разработке любого визуального интерфейса приложений.

#процессразработки

Agile, Шесть сигм и Отсутствие принципа

В прошлой статье мы начали погружение в процесс разработки. Первый этап этого процесса — планирование. На этом этапе проектный менеджер вместе с другими участниками команды формирует пул задач в соответсвии с какой-то методологией ведения проектов.

#процессразработки

Знакомьтесь, Пентест

Начинаем рассматривать один из основных методов оценки безопасности компьютерных систем и сетей на предмет потенциальных уязвимостей - тестирование на проникновение

#пентест

Сокращаем срок реализации MVP

Разберемся со сроками реализации MVP.

#процессразработки

Выбираем язык программирования

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

#хочукодить

Тестирование концепции MVP

Разбираемся с тем, как не потратить бюджеты на разработку MVP впустую

#процессразработки

Проектирование архитектуры приложений: Введение

В этой статье поговорим о процессе создания архитектуры ИТ-решения

#процессразработки

Техническое задание: Структура

В этой публикации мы рассмотрим универсальную структуру ТЗ

#процессразработки

Неверная оценка стоимости услуг ИТ подрядчика

Сегодня мы поговорим о неверной оценке стоимости разработки ИТ решений. Эта боль - одна из основных для предприятий и стартапов, включая самих ИТ подрядчиков.

#консалтинг

Введение в паттерны проектирования в разработке программного обеспечения

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

#шаблоныпроектирования

Выбираем направление разработки для обучения программированию

В этой статье вы узнаете какие бывают направления разработки, чем они отличаются и в каком больше платят.

#хочукодить

Основные типы архитектуры приложений

В этой публикации разберемся с тем, какие бывают архитектуры приложений

#процессразработки

10 способов использования Rust Cargo

В этой небольшой статье я собрал 10 способов использования системы сборки и менеджера пакетов языка программирования Rust

#rust
#cargo

Документирование кода в языке программирования Rust

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

#rust

Знакомство с моделью OSI

В этой статье начинаем рассматривать фундаментальную модель сетевого взаимодействия - OSI

#сети

CSS анимация пульсации

Простой пример того, как реализовать анимацию пульсации, используя HTML и CSS

#css

Для чего нужна ER-диаграмма в процессе разработки?

Обсудим в общих чертах, что такое ER-диаграмма и для чего она нужна.

#процессразработки

От концепции к MVP

В этой статье вы узнаете, на примере, о том, как перейти от концепции к MVP без лишних усложнений в функционале продукта

#процессразработки

Для чего нужны UML диаграммы?

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

#процессразработки

Введение в написание технического задания

Техническое задание - это важная часть процесса разработки. В этой статье начнем погружение в данный вопрос.

#процессразработки

Введение в разработку

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

#процессразработки

От идеи к концепции

В этой публикации мы поговорим о том, чем идея отличается от концепции. Сделаем это на примере конкретной цели

#процессразработки

Методологии управления ИТ-проектами: Waterfall, Scrum, Prince2

В этой статье рассмотрим основные методологии управления ИТ-проектами.

#процессразработки

Взвешенные графы

В этой статье мы познакомимся со взвешенными графами, алгоритмом Дейкстры и его реализацией на языке программирования Rust.

#алгоритмы
#графы
#rust

Процесс разработки: Планирование

В этой публикации мы начнем рассматривать процесс разработки. Начнем рассмотрение с процесса планирования.

#процессразработки