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

Эталонная модель OSI являет собой 7-уровневую сетевую иерархию созданную международной организацией по стандартам (ISO). Представленная модель на рис.1 имеет 2 различных модели:

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

В вертикальной — соседние уровни меняются информацией с помощью интерфейсов API. Горизонтальная модель требует общий протокол для обмена информацией на одном уровне.

Рисунок — 1

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

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

На физическом уровне данные представлены в виде электрических или оптических сигналов, соответствующие 1 и 0 бинарного потока. Параметры среды передачи определяются на физическом уровне:

  • тип разъемов и кабелей
  • разводка контактов в разъемах
  • схема кодирования сигналов 0 и 1

Самые распространенные виды спецификаций на этом уровне:

  • — параметры несбалансированного последовательного интерфейса
  • — параметры сбалансированного последовательного интерфейса
  • IEEE 802.3 —
  • IEEE 802.5 —

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

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

На этом канале реализована транспортировка и прием кадров данных. Уровень реализует запросы сетевого уровня и использует физический уровень для приема и передачи. Спецификации IEEE 802.x делят этот уровень на два подуровня управление логическим каналом (LLC) и управление доступом к среде (MAC). Самые распространенные протоколы на этом уровне:

  • IEEE 802.2 LLC и MAC
  • Ethernet
  • Token Ring

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

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

На этом уровне происходит деление пользователей сети на группы. Здесь реализуется маршрутизация пакетов на основе MAC-адресов. Сетевой уровень реализует прозрачную передачу пакетов на транспортный уровень. На этом уровне стираются границы сетей разных технологий. работают на этом уровне. Пример работы сетевого уровня показан на рис.2 Самые частые протоколы:

Рисунок — 2

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

На этом уровне потоки информации делятся на пакеты для передачи их на сетевом уровне. Самые распространенные протоколы этого уровня:

  • TCP — протокол управления передачей

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

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

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

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

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

Прикладной уровень реализует доступ приложения в сеть. Уровень управляет переносом файлов и управление сетью. Используемые протоколы:

  • FTP/TFTP — протокол передачи файлов
  • X 400 — электронная почта
  • Telnet
  • CMIP — управление информацией
  • SNMP — управление сетью
  • NFS — сетевая файловая система
  • FTAM — метод доступа для переноса файлов

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

Отдельно взятый пласт ИТ - сеть - тоже построена модульно. Модель функционирования сети назывется сетевая модель базовой эталонной модели взаимодействия открытых систем ISO/OSI. Кратко - модель OSI.

Модель OSI состоит из 7 уровней. Каждый уровень абстрагирован от других и ничего не знает о их существовании. Модель OSI можно сравнить с устройством автомобиля: двигатель выполняет свою работу, создавая крутящий момент и отдавая его коробке передач. Двигателю абсолютно без разницы что дальше будет происходить с этим крутящим моментом. Будет он крутить колесо, гусеницу или пропеллер. Точно так же как и колесу нет никакого дела откуда к нему пришел этот крутящий момент - от двигателя или рукоятки, которую крутит механик.

Здесь необходимо добавить понятие полезной нагрузки. Каждый уровень несет в себе какое-то количество информации. Часть этой информации является служебной для этого уровня, например, адрес. IP-адрес сайта не несет для нас никакой полезной информации. Нам важны только котики, которых нам показывает сайт. Так вот эта полезная нагрузка переносится в той части уровня, который называется protocol data unit (PDU).

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

Рассмотрим каждый уровень Модели OSI подробнее.

1 уровень. Физический (physical ). Единицей нагрузки (PDU ) здесь является бит. Кроме единиц и нулей физический уровень не знает ничего. На этом уровне работают провода, патч панели, сетевые концентраторы (хабы, которые сейчас уже сложно найти в привычных нам сетях), сетевые адаптеры. Именно сетевые адаптеры и ничего более из компьютера. Сам сетевой адаптер принимает последовательность бит и передает её дальше.

2 уровень. Канальный (data link ). PDU - кадр (frame ). На этом уровне появляется адресация. Адресом является MAC адрес. Канальный уровень ответственен за доставку кадров адресату и их целостность. В привычных нам сетях на канальном уровне работает протокол ARP. Адресация второго уровня работает только в пределах одного сетевого сегмента и ничего не знает о маршрутизации - этим занимается вышестоящий уровень. Соответственно, устройства, работающие на L2 - коммутаторы, мосты и драйвер сетевого адаптера.

