Модель osi протоколы. Как работает модель OSI

30.07.2019 Программы и сервисы

Сетевая модель OSI (базовая эталонная модель взаимодействия открытых систем, англ. Open Systems Interconnection Basic Reference Model) - абстрактная сетевая модель для коммуникаций и разработки сетевых протоколов.

Модель состоит из 7-ми уровней, расположенных друг над другом. Уровни взаимодействуют друг с другом (по «вертикали») посредством интерфейсов, и могут взаимодействовать с параллельным уровнем другой системы (по «горизонтали») с помощью протоколов. Каждый уровень может взаимодействовать только со своими соседями и выполнять отведённые только ему функции. Несмотря на существование других моделей, большинство сетевых производителей сегодня разрабатывают свои продукты на основе этой структуры.

Уровни OSI

Каждый уровень модели OSI отвечает за часть процесса обработки по подготовке данных к передаче по сети.

Согласно модели OSI в процессе передачи данные буквально проходят сверху вниз по уровням модели OSI отправляющего компьютера и вверх по уровням модели OSI принимающего компьютера. На принимающем компьютере происходит процесс, обратный инкапсуляции. Биты прибывают на физический уровень модели OSI принимающего компьютера. В процессе перемещения вверх по уровням OSI принимающего компьютера данные поступят на прикладной уровень.

Уровень Название Описание 1 Описание 2
7. Прикладной Это уровень, с которым работают пользователи конечных продуктов. Их не волнует, как передаются данные, зачем и через какое место… Они сказали "ХОЧУ!" - а мы, программисты, должны им это обеспечить. В качестве примера можно взять на рассмотрение любую сетевую игру: для игрока она работает на этом уровне. Когда пользователь хочет отправить данные, например, электронную почту, на прикладном уровне начинается процесс инкапсуляции. Прикладной уровень отвечает за обеспечение сетевого доступа к приложениям. Информация проходит через верхние три уровня и, попадая вниз, на транспортный уровень, считается данными.
6. Представительский (Введение в XML , SMB) Здесь программист имеет дело с данными, полученными от низших уровней. В основном, это конвертирование и представление данных в удобоваримом для пользователя виде.
5. Сеансовый (TLS , SSL сертификаты для для сайта, почты , NetBios) Этот уровень позволяет пользователям осуществлять "сеансы связи". То есть именно на этом уровне передача пакетов становится для программиста прозрачной, и он может, не задумываясь о реализации, непосредственно передавать данные, как цельный поток. Здесь на сцену вступают протоколы HTTP, FTP , Telnet, SMTP и т.д.
4. Транспортный (Порты TCP , UDP) Осуществляет контроль над передачей данных (сетевых пакетов). То есть, проверяет их целостность при передаче, распределяет нагрузку и т.д. Этот уровень реализует такие протоколы, как TCP, UDP и т.д. Для нас представляет наибольший интерес. На транспортном уровне данные разбиваются на более легко управляемые сегменты, или блоки PDU транспортного уровня, для упорядоченной транспортировки по сети. Блок PDU описывает данные так, как они движутся с одного уровня модели OSI на другой. Кроме того, блок PDU транспортного уровня содержит такую информацию, как номера портов, порядковые номера и номера квитирования, которые используются для надежной транспортировки данных.
3. Сетевой (IP, ICMP протокол диагностики перегрузки сети) Логически контролирует адресацию в сети, маршрутизацию и т.д. Должен быть интересен разработчикам новых протоколов и стандартов. На этом уровне реализованы протоколы IP, IPX, IGMP, ICMP, ARP. В основном, управляется драйверами и операционными системами. Сюда влезать, конечно, стоит, но только когда ты знаешь, что делаешь, и полностью в себе уверен. На сетевом уровне каждый сегмент, поступивший с транспортного уровня, становится пакетом. Пакет содержит логическую адресацию и другие управляющие данные уровня 3.
2. Канальный (WI-FI , Что такое Ethernet) Этот уровень контролирует восприятие электронных сигналов логикой (радиоэлектронными элементами) аппаратных устройств. То есть, взаимодействуя на этом уровне, аппаратные средства превращают поток битов в электрические сигналы и наоборот. Нас он не интересует, потому что мы не разрабатываем аппаратные средства, чипы и т.д. Уровень касается сетевых карт, мостов, свичей, рутеров и т.д. На канальном уровне каждый пакет, поступивший с сетевого уровня, становится фреймом. Кадр содержит физический адрес и данные об исправлении ошибок.
1. Аппаратный (Физический) (лазер, электричество, радио) Контролирует передачи физических сигналов между аппаратными устройствами, входящими в сеть. То есть управляет передачей электронов по проводам. Нас он не интересует, потому что все, что находится на этом уровне, контролируется аппаратными средствами (реализация этого уровня - это задача производителей хабов, мультиплексоров, повторителей и другого оборудования). Мы не физики-радиолюбители, а геймдевелоперы. На физическом уровне фрейм становится битами. По сетевой среде биты передаются по одному.

Мы видим, что, чем выше уровень - тем выше степень абстракции от передачи данных, к работе с самими данными. Это и есть смысл всей модели OSI: поднимаясь все выше и выше по ступенькам ее лестницы, мы все меньше и меньше заботимся о том, как данные передаются, мы все больше и больше становимся заинтересованными в самих данных, нежели в средствах для их передачи. Нас, как программистов, интересуют уровни 3, 4 и 5. Мы должны использовать средства, которые они предоставляют, для того чтобы построить 6 и 7 уровни, с которыми смогут работать конечные пользователи.

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

На сетевом уровне OSI реализованы протоколы IP(Структура межсетевого протокола IPv4 ,IPv6), IPX, IGMP, ICMP, ARP.

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

Создать сложную, структурированную сеть с интеграцией различных базовых сетевых технологий, можно и средствами канального уровня: для этого могут быть использованы некоторые типы мостов и коммутаторов. Естественно в целом трафик в такой сети складывается случайным образом, но с другой стороны он характеризуется и некоторыми закономерностями. Как правило, в такой сети некоторые пользователи, работающие над общей задачей, (например, сотрудники одного отдела) чаще всего обращаются с запросами либо друг к другу, либо к общему серверу, и только иногда им необходим доступ к ресурсам компьютеров другого отдела. Поэтому в зависимости от сетевого трафика компьютеры в сети разделяют на группы, которые называют сегменты сети. Компьютеры объединяются в группу, если большая часть их сообщений предназначена (адресована) компьютерам этой же группы. Разделение сети на сегменты, могут осуществлять мосты и коммутаторы. Они экранируют локальный трафик внутри сегмента, не передавая за его пределы никаких кадров, кроме тех, которые адресованы компьютерам, находящимся в других сегментах. Таким образом, одна сеть распадается на отдельные подсети. Из этих подсетей в дальнейшем могут быть построены составные сети достаточно крупных размеров.

Идея разбиения на подсети - это основа построения составных сетей.

Сеть называется составной (internetwork или internet), если она может быть представлена в виде совокупности нескольких сетей. Сети, входящие в составную сеть, называются подсетями (subnet), составляющими сетями или просто сетями, каждая из которых может работать на основе собственной технологии канального уровня (хотя это и не обязательно).

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

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

    Логические сегменты сети, расположенные между мостами или коммутаторами, слабо изолированы друг от друга. Они не защищены от широковещательных штормов. Если какая-либо станция посылает широковещательное сообщение, то это сообщение передается всем станциям всех логических сегментов сети. Администратор должен вручную ограничивать количество широковещательных пакетов, которое разрешается генерировать некоторому узлу в единицу времени. В принципе некоторым образом удалось ликвидировать проблему широковещательных штормов с использованием механизма виртуальных сетей(Настройка VLAN Debian D-Link), реализованного во многих коммутаторах. Но в этом случае, хотя и возможно достаточно гибко создавать изолированные по трафику группы станций, но при этом они изолированы полностью, то есть узлы одной виртуальной сети не могут взаимодействовать с узлами другой виртуальной сети.

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

    Реализация транспортной подсистемы только средствами физического и канального уровней, к которым относятся мосты и коммутаторы, приводит к недостаточно гибкой, одноуровневой системе адресации: в качестве адреса станции получателя используется MAC -адрес - адрес, который жестко связан с сетевым адаптером.

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

