Раздел 2. Сетевые модели и протоколы
План лекции
Введение
Обоснование
модели 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 описывает,
как данные приложений передаются другому приложению, расположенному на другом
компьютере через сетевую среду, даже если отправитель и получатель подключаются
с помощью разных сетевых сред.
Рисунок 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 различаются протоколы двух типов. Протокол с установлением соединения
предполагает, что перед началом обмена данными между компьютерами должно быть
установлена связь с определенными параметрами. По дейтаграммному протоколу сообщение
передается в сеть без предварительного установления
соединения.
Каждому уровню с некоторой долей условности соответствует свой
операнд – логически неделимый элемент данных, которым на отдельном уровне можно
оперировать в рамках модели и используемых протоколов: на физическом уровне
мельчайшая единица –бит, на
канальном уровне информация объединена в кадры, на сетевом – в пакеты (датаграммы), на транспортном – в сегменты. Любой фрагмент данных,
логически объединённых для передачи – кадр, пакет, датаграмма– считается сообщением. Именно сообщения в общем
виде являются операндами сеансового, представительского и прикладного
уровней.
Средства каждого уровня отрабатывают протокол своего уровня и
интерфейсы с соседними уровнями. Набор протоколов, достаточный для организации
взаимодействия в сети, называется стеком
коммуникационных протоколов.
Блоки информации,
передаваемые между уровнями, имеют стандартный формат: заголовок, служебная
информация, данные, завершающая информация. Каждый уровень при передаче блока
информации нижележащему уровню снабжает его своими заголовками. Заголовки
вышележащих уровней воспринимаются нижележащими уровнями как данные блока
информации. На каждом уровне информация обрабатывается в соответствии с
назначенными функциями, например, данные шифруются.
При получении блока информации от нижележащего уровня заголовки и
другая служебная информация текущего уровня отбрасываются. Данные
обрабатываются, например, данные дешифруются. Данные, поступающие на вышележащий
уровень, уже имеют его заголовки.
К базовым сетевым технологиям относятся физический и канальный
уровни.
Рисунок 3. Взаимодействие двух сегментов сети
Транспортный уровень модели
OSI
Представительный уровень модели
OSI
Сетезависимые и сетенезависимые уровни
Функции
всех уровней модели OSI могут
быть отнесены к одной из двух групп:
либо к
функциям, зависящим от конкретной технической реализации сети, либо к функциям,
ориентированным на работу с приложениями.
Три
нижних уровня – физический, канальный и сетевой – являются сетезависимыми, то
есть протоколы этих уровней тесно связаны с технической реализацией сети и
используемым коммуникационным оборудованием. Например, переход на оборудование
FDDI означает
полную смену протоколов физического и канального уровней во всех узлах
сети.
Три
верхних уровня – прикладной, представительный и сеансовый – ориентированы на
приложения и мало зависят от технических особенностей построения сети. На
протоколы этих уровней не влияют какие бы то ни было изменения в топологии сети,
замена оборудования или переход на другую сетевую
технологию.
Транспортный
уровень является промежуточным, он скрывает все детали функционирования нижних
уровней от верхних. Это позволяет разрабатывать приложения, не зависящие от
технических средств непосредственной транспортировки
сообщений.
На рис.6
показаны уровни моделиOSI, на
которых работают различные элементы сети. Компьютер с установленной на нем
сетевой ОС взаимодействует с другим компьютером с помощью протоколов всех семи
уровней.Этовзаимодействие компьютеры осуществляют опосредовано через различные
коммуникационные устройства: концентраторы, модемы, мосты, коммутаторы,
маршрутизаторы, мультиплексоры. В зависимости от типа коммуникационное
устройство может работать либо только на физическом уровне (повторитель), либо
на физическом и канальном (мост), либо на физическом, канальном и сетевом,
иногда захватывая и транспортный уровень (маршрутизатор).
Рисунок
6. Сетезависимые и сетенезависимые
уровни модели OSI
Модель
OSI представляет хотя и очень важную, но только одну из многих моделей
коммуникаций. Эти модели и связанные с ними стеки протоколов могут отличаться
количеством уровней, их функциями, форматами сообщений, службами,
поддерживаемыми на верхних уровнях, и прочими параметрами.
Инкапсуляция и декапсуляция данных
Данные,
передаваемые по сети, должны пройти процесс преобразования как на передающей,
так и на принимающей системе. Этот процесс преобразования называется
инкапсуляцией и декапсуляцией данных.
Информация,
передаваемая по сети, называется данными или пакетами данных. При передачи
данных с одного компьютера на другой необходимо упаковать данные в пакеты. Этот
процесс называется инкапсуляцией.
Иначе говоря, инкапсуляция – это
процесс передачи данных с верхнего уровня приложений вниз (по стеку протоколов)
к физическому уровню, чтобы быть переданными по сетевой физической среде (витая
пара, оптическое волокно, Wi-Fi, и
др.).Во время инкапсуляции данные разбиваются на пакеты с необходимыми данными
протокола перед передачей через сеть. При перемещении данных через уровни модели
OSI на
каждом уровне к данным добавляется заголовок (и концевая метка, если
необходимо), пока данные не доходят до самого низкого уровня. Заголовки и
концевые метки содержат контрольную информацию для сетевых устройств и
приемника, которая обеспечивает корректную доставку данных и их правильную
интерпретацию на приемнике.
Cетевая
модель OSI состоит
из 7 уровней. Все сетевые устройства работают согласно модели OSI, только
некоторые используют все 7 уровней, а другие меньше. Этопозволяет обрабатывать
поступающие данные в несколько раз быстрее.
Например,
компьютер использует все 7 уровней, маршрутизатор – 3 нижних уровня, коммутатор
– только 2 нижних уровня.
Рисунок
7. Взаимодействие двух хостов через
маршрутизатор
На рис.7
Вы видите взаимодействие двух компьютеров, между которыми находится
маршрутизатор. Компьютерами PC1 и
PC2 могут
быть как домашние компьютеры, так и сервера. Маршрутизатор, как и говорилось
выше, работает только на трех уровнях модели, их (трех уровней) достаточно,
чтобы проложить маршрут в любой сети.
Разберем
процессы инкапсуляции и декапсуляции на примере. Допустим, при просмотре
веб-страницыв адресную строку браузера вводится адрес сайта. После этого браузер
должен отправить запрос на сервер (на котором хранится эта веб-страница), с
целью получения данных. Вот как раз на этом этапе, введённый адрес сайта
является данными, которые должны передаться на сервер в виде запроса (AH –
заголовок уровня приложений).
Эти
данные опускаются с уровня приложений, на уровень представления данных. На этом
уровне компьютер-отправитель преобразует строку введенного текста (адреса) в
формат удобный для передачи далее на нижний уровень (РH – заголовок уровня
представлений).
Далее
данные (уже не текст) поступают на сеансовый уровень, но на нём (в данном
случае) нам нет необходимости использовать протоколы (этого уровня), и поэтому
данные передаются далее (SH –
заголовок
сеансового
уровня).
Транспортный
уровень получает данные и определяет, что дальше они должны быть переданы
используя протокол TCP. Перед передачей транспортный уровень разбивает данные на
кусочки данных (сегменты) и добавляет к каждому заголовок, в котором содержится
информация о логических портах компьютеров (с которого данные были посланы,
например, 1223) и для какого предназначаются (в данном случае 80)). Сегменты
передаются дальше вниз к сетевому уровню (TH – заголовок
транспортного
уровня).
Сетевой
уровень, получая каждый сегмент, разделяет его на еще более маленькие
части
(пакеты) и к
каждой части добавляет свой заголовок. В заголовке сетевого уровня указываются
логические сетевые адреса (IP-адреса) отправителя и получателя (web-сервер).
Пакеты в свою очередь передаются на канальный уровень(NH –
заголовок
сетевого
уровня).
На
канальном уровне пакеты разделяются на еще более маленькие кусочки данных (кадры
или фреймы), и к ним помимо опять добавляемого заголовка, только уже канального
уровня, добавляется еще и трейлер (концевая метка уровня). На этом уровне в
заголовках содержатся физические адреса устройств (MAC-адреса) – отправителя и
получателя, а в трейлере находится вычисленная контрольная сумма, некий код
(информация), который используется для определения целостности данных. Далее
кадры передаются на физический уровень (DH – заголовок
канального уровня,
DT
– трейлер канального уровня).
На
физический уровень кадры передаются уже в виде сигналов битов и следуют через
другие сетевые устройства в пункт назначения.
Весь
процесс преобразования данных (с верхнего уровня) в сигналы (на нижний уровень)
называется инкапсуляцией. На
рисунке 8
представлена общая схема инкапсулирования с верхнего уровня на нижний:
Рисунок
8. Общая схема инкапсулирования
данных
Сигналы,
проходя через несколько сетевых устройств (в нашем случае это маршрутизатор и
коммутатор), доходят до получателя, в данном случае до сервера
(рис.9).
Рисунок
9. Схема взаимодействия двух
хостов
Сетевая
карта сервера принимает биты (на физическом уровне) и преобразует их в кадры
(для канального уровня). Канальный уровень в обратной последовательности должен
преобразовать кадры в пакеты (для сетевого уровня), только перед преобразованием
уровень сначала смотрит на МАС-адрес (физический адрес) получателя, он должен
совпадать с MAC-адресом сетевой карты, иначе кадр будет уничтожен. Затем
канальный уровень (в случае совпадения MAC-адреса) высчитывает сумму полученных
данных и сравнивает полученное значение со значением трейлера. Значение трейлера
высчитывалось на компьютере-отправителе, а теперь оно, после передачи по
проводам, сравнивается с полученным значением на сервере и если они совпадают,
кадр преобразуется в пакет. Если проверочный код целостности данных рознится –
кадр незамедлительно уничтожается.
На
сетевом уровне происходит проверка логического адреса (IP-адреса), в случае
успешной проверки пакет преобразуется в сегмент, попадая на транспортный
уровень.
На
транспортном уровне проверяется информация из заголовка, что это за сегмент,
какой используется протокол, для какого логического порта предназначается и т.п.
Протокол использовался TCP, поэтому назад на компьютер-отправитель посылается
уведомление о прибытии сегмента. В нашем случае использовался 80 порт
назначения. Т.к. на веб-сервере как раз открыт этот порт, данные передаются
дальше на верхний уровень.
На
верхних уровнях запрос (введенный адрес сайта) обрабатывается веб-сервером
(проверяется, доступна ли запрашиваемая веб-страница).
Этот
процесс преобразования сигналов из провода в данные называется процессом декапсуляции.
После
того, как страница будет найдена на сервере, она (текст, изображения, музыка)
преобразуется в цифровой код, удобный для инкапсулирования. Большой объём данных
делится на части и поступает ниже на уровень – транспортный. Там кусочек данных
преобразуется в сегмент, только порт назначения теперь будет тот, с которого вы
посылали (1223). Сегмент преобразуется в пакет, в заголовке которого содержится
IP-адрес компьютера-отправителя и переходит ниже. На канальном уровне пакет в
свою очередь преобразуется в кадры и добавляется заголовок и трейлер. В
заголовок помещается МАС-адрес назначения (в данном случае это будет адрес
шлюза), а в трейлер проверочный код на целостность данных. Далее сетевая карта
посылает кадры в виде сигналов по кабелю по направлению к компьютеру, с которого
введен запрос в браузере.
Так и
происходит сетевой обмен данными, инкапсуляция и
декапсуляция.
Кусочки
данных вместе с заголовками, которые переходят с уровня на уровень (с
добавлением заголовков или наоборот) называются ProtocolDataUnit или PDU.
Критика модели OSI
Пока
комитеты ISO спорили о своих стандартах, за их спиной менялась вся концепция
организации сетей и по всему миру внедрялся протокол TCP/IP.И вот, когда
протоколы ISO были наконец реализованы, выявился целый ряд
проблем:
·
эти
протоколы основывались на концепциях, не имеющих в современных сетях никакого
смысла;
·
их
спецификации были в некоторых случаях неполными;
·
по своим
функциональным возможностям они уступали другим
протоколам;
·
наличие
многочисленных уровней сделало эти протоколы медлительными и трудными для
реализации.
Опорная схема модели OSI
|
№ |
Уровень (layer) |
Основные функции
уровня |
Тип
данных |
Протоколы | |
Протоколы верхних
уровней (приложений) |
Сетенезависимые
уровни |
7 |
Прикладной |
Доступ к сетевым службам |
Данные/Сообщения |
RDP, HTTP, SMTP, SNMP, POP3, FTP, XMPP,
OSCAR, Modbus, SIP, TELNET идр. |
6 |
Уровень
представления |
Представление и шифрование данных |
Поток |
AFP , ICA , NCP ,
NDR , XDR , X.25 PAD | ||
5 |
Сеансовый |
Управление сеансом связи |
Сеансы |
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 |
Сетевой |
Определение маршрута и логическая адресация |
Пакеты /
Дейтаграммы |
IP/IPv4/IPv6, IPX, X.25, CLNP, IPsec.
Протоколы маршрутизации — RIP,
OSPF. | |
2 |
Канальный |
Физическая адресация |
Кадры |
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 |
Физический |
Работа со средой передачи, сигналами и двоичными
данными |
Биты |
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. |