3 уровень. Сетевой (network ). PDU пакет (packet ). Наиболее распространенным протоколом (дальше не буду говорить про “наиболее распространенный” - статья для новичков и с экзотикой они, как правило, не сталкиваются) тут является IP. Адресация происходит по IP-адресам, которые состоят из 32 битов. Протокол маршрутизируемый, то есть пакет способен попасть в любую часть сети через какое-то количество маршрутизаторов. На L3 работают маршрутизаторы.

4 уровень. Транспортный (transport ). PDU сегмент (segment )/датаграмма (datagram ). На этом уровне появляются понятия портов. Тут трудятся TCP и UDP. Протоколы этого уровня отвечают за прямую связь между приложениями и за надежность доставки информации. Например, TCP умеет запрашивать повтор передачи данных в случае, если данные приняты неверно или не все. Так же TCP может менять скорость передачи данных, если сторона приема не успевает принять всё (TCP Window Size).

Следующие уровни “правильно” реализованы лишь в RFC. На практике же, протоколы описанные на следующих уровнях работают одновременно на нескольких уровнях модели OSI, поэтому нет четкого разделения на сеансовый и представительский уровни. В связи с этим в настоящее время основным используемым стеком является TCP/IP, о котором поговорим чуть ниже.

5 уровень. Сеансовый (session ). PDU данные (data ). Управляет сеансом связи, обменом информации, правами. Протоколы - L2TP, PPTP.

6 уровень. Представительский (presentation ). PDU данные (data ). Преставление и шифрование данных. JPEG, ASCII, MPEG.

7 уровень. Прикладной (application ). PDU данные (data ). Самый многочисленный и разнообразный уровень. На нем выполняются все высокоуровненвые протоколы. Такие как POP, SMTP, RDP, HTTP и т.д. Протоколы здесь не должны задумываться о маршрутизации или гарантии доставки информации - этим занимаются нижестоящие уровни. На 7 уровне необходима лишь реализации конкретных действий, например получение html-кода или email-сообщения конкретному адресату.

Заключение

Модульность модели OSI позволяет проводить быстрое нахождение проблемных мест. Ведь если нет пинга (3-4 уровни) до сайта, нет смысла копаться в вышележащих слоях (TCP-HTTP), когда не отображается сайт. Абстрагировавшись от других уровней проще найти ошибку в проблемной части. По аналогии с автомобилем - мы ведь не проверяем свечи, когда проткнули колесо.

Модель OSI является эталонной моделью - эдаким сферическим конем в вакууме. Разработка её велась очень долго. Параллельно с ней разрабатывался стек протоколов TCP/IP, акивно применяемый в сетях в настоящее время. Соответственно, можно провести аналогию между TCP/IP и 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

Для наглядности процесс работы сети в эталонной модели OSI разде­лен на семь уровней. Эта теоретическая конструкция облегчает изу­чение и понимание довольно сложных концепций. В верхней части модели OSI располагается приложение, которому нужен доступ к ре­сурсам сети, в нижней - сама сетевая среда. По мере того как дан­ные продвигаются от уровня к уровню вниз, действующие на этих уровнях протоколы постепенно подготавливают их для передачи по сети. Добравшись до целевой системы, данные продвигаются по уров­ням вверх, причем те же протоколы выполняют те же действия, толь­ко в обратном порядке. В 1983 г. Международная организация по стандартизации (Interna­tional Organization for Standardization, ISO) и Сектор стандартизации телекоммуникаций Международного телекоммуникационного союза (Te­lecommunication Standardization Sector of International Telecommu­nication Union, ITU-T) опубликовали документ «The Basic Reference Model for Open Systems Interconnection», где была описана модель распределения сетевых функций между 7 различными уровнями (рис. 1.7). Предполагалось, что эта семиуровневая структура станет основой для нового стека протоколов, но в коммерческой форме он так и не был реализован. Вместо этого модель OSI используется с су­ществующими стеками протоколов в качестве обучающего и справоч­ного пособия. Большая часть популярных в наши дни протоколов появилась до разработки модели OSI, поэтому в точности с ее семиуровневой струк­ турой они не согласуются. Зачастую в одном протоколе совмещены функции двух или даже нескольких уровней модели, да и границы протоколов часто не соответствуют границам уровней OSI. Тем не менее модель OSI остается отличным наглядным пособием для ис­следования сетевых процессов, и профессионалы часто связывают функции и протоколы с определенными уровнями.

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