Александр Горячев, Алексей Нисковский

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

Существует эталонная модель взаимодействия открытых систем (Open System Interconnection Reference Model), часто называемая моделью OSI. Эта модель разработана Международной организацией по стандартизации (International Organization for Standardization, ISO). Модель OSI описывает схему взаимодействия сетевых объектов, определяет перечень задач и правила передачи данных. Она включает в себя семь уровней: физический (Physical - 1), канальный (Data-Link - 2), сетевой (Network - 3), транспортный (Transport - 4), сеансовый (Session - 5), представления данных (Presentation - 6) и прикладной (Application - 7). Считается, что два компьютера могут взаимодействовать друг с другом на конкретном уровне модели OSI, если их программное обеспечение, реализующее сетевые функции этого уровня, одинаково интерпретирует одни и те же данные. В этом случае устанавливается прямое взаимодействие между двумя компьютерами, называемое «точка-точка».

Реализации модели OSI протоколами называются стеками (наборами) протоколов. В рамках одного конкретного протокола невозможно реализовать все функции модели OSI. Обычно задачи конкретного уровня реализуются одним или несколькими протоколами. На одном компьютере должны работать протоколы из одного стека. При этом компьютер одновременно может использовать несколько стеков протоколов.

Рассмотрим задачи, решаемые на каждом из уровней модели OSI.

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

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

Реализации протоколов физического уровня модели OSI координируют правила передачи битов.

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

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

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

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

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

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

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

Рассмотренные топологии чаще всего строятся с применением кабельных соединений.

Существует еще одна топология, использующая беспроводные соединения, - сотовая (cellular). В ней сетевые устройства и компьютеры объединяются в зоны - ячейки (cell), взаимодействуя только с приемо-передающим устройством ячейки. Передача информации между ячейками осуществляется приемо-передающими устройствами.

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

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

Протоколами канального уровня определяются:

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

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

С канальным уровнем обычно связаны следующие сетевые соединительные устройства:

  • мосты;
  • интеллектуальные концентраторы;
  • коммутаторы;
  • сетевые интерфейсные платы (сетевые интерфейсные карты, адаптеры и т.д.).

Функции канального уровня подразделяются на два подуровня (табл. 1):

  • управление доступом к среде передачи (Media Access Control, MAC);
  • управление логическим соединением (Logical Link Control, LLC).

Подуровень MAC определяет такие элементы канального уровня, как логическая топология сети, метод доступа к среде передачи информации и правила физической адресации между сетевыми объектами.

Аббревиатура MAC также используется при определении физического адреса сетевого устройства: физический адрес устройства (который определяется внутри сетевого устройства или сетевой карты на этапе производства) часто называют MAC-адресом этого устройства. Для большого количества сетевых устройств, особенно сетевых карт, существует возможность программно изменить MAC-адрес. При этом необходимо помнить, что канальный уровень модели OSI накладывает ограничения на использование MAC-адресов: в одной физической сети (сегменте большей по размеру сети) не может быть двух или более устройств, использующих одинаковые MAC-адреса. Для определения физического адреса сетевого объекта может быть использовано понятие «адрес узла» (node address). Адрес узла чаще всего совпадает с MAC-адресом или определяется логически при программном переназначении адреса.

Подуровень LLC определяет правила синхронизации передачи и сервиса соединений. Этот подуровень канального уровня тесно взаимодействует с сетевым уровнем модели OSI и отвечает за надежность физических (с использованием MAC-адресов) соединений. Логическая топология (logical topology) сети определяет способ и правила (последовательность) передачи данных между компьютерами в сети. Сетевые объекты передают данные в зависимости от логической топологии сети. Физическая топология определяет физический путь данных; при этом в некоторых случаях физическая топология не отражает способ функционирования сети. Фактический путь данных определяется логической топологией. Для передачи данных по логическому пути, который может отличаться от пути в физической среде, используются сетевые устройства подключения и схемы доступа к среде передачи. Хороший пример различий между физической и логической топологиями - сеть Token Ring фирмы IBM. В локальных сетях Token Ring часто используется медный кабель, который прокладывается в звездообразную схему с центральным разветвителем (хабом). В отличие от нормальной звездообразной топологии хаб не пересылает входящие сигналы всем другим подключенным устройствам. Внутренняя схема хаба последовательно отправляет каждый входящий сигнал следующему устройству в заранее предопределенном логическом кольце, то есть по круговой схеме. Физической топологией этой сети является звезда, а логической - кольцо.

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

Чтобы определить логическую топологию сети, необходимо понять, как в ней принимаются сигналы:

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

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

Доступ к среде передачи

Логические топологии используют специальные правила, управляющие разрешением на передачу информации другим сетевым объектам. Процесс управления контролирует доступ к среде передачи данных. Рассмотрим сеть, в которой всем устройствам позволено функционировать безо всяких правил получения доступа к среде передачи. Все устройства в такой сети передают информацию по мере готовности данных; эти передачи могут иногда накладываться во времени. В результате наложения сигналы искажаются, происходит потеря передаваемых данных. Такая ситуация называется коллизией (collision). Коллизии не позволяют организовать надежную и эффективную передачу информации между сетевыми объектами.

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

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

Существуют стандартные методы доступа к среде передачи, описывающие правила, по которым осуществляется управление разрешением на передачу информации для сетевых устройств: состязание, передача маркера и опрос.

Перед тем как выбрать протокол, в котором реализован один из этих методов доступа к среде передачи данных, следует обратить особое внимание на следующие факторы:

  • характер передач - непрерывный или импульсный;
  • количество передач данных;
  • необходимость передачи данных в строго определенные интервалы времени;
  • количество активных устройств в сети.

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

Состязание. Системы на основе состязания (конкуренции) предполагают, что доступ к среде передачи реализуется на основе принципа «первый пришел - первым обслужен». Другими словами, каждое сетевое устройство борется за контроль над средой передачи. Системы, использующие метод состязания, разработаны таким образом, чтобы все устройства в сети могли передавать данные лишь по мере необходимости. Эта практика в конечном счете приводит к частичной или полной потере данных, потому что в действительности происходят коллизии. По мере добавления к сети каждого нового устройства количество коллизий может возрастать в геометрической прогрессии. Увеличение количества коллизий снижает производительность сети, а в случае полного насыщения среды передачи информации - снижает работоспособность сети до нуля.

Для снижения количества коллизий разработаны специальные протоколы, в которых реализована функция прослушивания среды передачи информации до начала передачи данных станцией. Если прослушивающая станция обнаруживает передачу сигнала (от другой станции), то она воздерживается от передачи информации и будет пытаться повторить ее позже. Эти протоколы называются протоколами множественного доступа с контролем несущей (Carrier Sense Multiple Access, CSMA). Протоколы CSMA значительно снижают число коллизий, но не устраняют их полностью. Коллизии тем не менее происходят, когда две станции опрашивают кабель: не обнаруживают никаких сигналов, решают, что среда передачи данных свободна, а затем одновременно начинают передачу данных.

Примерами таких состязательных протоколов являются:

  • множественный доступ с контролем несущей/обнаружением коллизий (Carrier Sense Multiple Access/Collision Detection, CSMA/CD);
  • множественный доступ с контролем несущей/предотвращением коллизий (Carrier Sense Multiple Access/Collision Avoidance, CSMA/CA).

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

