Раздел 2. Сетевые модели и протоколы

План лекции

Введение

Обоснование модели OSI

Преимущества модели OSI

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

Физический уровень модели OSI

Канальный уровень модели OSI

Сетевой уровень модели OSI

Транспортный уровень модели OSI

Сеансовый уровень модели OSI

Представительный уровень модели OSI

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

Сетезависимые и сетенезависимые уровни

Инкапсуляция и деинкапсуляция данных

Инкапсуляция

Деинкапсуляция

Критика модели OSI

Опорная схема модели OSI

 

Введение

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

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

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

Обоснование модели OSI

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

Для решения проблемы несовместимости сетей и невозможности обмена между ними Международная организация по стандартам проанализировала несколько схем сетей, в результате этого исследования Международная организация по стандартам (InternationalOrganizationforStandardization, ISO) разработала модель, которая могла помочь поставщиками создавать сети, совместимые и способные взаимодействовать с другими сетями, затем она была пересмотрена в 1995 году. Называется эта структура эталонной моделью взаимодействия открытых систем ISO (ISOOSI (OpenSystemInterconnection) ReferenceModel), поскольку она связывает открытые системы, то есть системы, открытые для связи с другими системами. Для краткости мы будем называть эту модель просто «модель OSI».

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

1. Уровень должен создаваться по мере необходимости отдельного уровня абстракции.

2. Каждый уровень должен выполнять строго определенную функцию.

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

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

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

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

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

Преимущества модели OSI

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

13_01.png

Рисунок 1. Модель взаимодействия открытых систем ISO OSI

Эталонная модель OSI предлагает ряд преимуществ для понимания функций сети, так как она:

·         Снижает сложность. Модель OSI разбивает каналы связи в сети на небольшие, более простые фрагменты.

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

·         Облегчает модульное построение. Модель OSI позволяет использовать аппаратное и программное обеспечение разных типов для обмена данными.

·         Гарантирует совместимость технологий. При использовании модели OSI изменения на одном уровне не влияет на другие уровни. Это делает возможным более быстрое развитие.

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

·         Упрощает преподавание и освоение. В модели OSI обмен данными в сети разбит на небольшие составляющие, что упрощает обучение.

 

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

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

7

ПРИКЛАДНОЙ

Сетевой процесс к приложениям

6

ПРЕДСТАВЛЕНИЙ

Представление данных

5

СЕАНСОВЫЙ

Обмен данными внутри узла

4

ТРАНСПОРТНЫЙ

Сквозные соединения

3

СЕТЕВОЙ

Доставка данных

2

КАНАЛЬНЫЙ

Доступ к среде

1

ФИЗИЧЕСКИЙ

Передача двоичных данных

Рисунок 2. Функции уровней модели OSI

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

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

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

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

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

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

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

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

13_03.png

Рисунок 3. Взаимодействие двух сегментов сети

Физический уровень модели OSI

Канальный уровень модели OSI

Сетевой уровень модели OSI

Транспортный уровень модели OSI

Сеансовый уровень модели OSI

Представительный уровень модели OSI

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

Сетезависимые и сетенезависимые уровни

Функции всех уровней модели OSI могут быть отнесены к одной из двух групп:

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

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

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

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

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

13_06.png

Рисунок 6. Сетезависимые и сетенезависимые уровни модели OSI

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

Инкапсуляция и декапсуляция данных

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

Информация, передаваемая по сети, называется данными или пакетами данных. При передачи данных с одного компьютера на другой необходимо упаковать данные в пакеты. Этот процесс называется инкапсуляцией. Иначе говоря, инкапсуляция – это процесс передачи данных с верхнего уровня приложений вниз (по стеку протоколов) к физическому уровню, чтобы быть переданными по сетевой физической среде (витая пара, оптическое волокно, Wi-Fi, и др.).Во время инкапсуляции данные разбиваются на пакеты с необходимыми данными протокола перед передачей через сеть. При перемещении данных через уровни модели OSI на каждом уровне к данным добавляется заголовок (и концевая метка, если необходимо), пока данные не доходят до самого низкого уровня. Заголовки и концевые метки содержат контрольную информацию для сетевых устройств и приемника, которая обеспечивает корректную доставку данных и их правильную интерпретацию на приемнике.

Cетевая модель OSI состоит из 7 уровней. Все сетевые устройства работают согласно модели OSI, только некоторые используют все 7 уровней, а другие меньше. Этопозволяет обрабатывать поступающие данные в несколько раз быстрее.

Например, компьютер использует все 7 уровней, маршрутизатор – 3 нижних уровня, коммутатор – только 2 нижних уровня.

13_07.png

Рисунок 7. Взаимодействие двух хостов через маршрутизатор

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

Инкапсуляция

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