По сути, взаимодействие протоколов, работающих на разных уров­нях модели OSI, проявляется в том, что каждый протокол добавляет заголовок (header) или (в одном случае) трейлер (footer) к информа­ции, которую он получил от уровня, расположенного выше. Напри­мер, приложение генерирует запрос к сетевому ресурсу. Этот запрос продвигается по стеку протоколов вниз. Когда он достигает транспорт­ного уровня, протоколы этого уровня добавляют к запросу собствен­ный заголовок, состоящий из полей с информацией, специфической для функций данного протокола. Сам исходный запрос становится для протокола транспортного уровня полем данных (полезной нагрузкой). Добавив свой заголовок, протокол транспортного уровня переда­ет запрос сетевому уровню. Протокол сетевого уровня добавляет к заголовку протокола транспортного уровня свой собственный заго­ловок. Таким образом, для протокола сетевого уровня полезной на­грузкой становятся исходный запрос и заголовок протокола тран­спортного уровня. Вся эта конструкция становится полезной нагруз­кой для протокола канального уровня, который добавляет к ней заго­ловок и трейлер. Итогом этой деятельности является пакет (packet), готовый для передачи по сети. Когда пакет достигает места назначения, процесс повторяется в обратном порядке. Протокол каждого следующего уровня стека (теперь снизу вверх) обрабатывает и удаля­ет заголовок эквивалентного протокола передающей системы. Когда процесс завершен, исходный запрос достигает приложения которо­му он предназначен, в том же виде, в каком он был сгенерирован. Процесс добавления заголовков к запросу (рис. 1.8), сгенериро­ ванному приложением, называется инкапсуляцией данных (data encap­sulation). По сути эта процедура напоминает процесс подготовки письма для отправки по почте. Запрос - это само письмо, а добавле­ние заголовков аналогично вкладыванию письма в конверт, написа­нию адреса, штемпелеванию и собственно отправке.

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

На самом нижнем уровне модели OSI - физическом (physical) - оп­ределяются характеристики элементов оборудования сети - сетевая среда, способ установки, тип сигналов, используемых для передачи по сети двоичных данных. Кроме того, на физическом уровне опре­деляется, какой тип сетевого адаптера нужно установить на каждом компьютере и какой использовать концентратор (если это нужно). На физическом уровне мы имеем дело с медным или оптоволоконным кабелем или с каким-либо беспроводным соединением. В ЛВС спецификации физического уровня напрямую связаны с используюемым в сети протоколом канального уровня. Выбрав протокол канального уровня, Вы должны использовать одну из спецификаций физического уровня, поддерживаемую этим протоколом. Например, протокол канального уровня Ethernet поддерживает несколько различных вариантов физического уровня - один из двух типов коаксиального кабеля, любой кабель типа «витая пара», оптоволоконный кабель. Параметры каждого из этих вариантов формируются из многочисленных сведений о требованиях физического уровня, например, к типу кабеля и разъемов, допустимой длине кабелей, числу концентраторов и др. Соблюдение этих требований необходимо для нормальной работы протоколов. Например, в чересчур длинном кабеле система Ethernet может не заметить коллизию пакетов, а если система не в состоянии обнаружить ошибки, она не может и исправить их, результат - потеря данных. Стандартом протокола канального уровня определяются не все аспекты физического уровня. Некоторые из них определяются отдельно. Одна из наиболее часто используемых спецификаций физического уровня описана в документе «Commercial Building Telecommunications Cabling Standard», известном как EIA/TIA 568A. Он опубликован совместно Американским национальным институтом стан дартов (American National Standards Institute, ANSI), Ассоциации от раслей электронной промышленности (Electronics Industry Association, EIA) и Ассоциацией промышленности средств связи (Telecommunications Industry Association, TIA). В этот документ включено подробное описание кабелей для сетей передачи данных в промышленных условиях, в том числе минимальное расстояние от источников электромагнитных помех и другие правила прокладки кабеля. Сегодня кладку кабеля в больших сетях чаще всего поручают специализированным фирмам. Нанятый подрядчик должен быть хорошо знаком с EIA/TIA 568A и другими подобными документами, а также с правилами эксплуатации зданий в городе. Другой коммуникационный элемент, определяемый на физическом уровне, - тип сигнала для передачи данных по сетевой среде. Для кабелей с медной основой таким сигналом является электрический заряд, для оптоволоконного кабеля - световой импульс. В сетевых средах других типов могут использоваться радиоволны, инфракрасные импульсы и другие сигналы. Помимо природы сигналов, на физическом уровне устанавливается схема их передачи, т. е. комбинация электрических зарядов или световых импульсов, используемая для кодирования двоичной информации, которая сгенерирована вы­шестоящими уровнями. В системах Ethernet применяется схема пе­редачи сигналов, известная как манчестерская кодировка (Manchester encoding), а в системах Token Ring используется дифференциальная манчестерская (Differential Manchester) схема.

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

