January 2, 2024
Сетевая модель OSI.
Open System Interconnection Environment
OSI - модель описывающая стандарты взаимодействия компьютерных систем.
Главная задача OSI это четкое обозначение всех аспектов межсеттевой коммуникации путем введения уровней взаимодействия.
Каждый уровень представляет собой некую абстракцию которая позволяет легко ориентироватся в выполняемом уровнем функционале. Примером такой абстракции может послужить протокол HTTP, что бы передать данные по нему вам не нужно заботится о том как соединен ваш клиент с сервером или как маршрутизируется ваше соединение - достаточно лишь понимания структуры HTTP запроса.
Уровни модели
Для удобства начнем с самого нижнего уровня и будем постепенно подниматься выше
- Физический.
Этот уровень описывает способы передачи именно сырых битов данных через физические линии связи.
Основные функции - различные виды взаимодействия с электрическими сигналами, например повторители и концентраторы тоже в какой то мере реализуют физический уровень OSI.
К техническим средствам реализации этого уровня относится вся аппаратная часть сетевых драйверов, например сетевой адаптер Ethernet в вашем ПК. - Канальный.
Как понятно из названия, этот уровень описывает протоколы передачи данных между сегментами локальной сети.
Этот уровень реализует очень важную составляющую современных сетей - физическую адресацию. Возьмем тот же Ethernet (который кстати является протоколом канального урвоня), к каждому узлу в Ethernet присваивается физический адрес (также MAC-адрес)который служит для идентификации источник и адресатов.
Скажем мы подключили наш компьютер к домашней Ethernet сети, что случается?
Если нужно произвести обмен данными, компьютер отошлет кадры со своим MAC-адресом и MAС-адресом предлагаемого получателя всем принимающим узлам, далее узлы считают MAC-адрес получателя и сравнят со своим. Получили совпадение? - тогда сообщение обработается и сохранится, иначе - просто проигнорируется. - Сетевой
Этот уровень может напоминать предыдущий, но если канальный уровень определяет взаимодействие на физическом уровне - сетевой переходит на взаимодействие с более глобальными сетями.
Данные на этом уровне передаются при помощи пакетов - четко структурированных байтов информации в котором каждый блок данных содержит какую то служебную информацию. Разметка и форматирование пакета зависит от протокола передачи.
Задачи которые выполняет этот уровень тестно пересекаются с топологией существующих сетей, к примеру: - Поиск кратчайшего пути между отправителем и получателем данных. - Маршрутизация, то есть определение пути к получателю. - Трансляция MAC-адресов в логические.
К устройствам третего уровня модели можно отнести маршрутизатор который помогает связать различные сегменты сети.
Довольно интересно что fireрволы также могут относиться к этому уровню. - Транспортный
Все протколы которые так или наче можно отнести к предыдущим уровням кроме IPsec (и возможно других о которых я не слышал), осуществляют передачу данных не давая почти никаких гарантий правильного получения данных, цель транспортного уровня - как раз таки обеспечить эту надежность. Чаще всего данные в этом уровне передаются с помощью сегментов - разделенных на более мелкие еденицы пакетов. В случае с протоколом UDP вместо сегментов используются датаграммы - целостные блоки данных схожие с пакетами. Здесь и на следующих уровнях, представителями уровней модели являются либо фаерволы либо сами участники сети. - Сеансовый
Сеансовый уровень необходим для поддержания длительного соединения между узлами сети, также используется для синхронизации задач, восстановление сеанса.
Часто некоторый функционал сеансового уровня может быть внедрен в протоколы напрямую не относящиеся к даному уровню, примером служит AppleTalk который реализует базовый функционал синхроннизации процессов и управления сеансами.
Примерами протоколов сеансового являются RPC, PAP. - Представительный
Представительный протокол отвечает за преобразования форматов данных.
Для примеру можно взять передачу фото, когда вы передаете его, сначала происходит преобразование в формат легко передаваемый по сети, в те самые нолики и еденички! дальше получатель уже по протоколу представительного уровня сможет собрать вашу картинку воедино и показать вам.
Также может быть ситуация когда из одного формата хранения нужно получить другой, тут тоже в работу входит представительный уровень.
Ну и последняя функция данного уровня - декодирование/кодирование данных. Если мы хотим что бы нессанкционированные пользователи сети не могли получить доступ к передаваемому сообщению то данные перед передачей буду кодироваться программой находящейся на представительном уровне, и соответсвенно декодироваться другой программой при получении данных.
К протоколам этого уровня относят: SSL, ASCII. - Прикладной уровень
Прикладной уровень можно воспринимать как интерфейс взаимодействия с приложением.
Возьмем тот же HTTP, по сути это просто интерфейс по передаче и управлению гипертекста в контексте веб-сервера.
Также справедливо то что прикладной уровень является обычной абстракцией для более низких уровней, и просто предоставляет доступ к ним.
Но само понятие прикладного протокола все равно очень сильно вариируется в зависимости от софта для которого формируется прикладной уровень.