Изменения

Перейти к: навигация, поиск

OSI Model

6456 байт добавлено, 19:27, 4 сентября 2022
м
rollbackEdits.php mass rollback
==Общая характеристика модели==
[[File:OSI_Interconnection.gif|right|Схема взаимодействия компьютеров в модели OSI]]
OSI состоит из двух основных частей:
*абстрактная модель сетевого взаимодействия (семиуровневая модель)
Концепция семиуровневой модели была описана в работа работе Чарльза Бахмана. Данная модель подразделяет коммуникационную систему на уровни абстракции (англ. ''"abstraction layers"''). В модели OSI средства взаимодействия делятся на семь уровней: прикладной, представления, сеансовый, транспортный, сетевой, канальный и физический. Каждый уровень:
*имеет дело с совершенно определенным аспектом взаимодействия сетевых устройств
*обслуживает уровень, находящийся непосредственно над ним, и обслуживается уровнем, находящимся под ним
Протоколы связи же решают две задачи: они обеспечивают взаимодействие между сущностями, находящимися на одном и том же уровне абстракции, но на разных хостах и абстрактно описывают функционал, который (N-1)-ый уровень предоставляет (N)-ому, где N - один из 7 уровней модели OSI. В рамках модели, любой протокол может взаимодействовать либо с протоколами своего уровня (горизонтальные взаимодействия), либо с протоколами уровня на единицу выше/ниже своего уровня (вертикальные взаимодействия).
Каждый из семи уровней характеризуется типом данных (PDU, сокращение от англ. ''protocol data units''), которым данный уровень оперирует и функционалом, который он предоставляет слою, находящемуся выше него. Предполагается, что пользовательские приложения обращаются только к самому верхнему (прикладному) уровню, однако на практике это выполняется далеко не далеко всегда. 
==Описание уровней модели OSI==
{| class="wikitable" style="width:25cm30cm" border=1
|+
|-align="center" bgcolor=#EEEEFF
| Уровень || Функции || PDU || Примеры
|-align="left" bgcolor=#FFFFFF
| 7. Прикладной || Некоторое высокоуровневое API || Данные || HTTP, FTP
|-align="left" bgcolor=#FFFFFF
| 6. Представительский || Представление данных между сетевым сервисом и приложением || Данные || ASCII, EBCDIC, JPEG
|-align="left" bgcolor=#FFFFFF
| 5. Сеансовый || Управление сеансами: продолжительный обмен информацией в виде множества передач между нодами || Данные || RPC, PAP
|-align="left" bgcolor=#FFFFFF
| 4. Транспортный || Надёжная передача сегментов между двумя нодами в сети || Сегменты/Датаграммы || TCP, UDP
|-align="left" bgcolor=#FFFFFF
| 3. Сетевой || Структуризация и управление множеством нод в сети || Пакеты || IPv4, IPv6
|-align="left" bgcolor=#FFFFFF
| 2. Канальный || Надёжная передача датафреймов между двумя нодами соединённых физическим уровнем || Фреймы || PPP, IEEE 802.2, Ethernet
|-align="left" bgcolor=#FFFFFF
| 1. Физический || Передача и приём потока байтов через физическое устройство || Биты || USB, витая пара
|}
===Прикладной уровень (Application layer)===
Самый верхний уровень модели, предоставляет набор интерфейсов для взаимодействия пользовательских процессов с сетью. Единицу информации, которой оперируют три верхних уровня модели OSI, принято называть сообщение (англ. ''message'').
Прикладной уровень выполняет следующие функции:
*TELNET
*RDP (Remote Desktop Protocol)
 
===Уровень представления (Presentation layer)===
Уровень представления занимается представлением данных, передаваемых прикладными процессами в нужной форме. Данные, полученные от приложений с прикладного уровня, на уровне представления преобразуются в формат подходящий для передачи их по сети, а полученные по сети данные преобразуются в формат приложений. Также кроме форматов и представления данных, данный уровень занимается конвертацией структур данных, используемых различными приложениями. Другой функцией, выполняемой на уровне представлений, является шифрование данных, которое применяется в тех случаях, когда необходимо защитить передаваемую информацию от доступа несанкционированными получателями.
Сетевой уровень предоставляет функционал для определения пути передачи пакетов данных между клиентами, подключенными к одной коммуникационной сети. На данном уровне решается проблема маршрутизации (выбора оптимального пути передачи данных), трансляцией логических адресов в физические, отслеживанием неполадок в сети.
В рамках сетевого надежность доставки сообщений не гарантируется; сетевой уровень может реализовывать соответствующий функционал, но не обязан это делать. Роль PDU исполняют пакеты (англ. ''packet'').
Сетевой уровень выполняет функции:
*IPX (Internetwork Packet Exchange, протокол межсетевого обмена)
*AppleTalk
 