Примерами протоколов CSMA/CD являются Ethernet version 2 (Ethernet II, разработанный в корпорации DEC) и IEEE802.3.

Протоколы CSMA/CA. CSMA/CA использует такие схемы, как доступ с квантованием времени (time slicing) или посылка запроса на получение доступа к среде. При использовании квантования времени каждая станция может передавать информацию только в строго определенные для этой станции моменты времени. При этом в сети должен реализовываться механизм управления квантами времени. Каждая новая станция, подключаемая к сети, оповещает о своем появлении, тем самым инициируя процесс перераспределения квантов времени для передачи информации. В случае использования централизованного управления доступом к среде передачи каждая станция формирует специальный запрос на передачу, который адресуется к управляющей станции. Центральная станция регулирует доступ к среде передачи для всех сетевых объектов.

Примером CSMA/CA является протокол LocalTalk фирмы Apple Computer.

Системы на основе метода состязания больше всего подходят для использования при импульсном трафике (при передаче больших файлов) в сетях с относительно небольшим количеством пользователей.

Системы с передачей маркера. В системах с передачей маркера (token passing) небольшой фрейм (маркер) передается в определенном порядке от одного устройства к другому. Маркер - это специальное сообщение, которое передает временное управление средой передачи устройству, владеющему маркером. Передача маркера распределяет управление доступом между устройствами сети.

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

Имеется несколько протоколов передачи маркера. Двумя стандартами сетей, использующими передачу маркера, являются IEEE 802.4 Token Bus и IEEE 802.5 Token Ring. В сети Token Bus используется управление доступом с передачей маркера и физическая или логическая шинная топология, в то время как в сети Token Ring используется управление доступом с передачей маркера и физическая или логическая кольцевая топология.

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

Опрос. Опрос (polling) - это метод доступа, при котором выделяется одно устройство (называемое контроллером, первичным, или «мастер»-устройством) в качестве арбитра доступа к среде. Это устройство опрашивает все остальные устройства (вторичные) в некотором предопределенном порядке, чтобы узнать, имеют ли они информацию для передачи. Чтобы получить данные от вторичного устройства, первичное устройство направляет ему соответствующий запрос, а затем получает данные от вторичного устройства и направляет их устройству-получателю. Затем первичное устройство опрашивает другое вторичное устройство, принимает данные от него, и так далее. Протокол ограничивает количество данных, которое может передать после опроса каждое вторичное устройство. Опросные системы идеальны для сетевых устройств, чувствительных ко времени, например, при автоматизации оборудования.

Этот уровень также обеспечивает сервис соединений. Существует три типа сервиса соединений:

  • сервис без подтверждения и без установления соединений (unacknowledged connectionless) - посылает и получает фреймы без управления потоком и без контроля ошибок или последовательности пакетов;
  • сервис, ориентированный на соединение (connection-oriented), - обеспечивает управление потоком, контроль ошибок и последовательности пакетов посредством выдачи квитанций (подтверждений);
  • сервис с подтверждением без установления соединения (acknowledged connectionless) - использует квитанции для управления потоком и контроля ошибок при передачах между двумя узлами сети.

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

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

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

Главной целью сетевого уровня является решение задачи перемещения (доставки) данных в заданные точки сети. Доставка данных на сетевом уровне в общем-то похожа на доставку данных на канальном уровне модели OSI, где для передачи данных используется физическая адресация устройств. Однако адресация на канальном уровне относится только к одной логической сети, действует только внутри этой сети. Сетевой уровень описывает методы и средства передачи информации между многими независимыми (и часто разнородными) логическими сетями, которые, соединенные вместе, формируют одну большую сеть. Такая сеть называется объединенной сетью (internetwork), а процессы передачи информации между сетями - межсетевым взаимодействием (internetworking).

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

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

Элементы и методы реализации сетевого уровня определяются следующим:

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

На этом уровне модели OSI работают маршрутизаторы и некоторые из коммутаторов.

Сетевой уровень определяет правила формирования логических адресов (logical network address) сетевых объектов. В рамках большой объединенной сети каждый сетевой объект должен обладать уникальным логическим адресом. В формировании логического адреса участвуют два компонента: логический адрес сети, который является общим для всех объектов сети, и логический адрес сетевого объекта, который является уникальным для этого объекта. При формировании логического адреса сетевого объекта может либо использоваться физический адрес объекта, либо определяться произвольный логический адрес. Использование логической адресации позволяет организовать передачу данных между разными логическими сетями.

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

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

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

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

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

Коммутация сообщений позволяет передавать целое (неразбитое на части) сообщение по принципу «сохранить и передать дальше» (store-and-forward). Каждое промежуточное устройство принимает сообщение, локально его сохраняет и при освобождении канала связи, по которому это сообщение должно быть отправлено, отправляет его. Этот метод хорошо подходит для передачи сообщений электронной почты и организации электронного документооборота.

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

Каждый раз при определении дальнейшего пути для данных необходимо выбрать наилучший маршрут. Задача определения наилучшего пути называется маршрутизацией (routing). Эту задачу выполняют маршрутизаторы (router). Задача маршрутизаторов - определение возможных путей передачи данных, поддержание маршрутной информации, выбор наилучших маршрутов. Маршрутизация может осуществляться статическим либо динамическим способом. При задании статической маршрутизации должны быть заданы все взаимосвязи между логическими сетями, которые остаются неизменными. Динамическая маршрутизация предполагает, что маршрутизатор может сам определять новые пути либо модифицировать информацию о старых. Динамическая маршрутизация использует специальные алгоритмы маршрутизации, наиболее распространенными из которых являются вектор дистанции (distance vector) и состояние канала (link state). В первом случае маршрутизатор использует информацию о структуре сети от соседних маршрутизаторов, из вторых рук. Во втором случае маршрутизатор оперирует информацией о собственных каналах связи и взаимодействует со специальным представительским маршрутизатором для построения полной карты сети.

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

Сервис соединений сетевого уровня работает тогда, когда сервис соединений LLC-подуровня канального уровня модели OSI не используется.

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

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

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

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

Многие протоколы в вычислительных сетях обеспечивают пользователям возможность работы с простыми именами на естественном языке вместо сложных и тяжелых для запоминания алфавитно-цифровых адресов. Преобразование адресов в имена и обратно (Address/Name Resolution) является функцией идентификации или отображения имен и алфавитно-цифровых адресов друг в друга. Эта функция может выполняться каждым объектом в сети или поставщиками специального сервиса, называемыми каталоговыми серверами (directory server), серверами имен (name server) и т.п. Следующие определения классифицируют методы преобразования адресов/имен:

  • инициация потребителем сервиса;
  • инициация поставщиком сервиса.

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

Методы адресации

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

  • идентификатор соединения;
  • идентификатор транзакции.

Идентификатор соединения (connection identifier), также называемый ID соединения (connection ID), портом (port), или сокетом (socket), идентифицирует каждый диалог. С помощью идентификатора соединения поставщик соединения может связываться более чем с одним клиентом. Поставщик сервиса обращается к каждому объекту коммутации по его номеру, а для координации других адресов нижнего уровня полагается на транспортный уровень. Идентификатор соединения связан с конкретным диалогом.

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

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

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

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

Сеансовый уровень также инициирует диалоги между устройствами-поставщиками сервиса и устройствами-потребителями. Выполняя эту функцию, сеансовый уровень часто осуществляет представление, или идентификацию, каждого объекта и координирует права доступа к нему.

Сеансовый уровень реализует управление диалогом с использованием одного из трех способов общения - симплекс (simplex), полудуплекс (half duplex) и полный дуплекс (full duplex).

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

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

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

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

Под преобразованием понимается изменение порядка битов в байтах, порядка байтов в слове, кодов символов и синтаксиса имен файлов.

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

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

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

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

