какой уровень сетевой модели osi обеспечивает взаимодействие пользовательских приложений с сетью
OSI Model
Содержание
Сетевая модель OSI [ править ]
Общая характеристика модели [ править ]
OSI состоит из двух основных частей:
Концепция семиуровневой модели была описана в работе Чарльза Бахмана. Данная модель подразделяет коммуникационную систему на уровни абстракции (англ. «abstraction layers»). В модели OSI средства взаимодействия делятся на семь уровней: прикладной, представления, сеансовый, транспортный, сетевой, канальный и физический. Каждый уровень:
Каждый из семи уровней характеризуется типом данных (PDU, сокращение от англ. protocol data units), которым данный уровень оперирует и функционалом, который он предоставляет слою, находящемуся выше него. Предполагается, что пользовательские приложения обращаются только к самому верхнему (прикладному) уровню, однако на практике это выполняется далеко не всегда.
Описание уровней модели OSI [ править ]
Уровень | Функции | PDU | Примеры |
7. Прикладной | Некоторое высокоуровневое API | Данные | HTTP, FTP |
6. Представительский | Представление данных между сетевым сервисом и приложением | Данные | ASCII, EBCDIC, JPEG |
5. Сеансовый | Управление сеансами: продолжительный обмен информацией в виде множества передач между нодами | Данные | RPC, PAP |
4. Транспортный | Надёжная передача сегментов между двумя нодами в сети | Сегменты/Датаграммы | TCP, UDP |
3. Сетевой | Структуризация и управление множеством нод в сети | Пакеты | IPv4, IPv6 |
2. Канальный | Надёжная передача датафреймов между двумя нодами соединённых физическим уровнем | Фреймы | PPP, IEEE 802.2, Ethernet |
1. Физический | Передача и приём потока байтов через физическое устройство | Биты | USB, витая пара |
Прикладной уровень (Application layer) [ править ]
Самый верхний уровень модели, предоставляет набор интерфейсов для взаимодействия пользовательских процессов с сетью. Единицу информации, которой оперируют три верхних уровня модели OSI, принято называть сообщение (англ. message).
Прикладной уровень выполняет следующие функции:
К числу наиболее распространенных протоколов верхних трех уровней относятся:
Уровень представления (Presentation layer) [ править ]
Уровень представления занимается представлением данных, передаваемых прикладными процессами в нужной форме. Данные, полученные от приложений с прикладного уровня, на уровне представления преобразуются в формат подходящий для передачи их по сети, а полученные по сети данные преобразуются в формат приложений. Также кроме форматов и представления данных, данный уровень занимается конвертацией структур данных, используемых различными приложениями. Другой функцией, выполняемой на уровне представлений, является шифрование данных, которое применяется в тех случаях, когда необходимо защитить передаваемую информацию от доступа несанкционированными получателями.
Как и прикладной уровень, уровень представления оперирует напрямую сообщениями. Уровень представления выполняет следующие основные функции:
Примеры протоколов данного уровня:
Сеансовый уровень (Session layer) [ править ]
Сеансовый уровень контролирует структуру проведения сеансов связи между пользователями. Он занимается установкой, поддержанием и прерыванием сеансов, фиксирует, какая из сторон является активной в данный момент, осуществляет синхронизацию обмена информацией между пользователями, что также позволяет устанавливать контрольные точки.
На сеансовом уровне определяется, какой будет передача между двумя прикладными процессами:
Как 2 уровня над ним, сеансовый уровень использует сообщения в качестве PDU.
Примеры протоколов сеансового уровня:
Транспортный уровень (Transport layer) [ править ]
Транспортный уровень предназначен для передачи надежной последовательностей данных произвольной длины через коммуникационную сеть от отправителя к получателю. Уровень надежности может варьироваться в зависимости от класса протокола транспортного уровня. Так например UDP гарантирует только целостность данных в рамках одной датаграммы и не исключает возможности потери/дублирования пакета или нарушения порядка получения данных; TCP обеспечивает передачу данных, исключающую потерю данных или нарушение порядка их поступления или дублирования, может перераспределять данные, разбивая большие порции данных на фрагменты и наоборот, склеивая фрагменты в один пакет.
Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между различными прикладными протоколами через общий транспортный протокол, а главное способностью к обнаружению и исправлению ошибок передачи, таких как искажение, потеря и дублирование пакетов. В функции транспортного уровня входят:
Транспортный уровень использует сегменты или датаграммы в качестве основного типа данных.
Сетевой уровень (Network layer) [ править ]
Сетевой уровень предоставляет функционал для определения пути передачи пакетов данных между клиентами, подключенными к одной коммуникационной сети. На данном уровне решается проблема маршрутизации (выбора оптимального пути передачи данных), трансляцией логических адресов в физические, отслеживанием неполадок в сети.
В рамках сетевого надежность доставки сообщений не гарантируется; сетевой уровень может реализовывать соответствующий функционал, но не обязан это делать. Роль PDU исполняют пакеты (англ. packet).
Сетевой уровень выполняет функции:
Наиболее часто на сетевом уровне используются протоколы:
Канальный уровень (Data link layer) [ править ]
Канальный уровень предназначен для передачи данных между двумя узлами, находящихся в одной локальной сети. Роль PDU исполняют фреймы (англ. frame). Фреймы канального уровня не пересекают границ локальной сети, что позволяет данному уровню сосредоточиться на локальной доставке (фактически межсетевой доставкой занимаются более высокие уровни).
Заголовок фрейма формируется из аппаратных адресов отправителя и получателя, что позволяет однозначно определить устройство, которое отправило данный фрейм и устройство, которому он предназначен. При этом никакая часть адреса не может быть использована, чтобы определить некую логическую/физическую группу к которой принадлежит устройство.
Канальный уровень состоит из двух подуровней: LLC и MAC.
Канальный уровень выполняет функции:
Наиболее часто на канальной уровне используются протоколы:
Физический уровень (Physical layer) [ править ]
Физический уровень описывает способы передачи потока бит через дата линк, соединяющий сетевые устройства. Поток байт может быть сгруппирован в слова и сконвертирован в физический сигнал, который посылается через некоторое устройство.
Здесь специфицируются такие низкоуровневые параметры как частота, амплитуда и модуляция.
Физический уровень выполняет функции:
Наиболее часто на физическом уровне используются протоколы:
Инкапсуляция [ править ]
Физический уровень ответственен за физическую передачу данных. IP предоставляет глобальный способ адресации устройств. TCP добавляет возможность выбора приложения (порт).
Во время инкапсуляции каждый уровень собирает свой собственный PDU, добавляя некоторый заголовок с контрольной информацией к PDU с более высокого уровня.
Пример [ править ]
Предположим мы отправляем веб-страницу клиенту:
модель OSI
Автор: Deo · Опубликовано 07.02.2010 · Обновлено 19.01.2018
Сетевая модель OSI (базовая эталонная модель взаимодействия открытых систем, англ. Open Systems Interconnection Basic Reference Model ) — абстрактная сетевая модель для коммуникаций и разработки сетевых протоколов. Представляет уровневый подход к сети. Каждый уровень обслуживает свою часть процесса взаимодействия. Благодаря такой структуре совместная работа сетевого оборудования и программного обеспечения становится гораздо проще и прозрачнее.
В настоящее время основным используемым семейством протоколов является TCP/IP, разработка которого не была связана с моделью OSI.
Уровни модели OSI
Модель состоит из 7-ми уровней, расположенных друг над другом. Уровни взаимодействуют друг с другом (по «вертикали») посредством интерфейсов, и могут взаимодействовать с параллельным уровнем другой системы (по «горизонтали») с помощью протоколов. Каждый уровень может взаимодействовать только со своими соседями и выполнять отведённые только ему функции. Подробнее можно посмотреть на рисунке.
Модель OSI | ||
---|---|---|
Тип данных | Уровень | Функции |
Данные | 7. Прикладной уровень | Доступ к сетевым службам |
6. Уровень представления | Представление и кодирование данных | |
5. Сеансовый уровень | Управление сеансом связи | |
Сегменты | 4. Транспортный | Прямая связь между конечными пунктами и надежность |
Пакеты | 3. Сетевой | Определение маршрута и логическая адресация |
Кадры | 2. Канальный | Физическая адресация |
Биты | 1. Физический уровень | Работа со средой передачи, сигналами и двоичными данными |
Прикладной (Приложений) уровень (англ. Application layer )
Верхний уровень модели, обеспечивает взаимодействие пользовательских приложений с сетью. Этот уровень позволяет приложениям использовать сетевые службы, такие как удалённый доступ к файлам и базам данных, пересылка электронной почты. Также отвечает за передачу служебной информации, предоставляет приложениям информацию об ошибках и формирует запросы к уровню представления. Пример: HTTP, POP3, SMTP, FTP, XMPP, OSCAR, BitTorrent, MODBUS, SIP
Представительский (Уровень представления) (англ. Presentation layer )
Этот уровень отвечает за преобразование протоколов и кодирование/декодирование данных. Запросы приложений, полученные с прикладного уровня, он преобразует в формат для передачи по сети, а полученные из сети данные преобразует в формат, понятный приложениям. На этом уровне может осуществляться сжатие/распаковка или кодирование/декодирование данных, а также перенаправление запросов другому сетевому ресурсу, если они не могут быть обработаны локально.
Уровень 6 (представлений) эталонной модели OSI обычно представляет собой промежуточный протокол для преобразования информации из соседних уровней. Это позволяет осуществлять обмен между приложениями на разнородных компьютерных системах прозрачным для приложений образом. Уровень представлений обеспечивает форматирование и преобразование кода. Форматирование кода используется для того, чтобы гарантировать приложению поступление информации для обработки, которая имела бы для него смысл. При необходимости этот уровень может выполнять перевод из одного формата данных в другой. Уровень представлений имеет дело не только с форматами и представлением данных, он также занимается структурами данных, которые используются программами. Таким образом, уровень 6 обеспечивает организацию данных при их пересылке.
Чтобы понять, как это работает, представим, что имеются две системы. Одна использует для представления данных расширенный двоичный код обмена информацией EBCDIC, например, это может быть мэйнфрейм компании IBM, а другая — американский стандартный код обмена информацией ASCII (его используют большинство других производителей компьютеров). Если этим двум системам необходимо обменяться информацией, то нужен уровень представлений, который выполнит преобразование и осуществит перевод между двумя различными форматами.
Другой функцией, выполняемой на уровне представлений, является шифрование данных, которое применяется в тех случаях, когда необходимо защитить передаваемую информацию от приема несанкционированными получателями. Чтобы решить эту задачу, процессы и коды, находящиеся на уровне представлений, должны выполнить преобразование данных. На этом уровне существуют и другие подпрограммы, которые сжимают тексты и преобразовывают графические изображения в битовые потоки, так что они могут передаваться по сети.
Стандарты уровня представлений также определяют способы представления графических изображений. Для этих целей может использоваться формат PICT — формат изображений, применяемый для передачи графики QuickDraw между программами для компьютеров Macintosh и PowerPC. Другим форматом представлений является тэгированный формат файлов изображений TIFF, который обычно используется для растровых изображений с высоким разрешением. Следующим стандартом уровня представлений, который может использоваться для графических изображений, является стандарт, разработанный Объединенной экспертной группой по фотографии (Joint Photographic Expert Group); в повседневном пользовании этот стандарт называют просто JPEG.
Существует другая группа стандартов уровня представлений, которая определяет представление звука и кинофрагментов. Сюда входят интерфейс электронных музыкальных инструментов MIDI (Musical Instrument Digital Interface) для цифрового представления музыки, разработанный Экспертной группой по кинематографии стандарт MPEG, используемый для сжатия и кодирования видеороликов на компакт-дисках, хранения в оцифрованном виде и передачи со скоростями до 1,5 Мбит/с, и QuickTime — стандарт, описывающий звуковые и видео элементы для программ, выполняемых на компьютерах Macintosh и PowerPC.
Сеансовый уровень (англ. Session layer )
5-й уровень модели отвечает за поддержание сеанса связи, позволяя приложениям взаимодействовать между собой длительное время. Уровень управляет созданием/завершением сеанса, обменом информацией, синхронизацией задач, определением права на передачу данных и поддержанием сеанса в периоды неактивности приложений. Синхронизация передачи обеспечивается помещением в поток данных контрольных точек, начиная с которых возобновляется процесс при нарушении взаимодействия.
Транспортный уровень (англ. Transport layer )
4-й уровень модели предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. При этом не важно, какие данные передаются, откуда и куда, то есть он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты, размер которых зависит от протокола, короткие объединяет в один, а длинные разбивает. Пример: TCP, UDP.
Существует множество классов протоколов транспортного уровня, начиная от протоколов, предоставляющих только основные транспортные функции (например, функции передачи данных без подтверждения приема), и заканчивая протоколами, которые гарантируют доставку в пункт назначения нескольких пакетов данных в надлежащей последовательности, мультиплексируют несколько потоков данных, обеспечивают механизм управления потоками данных и гарантируют достоверность принятых данных.
Некоторые протоколы сетевого уровня, называемые протоколами без установки соединения, не гарантируют, что данные доставляются по назначению в том порядке, в котором они были посланы устройством-источником. Некоторые транспортные уровни справляются с этим, собирая данные в нужной последовательности до передачи их на сеансовый уровень. Мультиплексирование (multiplexing) данных означает, что транспортный уровень способен одновременно обрабатывать несколько потоков данных (потоки могут поступать и от различных приложений) между двумя системами. Механизм управления потоком данных — это механизм, позволяющий регулировать количество данных, передаваемых от одной системы к другой. Протоколы транспортного уровня часто имеют функцию контроля доставки данных, заставляя принимающую данные систему отправлять подтверждения передающей стороне о приеме данных.
Описать работу протоколов с установкой соединения можно на примере работы обычного телефона. Протоколы этого класса начинают передачу данных с вызова или установки маршрута следования пакетов от источника к получателю. После чего начинают последовательную передачу данных и затем по окончании передачи разрывают связь.
Протоколы без установки соединения, которые посылают данные, содержащие полную адресную информацию в каждом пакете, работают аналогично почтовой системе. Каждое письмо или пакет содержит адрес отправителя и получателя. Далее каждый промежуточный почтамт или сетевое устройство считывает адресную информацию и принимает решение о маршрутизации данных. Письмо или пакет данных передается от одного промежуточного устройства к другому до тех пор, пока не будет доставлено получателю. Протоколы без установки соединения не гарантируют поступление информации получателю в том порядке, в котором она была отправлена. За установку данных в соответствующем порядке при использовании сетевых протоколов без установки соединения отвечают транспортные протоколы.
Сетевой уровень (англ. Network layer )
3-й уровень сетевой модели OSI предназначен для определения пути передачи данных. Отвечает за трансляцию логических адресов и имён в физические, определение кратчайших маршрутов, коммутацию и маршрутизацию, отслеживание неполадок и заторов в сети. На этом уровне работает такое сетевое устройство, как маршрутизатор.
Протоколы сетевого уровня маршрутизируют данные от источника к получателю.
Пример: IP/IPv4/IPv6 (Internet Protocol), IPX (Internetwork Packet Exchange, протокол межсетевого обмена), X.25 (частично этот протокол реализован на уровне 2) CLNP (сетевой протокол без организации соединений), IPsec (Internet Protocol Security), ICMP (Internet Control Message Protocol), RIP (Routing Information Protocol), OSPF (Open Shortest Path First).
Канальный уровень (англ. Data Link layer )
Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Полученные с физического уровня данные он упаковывает во фреймы, проверяет на целостность, если нужно исправляет ошибки (посылает повторный запрос поврежденного кадра) и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня — MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня.
На этом уровне работают коммутаторы, мосты.
В программировании этот уровень представляет драйвер сетевой платы, в операционных системах имеется программный интерфейс взаимодействия канального и сетевого уровней между собой, это не новый уровень, а просто реализация модели для конкретной ОС. Примеры таких интерфейсов: ODI, NDIS
Физический уровень (англ. Physical layer )
Самый нижний уровень модели предназначен непосредственно для передачи потока данных. Осуществляет передачу электрических или оптических сигналов в кабель или в радиоэфир и, соответственно, их приём и преобразование в биты данных в соответствии с методами кодирования цифровых сигналов. Другими словами, осуществляет интерфейс между сетевым носителем и сетевым устройством.
На этом уровне работают концентраторы (хабы), повторители (ретрансляторы) сигнала и медиаконверторы.
Функции физического уровня реализуются на всех устройствах, подключенных к сети. Со стороны компьютера функции физического уровня выполняются сетевым адаптером или последовательным портом. К физическому уровню относятся физические, электрические и механические интерфейсы между двумя системами. Физический уровень определяет такие свойства среды сети передачи данных как оптоволокно, витая пара, коаксиальный кабель, спутниковый канал передач данных и т. п. Стандартными типами сетевых интерфейсов, относящимися к физическому уровню, являются: V.35, RS-232C, RS-485, RJ-11, RJ-45, разъемы AUI и BNC.
Модель OSI и реальные протоколы
Семиуровневая модель OSI является теоретической, и содержит ряд недоработок. Были попытки строить сети в точном соответствии с моделью OSI, но созданные таким образом сети были дорогими, ненадёжными и неудобными в эксплуатации. Реальные сетевые протоколы, используемые в существующих сетях, вынуждены отклоняться от неё, обеспечивая непредусмотренные возможности, поэтому привязка некоторых из них к уровням OSI является несколько условной: некоторые протоколы занимают несколько уровней модели OSI, функции обеспечения надёжности реализованы на нескольких уровнях модели OSI.
Основная недоработка OSI — непродуманный транспортный уровень. На нём OSI позволяет осуществлять обмен данными между приложениями (вводя понятие порта — идентификатора приложения), однако, возможность обмена простыми датаграммами (по типу UDP) в OSI не предусмотрена — транспортный уровень должен образовывать соединения, обеспечивать доставку, управлять потоком и т. п. (по типу TCP). Реальные же протоколы реализуют такую возможность.
Семейство TCP/IP
Семейство TCP/IP имеет три транспортных протокола: TCP, полностью соответствующий OSI, обеспечивающий проверку получения данных, UDP, отвечающий транспортному уровню только наличием порта, обеспечивающий обмен датаграммами между приложениями, не гарантирующий получения данных и SCTP, разработанный для устранения некоторых недостатков TCP и в который добавлены некоторые новшества. (В семействе TCP/IP есть ещё около двухсот протоколов, самым известным из которых является служебный протокол ICMP, используемый для внутренних нужд обеспечения работы; остальные также не являются транспортными протоколами.)
Семейство IPX/SPX
В семействе IPX/SPX порты (называемые «сокеты» или «гнёзда») появляются в протоколе сетевого уровня IPX, обеспечивая обмен датаграммами между приложениями (операционная система резервирует часть сокетов для себя). Протокол SPX, в свою очередь, дополняет IPX всеми остальными возможностями транспортного уровня в полном соответствии с OSI.
В качестве адреса хоста IPX использует идентификатор, образованный из четырёхбайтного номера сети (назначаемого маршрутизаторами) и MAC-адреса сетевого адаптера.
Модель DOD
Стек протоколов TCP/IP, использующий упрощённую четырёхуровневую модель OSI.
Адресация в IPv6
Адреса назначения и источника в IPv6 имеют длину 128 бит или 16 байт. Версия 6 обобщает специальные типы адресов версии 4 в следующих типах адресов:
Как и в версии IPv4, адреса в версии IPv6 делятся на классы, в зависимости от значения нескольких старших бит адреса.
Большая часть классов зарезервирована для будущего применения. Наиболее интересным для практического использования является класс, предназначенный для провайдеров услуг Internet, названный Provider-Assigned Unicast.
Адрес этого класса имеет следующую структуру:
010 | Идентификатор провайдера | Идентификатор абонента | Идентификатор подсети | Идентификатор узла |
Каждому провайдеру услуг Internet назначается уникальный идентификатор, которым помечаются все поддерживаемые им сети. Далее провайдер назначает своим абонентам уникальные идентификаторы, и использует оба идентификатора при назначении блока адресов абонента. Абонент сам назначает уникальные идентификаторы своим подсетям и узлам этих сетей.
Абонент может использовать технику подсетей, применяемую в версии IPv4, для дальнейшего деления поля идентификатора подсети на более мелкие поля.
Описанная схема приближает схему адресации IPv6 к схемам, используемым в территориальных сетях, таких как телефонные сети или сети Х.25. Иерархия адресных полей позволит магистральным маршрутизаторам работать только со старшими частями адреса, оставляя обработку менее значимых полей маршрутизаторам абонентов.
Под поле идентификатора узла требуется выделения не менее 6 байт, для того чтобы можно было использовать в IP-адресах МАС-адреса локальных сетей непосредственно.
Для обеспечения совместимости со схемой адресации версии IPv4, в версии IPv6 имеется класс адресов, имеющих 0000 0000 в старших битах адреса. Младшие 4 байта адреса этого класса должны содержать адрес IPv4. Маршрутизаторы, поддерживающие обе версии адресов, должны обеспечивать трансляцию при передаче пакета из сети, поддерживающей адресацию IPv4, в сеть, поддерживающую адресацию IPv6, и наоборот.
Критика
Семиуровневая модель OSI критиковалась некоторыми специалистами. В частности в классической книге «UNIX. Руководство системного администратора» Эви Немет и другие пишут:
… Пока комитеты ISO спорили о своих стандартах, за их спиной менялась вся концепция организации сетей и по всему миру внедрялся протокол TCP/IP. …
…
И вот, когда протоколы ISO были наконец реализованы,выявился целый ряд проблем:
• Эти протоколы основывались на концепциях, не имеющих в современных сетях никакого смысла.
• Их спецификации были в некоторых случаях неполными.
• По своим функциональным возможностям они уступали другим протоколам.
• Наличие многочисленных уровней сделало эти протоколы медлительными и трудными для реализации.
…
… Сейчас даже самые рьяные сторонники этих протоколов признают, что OSI постепенно движется к тому, чтобы стать маленькой сноской на страницах истории компьютеров.