Протокол канального (data-link) уровня обеспечивает обмен инфор­мацией между аппаратной частью включенного в сеть компьютера и сетевым ПО. Он подготавливает для отправки в сеть данные, пере­данные ему протоколом сетевого уровня, и передает на сетевой уро­вень данные, полученные системой из сети. При проектировании и создании ЛВС используемый протокол ка­нального уровня - самый важный фактор для выбора оборудования и способа его установки. Для реализации протокола канального уровня необходимо следующее аппаратное и программное обеспечение: адаптеры сетевого интерфейса (если адаптер представляет собой отдельное устройство, подключаемое к шине, его называют пла­той сетевого интерфейса или просто сетевой платой); драйверы сетевого адаптера; сетевые кабели (или другая сетевая среда) и вспомогательное со­ единительное оборудование; сетевые концентраторы (в некоторых случаях). Как сетевые адаптеры, так и концентраторы разрабатываются для определенных протоколов канального уровня. Некоторые сетевые кабели также приспособлены для конкретных протоколов, но есть и кабели, подходящие для разных протоколов. Безусловно, сегодня (как и всегда) самый популярный протокол канального уровня - Ethernet. Далеко отстал от него Token Ring, за которым следуют другие протоколы, например, FDDI (Fiber Dist­ributed Data Interface). В спецификацию протокола канального уров­ня обычно включаются три основных элемента: формат кадра (т. е. заголовок и трейлер, добавляемые к данным сетевого уровня перед передачей в сеть); механизм контроля доступа к сетевой среде; одна или несколько спецификаций физического уровня, приме­няемые с данным протоколом.

Формат кадра

Протокол канального уровня добавляет к данным, полученным от протокола сетевого уровня, заголовок и трейлер, превращая их в кадр (frame) (рис. 1.9). Если снова прибегнуть к аналогии с почтой, заголовок и трейлер - это конверт для отправки письма. В них содержатся адреса системы-отправителя и системы-получателя пакета. Для протоколов ЛВС, подобных Ethernet и Token Ring, эти адреса представляют собой 6-байтные шестнадцатеричные строки, присвоенные сетевым адаптерам на заводе-изготовителе. Они, в отличие от адресов, используемых на других уровнях модели OSI, называются аппа ратными адресами (hardware address) или МАС-адресами (см. ниже).

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

Важно понимать, что протоколы канального уровня обеспечива­ют связь только между компьютерами одной и той же ЛВС. Аппарат­ный адрес в заголовке всегда принадлежит компьютеру в той же ЛВС, даже если целевая система находится в другой сети. Другие важные функции кадра канального уровня - идентифика­ция протокола сетевого уровня, сгенерировавшего данные в пакете, и информация для обнаружения ошибок. На сетевом уровне могут использоваться различные протоколы, и потому в кадр протокола канального уровня обычно включается код, с помощью которого можно установить, какой именно протокол сетевого уровня сгенери­ровал данные в этом пакете. Руководствуясь этим кодом, протокол канального уровня компьютера-получателя пересылает данные соот­ветствующему протоколу своего сетевого уровня. Для выявления ошибок передающая система вычисляет цикличес­ кий избыточный код (cyclical redundancy check, CRC) полезной нагруз­ки и записывает его в трейлер кадра. Получив пакет, целевой компью­тер выполняет те же вычисления и сравнивает результат с содержи­мым трейлера. Если результаты совпадают, информация передана без ошибок. В противном случае получатель предполагает, что пакет ис­ порчен, и не принимает его.