===Канальный уровень (Data link layer)===
Канальный уровень предназначен для передачи данных между двумя узлами, находящихся в одной локальной сети. Роль PDU исполняют фреймы (англ. ''frame''). Фреймы канального уровня не пересекают границ локальной сети, что позволяет данному уровню сосредоточиться на локальной доставке (фактически межсетевой доставкой занимаются более высокие уровни).
 
Заголовок фрейма формируется из аппаратных адресов отправителя и получателя, что позволяет однозначно определить устройство, которое отправило данный фрейм и устройство, которому он предназначен. При этом никакая часть адреса не может быть использована, чтобы определить некую логическую/физическую группу к которой принадлежит устройство.
 
Канальный уровень состоит из двух подуровней: LLC и MAC.
 
Канальный уровень выполняет функции:
* LLC Multiplexing: Интерфейс между сетевым уровнем и MAC, чтобы несколько различных протоколов сетевого уровня могли сосуществовать.
* LLC Flow control: Механизм ограничении скорости передачи данных при медленном приёмнике
* LLC Error control: Определение (и иногда исправление) ошибок с помощью чексумм
* MAC Adressing mechanism: Адрессация на основе уникальных MAC-адресов
* MAC Channel access control mechanism: Предоставляет протокол множественного доступа
 
Наиболее часто на канальной уровне используются протоколы:
*PPP (Point-To-Point Protocol, протокол прямого соединения между двумя узлами)
*SLIP (Serial Line Internet Protocol, предшественник PPP, который всё ещё используется в микроконтроллерах)
*Ethernet II framing
 
===Физический уровень (Physical layer)===
Физический уровень описывает способы передачи потока бит через дата линк, соединяющий сетевые устройства. Поток байт может быть сгруппирован в слова и сконвертирован в физический сигнал, который посылается через некоторое устройство.
 
Здесь специфицируются такие низкоуровневые параметры как частота, амплитуда и модуляция.
 
Физический уровень выполняет функции:
* Побитовая доставка
* Физическое кодирование (способ представления данных в виде импульсов)
* LLC Error control: Определение (и иногда исправление) ошибок с помощью чексумм
* MAC Adressing mechanism: Адрессация на основе уникальных MAC-адресов
* MAC Channel access control mechanism: Предоставляет протокол множественного доступа
 
Наиболее часто на физическом уровне используются протоколы:
*Ethernet physical layer (семейство стандартов с оптическими или электрическими свойствами соединений между устройствами)
*USB
 
==Инкапсуляция==
[[File:UDP_Encapsulation.png|right|Аналогичный пример инкапсуляции данных в UDP]]
'''Инкапсуляция''' (англ. ''encapsulation'') -- метод проектирования протоколов в которой логически независимые функции сети не зависят от реализации нижележащих механизмов с помощью включения этих механизмов в более высокоуровневые объекты.
 
Физический уровень ответственен за физическую передачу данных. IP предоставляет глобальный способ адресации устройств. TCP добавляет возможность выбора приложения (порт).
 
Во время инкапсуляции каждый уровень собирает свой собственный PDU, добавляя некоторый заголовок с контрольной информацией к PDU с более высокого уровня.
 
===Пример===
Предположим мы отправляем веб-страницу клиенту:
* К содержимому страницы добавляются некоторые HTTP заголовки (тип результата, размер страницы итд)
* Далее добавляются TCP заголовки (номера портов, флаги, чексумма и прочее)
* IP добавляет свой заголовок (флаги, длина пакета, TTL)
* Канальный уровень добавляет заголовок (например MAC адреса получателя и отправителя)
* Наконец, фрейм приходит к получателю и он декапсулирует его в предыдущие PDU и обрабатывает на каждом уровне
1632
правки

Навигация