Модель взаимодействия открытых систем (OSI). Что такое сетевая модель OSI. Уровни модели OSI

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

Общие сведения

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

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

Итак, сколько уровней в сетевой модели OSI и какие они?

  1. Физический.
  2. Канальный.
  3. Сетевой.
  4. Транспортный.
  5. Сеансовый.
  6. Представительский.
  7. Прикладной.

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

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

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

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

Протоколы, которые здесь задействованы: провод (витая пара, оптика, телефонный кабель и другие), среды беспроводной передачи данных (к примеру, Bluetooth или Wi-Fi) и так далее.

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

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

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

Подразделяется на два подуровня:

  1. LLC — управляет логическим каналом.
  2. MAC — работа с доступом непосредственно к физической среде.

Для облегчения понимания разберем следующий пример.

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

Протоколы используются следующие: PPP (связность двух ПК прямым образом), FDDI (передача данных на расстояние менее двухсот километров), CDP (собственный протокол компании Cisco, используемый для обнаружения и получения информации о соседних сетевых устройствах).

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

Это уровень модели OSI, отвечающий за маршруты, по которым идет передача данных. Устройства, которые работают на этой ступени, называются маршрутизаторами. Данные на этом уровне передаются пакетами. На канальном уровне устройство определялось при помощи физического адреса (MAC), а на сетевом начинают фигурировать IP-адреса — логический адрес какого-либо устройства сети, интерфейса.

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

Основная задача данной ступени — это обеспечение передачи данных между оконечными устройствами.

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

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

Рассмотрим список протоколов сетевого уровня модели OSI. Это упомянутый раньше IP, который входит в стек TCP/IP, ICMP (отвечает за передачу управляющих и сервисных данных), IGMP (групповая передача данных, мультикаст), BGP (осуществление динамической маршрутизации) и многие другие.

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

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

Основная задача транспортного уровня — чтобы пакеты данных были отправлены и получены без ошибок, отсутствовали потери, соблюдалась последовательность передачи.

Этот уровень работает с целыми блоками данных.

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

Можно выделить два основных протокола, которые работают на этом уровне: TCP и UDP.

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

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

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

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

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

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

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

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

Протоколы данного уровня: стандарты изображений (GIF, BMP, PNG, JPG), кодировки (ASCII и др.), видео- и аудиозаписи (MPEG, MP3) и т. д.

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

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

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

Стеки протоколов

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

Такие связки называются стеками протоколов.

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

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

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

Заключение

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

В этой статье на уровне сетевой модели OSI для "чайников" мы постарались простым языком объяснить, как передача данных реализуется, а главное — как устроена система взаимодействия сетевого оборудования на различных уровнях.

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

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

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

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

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


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

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

Задачи компьютера ОТПРАВИТЕЛЯ:

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

Задачи компьютера ПОЛУЧАТЕЛЯ:

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

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

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


Разберем их подробнее.

7. Прикладной уровень (Application Layer)

Его задача забрать у сетевого приложения данные и отправить на 6 уровень.

6. Уровень представления (Presentation Layer)

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

5. Сеансовый уровень (Session Layer)

У него много задач.

  1. Установить сеанс связи с получателем. ПО предупреждает компьютер-получатель о том, что сейчас ему будут отправлены данные.
  2. Здесь же происходит распознавание имен и защита:
    • идентификация — распознавание имен
    • аутентификация — проверка по паролю
    • регистрация — присвоение полномочий
  3. Реализация того, какая из сторон осуществляет передачу информации и как долго это будет происходить.
  4. Расстановка контрольных точек в общем потоке данных для того, чтобы в случае потери какой-то части легко было установить, какая именно часть потеряна и следует отправить повторно.
  5. Сегментация — разбивка большого блока на маленькие пакеты.

4. Транспортный уровень (Transport Layer)

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

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

3. Сетевой уровень (Network Layer)

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

2. Канальный уровень (Data Link Layer)

Здесь происходит передача пакета в пределах одного кабеля, то есть одной локальной сети. Он работает только до пограничного маршрутизатора одной локальной сети. К полученному пакету канальный уровень добавляет свой заголовок — MAC адреса отправителя и получателя и в таком виде блок данных уже называется КАДРОМ.

При передачи за пределы одной локальной сети пакету присваивается MAC не хоста (компьютера), а маршрутизатора другой сети. Отсюда как раз появляется вопрос серых и белых IP, о которых шла речб в статье, на которую была выше дана ссылка. Серый — это адрес внутри одной локальной сети, который не используетс яза ее пределами. Белый — уникальный адрес во всем глобальном интернете.

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