13_071.png

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

13_072.png

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

13_073.png

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

13_074.png

Сетевой уровень, получая каждый сегмент, разделяет его на еще более маленькие части (пакеты) и к каждой части добавляет свой заголовок. В заголовке сетевого уровня указываются логические сетевые адреса (IP-адреса) отправителя и получателя (web-сервер). Пакеты в свою очередь передаются на канальный уровень(NH – заголовок сетевого уровня).

13_075.png

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

13_076.png

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

13_077.png

Весь процесс преобразования данных (с верхнего уровня) в сигналы (на нижний уровень) называется инкапсуляцией. На рисунке 8 представлена общая схема инкапсулирования с верхнего уровня на нижний:

13_08.png

Рисунок 8. Общая схема инкапсулирования данных

Деинкапсуляция

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

13_09.png

Рисунок 9. Схема взаимодействия двух хостов

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

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

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

На верхних уровнях запрос (введенный адрес сайта) обрабатывается веб-сервером (проверяется, доступна ли запрашиваемая веб-страница).

Этот процесс преобразования сигналов из провода в данные называется процессом декапсуляции.

После того, как страница будет найдена на сервере, она (текст, изображения, музыка) преобразуется в цифровой код, удобный для инкапсулирования. Большой объём данных делится на части и поступает ниже на уровень – транспортный. Там кусочек данных преобразуется в сегмент, только порт назначения теперь будет тот, с которого вы посылали (1223). Сегмент преобразуется в пакет, в заголовке которого содержится IP-адрес компьютера-отправителя и переходит ниже. На канальном уровне пакет в свою очередь преобразуется в кадры и добавляется заголовок и трейлер. В заголовок помещается МАС-адрес назначения (в данном случае это будет адрес шлюза), а в трейлер проверочный код на целостность данных. Далее сетевая карта посылает кадры в виде сигналов по кабелю по направлению к компьютеру, с которого введен запрос в браузере.

Так и происходит сетевой обмен данными, инкапсуляция и декапсуляция.

Кусочки данных вместе с заголовками, которые переходят с уровня на уровень (с добавлением заголовков или наоборот) называются ProtocolDataUnit или PDU.

Критика модели OSI

Пока комитеты ISO спорили о своих стандартах, за их спиной менялась вся концепция организации сетей и по всему миру внедрялся протокол TCP/IP.И вот, когда протоколы ISO были наконец реализованы, выявился целый ряд проблем:

·         эти протоколы основывались на концепциях, не имеющих в современных сетях никакого смысла;

·         их спецификации были в некоторых случаях неполными;

·         по своим функциональным возможностям они уступали другим протоколам;

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


 

 

Опорная схема модели OSI

 

Уровень (layer)

Основные функции уровня

Тип данных

Протоколы

Протоколы верхних уровней (приложений)

Сетенезависимые уровни
(ориентированы на приложения,
 мало зависят от технических характеристик сети)

7

Прикладной
(application)

Доступ к сетевым службам

Данные/Сообщения

RDP, HTTP, SMTP, SNMP, POP3, FTP, XMPP, OSCAR, Modbus, SIP, TELNET идр.

6

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

Представление и шифрование данных

Поток

AFP , ICA , NCP , NDR , XDR , X.25 PAD

5

Сеансовый
(session)

Управление сеансом связи

Сеансы

ADSP, ASP, H.245, ISO-SP, iSNS, L2F, L2TP, NetBIOS, PAP, PPTP, RPC, RTCP, SMPP, SCP, ZIP, SDP.

Протоколы низших уровней (транспортных)

промежуточный

4

Транспортный (transport)

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

Сегменты

ATP, CUDP, DCCP, FCP, IL, NBF, NCP, RTP, SCTP, SPX, SST, TCP, UDP.

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

3

Сетевой
(network)

Определение маршрута и логическая адресация

Пакеты / Дейтаграммы

IP/IPv4/IPv6, IPX, X.25, CLNP, IPsec. Протоколы маршрутизации — RIP, OSPF.

2

Канальный
(datalink)

Физическая адресация

Кадры

ARCnet, ATM, CAN, Econet, Ethernet, EAPS, FDDI, Frame Relay, HDLC, IEEE 802.2, LAPD, IEEE 802.11 wireless LAN, LocalTalk, MPLS, PPP, PPPoE, StarLan, Token ring, UDLD, x.25.

1

Физический
(physical)

Работа со средой передачи, сигналами и двоичными данными

Биты

IEEE 802.15 (Bluetooth), IRDA, EIA RS-232, EIA-422, EIA-423, RS-449, RS-485, DSL, ISDN, SONET/SDH, 802.11 Wi-Fi, Etherloop, GSM, ITU, ITU-T, TransferJet.