Управление доступом к среде

Компьютеры в ЛВС обычно используют общую полудуплексную се­тевую среду. При этом вполне возможно, что передавать данные нач­нут одновременно два компьютера. В таких случаях происходит свое­го рода столкновение пакетов, коллизия (collision), при котором дан­ ные в обоих пакетах теряются. Одна из главных функций протокола канального уровня - управление доступом к сетевой среде (media access control, MAC), т. е. контроль за передачей данных каждым из компьютеров и сведение к минимуму случаев столкновения пакетов. Механизм управления доступом к среде - одна из важнейших ха­ рактеристик протокола канального уровня. В Ethernet для управле­ния доступом к среде используется механизм с контролем несущей и обнаружением коллизий (Carrier Sense Multiple Access with Collision Detection, CSMA/CD). В некоторых других протоколах, например, в Token Ring, используется передача маркера (token passing).

Спецификации физического уровня

Протоколы канального уровня, используемые в ЛВС, часто поддер­живают более одной сетевой среды, и в стандарт протокола включе­ны одна или несколько спецификаций физического уровня. Каналь­ный и физический уровни тесно связаны, т. к. свойства сетевой сре­ды существенно влияют на то, как протокол управляет доступом к среде. Поэтому можно сказать, что в локальных сетях протоколы ка­нального уровня осуществляют также функции физического уровня. В глобальных сетях используются протоколы канального уровня, в которые информация физического уровня не включается, например, SLIP (Serial Line Internet Protocol) и РРР (Point-to-Point Protocol).

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

На первый взгляд может показаться, что сетевой (network) уровень дублирует некоторые функции канального уровня. Но это не так: про­токолы сетевого уровня «отвечают» за сквозные (end-to-end) связи, тогда как протоколы канального уровня функционируют только в пределах ЛВС. Иными словами, протоколы сетевого уровня полнос­тью обеспечивают передачу пакета от исходной до целевой системы. В зависимости от типа сети, отправитель и получатель могут нахо­диться в одной ЛВС, в различных ЛВС в пределах одного здания или в ЛВС, разделенных тысячами километров. Например, когда Вы свя­зываетесь с сервером в Интернете, на пути к нему пакеты, созданные Вашим компьютером, проходят через десятки сетей. Подстраиваясь под эти сети, протокол канального уровня неоднократно изменится, но протокол сетевого уровня на всем пути останется тем же самым. Краеугольным камнем набора протоколов TCP/IP (Transmission Control Protocol/Internet Protocol) и наиболее часто используемым протоколом сетевого уровня является протокол IP (Internet Protocol). У Novell NetWare есть собственный сетевой протокол IPX (Inter­network Packet Exchange), а в небольших сетях Microsoft Windows обычно используется протокол NetBEUI (NetBIOS Enhanced User Interface). Большинство функций, приписываемых сетевому уровню, определяются возможностями протокола IP. Подобно протоколу канального уровня, протокол сетевого уровня добавляет заголовок к данным, которые он получил от вышестояще­го уровня (рис. 1.10). Элемент данных, созданный протоколом сете­вого уровня, состоит из данных транспортного уровня и заголовка сетевого уровня и называется дейтаграммой (datagram).


Адресация