1. Физический уровень (Transport layer)

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

Стеки протоколов

TCP/IP — это стек протоколов, который управляет передачей данных как в локальной сети, так и в глобальной сети Интернет. Данный стек содержит 4 уровня, то есть по эталонной модели OSI каждый из них объединяет в себе несколько уровней.

  1. Прикладной (по OSI — прикладной, представления и сеансовый)
    За данный уровень отвечают протоколы:
    • TELNET — удаленный сеанс связи в виде командной строки
    • FTP — протокол передачи файлов
    • SMTP — протокол пересылки почты
    • POP3 и IMAP — приема почтовых отправлений
    • HTTP — работы с гипертекстовыми документами
  2. Транспортный (по OSI то же самое) — это уже описанные выше TCP и UDP.
  3. Межсетевой (по OSI — сетевой) — это протокол IP
  4. Уровень сетевых интерфейсов (по OSI — канальный и физический)За работу этого уровня отвечают драйверы сетевых адаптеров.

Терминология при обозначении блока данных

  • Поток — те данные, которыми оперируются на прикладном уровне
  • Дейтаграмма — блок данных на выходе с UPD, то есть у которого нет гарантированной доставки.
  • Сегмент — гарантированный для доставки блок на выходе с протокола TCP
  • Пакет — блок данных на выходе с протокола IP. поскольку на данном уровне он еще не гарантирован к доставке, то тоже может называться дейтаграммой.
  • Кадр — блок с присвоенными MAC адресами.

Понятие “открытая система” и проблемы стандартизации

Универсальный тезис о пользе стандартизации, справедливый для всех отраслей, в компьютерных сетях приобретает особое значение. Суть сети - это соединение разного оборудования, а значит, проблема совместимости является одной из наи­более острых. Без принятия всеми производителями общепринятых правил пост­роения оборудования прогресс в деле “строительства” сетей был бы невозможен. Поэтому все развитие компьютерной отрасли в конечном счете отражено в стан­дартах - любая новая технология только тогда приобретает “законный” статус, когда ее содержание закрепляется в соответствующем стандарте.

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

Многоуровневый подход. Протокол. Интерфейс. Стек протоколов

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Модель OSI

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

В начале 80-х годов ряд международных организаций по стандартизации - ISO, ITU-T и некоторые другие, разработали модель, которая сыграла значительную роль в развитии сетей. Эта модель называется моделью взаимодействия открытых систем (Open System Interconnection , OSI ) или моделью OSI. Модель OSI определя­ет различные уровни взаимодействия систем, дает им стандартные имена и указы­вает, какие функции должен выполнять каждый уровень. Модель OSI была разработана на основании большого опыта, полученного при создании компьютер­ных сетей, в основном глобальных, в 70-е годы. Полное описание этой модели занимает более 1000 страниц текста.

В модели OSI (рис. 1.25) средства взаимодействия делятся на семь уровней:

    Прикладной

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

    Сеансовый

    Транспортный

    Сетевой

    Канальный

    Физический.

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

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

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

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

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

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

Наряду с термином сообщение (message ) существуют и другие термины, приме­няемые сетевыми специалистами для обозначения единиц данных в процедурах обмена. В стандартах ISO для обозначения единиц данных, с которымиимеют дело протоколы разных уровней, используется общее название протокольный блок данных ( Protocol Data Unit , PDU ). Для обозначения блоков данных определенныхуровней- часто используются специальные названия: кадр (frame), пакет (packet), дейта­грамма (datagram), сегмент (segment).

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

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

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

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

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

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

Примером протокола физического уровняможет служить спецификация1OBase- Tтехнологии Ethernet, которая определяет в качестве используемого кабеля неэкра­нированную витую пару категории 3 с волновым сопротивлением100 Ом, разъемRJ-45, максимальную длину физического сегмента 100 метров,манчестерский код для представления данных в кабеле, а также некоторые другие характеристики среды и электрических сигналов.

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

На физическом уровне просто пересылаются биты. При этом не учитывается, что в некоторых сетях, в которых линии связи используются (разделяются) поперемен­но несколькими парами взаимодействующих компьютеров, физическая среда пе­редачи может быть занята. Поэтому одной из задач канального уровня (Data Link layer) является проверка доступности среды передачи. Другой задачей канальногоуровня является реализация механизмов обнаружения и коррекции ошибок.Дляэтого на канальном уровне биты группируются в наборы, называемые кадрами (frames ). Канальный уровень обеспечивает корректность передачи каждого кадра, помещая специальную последовательность бит в начало и конец каждого кадра, для его выделения, а также вычисляет контрольную сумму, обрабатывая всебайтыкадра определенным способом и добавлял контрольную сумму к кадру. Когда кадр приходит по сети, получатель снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой из кадра. Если они совпада­ют, кадр считается правильным и принимается. Если же контрольные суммы не совпадают, то фиксируется ошибка. Канальный уровеньможет не только обнаруживать ошибки, но и исправлять их за счет повторной передачи поврежденных кадров. Необходимо отметить, что функция исправления ошибок не является обя­зательной для канального уровня, поэтому в некоторых протоколах этого уровня она отсутствует, например, в Ethernet и frame relay.