Локальные и сетевые операционные системы часто шифруют данные для защиты их от несанкционированного использования. Шифрование - это общий термин, который описывает некоторые методы защиты данных. Защита зачастую выполняется с помощью перемешивания данных (data scrambling), при котором используется один или несколько методов из трех: перестановка, подстановка, алгебраический метод.

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

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

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

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

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

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

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

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

Серверы осуществляют пассивное представление сервиса (Passive service advertisement) путем регистрации своего сервиса и адреса в каталоге. Когда клиенты хотят определить доступные виды сервиса, они просто запрашивают каталог о местоположении нужного сервиса и об его адресе.

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

  • перехват вызовов операционной системы;
  • удаленный режим;
  • совместная обработка данных.

При использовании перехвата вызовов ОС (OC Call Interception) локальная операционная система совершенно не подозревает о существовании сетевого сервиса. Например, когда приложение DOS пытается читать файл с сетевого файл-сервера, оно считает, что данный файл находится на локальном накопителе. В действительности специальный фрагмент программного обеспечения перехватывает запрос на чтение файла прежде, чем он достигнет локальной операционной системы (DOS), и направляет запрос сетевому файловому сервису.

В другом крайнем случае, при удаленном режиме (Remote Operation) работы локальная операционная система знает о сети и ответственна за передачу запросов к сетевому сервису. Однако сервер ничего не знает о клиенте. Для операционной системы сервера все запросы к сервису выглядят одинаково, независимо от того, являются ли они внутренними или переданы по сети.

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

КомпьютерПресс 6"1999




Разработана эта модель была в далеком 1984 году Международной организацией по стандартизации (International Standard Organization, ISO), и в оригинале называется Open Systems Interconnection, OSI.
Модель взаимодействия открытых систем (по факту - модель сетевого взаимодействия) является стандартом для проектирования сетевых коммуникаций и предполагает уровневый подход к построению сетей.
Каждый уровень модели обслуживает различные этапы процесса взаимодействия. Посредством деления на уровни сетевая модель OSI упрощает совместную работу оборудования и программного обеспечения. Модель OSI разделяет сетевые функции на семь уровней: прикладной, уровень представления, сессионный, транспортный, сетевой, канальный и физический.


  • Физический уровень (Physical layer) - определяет способ физического соединения компьютеров в сети. Функциями средств, относящихся к данному уровню, являются побитовое преобразование цифровых данных в сигналы, передаваемые по физической среде (например, по кабелю), а также собственно передача сигналов.
  • Канальный уровень (Data Link layer) - отвечает за организацию передачи данных между абонентами через физический уровень, поэтому на данном уровне предусмотрены средства адресации, позволяющие однозначно идентифицировать отправителя и получателя во всем множестве абонентов, подключенных к обще линии связи. В функции данного уровня также входит упорядочивание передачи с целью параллельного использования одной линии связи несколькими парами абонентов. Кроме того, средства канального уровня обеспечивают проверку ошибок, которые могут возникать при передаче данных физическим уровнем.
  • Сетевой уровень (Network layer) - обеспечивает доставку данных между компьютерами сети, представляющей собой объединение различных физических сетей. Данный уровень предполагает наличие средств логической адресации, позволяющих однозначно идентифицировать компьютер в объединенной сети. Одной из главных функций, выполняемых средствами данного уровня, является целенаправленная передача данных конкретному получателю.
  • Транспортный уровень (Transport layer) - реализует передачу данных между двумя программами, функционирующими на разных компьютерах, обеспечивая при этом отсутствие потерь и дублирования информации, которые могут возникать в результате ошибок передачи нижних уровней. В случае, если данные, передаваемые через транспортный уровень, подвергаются фрагментации, то средства данного уровня гарантируют сборку фрагментов в правильном порядке.
  • Сессионный (или сеансовый) уровень (Session layer) - позволяет двум программам поддерживать продолжительное взаимодействие по сети, называемое сессией (session) или сеансом. Этот уровень управляет установлением сеанса, обменом информацией и завершением сеанса. Он также отвечает за идентификацию, позволяя тем самым только определенным абонентам принимать участие в сеансе, и обеспечивает работу служб безопасности с целью упорядочивания доступа к информации сессии.
  • Уровень представления (Presentation layer) - осуществляет промежуточное преобразование данных исходящего сообщения в общий формат, который предусмотрен средствами нижних уровней, а также обратное преобразование входящих данных из общего формата в формат, понятный получающей программе.
  • Прикладной уровень (Application layer) - предоставляет высокоуровневые функции сетевого взаимодействия, такие, как передача файлов, отправка сообщений по электронной почте и т.п.

Модель OSI простым языком


Модель OSI – это аббревиатура от английского Open System Interconnection, то есть модель взаимодействия открытых систем. Под открытыми системами можно понимать сетевое оборудование (компьютеры с сетевыми картами, коммутаторы, маршрутизаторы).
Сетевая модель OSI представляет собой схему работы (или план действий по обмену данными) для сетевых устройств. Также OSI играет роль в создании новых сетевых протоколов, так как служит эталоном взаимодействия.
OSI состоит из 7 блоков (уровней). Каждый блок выполняет свою уникальную роль в сетевом взаимодействии различных сетевых устройств.
7 уровней модели OSI: 1 - Физический, 2 - Канальный, 3 - Сетевой, 4 - Транспортный, 5 - Сеансовый, 6 - Представления, 7 - Приложений.
На каждом уровне модели есть собственный набор сетевых протоколов (стандартов передачи данных), с помощью которых устройства в сети обмениваются данными.
Запомните, чем сложнее сетевое устройство, тем больше возможностей оно предоставляет, но и больше уровней занимает, и как следствие – медленней работает.

Сетевые модели. Часть 1. OSI.


Определенно начинать лучше с теории, и затем, плавно, переходить к практике. Поэтому сначала рассмотрим сетевую модель (теоретическая модель), а затем приоткроем занавес на то, как теоретическая сетевая модель вписывается в сетевую инфраструктуру (на сетевое оборудование, компьютеры пользователей, кабели, радиоволны и т.д.).
Итак, сетевая модель - это модель взаимодействия сетевых протоколов. А протоколы в свою очередь, это стандарты, которые определяют каким образом, будут обмениваться данными различные программы.
Поясню на примере: открывая любую страничку в интернете, сервер (где находится открываемая страничка) пересылает в Ваш браузер данные (гипертекстовый документ) по протоколу HTTP. Благодаря протоколу HTTP Ваш браузер, получая данные с сервера, знает, как их требуется обработать, и успешно обрабатывает их, показывая Вам запрашиваемую страничку.
Если Вы еще не в курсе что из себя представляет страничка в интернете, то объясню в двух словах: любой текст на веб-страничке заключен в специальные теги, которые указывают браузеру какой размер текста использовать, его цвет, расположение на странице (слева, справа или по центру). Это касается не только текста, но и картинок, форм, активных элементов и вообще всего контента, т.е. того, что есть на страничке. Браузер, обнаруживая теги, действует согласно их предписанию, и показывает Вам обработанные данные, которые заключены в эти теги. Вы и сами можете увидеть теги этой странички (и этот текст между тегами), для этого зайдите в меню вашего браузера и выберите - просмотр исходного кода.
Не будем сильно отвлекаться, "Сетевая модель" нужная тема для тех, кто хочет стать специалистом. Эта статья состоит из 3х частей и для Вас, Я постарался написать не скучно, понятливо и коротко. Для получения подробностей, или получения дополнительного разъяснения отпишитесь в комментариях внизу страницы, и я непременно помогу Вам.
Мы, как и в Сетевой Академии Cisco рассмотрим две сетевые модели: модель OSI и модель TCP/IP (иногда её называют DOD), а заодно и сравним их.

Эталонная сетевая модель OSI