Заголовок протокола сетевого уровня, как и заголовок протокола ка­нального уровня, содержит поля с адресами исходной и целевой сис­тем. Однако в данном случае адрес целевой системы принадлежит конечному назначению пакета и может отличаться от адреса получа­теля в заголовке протокола канального уровня. Например, когда Вы вводите в адресной строке браузера адрес Web-узла, в пакете, сгене­рированном Вашим компьютером, в качестве адреса целевой систе­мы сетевого уровня указан адрес Web-сервера, тогда как на канальном уровне на целевую систему указывает адрес маршрутизатора в Вашей ЛВС, обеспечивающего выход в Интернет. В IP используется собственная система адресации, которая совер­шенно не зависит от адресов канального уровня. Каждому компьюте­ру в сети с протоколом IP вручную или автоматически назначается 32-битовый IP- адрес, идентифицирующий как сам компьютер, так и сеть, в которой он находится. В IPX же для идентификации самого компьютера используется аппаратный адрес, кроме того, специаль­ный адрес используется для идентификации сети, в которой находит­ся компьютер. В NetBEUI компьютеры различаются по NetBIOS-именам, присваиваемым каждой системе во время ее установки.

Фрагментация

Дейтаграммам сетевого уровня на пути к месту назначения приходит­ся проходить через множество сетей, сталкиваясь при этом со специ­ фическими свойствами и ограничениями различных протоколов ка­нального уровня. Одно из таких ограничений - максимальный раз­мер пакета, разрешенный протоколом. Например, размер кадра Token Ring может достигать 4500 байт, тогда как размер кадров Ethernet не может превышать 1500 байтов. Когда большая дейтаграмма, сформи­рованная в сети Token Ring, передается в сеть Ethernet, протокол се­тевого уровня должен разбить ее на несколько фрагментов размером не более 1500 байт. Этот процесс называется фрагментацией (frag­ mentation). В процессе фрагментации протокол сетевого уровня разбивает дейтаграмму на фрагменты, размер которых соответствует возможно­стям используемого протокола канального уровня. Каждый фрагмент становится самостоятельным пакетом и продолжает путь к целевой системе сетевого уровня. Исходная дейтаграмма формируется лишь после того, как места назначения достигнут все фрагменты. Иногда на пути к целевой системе фрагменты, на которые разбита дейта­грамма, приходится фрагментировать повторно.

Маршрутизация

Маршрутизацией (routing) называется процесс выбора в интерсети самого эффективного маршрута для передачи дейтаграмм от систе­мы-отправителя к системе-получателю. В сложных интерсетях, на­пример, в Интернете или больших корпоративных сетях, часто от од­ного компьютера к другому можно добраться несколькими путями. Проектировщики сетей специально создают избыточные связи, что­бы трафик нашел дорогу к месту назначения даже в случае сбоя одно­ го из маршрутизаторов. С помощью маршрутизаторов соединяют отдельные ЛВС, входя­щие в интерсеть. Назначение маршрутизатора - принимать входя­щий трафик от одной сети и передавать его конкретной системе в другой. В интерсетях различают системы двух видов: оконечные (end systems) и промежуточные (intermediate systems). Оконечные системы являются отправителями и получателями пакетов. Маршрутизатор - промежуточная система. В оконечных системах используются все семь уровней модели OSI, тогда как пакеты, поступающие в проме­жуточные системы, не поднимаются выше сетевого уровня. Там мар­шрутизатор обрабатывает пакет и отправляет его вниз по стеку для передачи следующей целевой системе (рис. 1.11).


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

Идентификация протокола транспортного уровня

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

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