В протоколах канального уровня, используемых в локальных сетях, заложена определенная структура связей между компьютерами и способы их адресации. Хотя канальный уровень и обеспечивает доставку кадра между любыми двумя узлами локальной сети, он это делает только в сети с совершенно определенной топологи­ей связей, именно той топологией, для которой он был разработан. К таким типо­вым топологиям, поддерживаемым протоколами канального уровня локальных сетей, относятся общая шина, кольцо и звезда, а также структуры, полученные из них с помощью мостов и коммутаторов. Примерами протоколов канального уров­ня являются протоколы Ethernet, Token Ring, FDDI, lOOVG-AnyLAN.

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

В глобальных сетях, которые редко обладают регулярной топологией, каналь­ный уровень часто обеспечивает обмен сообщениями только между двумя соседни­ми компьютерами, соединенными индивидуальной линией связи. Примерами протоколов “точка-точка” (как часто называют такие протоколы) могут служить широко распространенные протоколы РРР и LAP-B. В таких случаях для достав­ки сообщений между конечными узлами через всю сеть используются средства сетевого уровня. Именно так организованы сети Х.25. Иногда в глобальных сетях функции канального уровня в чистом виде выделить трудно, так как в одном и том же протоколе они объединяются с функциями сетевого уровня. Примерами такого подхода могут служить протоколы технологий АТМ и frame relay.

В целом канальный уровень представляет собой весьма мощный и законченный набор функций по пересылке сообщений между узлами сети. В некоторых случаях протоколы канального уровня оказываются самодостаточными транспортными средствами и могут допускать работу поверх них непосредственно протоколов при­кладного уровня или приложений, без привлечения средств сетевого и транспорт­ного уровней. Например, существует реализация протокола управления сетью SNMP непосредственно поверх Ethernet, хотя стандартно этот протокол работает поверх сетевого протокола IP и транспортного протокола UDP. Естественно, что примене­ние такой реализации будет ограниченным - она не подходит для составных сетей разных технологий, например Ethernet и Х.25, и даже для такой сети, в которой во всех сегментах применяется Ethernet, но между сегментами существуют петлевид-ные связи. А вот в двухсегментной сети Ethernet, объединенной мостом, реализа­ция SNMP над канальным уровнем будет вполне работоспособна.

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

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

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

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

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

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

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

На рис. 1.27 показаны четыре сети, связанные тремя маршрутизаторами. Меж­ду узлами А и В данной сети пролегают два маршрута: первый через маршрутиза­торы 1 и 3, а второй через маршрутизаторы 1,2 и 3.

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

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

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

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

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

Примерами протоколов сетевого уровня являются протокол межсетевого взаи­модействия IP стека TCP/IP и протокол межсетевого обмена пакетами IPX стека Novell.

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

На пути от отправителя к получателю пакеты могут быть искажены или утеряны. Хотя некоторые приложения имеют собственные средства обработки ошибок, существуют и такие,которые предпочитают сразу иметь дело с надежнымсоедине­нием. Транспортный уровень (Transport layer) обеспечивает приложениям или верх­нимуровням стека - прикладному и сеансовому - передачу данных с той степенью надежности, которая им требуется. Модель OSI определяет пять классов сервиса, предоставляемых транспортным уровнем. Эти виды сервиса отличаются качеством предоставляемых услуг: срочностью, возможностью восстановления прерванной связи, наличием средств мультиплексирования нескольких соединений между раз­личными прикладными протоколами через общий транспортный протокол, а глав­ное - способностью к обнаружению и исправлению ошибок передачи,таких как искажение, потеря и дублирование пакетов.

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

Как правило, все протоколы, начиная с транспортного уровня и выше, реализу­ются программными средствами конечных узлов сети - компонентами их сетевых операционных систем. В качестве примера транспортных протоколов можно при­вести протоколы TCP и UDP стека TCP/IP и протокол SPX стека Novell.

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

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

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

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