OSI расшифровывается как Open System Interconnection. На русском языке это звучит следующим образом: Сетевая модель взаимодействия открытых систем (эталонная модель). Эту модель можно смело назвать стандартом. Именно этой модели придерживаются производители сетевых устройств, когда разрабатывают новые продукты.
Сетевая модель OSI состоит из 7 уровней, причем принято начинать отсчёт с нижнего.
Перечислим их:
7. Прикладной уровень (application layer)
6. Представительский уровень или уровень представления (presentation layer)
5. Сеансовый уровень (session layer)
4. Транспортный уровень (transport layer)
3. Сетевой уровень (network layer)
2. Канальный уровень (data link layer)
1. Физический уровень (physical layer)

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

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


Прикладной уровень или уровень приложений(application layer) – это самый верхний уровень модели. Он осуществляет связь пользовательских приложений с сетью. Эти приложения нам всем знакомы: просмотр веб-страниц (HTTP), передача и приём почты (SMTP, POP3), приём и получение файлов (FTP, TFTP), удаленный доступ (Telnet) и т.д.

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


Представительский уровень или уровень представления данных (presentation layer) – он преобразует данные в соответствующий формат. На примере понять проще: те картинки (все изображения) которые вы видите на экране, передаются при пересылке файла в виде маленьких порций единиц и ноликов (битов). Так вот, когда Вы отправляете своему другу фотографию по электронной почте, протокол Прикладного уровня SMTP отправляет фотографию на нижний уровень, т.е. на уровень Представления. Где Ваша фотка преобразуется в удобный вид данных для более низких уровней, например в биты (единицы и нолики).
Именно таким же образом, когда Ваш друг начнет получать Ваше фото, ему оно будет поступать в виде все тех же единиц и нулей, и именно уровень Представления преобразует биты в полноценное фото, например JPEG.
Вот так и работает этот уровень с протоколами (стандартами) изображений (JPEG, GIF, PNG, TIFF), кодировок (ASCII, EBDIC), музыки и видео (MPEG) и т.д.

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


Сеансовый уровень или уровень сессий(session layer) – как видно из названия, он организует сеанс связи между компьютерами. Хорошим примером будут служить аудио и видеоконференции, на этом уровне устанавливается, каким кодеком будет кодироваться сигнал, причем этот кодек должен присутствовать на обеих машинах. Еще примером может служить протокол SMPP (Short message peer-to-peer protocol), с помощью него отправляются хорошо известные нам СМСки и USSD запросы. И последний пример: PAP (Password Authentication Protocol) – это старенький протокол для отправки имени пользователя и пароля на сервер без шифрования.
Больше про сеансовый уровень ничего не скажу, иначе углубимся в скучные особенности протоколов. А если они (особенности) Вас интересуют, пишите письма мне или оставляйте сообщение в комментариях с просьбой раскрыть тему более подробно, и новая статья не заставит себя долго ждать;)

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


Транспортный уровень (transport layer) – этот уровень обеспечивает надёжность передачи данных от отправителя к получателю. На самом деле всё очень просто, например вы общаетесь с помощью веб-камеры со своим другом или преподавателем. Нужна ли здесь надежная доставка каждого бита переданного изображения? Конечно нет, если потеряется несколько битов из потокового видео Вы даже этого не заметите, даже картинка не изменится (м.б. изменится цвет одного пикселя из 900000 пикселей, который промелькнет со скоростью 24 кадра в секунду).
А теперь приведем такой пример: Вам друг пересылает (например, через почту) в архиве важную информацию или программу. Вы скачиваете себе на компьютер этот архив. Вот здесь надёжность нужна 100%, т.к. если пару бит при закачке архива потеряются – Вы не сможете затем его разархивировать, т.е. извлечь необходимые данные. Или представьте себе отправку пароля на сервер, и в пути один бит потерялся – пароль уже потеряет свой вид и значение изменится.
Таким образом, когда мы смотрим видеоролики в интернете, иногда мы видим некоторые артефакты, задержки, шумы и т.п. А когда мы читаем текст с веб-страницы – потеря (или скжение) букв не допустима, и когда скачиваем программы – тоже все проходит без ошибок.
На этом уровне я выделю два протокола: UDP и TCP. UDP протокол (User Datagram Protocol) передает данные без установления соединения, не подтверждает доставку данных и не делает повторы. TCP протокол (Transmission Control Protocol), который перед передачей устанавливает соединение, подтверждает доставку данных, при необходимости делает повтор, гарантирует целостность и правильную последовательность загружаемых данных.
Следовательно, для музыки, видео, видеоконференций и звонков используем UDP (передаем данные без проверки и без задержек), а для текста, программ, паролей, архивов и т.п. – TCP (передача данных с подтверждением о получении, затрачивается больше времени).

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


Сетевой уровень (network layer) – этот уровень определяет путь, по которому данные будут переданы. И, между прочим, это третий уровень Сетевой модели OSI, а ведь существуют такие устройства, которые как раз и называют устройствами третьего уровня – маршрутизаторы.
Все мы слышали об IP-адресе, вот это и осуществляет протокол IP (Internet Protocol). IP-адрес – это логический адрес в сети.
На этом уровне достаточно много протоколов и все эти протоколы мы разберем более подробно позже, в отдельных статьях и на примерах. Сейчас же только перечислю несколько популярных.
Как об IP-адресе все слышали и о команде ping – это работает протокол ICMP.
Те самые маршрутизаторы (с которыми мы и будет работать в дальнейшем) используют протоколы этого уровня для маршрутизации пакетов (RIP, EIGRP, OSPF).
Вся вторая часть курса CCNA (Exploration 2) о маршрутизации.

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


Канальный уровень (data link layer) – он нам нужен для взаимодействия сетей на физическом уровне. Наверное, все слышали о MAC-адресе, вот он является физическим адресом. Устройства канального уровня – коммутаторы, концентраторы и т.п.
IEEE (Institute of Electrical and Electronics Engineers - Институт инженеров по электротехнике и электронике) определяет канальный уровень двумя подуровнями: LLC и MAC.
LLC – управление логическим каналом (Logical Link Control), создан для взаимодействия с верхним уровнем.
MAC – управление доступом к передающей среде (Media Access Control), создан для взаимодействия с нижним уровнем.
Объясню на примере: в Вашем компьютере (ноутбуке, коммуникаторе) имеется сетевая карта (или какой-то другой адаптер), так вот для взаимодействия с ней (с картой) существует драйвер. Драйвер – это некоторая программа - верхний подуровень канального уровня, через которую как раз и можно связаться с нижними уровнями, а точнее с микропроцессором (железо) – нижний подуровень канального уровня.
Типичных представителей на этом уровне много. PPP (Point-to-Point) – это протокол для связи двух компьютеров напрямую. FDDI (Fiber Distributed Data Interface) – стандарт передаёт данные на расстояние до 200 километров. CDP (Cisco Discovery Protocol) – это проприетарный (собственный) протокол принадлежащий компании Cisco Systems, с помощью него можно обнаружить соседние устройства и получить информацию об этих устройствах.
Вся третья часть курса CCNA (Exploration 3) об устройствах второго уровня.

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


Физический уровень (physical layer) – самый нижний уровень, непосредственно осуществляющий передачу потока данных. Протоколы нам всем хорошо известны: Bluetooth, IRDA (Инфракрасная связь), медные провода (витая пара, телефонная линия), Wi-Fi, и т.д.
Подробности и спецификации ждите в следующих статьях и в курсе CCNA. Вся первая часть курса CCNA (Exploration 1) посвящена модели OSI.

Заключение


Вот мы и разобрали сетевую модель OSI. В следующей части приступим к Сетевой модели TCP/IP, она меньше и протоколы те же. Для успешной сдачи тестов CCNA надо провести сравнение и выявить отличия, что и будет сделано.