Функции, выполняемые протоколами транспортного (transport) уров­ня, дополняют функции протоколов сетевого уровня. Часто протоко­лы этих уровней, используемые для передачи данных, образуют взаи­ мосвязанную пару, что видно на примере TCP/IP: протокол TCP функционирует на транспортном уровне, IP - на сетевом. В боль­шинстве наборов протоколов имеется два или несколько протоколов транспортного уровня, выполняющих разные функции. Альтернати­вой TCP является протокол UDP (User Datagram Protocol). В набор протоколов IPX также включено несколько протоколов транспортно­го уровня, в том числе NCP (NetWare Core Protocol) и SPX (Sequenced Packet Exchange). Разница между протоколами транспортного уровня из определен­ного набора заключается в том, что некоторые из них ориентированы на соединение, а другие - нет. Системы, использующие протокол, ориентированный на соединение (connection-oriented), перед передачей данных обмениваются сообщениями, чтобы установить связь друг с другом. Это гарантирует, что системы включены и готовы к работе. Протокол TCP, например, ориентирован на соединение. Когда Вы с помощью браузера подключаетесь к серверу Интернета, браузер и сервер для установления связи сначала выполняют так называемое трехшаговое рукопожатие (three-way handshake). Лишь после этого браузер передает серверу адрес нужной Web-страницы. Когда переда­ча данных завершена, системы выполняют такое же рукопожатие для прекращения связи. Кроме того, протоколы, ориентированные на соединение, выпол­няют дополнительные действия, например, отправляют сигнал подтверждения приема пакета, сегментируют данные, управляют пото­ком, а также обнаруживают и исправляют ошибки. Как правило, про­токолы этого типа используются для передачи больших объемов ин­формации, в которых не должно содержаться ни единого ошибочно­го бита, например, файлов данных или программ. Дополнительные функции протоколов с ориентацией на соединение гарантируют корректную передачу данных. Вот почему эти протоколы часто называ­ют надежными (reliable). Надежность в данном случае является техни­ческим термином и означает, что каждый передаваемый пакет проверяется на наличие ошибок, кроме того, система-отправитель уведом­ляется о доставке каждого пакета. Недостаток протоколов этого типа состоит в значительном объеме управляющих данных, которыми об­мениваются две системы. Во-первых, дополнительные сообщения передаются при установлении и завершении связи. Во-вторых, заго­ловок, добавляемый к пакету протоколом с ориентацией на соедине­ние, существенно превосходит по размеру заголовок протокола, не ориентированного на соединение. Например, заголовок протокола TCP/IP занимает 20 байтов, а заголовок UDP - 8 байтов. Протокол, не ориентированный на соединение (connectionless), не устанавливает соединение между двумя системами до передачи дан­ных. Отправитель просто передает информацию целевой системе, не беспокоясь о том, готова ли она принять данные и существует ли эта система вообще. Обычно системы прибегают к протоколам, не ориентированным на соединение, например, к UDP, для коротких транзакций, состоящих только из запросов и ответных сигналов. Ответный сигнал от получателя неявно выполняет функцию сигнала подтверждения о передаче.

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

Протоколы транспортного уровня (как и сетевого и канального уровней) обычно содержат информацию с вышестоящих уровней. Например, в заголовки TCP и UDP включаются номера портов, иден­тифицирующие приложение, породившее пакет, и приложение, ко­торому он предназначен. На сеансовом (session) уровне начинается существенное расхождение между реально применяемыми протоколами и моделью OSI. В отли­чие от нижестоящих уровней, выделенных протоколов сеансового уровня не существует. Функции этого уровня интегрированы в про­токолы, которые выполняют также функции представительского и прикладного уровней. Транспортный, сетевой, канальный и физичес­кий уровни занимаются собственно передачей данных по сети. Про­токолы сеансового и вышестоящих уровней к процессу связи отно­шения не имеют. К сеансовому уровню относятся 22 службы, многие из которых задают способы обмена информацией между системами, включенными в сеть. Наиболее важны службы управления диалогом и разделения диалога. Обмен информацией между двумя системами в сети называется диалогом (dialog). Управление диалогом (dialog control) заключается в выборе режима, в котором системы будут обмениваться сообщения­ми. Таких режимов два: полудуплексный (two-way alternate, TWA) и дуплексный (two-way simultaneous, TWS). В полудуплексном режиме две системы вместе с данными передают также маркеры. Передавать информацию можно только компьютеру, у которого в данный момент находится маркер. Так удается избежать столкновения сообщений в пути. Дуплексная модель сложнее. Маркеров в ней нет; обе системы могут передавать данные в любой момент, даже одновременно. Разделение диалога (dialog separation) состоит во включении в по­ток данных контрольных точек (checkpoints), позволяющих синхро­низировать работу двух систем. Степень сложности разделения диа­лога зависит от того, в каком режиме он осуществляется. В полудуп­ лексном режиме системы выполняют малую синхронизацию, заклю­чающуюся в обмене сообщениями о контрольных точках. В дуплекс­ном режиме системы выполняют полную синхронизацию с помощью главного/активного маркера.

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

