Модель OSI / ISO

Эталонная модель OSI , иногда называемая стеком OSI представляет собой 7-уровневую сетевую иерархию, разработанную Международной организацией по стандартам (International Standardization Organization – ISO).

Эта модель содержит в себе по сути 2 различных модели:
– горизонтальную модель на базе протоколов, обеспечивающую механизм взаимодействия программ и процессов на различных машинах;
– вертикальную модель на основе услуг, обеспечиваемых соседними уровнями друг другу на одной машине.

В горизонтальной модели двум программам требуется общий протокол для обмена данными. В вертикальной – соседние уровни обмениваются данными с использованием интерфейсов API.
Модель OSI определяет различные уровни взаимодействия систем, дает им стандартные имена и указывает, какие функции должен выполнять каждый уровень. В модели OSI( Open System Interconnection, OSI ) средства взаимодействия делятся на семь уровней: прикладной, представительный, сеансовый, транспортный, сетевой, канальный и физический. Каждый уровень имеет дело с одним определенным аспектом взаимодействия сетевых устройств.

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

Функции физического уровня реализуются во всех устройствах, подключенных к сети (сетевым адаптером или последовательным портом) и заключаются в обеспечении передачи последовательности битов между любой парой узлов. Для выполнения этой функции на каждой стороне канала связи находится  модуль физического интерфейса (модем), функция которого состоит в преобразовании входящих битов, поступающих от следующего более высокого уровня (т.е. канального уровня), в сигналы, предназначенные для передачи по каналу, и на приемном конце в обратном преобразовании сигналов в биты.
Канальный уровень
Одной из задач канального уровня является проверка доступности среды передачи. Другой задачей канального уровня является реализация механизмов обнаружения и коррекции ошибок. Для этого на канальном уровне биты группируются в наборы, называемые кадрами(frames). Канальный уровень обеспечивает корректность передачи каждого кадра, помещая специальную последовательность бит в начало и конец каждого кадра для его выделения, а также вычисляет контрольную сумму. Когда кадр приходит по сети, получатель снова вычисляет контрольную сумму полученных данных и сравнивает с контрольной суммой из кадра. Если они совпадают, кадр считается правильным и принимается, иначе фиксируется ошибка. Канальный уровень может не только обнаруживать ошибки, но и исправлять их за счет повторной передачи поврежденных кадров. Функция исправления ошибок не является обязательной для канального уровня, поэтому в некоторых протоколах этого уровня она отсутствует. Отвечает за физическую адресацию. В локальных сетях протоколы канального уровня используются компьютерами, мостами, коммутаторами и маршрутизаторами. В компьютерах функции канального уровня реализуются совместными усилиями сетевых адаптеров и их драйверов. В целом канальный уровень представляет собой весьма мощный и законченный набор функций по пересылке сообщений между узлами сети.
Сетевой уровень
Сетевой уровень (Network layer) служит для образования единой транспортной системы, объединяющей несколько сетей. Сети соединяются между собой специальными устройствами, называемыми маршрутизаторами. Чтобы передать сообщение от отправителя, находящегося в одной сети, получателю, находящемуся в другой сети, нужно совершить некоторое количество транзитных передач между сетями (хопов), каждый раз выбирая подходящий маршрут. Маршрут представляет собой последовательность маршрутизаторов, через которые проходит пакет.

Проблема выбора наилучшего пути называется маршрутизацией, и ее решение является одной из главных задач сетевого уровня.

Сообщения сетевого уровня принято называть пакетами. При организации доставки пакетов на сетевом уровне используется понятие «номер сети». В этом случае адрес получателя состоит из старшей части — номера сети и младшей — номера узла в этой сети.

На сетевом уровне определяются два вида протоколов.

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

Второй вид протоколов — протоколы маршрутизации. С помощью этих прото¬колов маршрутизаторы собирают информацию о топологии межсетевых соединений.

Третий вид – протоколы разрешения адресов(ARP).

Протоколы сетевого уровня реализуются программными модулями операционной системы, а также программными и аппаратными средствами маршрутизаторов. (IP, IPX, RIP, ICMP)

Транспортный уровень
Обеспечивает передачу данных с той степенью надежности, которая требуется. Сообщение разбивается на пакеты на передающем конце, а на приемном конце пакеты собираются в сообщения.

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

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

Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протокола¬ми через общий транспортный протокол, и главное — способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов.Протоколы реализуются программными средствами конечных узлов в сети – компонентами их сетевых операционных систем. (TCP, UDP, SPX)
Сеансовый уровень
Сеансовый уровень обеспечивает управление взаимодействием: фиксирует, какая из сторон является активной в настоящей момент, предоставляет средства синхронизации. Последние позволяют вставлять контрольные точки в длинные передачи, чтобы в случае отказа можно было вернуться назад к последней контрольной точке, а не начинать все с начала. На практике немногие приложения используют сеансовый уровень, и он редко реализуется в виде отдельных протоколов, хотя функции этого уровня часто объединяют с функциями прикладного уровня и реализуют в одном протоколе.
Одна из функций сеансового уровня подобна справочной службе телефонных сетей (если пользователь хочет воспользоваться предоставляемым сетью видом обслуживания, но не знает, куда надо обратиться, чтобы получить к нему доступ, то с этого уровня на транспортный уровень передается информация, необходимая для установления сеанса).
Сеансовый уровень также связан с правами доступа при инициировании сеансов. По существу, на сеансовом уровне осуществляется управление взаимодействием между двумя конечными точками при установлении сеанса.
Представительный уровень
Представительный уровень имеет дело с формой представления передаваемой по сети информации, не меняя при этом ее содержания. За счет уровня представления информация, передаваемая прикладным уровнем одной системы, всегда понятна прикладному уровню другой системы. С помощью средств данного уровня протоколы прикладных уровней могут преодолеть синтаксические различия в представлении данных или же различия в кодах символов, например ASCII и EBCDIC. Главными функциями уровня представления являются шифрование данных, их сжатие и кодовое преобразование.
Прикладной уровень
Прикладной уровень представляет набор разнообразных протоколов, с помощью которых пользователи сети получают доступ к разделенным ресурсам: файлам, принтерам или гипертекстовым WEB-страницам. электронной почте. Существует большое разнообразие служб прикладного уровня. Например,  NCP  в операционной системе Novell Net Ware, SMB в Microsoft Windows NT, NFS, FTP и TFTP, входящие в стек TCP/IP.

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

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

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

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