После недолгих размышлений решил поместить сюда статью с сайта Сетевых заморочек . Чтобы всё лежало в одном месте.

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

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


Разделение функций с помощью сетевой модели


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


Взаимодействие между уровнями сетевой модели OSI


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


Работа не некоторых уровнях сетевой модели OSI


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


Общение двух систем с позиции модели OSI


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


Демонстрация принципа инкапсуляции


Модель OSI подразделяет все функции, выполняемые при взаимодействии систем на 7 уровней: Физический(Physical) - 1, Канальный(Data link) -2, Сетевой(network) – 3, Транспортный(transport) – 4, Сеансовый(Session) -5, Представительский(Presentation) -6 и Прикладной (Application) - 7.


Уровни модели взаимодействия открытых систем


Кратенько рассмотрим назначение каждого из уровней модели взаимодействия открытых систем.

Прикладной уровень является точкой, через которую приложения общаются с сетью (точка входа в модель OSI). С помощью данного уровня модели OSI выполняется следующие задачи: управление сетью, управление занятостью системы, управление передачей файлов, идентификация пользователей по их паролям. Примерами протоколов данного уровня являются: HTTP, SMTP, RDP и д.р. Очень часто протоколы прикладного уровня выполняют одновременно функции протоколов представительского и сеансового уровней.


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


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


Протоколы данного уровня сетевой модели OSI отвечают за передачу данных от одной системы другой. На данном уровне большие блоки данных разделяются на более мелкие блоки, пригодные для обработки сетевым уровнем (очень мелкие блоки данных объединяются в более крупные), данные блоки соответствующим образом маркируются для их последующего восстановления на принимающей стороне. Так же при использовании соответствующих протоколов данный уровень способен обеспечить контроль доставки пакетов сетевого уровня. Блок данных, которым оперируют данный уровень обычно называется сегментом. Примерами протоколов данного уровня являются: TCP, UDP, SPX, ATP и д.р.


Данный уровень отвечает за маршрутизацию (определение оптимальных маршрутов от одной системы до другой) блоков данных данного уровня. Блок данных этого уровня обычно называется пакетом. Так же данный уровень отвечает за логическую адресацию систем (те самые IP адреса), на основе которой как раз и происходит маршрутизация. К протоколам данного уровня можно отнести: IP, IPX и др, к устройствам работающим на данном уровне – маршрутизаторы.


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


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


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

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

Эталонная модель OSI

Начальная стадия развития сетей LAN, MAN и WAN имела во многих отношениях хаотический характер. В начале 80-х годов XX века резко увеличились размеры сетей и их количество. По мере того как компании осознавали, что, используя сетевые технологии, они могут сэкономить значительные средства и повысить эффективность своей работы, они создавали новые сети и расширяли уже существовавшие с той же быстротой, с какой появлялись новые сетевые технологии и новое оборудование.

Однако к середине 80-х годов эти же компании стали испытывать трудности с расширением уже существующих сетей. Сетям, использовавшим различные спецификации и реализованным различными способами, стало все труднее осуществлять связь друг с другом. Компании, оказавшиеся в такой ситуации, первыми осознали, что необходимо отходить от использования фирменных (proprietary) сетевых систем.

Для решения проблемы несовместимости сетей и их неспособности осуществлять связь друг с другом международная организация по стандартизации (International Organization for Standardization - ISO) разработала различные сетевые схемы, такие, как DECnet, системная сетевая архитектура (Systems Network Architecture - SNA) и стек протоколов TCP/IP. Целью создания таких схем была разработка некоторого общего для всех пользователей набора правил работы сетей. В результате этих исследований организация ISO разработала сетевую модель, которая смогла помочь производителям оборудования создавать сети, совместимые друг с другом и успешно взаимодействовавшие. Процесс подразделения сложной задачи сетевой коммуникации на отдельные более мелкие можно сравнить с процессом сборки автомобиля.
Процесс проектирования, изготовления деталей и сборки автомобиля, если его рассматривать как единое целое, является весьма сложным. Маловероятно, что нашелся бы специалист, который смог бы решить все требуемые задачи при сборке автомобиля: собрать машину из случайным образом подобранных деталей или, скажем,
при изготовлении конечного продукта непосредственно из железной руды. По этой причине проектированием автомобиля занимаются инженеры»проектировщики, инженеры-литейщики проектируют формы для литья деталей, а сборочные инженеры и техники занимаются сборкой узлов и автомобиля из готовых деталей.

Эталонная модель OSI (OSI reference model ), обнародованная в 1984 году, была описательной схемой, созданной организацией ISO. Эта эталонная модель предоставила производителям оборудования набор стандартов, которые обеспечили большую совместимость и более эффективное взаимодействие различных сетевых технологий и оборудования, производимого многочисленными компаниями во всем мире.
Эталонная модель OSI является первичной моделью, используемой в качестве
основы для сетевых коммуникаций.
Хотя существуют и другие модели, большинство производителей оборудования и программного обеспечения ориентируются на эталонную модель OSI, особенно когда желают обучить пользователей работе с их продуктами. Эталонная модель OSI в настоящее время считается наилучшим доступным средством обучения пользователей принципам работы сетей и механизмам отправки и получения данных по сети.

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

Уровни сетевой модели OSI (так же называемой эталонной моделью OSI)

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

  • Уровень 7 - уровень приложений.
  • Уровень 6 - уровень представления данных.
  • Уровень 5 - сеансовый уровень.
  • Уровень 4 - транспортный уровень.
  • Уровень 3 - сетевой уровень.
  • Уровень 2 - канальный уровень.
  • Уровень 1 - физический уровень.

Схема уровней сетевой модели OSI

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

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

Уровни сетевой модели OSI и их функции

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

Уровень 7: уровень приложений

Уровень приложений (application layer) является ближайшим к пользователю и предоставляет службы его приложениям. От других уровней он отличается тем, что не предоставляет служб другим уровням; вместо этого он предоставляет службы только приложениям, которые находятся вне рамок эталонной модели OSI. Примерами таких приложений могут служить электронные таблицы (например, программа Excel) или текстовые процессоры (например, программа Word). Уровень приложений определяет доступность партнеров по сеансу связи друг для друга, а также синхронизирует связь и устанавливает соглашение о процедурах восстановления данных в случае ошибок и процедурах контроля целостности данных. Примерами приложений седьмого уровня могут служить протоколы Telnet и HTTP .

Уровень 6: уровень представления данных

Задача уровня представления данных (presentation layer) состоит в том, чтобы информация уровня приложений, которую посылает одна система (отправитель), могла быть прочитана уровнем приложений другой системы (получателя). При необходимости уровень представления преобразует данные в один из многочисленных существующих форматов, который поддерживается обеими системами. Другой важной задачей этого уровня является шифрование и расшифровка данных. Типовыми графическими стандартами шестого уровня являются стандарты PICT, TIFF и JPEG. Примерами стандартов шестого уровня эталонной модели, описывающих формат представления звука и видео, являются стандарты MIDI и MPEG.

Уровень 5: сеансовый уровень

Как показывает само название этого уровня, сеансовый уровень (session layer) устанавливает сеанс связи между двумя рабочими станциями, управляет им и разрывает его. Сеансовый уровень предоставляет свои службы уровню представления данных. Он также синхронизирует диалог между уровнями представления двух систем и управляет обменом данными. Кроме своей основной постоянной функции - управления, уровень сеанса связи обеспечивает эффективную передачу данных, требуемый класс обслуживания и рассылку экстренных сообщений о наличии проблем на сеансовом уровне, уровне представления данных или уровне приложений. Примерами протоколов пятого уровня могут служить сетевая файловая система (Network File System - NFS), система X-Window и протокол сеанса AppleTalk (AppleTalk Session Protocol - ASP).