Представительный уровень (Presentation layer) имеет дело с формой представле­ния передаваемой по сети информации, не меняя при этом ее содержания. За счет уровня представления информация, передаваемая прикладным уровнем одной си­стемы, всегда понятна прикладному уровню другой системы. С помощью средств данного уровня протоколы прикладных уровней могут преодолеть синтаксические различия в представлении данных или же различия в кодах символов, например кодов ASCII и EBCDIC. На этом уровне может выполняться шифрование и де­шифрование данных, благодаря которому секретность обмена данными обеспечи­вается сразу для всех прикладных служб. Примером такого протокола является протокол Secure Socket Layer (SSL), который обеспечивает секретный обмен сооб­щениями для протоколов прикладного уровня стека TCP/IP.

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

Прикладной уровень (Application layer) - это в действительности просто набор разнообразных протоколов, с помощью которых пользователи сети получают до­ступ к разделяемым ресурсам, таким как файлы, принтеры или гипертекстовые Web-страницы, а также организуют свою совместную работу, например, с помо­щью протокола электронной почты. Единица данных, которой оперирует приклад­ной уровень, обычно называется сообщением (message ).

Существует очень большое разнообразие служб прикладного уровня. Приведем в качестве примера хотя бы несколько наиболее распространенных реализации файловых служб: NCP в операционной системе Novell NetWare, SMB в Microsoft Windows NT, NFS, FTP и TFTP, входящие в стек TCP/IP.

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

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

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

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

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

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

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

На рис. 1.29 показано соответствие функций различных коммуникационных устройств уровням модели OSI.

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

Сетевая модель 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 -адрес - адрес, который жестко связан с сетевым адаптером.

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

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

Прикладной (Приложений) уровень (англ. Application layer )

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

Представительский (Уровень представления) (англ. Presentation layer )

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

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

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

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

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

Существует другая группа стандартов уровня представлений, которая определяет представление звука и кинофрагментов. Сюда входят интерфейс электронных музыкальных инструментов MPEG, используемый для сжатия и кодирования видеороликов на компакт-дисках, хранения в оцифрованном виде и передачи со скоростями до 1,5 Мбит/с, и Session layer )

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

Транспортный уровень (англ. Transport layer )

4-й уровень модели предназначен для доставки данных без ошибок, потерь и дублирования в той последовательности, как они были переданы. При этом не важно, какие данные передаются, откуда и куда, то есть он предоставляет сам механизм передачи. Блоки данных он разделяет на фрагменты, размер которых зависит от протокола, короткие объединяет в один, а длинные разбивает. Протоколы этого уровня предназначены для взаимодействия типа точка-точка. Пример: UDP.

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

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

Сетевой уровень (англ. Network layer )

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

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

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

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

Канальный уровень (англ. Data Link layer )

Этот уровень предназначен для обеспечения взаимодействия сетей на физическом уровне и контроля за ошибками, которые могут возникнуть. Полученные с физического уровня данные он упаковывает во фреймы , проверяет на целостность, если нужно исправляет ошибки (посылает повторный запрос поврежденного кадра) и отправляет на сетевой уровень. Канальный уровень может взаимодействовать с одним или несколькими физическими уровнями, контролируя и управляя этим взаимодействием. Спецификация IEEE 802 разделяет этот уровень на 2 подуровня - MAC (Media Access Control) регулирует доступ к разделяемой физической среде, LLC (Logical Link Control) обеспечивает обслуживание сетевого уровня.

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

Физический уровень (англ. Physical layer )

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

Источники

  • Александр Филимонов Построение мультисервисных сетей Ethernet, bhv, 2007 ISBN 978-5-9775-0007-4
  • Руководство по технологиям объединенных сетей //cisco systems , 4-е издание, Вильямс 2005 ISBN 584590787X

Wikimedia Foundation . 2010 .

Смотреть что такое "Модель OSI" в других словарях:

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

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

    Open Systems Interconnection Basic Reference Model базовая эталонная модель взаимодействия открытых систем абстрактная сетевая модель для коммуникаций и разработки сетевых протоколов. Представляет уровневый подход к сети. Каждый уровень… … Словарь бизнес-терминов

    - (Модель TCP/IP) (англ. Department of Defense Министерство обороны США) модель сетевого взаимодействия, разработанная Министерством обороны США, практической реализацией которой является стек протоколов TCP/IP. Содержание 1 Уровни … Википедия

    ATP Название: Apple Talk Protocol Уровень (по модели OSI): Транспортный Семейство: TCP/IP Создан в: 2002 г. Порт/ID: 33/IP Назначение протокола: Аналог UDP с контролем плотности трафика Спецификация: RFC 4340 Основные реализац … Википедия