5. ПОНЯТИЕ «ОТКРЫТАЯ СИСТЕМА». МОДЕЛЬ
OSI
5.2. Уровни модели OSI
Физический уровень (Physical layer) имеет дело с передачей битов по физическим каналам связи, таким,
например, как коаксиальный кабель, витая пара, оптоволоконный кабель или
цифровой территориальный канал. К этому уровню имеют отношение характеристики
физических сред передачи данных, такие как полоса пропускания,
помехозащищенность, волновое сопротивление и другие. На этом же уровне
определяются характеристики электрических сигналов, передающих дискретную
информацию, например, крутизна фронтов импульсов, уровни напряжения или тока
передаваемого сигнала, тип кодирования, скорость передачи сигналов. Кроме
этого, здесь стандартизуются типы разъемов и назначение каждого контакта.
Функции физического уровня реализуются во всех устройствах, подключенных к
сети. Со стороны компьютера функции физического уровня выполняются сетевым
адаптером или последовательным портом.
Канальный уровень (Data Link layer). На физическом уровне просто пересылаются биты. При
этом не учитывается, что в некоторых сетях, в которых линии связи используются
(разделяются) попеременно несколькими парами взаимодействующих компьютеров,
физическая среда передачи может быть занята. Поэтому одной из задач канального
уровня является проверка доступности среды передачи. Другой задачей канального
уровня является реализация механизмов обнаружения и коррекции ошибок. Для этого
на канальном уровне биты группируются в наборы, называемые кадрами (frames). Канальный уровень обеспечивает корректность
передачи каждого кадра, помещая специальную последовательность бит в начало и
конец каждого кадра, для его выделения, а также вычисляет контрольную сумму,
обрабатывая все байты кадра определенным способом и добавляя контрольную сумму
к кадру. Когда кадр приходит по сети, получатель снова вычисляет контрольную
сумму полученных данных и сравнивает результат с контрольной суммой из кадра.
Если они совпадают, кадр считается правильным и принимается. Если же
контрольные суммы не совпадают, то фиксируется ошибка и этот кадр уничтожается.
Канальный уровень может не только обнаруживать ошибки, но и исправлять их за
счет повторной передачи поврежденных кадров.
В протоколах канального уровня, используемых в
локальных сетях, заложена определенная структура связей между компьютерами и
способы их адресации. Хотя канальный уровень и обеспечивает доставку кадра
между любыми двумя узлами локальной сети, он это делает только в сети с
совершенно определенной топологией связей, именно той топологией, для которой
он был разработан.
В локальных сетях протоколы канального уровня
используются компьютерами, мостами, коммутаторами и маршрутизаторами.
В компьютерах функции канального уровня реализуются совместными усилиями
сетевых адаптеров и их драйверов.
В целом канальный уровень представляет собой весьма
мощный и законченный набор функций по пересылке сообщений между узлами сети. В
некоторых случаях протоколы канального уровня оказываются самодостаточными
транспортными средствами и могут допускать работу поверх них непосредственно
протоколов прикладного уровня или приложений, без привлечения средств сетевого
и транспортного уровней. Тем не менее для обеспечения
качественной транспортировки сообщений в сетях любых топологий и технологий
функций канального уровня оказывается недостаточно, поэтому в модели OSI
решение этой задачи возлагается на два следующих уровня — сетевой и транспортный.
Сетевой уровень (Network layer) служит для образования единой транспортной системы, объединяющей
несколько сетей, причем эти сети могут использовать совершенно
различные принципы передачи сообщений между конечными узлами и обладать
произвольной структурой связей. Функции сетевого уровня достаточно
разнообразны. Начнем их рассмотрение на примере объединения локальных сетей.
Внутри сети доставка данных обеспечивается
соответствующим канальным уровнем, а вот доставкой данных между сетями
занимается сетевой уровень, который и поддерживает возможность правильного
выбора маршрута передачи сообщения даже в том случае, когда структура связей
между составляющими сетями имеет характер, отличный от принятого в протоколах
канального уровня.
Сети соединяются между собой специальными
устройствами, называемыми маршрутизаторами. Маршрутизатор — это устройство, которое собирает информацию
о топологии межсетевых соединений и на ее основании пересылает пакеты сетевого
уровня в сеть назначения. Чтобы передать сообщение от отправителя, находящегося
в одной сети, получателю, находящемуся в другой сети, нужно совершить некоторое
количество транзитных передач между сетями, или хопов (от hop — прыжок), каждый раз
выбирая подходящий маршрут. Проблема выбора наилучшего пути называется
маршрутизацией, и ее решение является одной из главных задач сетевого уровня.
Сетевой уровень решает также задачи согласования
разных технологий, упрощения адресации в крупных сетях и создания надежных и
гибких барьеров на пути нежелательного трафика между сетями.
Сообщения сетевого уровня принято называть пакетами (packets). При организации доставки пакетов на сетевом
уровне используется понятие «номер сети». В этом случае адрес получателя
состоит из старшей части — номера сети и младшей — номера узла в этой сети.
Все узлы одной сети должны иметь одну и ту же старшую часть адреса, поэтому
«сеть» на сетевом уровне — это совокупность узлов, сетевой адрес которых
содержит один и тот же номер сети.
На сетевом уровне определяются два вида протоколов.
Первый вид — сетевые протоколы (routed protocols)
— реализуют продвижение пакетов через сеть. А также протоколы обмена маршрутной
информацией или просто протоколами маршрутизации (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).
Функции всех уровней модели OSI могут быть отнесены к
одной из двух групп: либо к функциям, зависящим от конкретной технической
реализации сети, либо к функциям, ориентированным на работу с приложениями.
Три нижних уровня — физический, канальный и сетевой —
являются сетезависимыми, то есть протоколы этих
уровней тесно связаны с технической реализацией сети и используемым
коммуникационным оборудованием. Например, переход на оборудование FDDI означает
полную смену протоколов физического и канального уровней во всех узлах сети.
Три верхних уровня — прикладной, представительный и
сеансовый — ориентированы на приложения и мало зависят от технических
особенностей построения сети.
Транспортный уровень является промежуточным, он
скрывает все детали функционирования нижних уровней от
верхних. Это позволяет разрабатывать приложения, не зависящие от технических
средств непосредственной транспортировки сообщений.