Уровень 4: транспортный уровень

Транспортный уровень (transport layer) сегментирует данные передающей станции и вновь собирает их в одно целое на принимающей стороне. Границу между транспортным уровнем и уровнем сеанса связи можно рассматривать как границу между протоколами приложений и протоколами передачи данных. В то время как уровни приложений, представления данных и сеанса связи занимаются аспектами коммуникаций, которые связаны с работой приложений, нижние четыре уровня решают вопросы транспортировки данных по сети. Транспортный уровень пытается обеспечить службу передачи данных таким образом, чтобы скрыть от верхних уровней детали процесса передачи данных. В частности, задачей транспортного уровня является обеспечение надежности передачи данных между двумя рабочими станциями.
При обеспечении службы связи транспортный уровень устанавливает, поддерживает и соответствующим образом ликвидирует виртуальные каналы. Для обеспечения надежности транспортной службы используются выявление ошибок при передаче и управление информационными потоками. Примерами протоколов четвертого уровня могут служить протокол управления передачей (Transmission Control Protocol - TCP), протокол пользовательских дейтаграмм (User Datagram Protocol - UDP) и протокол последовательного обмена пакетами (Sequenced Packet Exchange - SPX).

Уровень 3: сетевой уровень

Сетевой уровень (network layer) является комплексным уровнем, обеспечивающим выбор маршрута и соединение между собой двух рабочих станций, которые могут быть расположены в географически удаленных друг от друга сетях. Кроме того, сетевой уровень решает вопросы логической адресации. Примерами протоколов третьего уровня могут служить Internet»протокол (IP), протокол межсетевого пакетного обмена (Internetwork Packet Exchange - IPX) и протокол AppleTalk.

Уровень 2: канальный уровень

Канальный уровень (data link layer) обеспечивает надежную передачу данных по физическому каналу. При этом канальный уровень решает задачи физической (в противоположность логической) адресации, анализа сетевой топологии, доступа к сети, уведомления об ошибках, упорядоченной доставки фреймов и управления потоками.

Уровень 1: физический уровень

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

P.S. Сетевая модель OSI не зря считается эталонной моделью, т.к. позволяет стандартизировать различные сетевые технологии, обеспечивает взаимодействие сетевых устройств и приложений разных уровней. Четкое понимание деления на уровни дает полное представление об организации работы компьютерных сетей. Если что-то непонятно сейчас, то нужно восполнить этот пробел сейчас, т.к. изучение более сложных вещей будет очень затруднено.
На практике используется более простая , которая имеет 4 уровня.


Сетевая модель OSI (open systems interconnection basic reference model - базовая эталонная модель взаимодействия открытых систем, сокр. ЭМВОС ; 1978 год) - сетевая модел стека сетевых протоколов OSI/ISO (ГОСТ Р ИСО/МЭК 7498-1-99).

Общая характеристика модели OSI


В связи с затянувшейся разработкой протоколов OSI, в настоящее время основным используемым стеком протоколов является TCP/IP, разработанный ещё до принятия модели OSI и вне связи с ней.

К концу 70-х годов в мире уже существовало большое количество фирменных стеков коммуникационных протоколов, среди которых можно назвать, например, такие популярные стеки, как DECnet, TCP/IP и SNA. Подобное разнообразие средств межсетевого взаимодействия вывело на первый план проблему несовместимости устройств, использующих разные протоколы. Одним из путей разрешения этой проблемы в то время виделся всеобщий переход на единый, общий для всех систем стек протоколов, созданный с учетом недостатков уже существующих стеков. Такой академический подход к созданию нового стека начался с разработки модели OSI и занял семь лет (с 1977 по 1984 год). Назначение модели OSI состоит в обобщенном представлении средств сетевого взаимодействия. Она разрабатывалась в качестве своего рода универсального языка сетевых специалистов, именно поэтому её называют справочной моделью.В модели OSI средства взаимодействия делятся на семь уровней: прикладной, представления, сеансовый, транспортный, сетевой, канальный и физический . Каждый уровень имеет дело с совершенно определенным аспектом взаимодействия сетевых устройств.

Приложения могут реализовывать собственные протоколы взаимодействия, используя для этих целей многоуровневую совокупность системных средств. Именно для этого в распоряжение программистов предоставляется прикладной программный интерфейс (Application Program Interface, API). В соответствии с идеальной схемой модели OSI приложение может обращаться с запросами только к самому верхнему уровню - прикладному, однако на практике многие стеки коммуникационных протоколов предоставляют возможность программистам напрямую обращаться к сервисам, или службам, расположенных ниже уровней. Например, некоторые СУБД имеют встроенные средства удаленного доступа к файлам. В этом случае приложение, выполняя доступ к удаленным ресурсам, не использует системную файловую службу; оно обходит верхние уровни модели OSI и обращается непосредственно к ответственным за транспортировку сообщений по сети системным средствам, которые располагаются на нижних уровнях модели OSI. Итак, пусть приложение узла А хочет взаимодействовать с приложением узла В. Для этого приложение А обращается с запросом к прикладному уровню, например к файловой службе. На основании этого запроса программное обеспечение прикладного уровня формирует сообщение стандартного формата. Но для того, чтобы доставить эту информацию по назначению, предстоит решить еще много задач, ответственность за которые несут нижележащие уровни. После формирования сообщения прикладной уровень направляет его вниз по стеку уровню представления. Протокол уровня представления на основании информации, полученной из заголовка сообщения прикладного уровня, выполняет требуемые действия и добавляет к сообщению собственную служебную информацию - заголовок уровня представления, в котором содержатся указания для протокола уровня представления машины-адресата. Полученное в результате сообщение передается вниз сеансовому уровню, который, в свою очередь, добавляет свой заголовок и т. д. (Некоторые реализации протоколов помещают служебную информацию не только в начале сообщения в виде заголовка, но и в конце в виде так называемого концевика.) Наконец, сообщение достигает нижнего, физического, уровня, который, собственно, и передает его по линиям связи машине-адресату. К этому моменту сообщение «обрастает» заголовками всех уровней.

Физический уровень помещает сообщение на физический выходной интерфейс компьютера 1, и оно начинает своё «путешествие» по сети (до этого момента сообщение передавалось от одного уровню другому в пределах компьютера 1). Когда сообщение по сети поступает на входной интерфейс компьютера 2, оно принимается его физическим уровнем и последовательно перемещается вверх с уровня на уровень. Каждый уровень анализирует и обрабатывает заголовок своего уровня, выполняя соответствующие функции, а затем удаляет этот заголовок и передает сообщение вышележащему уровню. Как видно из описания, протокольные сущности одного уровня не общаются между собой непосредственно, в этом общении всегда участвуют посредники - средства протоколов нижележащих уровней. И только физические уровни различных узлов взаимодействуют непосредственно.

Уровни модели OSI

Модель OSI
Уровень (layer) ) Функции Примеры
Host
layers
7. Прикладной (application) Доступ к сетевым службам HTTP , FTP , SMTP
6. Представительский (представления) (presentation) Представление и шифрование данных ASCII , EBCDIC , JPEG
5. Сеансовый (session) Управление сеансом связи RPC , PAP
4. Транспортный (transport) Сегменты (segment)/
Дейтаграммы (datagram)
Прямая связь между конечными пунктами и надежность TCP , UDP , SCTP

layers
3. Сетевой (network) Пакеты (packet) Определение маршрута и логическая адресация IPv4 , IPv6 , IPsec , AppleTalk
2. Канальный (data link) Биты (bit)/
Кадры (frame)
Физическая адресация PPP , IEEE 802.2 , Ethernet , DSL , L2TP , ARP
1. Физический (physical) Биты (bit) Работа со средой передачи, сигналами и двоичными данными USB , витая пара, коаксиальный кабель, оптический кабель