На представительском (presentation) уровне выполняется единствен­ная функция: трансляция синтаксиса между различными системами. Иногда компьютеры в сети применяют разные синтаксисы. Предста­вительский уровень позволяет им «договориться» об общем синтак­сисе для обмена данными. Устанавливая соединение на представи­тельском уровне, системы обмениваются сообщениями с информа­ цией о том, какие синтаксисы в них имеются, и выбирают тот, кото­рый они будут использовать во время сеанса. У обеих систем, участвующих в соединении, есть абстрактный синтаксис (abstract syntax) - их «родная» форма связи. Абстрактные синтаксисы различных компьютерных платформ могут отличаться. В процессе согласования системы выбирают общий синтаксис передачи данных (transfer syntax). Передающая система преобразует свой абст­рактный синтаксис в синтаксис передачи данных, а система-получа­тель по завершению передачи - наоборот. При необходимости сис­тема может выбрать синтаксис передачи данных с дополнительными функциями, например, сжатием или шифрованием данных.

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

Прикладной уровень - это точка входа, через которую программы получают доступ к модели OSI и сетевым ресурсам. Большинство про­ токолов прикладного уровня предоставляет службы доступа к сети. Например, протоколом SMTP (Simple Mail Transfer Protocol) боль­шинство программ электронной почты пользуется для отправки со­общений. Другие протоколы прикладного уровня, например, FTP (File Transfer Protocol), сами являются программами. В протоколы прикладного уровня часто включают функции сеан­сового и представительского уровня. В результате типичный стек про­токолов содержит четыре отдельных протокола, которые работают на прикладном, транспортном, сетевом и канальном уровнях.

Понятие «открытая система»

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

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

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

Для реальных систем полная открытость является недостижимым идеалом. Как правило, даже в системах, называемых открытыми, этому определению соответствуют лишь некоторые части, поддерживающие внешние интерфейсы. Например, открытость семейства операционных систем Unix заключается, кроме всего прочего, в наличии стандартизованного программного интерфейса между ядром и приложениями, что позволяет легко переносить приложения из среды одной версии Unix в среду другой версии. Еще одним примером частичной открытости является применение в достаточно закрытой операционной системе Novell NetWare открытого интерфейса Open Driver Interface (ODI) для включения в систему драйверов сетевых адаптеров независимых производителей. Чем больше открытых спецификаций использовано при разработке системы, тем более открытой она является.

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

Если две сети построены с соблюдением принципов открытости, то это дает следующие преимущества:

    возможность построения сети из аппаратных и программных средств различных производителей, придерживающихся одного и того же стандарта;

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

    возможность легкого сопряжения одной сети с другой;

    простота освоения и обслуживания сети.

Ярким примером открытой системы является международная сеть Internet. Эта сеть развивалась в полном соответствии с требованиями, предъявляемыми к открытым системам. В разработке ее стандартов принимали участие тысячи специалистов-пользователей этой сети из различных университетов, научных организаций и фирм-производителей вычислительной аппаратуры и программного обеспечения, работающих в разных странах. Само название стандартов, определяющих работу сети Internet - Request For Comments (RFC), что можно перевести как «запрос на комментарии», - показывает гласный и открытый характер принимаемых стандартов. В результате сеть Internet сумела объединить в себе самое разнообразное оборудование и программное обеспечение огромного числа сетей, разбросанных по всему миру.

Модель OSI

Международная Организация по Стандартам (International Standards Organization, ISO) разработала модель, которая четко определяет различные уровни взаимодействия систем, дает им стандартные имена и указывает, какую работу должен делать каждый уровень. Эта модель называется моделью взаимодействия открытых систем (Open System Interconnection, OSI) или моделью ISO/OSI.

В модели OSI взаимодействие делится на семь уровней или слоев (рис. 1.1). Каждый уровень имеет дело с одним определенным аспектом взаимодействия. Таким образом, проблема взаимодействия декомпозирована на 7 частных проблем, каждая из которых может быть решена независимо от других. Каждый уровень поддерживает интерфейсы с выше- и нижележащими уровнями.

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

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

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

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

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

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

Функции уровней модели ISO/OSI

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

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

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

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

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

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

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

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

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

Сообщения сетевого уровня принято называтьпакетами (packets) . При организации доставки пакетов на сетевом уровне используется понятие"номер сети" . В этом случае адрес получателя состоит из номера сети и номера компьютера в этой сети.

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

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

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

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

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

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

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

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

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

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

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

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