В литературе наиболее часто принято начинать описание уровней модели OSI с 7-го уровня, называемого прикладным, на котором пользовательские приложения обращаются к сети. Модель OSI заканчивается 1-м уровнем - физическим, на котором определены стандарты, предъявляемые независимыми производителями к средам передачи данных:

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

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

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

К базовым сетевым технологиям относятся физический и канальный уровни.

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


Прикладной уровень (уровень приложений; application layer) - верхний уровень модели, обеспечивающий взаимодействие пользовательских приложений с сетью:

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

Протоколы прикладного уровня: RDP, HTTP, SMTP, SNMP, POP3, FTP, XMPP, OSCAR, Modbus, SIP, TELNET и другие.

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


Представительский уровень (уровень представления; presentation layer) обеспечивает преобразование протоколов и кодирование/декодирование данных. Запросы приложений, полученные с прикладного уровня, на уровне представления преобразуются в формат для передачи по сети, а полученные из сети данные преобразуются в формат приложений. На этом уровне может осуществляться сжатие/распаковка или шифрование/дешифрование, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально.

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

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

Чтобы понять, как это работает, представим, что имеются две системы. Одна использует для представления данных расширенный двоичный код обмена информацией EBCDIC, например, это может быть мейнфрейм компании IBM, а другая - американский стандартный код обмена информацией ASCII (его используют большинство других производителей компьютеров). Если этим двум системам необходимо обменяться информацией, то нужен уровень представлений, который выполнит преобразование и осуществит перевод между двумя различными форматами.

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

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

Другим форматом представлений является тэгированный формат файлов изображений TIFF, который обычно используется для растровых изображений с высоким разрешением. Следующим стандартом уровня представлений, который может использоваться для графических изображений, является стандарт, разработанный Объединенной экспертной группой по фотографии (Joint Photographic Expert Group); в повседневном пользовании этот стандарт называют просто JPEG.

Существует другая группа стандартов уровня представлений, которая определяет представление звука и кинофрагментов. Сюда входят интерфейс электронных музыкальных инструментов (Musical Instrument Digital Interface, MIDI) для цифрового представления музыки, разработанный Экспертной группой по кинематографии стандарт MPEG, используемый для сжатия и кодирования видеороликов на компакт-дисках, хранения в оцифрованном виде и передачи со скоростями до 1,5 Мбит/с, и QuickTime - стандарт, описывающий звуковые и видео элементы для программ, выполняемых на компьютерах Macintosh и PowerPC.

Протоколы уровня представления: AFP - Apple Filing Protocol, ICA - Independent Computing Architecture, LPP - Lightweight Presentation Protocol, NCP - NetWare Core Protocol, NDR - Network Data Representation, XDR - eXternal Data Representation, X.25 PAD - Packet Assembler/Disassembler Protocol.

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


Сеансовый уровень (session layer) модели обеспечивает поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений.

Протоколы сеансового уровня: ADSP (AppleTalk Data Stream Protocol), ASP (AppleTalk Session Protocol), H.245 (Call Control Protocol for Multimedia Communication), ISO-SP (OSI Session Layer Protocol (X.225, ISO 8327)), iSNS (Internet Storage Name Service), L2F (Layer 2 Forwarding Protocol), L2TP (Layer 2 Tunneling Protocol), NetBIOS (Network Basic Input Output System), PAP (Password Authentication Protocol), PPTP (Point-to-Point Tunneling Protocol), RPC (Remote Procedure Call Protocol), RTCP (Real-time Transport Control Protocol), SMPP (Short Message Peer-to-Peer), SCP (Session Control Protocol), ZIP (Zone Information Protocol), SDP (Sockets Direct Protoco]).

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


Транспортный уровень (transport layer) модели предназначен для обеспечения надёжной передачи данных от отправителя к получателю. При этом уровень надёжности может варьироваться в широких пределах. Существует множество классов протоколов транспортного уровня, начиная от протоколов, предоставляющих только основные транспортные функции (например, функции передачи данных без подтверждения приема), и заканчивая протоколами, которые гарантируют доставку в пункт назначения нескольких пакетов данных в надлежащей последовательности, мультиплексируют несколько потоков данных, обеспечивают механизм управления потоками данных и гарантируют достоверность принятых данных. Например, UDP ограничивается контролем целостности данных в рамках одной датаграммы, и не исключает возможности потери пакета целиком, или дублирования пакетов, нарушение порядка получения пакетов данных; TCP обеспечивает надёжную непрерывную передачу данных, исключающую потерю данных или нарушение порядка их поступления или дублирования, может перераспределять данные, разбивая большие порции данных на фрагменты и наоборот склеивая фрагменты в один пакет.

Протоколы транспортного уровня: ATP (AppleTalk Transaction Protocol), CUDP (Cyclic UDP), DCCP (Datagram Congestion Control Protocol), FCP (Fibre Channel|Fiber Channel Protocol), IL (IL Protocol), NBF (NetBIOS Frames protocol), NCP (NetWare Core Protocol), SCTP (Stream Control Transmission Protocol), SPX (Sequenced Packet Exchange), SST (Structured Stream Transport), TCP (Transmission Control Protocol), UDP (User Datagram Protocol).

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


Сетевой уровень (lang-en|network layer) модели предназначен для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию, отслеживание неполадок и «заторов» в сети.

Протоколы сетевого уровня маршрутизируют данные от источника к получателю. Работающие на этом уровне устройства (маршрутизаторы) условно называют устройствами третьего уровня (по номеру уровня в модели OSI).

Протоколы сетевого уровня: IP/IPv4/IPv6 (Internet Protocol), IPX (Internetwork Packet Exchange, протокол межсетевого обмена), X.25 (частично этот протокол реализован на уровне 2), CLNP (сетевой протокол без организации соединений), IPsec (Internet Protocol Security). Протоколы маршрутизации - RIP (Routing Information Protocol), OSPF (Open Shortest Path First).

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


Канальный уровень (data link layer) предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Полученные с физического уровня данные, представленные в битах, он упаковывает в кадры, проверяет их на целостность и, если нужно, исправляет ошибки (формирует повторный запрос поврежденного кадра) и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием.

Спецификация IEEE 802 разделяет этот уровень на два подуровня: MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (logical link control) обеспечивает обслуживание сетевого уровня.

На этом уровне работают коммутаторы, мосты и другие устройства. Говорят, что эти устройства используют адресацию второго уровня (по номеру уровня в модели OSI).

Протоколы канального уровня: ARCnet, ATM (Asynchronous Transfer Mode), Controller Area Network (CAN), Econet, IEEE 802.3 (Ethernet), Ethernet Automatic Protection Switching (EAPS), Fiber Distributed Data Interface (FDDI), Frame Relay, High-Level Data Link Control (HDLC), IEEE 802.2 (provides LLC functions to IEEE 802 MAC layers), Link Access Procedures, D channel (LAPD), IEEE 802.11 wireless LAN, LocalTalk, Multiprotocol Label Switching (MPLS), Point-to-Point Protocol (PPP), Point-to-Point Protocol over Ethernet (PPPoE), StarLan, Token ring, Unidirectional Link Detection (UDLD), x.25]], ARP.

В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровней между собой. Это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: ODI, NDIS, UDI.

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


Физический уровень (physical layer) - нижний уровень модели, который определяет метод передачи данных, представленных в двоичном виде, от одного устройства (компьютера) к другому. Составлением таких методов занимаются разные организации, в том числе: Институт инженеров по электротехнике и электронике, Альянс электронной промышленности, Европейский институт телекоммуникационных стандартов и другие. Осуществляют передачу электрических или оптических сигналов в кабель или в радиоэфир и, соответственно, их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов.

На этом уровне также работают концентраторы]], повторители сигнала и медиаконвертеры.

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