Физический канальный сетевой транспортный. Смотреть что такое "Модель OSI" в других словарях.

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

Сразу хочу обозначить один ньюанс - то, что передаётся по сети в пределах модели OSI, я буду называть данными, что не совсем корректно, но чтобы не путать начинающего читателя терминами, я пошёл на компромис с совестью.

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

Таблица состоит из двух колонок, на первоначальном этапе нас интересует лишь правая. Читать таблицу будем снизу вверх (а как иначе:)). На самом деле это не моя прихоть, а делаю так для удобства усвоения информации - от простого к сложному. Поехали!

В правой части вышеозначенной таблицы снизу вверх показн путь данных, передаваемых по сети (например, от вашего домашнего роутера до вашего комьютера). Уточнение - если читать уровни OSI снизу вверх, то это будет путь данных на принимающей стороне, если сверху вниз, то наоборот - отправляющей. Надеюсь, пока понятно. Чтобы развеять окончательно сомнения, вот вам ещё схемка для наглядности:


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

1) Физический (phisical) - к нему относится так называемая "среда передачи данных", т.е. провода, оптический кабель, радиоволна (в случае безпроводных соединений) и подобные. Например, если ваш компьютер подключен к интернету по кабелю, то за качество передачи данных на первом, физическом уровне, отвечают провода, контакты на конце провода, контакты разъёма сетевой карты вашего компьютера, а также внутренние электрические схемы на платах компьютера. У сетевых инженеров есть понятие "проблема с физикой" - это означает, что специалист усмотрел виновником "непередачи" данных устройство физического уровня, например где-то оборван сетевой кабель, или низкий уровень сигнала.

2) Канальный (datalink) - тут уже намного интереснее. Для понимания канального уровня нам придётся сначала усвоить понятие MAC-адреса, поскольку именно он будет главным действующим лицом в этой главе:). MAC-адрес ещё называют "физическим адресом", "аппаратным адресом". Представляет он собой набор из 12-и символов в шестнадцатиричной системе исчисления, разделённые на 6 октетов тире или двоеточием, например 08:00:27:b4:88:c1. Нужен он для однозначной идентификации сетевого устройства в сети. Теоритически, MAC-адрес является глобально уникальным, т.е. нигде в мире такого адреса быть не может и он "зашивается" в сетевое устройство на стадии производства. Однако, есть несложные способы его сменить на произвольный, да к тому же некоторые недобросовестные и малоизвестные производители не гнушаются тем, что клепают например, партию из 5000 сетевых карт с ровно одним и тем же MAC`ом. Соответственно, если как минимум два таких "брата-акробата" появятся в одной локальной сети, начнутся конфликты и проблемы.

Итак, на канальном уровне данные обрабатываются сетевым устройством, которое интересует лишь одно - наш пресловутый MAC-адрес, т.е. его интересует адресат доставки. К устройствам канального уровня относятся например, свитчи (они же коммутаторы) - они держат в своей памяти MAC-адреса сетевых устройств, с которыми у них есть непосредственная, прямая связь и при получении данных на свой принимающий порт сверяют MAC-адреса в данных с MAC-адресами, имеющимися в памяти. Если есть совпадения, то данные передаются адресату, остальные попросту игнорируются.

3) Сетевой (network) - "священный" уровень, понимание принципа функционирования которого большей частью и делает сетевого инженера таковым. Здесь уже железной рукой правит "IP-адрес", здесь он - основа основ. Благодаря ниличию IP-адреса становится возможным передача данных между компьютерами, не входящими в одну локальную сеть. Передача данных между разными локальными сетями называется маршрутизацией, а устройства, позволяющие это делать - маршрутизаторами (они же роутеры, хотя в последние годы понятие роутера сильно извратилось).

Итак, IP-адрес - если не вдаваться в детали, то это некий набор 12 цифр в десятеричной ("обычной") системе исчисления, разделённые на 4 октета, разделённых точкой, который присваиватеся сетевому устройству при подключении к сети. Тут нужно немного углубиться: например, многим известен адрес из ряда 192.168.1.23. Вполне очевидно, что тут никак не 12 цифр. Однако, если написать адрес в полном формате, всё становится на свои места - 192.168.001.023. Ещё глубже копать не будем на данном этапе, поскольку IP-адресация - это отдельная тема для рассказа и показа.

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

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

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

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

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

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

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

На канальном уровне мы имеем так называемый кадр. Если грубо, то это пачка байт, от 64 до 1518-и в одной пачке, из которых коммутатор читатет заголовок, в котором записаны MAC-адреса получателя и отправителя, а также техническая информация. Увидев совпадения MAC-адреса в заголовке и в своей таблице коммутации (памяти), коммутатор передаёт кадры с такими совпадениями устройству назначения

На сетевом уровне ко всему этому добру ещё добавляются IP-адреса получателя и отправителя, которые извлекаются всё из того же заголовка и называется это пакет .

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

На схеме ниже это будет видно более наглядно:


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

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

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

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

Не будем сильно отвлекаться, "Сетевая модель" нужная тема для тех, кто хочет стать специалистом. Эта статья состоит из 3х частей и для Вас, Я постарался написать не скучно, понятливо и коротко. Для получения подробностей, или получения дополнительного разъяснения отпишитесь в комментариях внизу страницы, и я непременно помогу Вам.

Мы, как и в Сетевой Академии Cisco рассмотрим две сетевые модели: модель OSI и модель TCP/IP (иногда её называют DOD), а заодно и сравним их.

OSI расшифровывается как Open System Interconnection. На русском языке это звучит следующим образом: Сетевая модель взаимодействия открытых систем (эталонная модель). Эту модель можно смело назвать стандартом. Именно этой модели придерживаются производители сетевых устройств, когда разрабатывают новые продукты.

Сетевая модель OSI состоит из 7 уровней, причем принято начинать отсчёт с нижнего.

Перечислим их:

  • 7. Прикладной уровень (application layer)
  • 6. Представительский уровень или уровень представления (presentation layer)
  • 5. Сеансовый уровень (session layer)
  • 4. Транспортный уровень (transport layer)
  • 3. Сетевой уровень (network layer)
  • 2. Канальный уровень (data link layer)
  • 1. Физический уровень (physical layer)

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

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

Прикладной уровень или уровень приложений(application layer) – это самый верхний уровень модели. Он осуществляет связь пользовательских приложений с сетью. Эти приложения нам всем знакомы: просмотр веб-страниц (HTTP), передача и приём почты (SMTP, POP3), приём и получение файлов (FTP, TFTP), удаленный доступ (Telnet) и т.д.

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

Представительский уровень или уровень представления данных (presentation layer) – он преобразует данные в соответствующий формат. На примере понять проще: те картинки (все изображения) которые вы видите на экране, передаются при пересылке файла в виде маленьких порций единиц и ноликов (битов). Так вот, когда Вы отправляете своему другу фотографию по электронной почте, протокол Прикладного уровня SMTP отправляет фотографию на нижний уровень, т.е. на уровень Представления. Где Ваша фотка преобразуется в удобный вид данных для более низких уровней, например в биты (единицы и нолики).

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

Вот так и работает этот уровень с протоколами (стандартами) изображений (JPEG, GIF, PNG, TIFF), кодировок (ASCII, EBDIC), музыки и видео (MPEG) и т.д.

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

Сеансовый уровень или уровень сессий(session layer) – как видно из названия, он организует сеанс связи между компьютерами. Хорошим примером будут служить аудио и видеоконференции, на этом уровне устанавливается, каким кодеком будет кодироваться сигнал, причем этот кодек должен присутствовать на обеих машинах. Еще примером может служить протокол SMPP (Short message peer-to-peer protocol), с помощью него отправляются хорошо известные нам СМСки и USSD запросы. И последний пример: PAP (Password Authentication Protocol) – это старенький протокол для отправки имени пользователя и пароля на сервер без шифрования.

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

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

Транспортный уровень (transport layer) – этот уровень обеспечивает надёжность передачи данных от отправителя к получателю. На самом деле всё очень просто, например вы общаетесь с помощью веб-камеры со своим другом или преподавателем. Нужна ли здесь надежная доставка каждого бита переданного изображения? Конечно нет, если потеряется несколько битов из потокового видео Вы даже этого не заметите, даже картинка не изменится (м.б. изменится цвет одного пикселя из 900000 пикселей, который промелькнет со скоростью 24 кадра в секунду).

А теперь приведем такой пример: Вам друг пересылает (например, через почту) в архиве важную информацию или программу. Вы скачиваете себе на компьютер этот архив. Вот здесь надёжность нужна 100%, т.к. если пару бит при закачке архива потеряются – Вы не сможете затем его разархивировать, т.е. извлечь необходимые данные. Или представьте себе отправку пароля на сервер, и в пути один бит потерялся – пароль уже потеряет свой вид и значение изменится.

Таким образом, когда мы смотрим видеоролики в интернете, иногда мы видим некоторые артефакты, задержки, шумы и т.п. А когда мы читаем текст с веб-страницы – потеря (или скжение) букв не допустима, и когда скачиваем программы – тоже все проходит без ошибок.

На этом уровне я выделю два протокола: UDP и TCP. UDP протокол (User Datagram Protocol) передает данные без установления соединения, не подтверждает доставку данных и не делает повторы. TCP протокол (Transmission Control Protocol), который перед передачей устанавливает соединение, подтверждает доставку данных, при необходимости делает повтор, гарантирует целостность и правильную последовательность загружаемых данных.

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

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

Сетевой уровень (network layer) – этот уровень определяет путь, по которому данные будут переданы. И, между прочим, это третий уровень Сетевой модели OSI, а ведь существуют такие устройства, которые как раз и называют устройствами третьего уровня – маршрутизаторы.

Все мы слышали об IP-адресе, вот это и осуществляет протокол IP (Internet Protocol). IP-адрес – это логический адрес в сети.

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

Как об IP-адресе все слышали и о команде ping – это работает протокол ICMP.

Те самые маршрутизаторы (с которыми мы и будет работать в дальнейшем) используют протоколы этого уровня для маршрутизации пакетов (RIP, EIGRP, OSPF).

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

Канальный уровень (data link layer) – он нам нужен для взаимодействия сетей на физическом уровне. Наверное, все слышали о MAC-адресе, вот он является физическим адресом. Устройства канального уровня – коммутаторы, концентраторы и т.п.

IEEE (Institute of Electrical and Electronics Engineers - Институт инженеров по электротехнике и электронике) определяет канальный уровень двумя подуровнями: LLC и MAC.

LLC – управление логическим каналом (Logical Link Control), создан для взаимодействия с верхним уровнем.

MAC – управление доступом к передающей среде (Media Access Control), создан для взаимодействия с нижним уровнем.

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

Типичных представителей на этом уровне много. PPP (Point-to-Point) – это протокол для связи двух компьютеров напрямую. FDDI (Fiber Distributed Data Interface) – стандарт передаёт данные на расстояние до 200 километров. CDP (Cisco Discovery Protocol) – это проприетарный (собственный) протокол принадлежащий компании Cisco Systems, с помощью него можно обнаружить соседние устройства и получить информацию об этих устройствах.

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

Физический уровень (physical layer) – самый нижний уровень, непосредственно осуществляющий передачу потока данных. Протоколы нам всем хорошо известны: Bluetooth, IRDA (Инфракрасная связь), медные провода (витая пара, телефонная линия), Wi-Fi, и т.д.

Заключение

Вот мы и разобрали сетевую модель OSI. В следующей части приступим к Сетевой модели TCP/IP, она меньше и протоколы те же. Для успешной сдачи тестов CCNA надо провести сравнение и выявить отличия, что и будет сделано.

Александр Горячев, Алексей Нисковский

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

Существует эталонная модель взаимодействия открытых систем (Open System Interconnection Reference Model), часто называемая моделью OSI. Эта модель разработана Международной организацией по стандартизации (International Organization for Standardization, ISO). Модель OSI описывает схему взаимодействия сетевых объектов, определяет перечень задач и правила передачи данных. Она включает в себя семь уровней: физический (Physical - 1), канальный (Data-Link - 2), сетевой (Network - 3), транспортный (Transport - 4), сеансовый (Session - 5), представления данных (Presentation - 6) и прикладной (Application - 7). Считается, что два компьютера могут взаимодействовать друг с другом на конкретном уровне модели OSI, если их программное обеспечение, реализующее сетевые функции этого уровня, одинаково интерпретирует одни и те же данные. В этом случае устанавливается прямое взаимодействие между двумя компьютерами, называемое «точка-точка».

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

Рассмотрим задачи, решаемые на каждом из уровней модели OSI.

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

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

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

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

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

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

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

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

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

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

Рассмотренные топологии чаще всего строятся с применением кабельных соединений.

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

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

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

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

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

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

С канальным уровнем обычно связаны следующие сетевые соединительные устройства:

  • мосты;
  • интеллектуальные концентраторы;
  • коммутаторы;
  • сетевые интерфейсные платы (сетевые интерфейсные карты, адаптеры и т.д.).

Функции канального уровня подразделяются на два подуровня (табл. 1):

  • управление доступом к среде передачи (Media Access Control, MAC);
  • управление логическим соединением (Logical Link Control, LLC).

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

Аббревиатура MAC также используется при определении физического адреса сетевого устройства: физический адрес устройства (который определяется внутри сетевого устройства или сетевой карты на этапе производства) часто называют MAC-адресом этого устройства. Для большого количества сетевых устройств, особенно сетевых карт, существует возможность программно изменить MAC-адрес. При этом необходимо помнить, что канальный уровень модели OSI накладывает ограничения на использование MAC-адресов: в одной физической сети (сегменте большей по размеру сети) не может быть двух или более устройств, использующих одинаковые MAC-адреса. Для определения физического адреса сетевого объекта может быть использовано понятие «адрес узла» (node address). Адрес узла чаще всего совпадает с MAC-адресом или определяется логически при программном переназначении адреса.

Подуровень LLC определяет правила синхронизации передачи и сервиса соединений. Этот подуровень канального уровня тесно взаимодействует с сетевым уровнем модели OSI и отвечает за надежность физических (с использованием MAC-адресов) соединений. Логическая топология (logical topology) сети определяет способ и правила (последовательность) передачи данных между компьютерами в сети. Сетевые объекты передают данные в зависимости от логической топологии сети. Физическая топология определяет физический путь данных; при этом в некоторых случаях физическая топология не отражает способ функционирования сети. Фактический путь данных определяется логической топологией. Для передачи данных по логическому пути, который может отличаться от пути в физической среде, используются сетевые устройства подключения и схемы доступа к среде передачи. Хороший пример различий между физической и логической топологиями - сеть Token Ring фирмы IBM. В локальных сетях Token Ring часто используется медный кабель, который прокладывается в звездообразную схему с центральным разветвителем (хабом). В отличие от нормальной звездообразной топологии хаб не пересылает входящие сигналы всем другим подключенным устройствам. Внутренняя схема хаба последовательно отправляет каждый входящий сигнал следующему устройству в заранее предопределенном логическом кольце, то есть по круговой схеме. Физической топологией этой сети является звезда, а логической - кольцо.

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

Чтобы определить логическую топологию сети, необходимо понять, как в ней принимаются сигналы:

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

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

Доступ к среде передачи

Логические топологии используют специальные правила, управляющие разрешением на передачу информации другим сетевым объектам. Процесс управления контролирует доступ к среде передачи данных. Рассмотрим сеть, в которой всем устройствам позволено функционировать безо всяких правил получения доступа к среде передачи. Все устройства в такой сети передают информацию по мере готовности данных; эти передачи могут иногда накладываться во времени. В результате наложения сигналы искажаются, происходит потеря передаваемых данных. Такая ситуация называется коллизией (collision). Коллизии не позволяют организовать надежную и эффективную передачу информации между сетевыми объектами.

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

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

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

Перед тем как выбрать протокол, в котором реализован один из этих методов доступа к среде передачи данных, следует обратить особое внимание на следующие факторы:

  • характер передач - непрерывный или импульсный;
  • количество передач данных;
  • необходимость передачи данных в строго определенные интервалы времени;
  • количество активных устройств в сети.

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

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

Для снижения количества коллизий разработаны специальные протоколы, в которых реализована функция прослушивания среды передачи информации до начала передачи данных станцией. Если прослушивающая станция обнаруживает передачу сигнала (от другой станции), то она воздерживается от передачи информации и будет пытаться повторить ее позже. Эти протоколы называются протоколами множественного доступа с контролем несущей (Carrier Sense Multiple Access, CSMA). Протоколы CSMA значительно снижают число коллизий, но не устраняют их полностью. Коллизии тем не менее происходят, когда две станции опрашивают кабель: не обнаруживают никаких сигналов, решают, что среда передачи данных свободна, а затем одновременно начинают передачу данных.

Примерами таких состязательных протоколов являются:

  • множественный доступ с контролем несущей/обнаружением коллизий (Carrier Sense Multiple Access/Collision Detection, CSMA/CD);
  • множественный доступ с контролем несущей/предотвращением коллизий (Carrier Sense Multiple Access/Collision Avoidance, CSMA/CA).

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

Примерами протоколов CSMA/CD являются Ethernet version 2 (Ethernet II, разработанный в корпорации DEC) и IEEE802.3.

Протоколы CSMA/CA. CSMA/CA использует такие схемы, как доступ с квантованием времени (time slicing) или посылка запроса на получение доступа к среде. При использовании квантования времени каждая станция может передавать информацию только в строго определенные для этой станции моменты времени. При этом в сети должен реализовываться механизм управления квантами времени. Каждая новая станция, подключаемая к сети, оповещает о своем появлении, тем самым инициируя процесс перераспределения квантов времени для передачи информации. В случае использования централизованного управления доступом к среде передачи каждая станция формирует специальный запрос на передачу, который адресуется к управляющей станции. Центральная станция регулирует доступ к среде передачи для всех сетевых объектов.

Примером CSMA/CA является протокол LocalTalk фирмы Apple Computer.

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

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

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

Имеется несколько протоколов передачи маркера. Двумя стандартами сетей, использующими передачу маркера, являются IEEE 802.4 Token Bus и IEEE 802.5 Token Ring. В сети Token Bus используется управление доступом с передачей маркера и физическая или логическая шинная топология, в то время как в сети Token Ring используется управление доступом с передачей маркера и физическая или логическая кольцевая топология.

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

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

Этот уровень также обеспечивает сервис соединений. Существует три типа сервиса соединений:

  • сервис без подтверждения и без установления соединений (unacknowledged connectionless) - посылает и получает фреймы без управления потоком и без контроля ошибок или последовательности пакетов;
  • сервис, ориентированный на соединение (connection-oriented), - обеспечивает управление потоком, контроль ошибок и последовательности пакетов посредством выдачи квитанций (подтверждений);
  • сервис с подтверждением без установления соединения (acknowledged connectionless) - использует квитанции для управления потоком и контроля ошибок при передачах между двумя узлами сети.

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

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

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

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

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

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

Элементы и методы реализации сетевого уровня определяются следующим:

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

На этом уровне модели OSI работают маршрутизаторы и некоторые из коммутаторов.

Сетевой уровень определяет правила формирования логических адресов (logical network address) сетевых объектов. В рамках большой объединенной сети каждый сетевой объект должен обладать уникальным логическим адресом. В формировании логического адреса участвуют два компонента: логический адрес сети, который является общим для всех объектов сети, и логический адрес сетевого объекта, который является уникальным для этого объекта. При формировании логического адреса сетевого объекта может либо использоваться физический адрес объекта, либо определяться произвольный логический адрес. Использование логической адресации позволяет организовать передачу данных между разными логическими сетями.

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

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

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

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

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

Коммутация сообщений позволяет передавать целое (неразбитое на части) сообщение по принципу «сохранить и передать дальше» (store-and-forward). Каждое промежуточное устройство принимает сообщение, локально его сохраняет и при освобождении канала связи, по которому это сообщение должно быть отправлено, отправляет его. Этот метод хорошо подходит для передачи сообщений электронной почты и организации электронного документооборота.

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

Каждый раз при определении дальнейшего пути для данных необходимо выбрать наилучший маршрут. Задача определения наилучшего пути называется маршрутизацией (routing). Эту задачу выполняют маршрутизаторы (router). Задача маршрутизаторов - определение возможных путей передачи данных, поддержание маршрутной информации, выбор наилучших маршрутов. Маршрутизация может осуществляться статическим либо динамическим способом. При задании статической маршрутизации должны быть заданы все взаимосвязи между логическими сетями, которые остаются неизменными. Динамическая маршрутизация предполагает, что маршрутизатор может сам определять новые пути либо модифицировать информацию о старых. Динамическая маршрутизация использует специальные алгоритмы маршрутизации, наиболее распространенными из которых являются вектор дистанции (distance vector) и состояние канала (link state). В первом случае маршрутизатор использует информацию о структуре сети от соседних маршрутизаторов, из вторых рук. Во втором случае маршрутизатор оперирует информацией о собственных каналах связи и взаимодействует со специальным представительским маршрутизатором для построения полной карты сети.

На выбор наилучшего маршрута чаще всего влияют такие факторы, как количество переходов через маршрутизаторы (hop count) и количество тиков (единиц времени), необходимых для достижения сети назначения (tick count).

Сервис соединений сетевого уровня работает тогда, когда сервис соединений LLC-подуровня канального уровня модели OSI не используется.

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

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

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

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

Многие протоколы в вычислительных сетях обеспечивают пользователям возможность работы с простыми именами на естественном языке вместо сложных и тяжелых для запоминания алфавитно-цифровых адресов. Преобразование адресов в имена и обратно (Address/Name Resolution) является функцией идентификации или отображения имен и алфавитно-цифровых адресов друг в друга. Эта функция может выполняться каждым объектом в сети или поставщиками специального сервиса, называемыми каталоговыми серверами (directory server), серверами имен (name server) и т.п. Следующие определения классифицируют методы преобразования адресов/имен:

  • инициация потребителем сервиса;
  • инициация поставщиком сервиса.

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

Методы адресации

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

  • идентификатор соединения;
  • идентификатор транзакции.

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

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

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

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

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

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

Сеансовый уровень реализует управление диалогом с использованием одного из трех способов общения - симплекс (simplex), полудуплекс (half duplex) и полный дуплекс (full duplex).

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

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

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

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

Под преобразованием понимается изменение порядка битов в байтах, порядка байтов в слове, кодов символов и синтаксиса имен файлов.

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

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

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

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

Локальные и сетевые операционные системы часто шифруют данные для защиты их от несанкционированного использования. Шифрование - это общий термин, который описывает некоторые методы защиты данных. Защита зачастую выполняется с помощью перемешивания данных (data scrambling), при котором используется один или несколько методов из трех: перестановка, подстановка, алгебраический метод.

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

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

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

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

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

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

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

При осуществлении активного представления сервиса (Active service advertisement) каждый сервер периодически посылает сообщения (включающие адреса сервиса), объявляя о своей доступности. Клиенты также могут опрашивать сетевые устройства в поисках определенного типа сервиса. Клиенты сети собирают представления, сделанные серверами, и формируют таблицы доступных в настоящее время видов сервиса. Большинство сетей, использующих метод активного представления, определяют также конкретный период действия представлений сервиса. Например, если сетевой протокол определяет, что представления сервиса должны посылаться каждые пять минут, то клиенты будут удалять по тайм-ауту те виды сервиса, которые не были представлены в течение последних пяти минут. По истечении тайм-аута клиент удаляет сервис из своих таблиц.

Серверы осуществляют пассивное представление сервиса (Passive service advertisement) путем регистрации своего сервиса и адреса в каталоге. Когда клиенты хотят определить доступные виды сервиса, они просто запрашивают каталог о местоположении нужного сервиса и об его адресе.

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

  • перехват вызовов операционной системы;
  • удаленный режим;
  • совместная обработка данных.

При использовании перехвата вызовов ОС (OC Call Interception) локальная операционная система совершенно не подозревает о существовании сетевого сервиса. Например, когда приложение DOS пытается читать файл с сетевого файл-сервера, оно считает, что данный файл находится на локальном накопителе. В действительности специальный фрагмент программного обеспечения перехватывает запрос на чтение файла прежде, чем он достигнет локальной операционной системы (DOS), и направляет запрос сетевому файловому сервису.

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

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

КомпьютерПресс 6"1999

Сетевая модель OSI (англ.open systems interconnection basic reference model - базовая эталонная модельвзаимодействия открытых систем) -сетевая модельстекасетевых протоколовOSI/ISO.

В связи с затянувшейся разработкой протоколов OSI, в настоящее время основным используемым стеком протоколов является TCP/IP, он был разработан ещё до принятия модели OSI и вне связи с ней.

Модель OSI

Тип данных

Уровень (layer)

Функции

7. Прикладной (application)

Доступ к сетевым службам

6. Представительский (presentation)

Представление и шифрование данных

5. Сеансовый (session)

Управление сеансом связи

Сегменты / Дейтаграммы

4. Транспортный (transport)

Прямая связь между конечными пунктами и надежность

3. Сетевой (network)

Определение маршрута и логическая адресация

2. Канальный (data link)

Физическая адресация

1. Физический (physical)

Работа со средой передачи, сигналами и двоичными данными

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

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

    тип передающей среды (медный кабель, оптоволокно, радиоэфир и др.),

    тип модуляции сигнала,

    сигнальные уровни логических дискретных состояний (нуля и единицы).

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

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

К базовым сетевым технологиям относятся физический и канальный уровни.

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

Прикладной уровень (уровень приложений) - верхний уровень модели, обеспечивающий взаимодействие пользовательских приложений с сетью:

    позволяет приложениям использовать сетевые службы:

    • удалённый доступ к файлам и базам данных,

      пересылка электронной почты;

    отвечает за передачу служебной информации;

    предоставляет приложениям информацию об ошибках;

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

Протоколы прикладного уровня: RDP HTTP (HyperText Transfer Protocol), SMTP (Simple Mail Transfer Protocol), SNMP (Simple Network Management Protocol), POP3 (Post Office Protocol Version 3), FTP (File Transfer Protocol), XMPP, OSCAR,Modbus, SIP,TELNETи другие.

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

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

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

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

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

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

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

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

Протоколы уровня представления: AFP - Apple Filing Protocol, ICA -Independent Computing Architecture, LPP - Lightweight Presentation Protocol, NCP -NetWare Core Protocol, NDR -Network Data Representation, XDR -eXternal Data Representation, X.25 PAD -Packet Assembler/Disassembler Protocol.

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

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

Протоколы сеансового уровня: ADSP, ASP, H.245, ISO-SP (OSI Session Layer Protocol (X.225, ISO 8327)), iSNS, L2F, L2TP, NetBIOS, PAP (Password Authentication Protocol), PPTP, RPC, RTCP, SMPP, SCP (Session Control Protocol), ZIP (Zone Information Protocol), SDP (Sockets Direct Protocol)..

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

Транспортный уровень (англ.transport layer ) модели предназначен для обеспечения надёжной передачи данных от отправителя к получателю. При этом уровень надёжности может варьироваться в широких пределах. Существует множество классов протоколов транспортного уровня, начиная от протоколов, предоставляющих только основные транспортные функции (например, функции передачи данных без подтверждения приема), и заканчивая протоколами, которые гарантируют доставку в пункт назначения нескольких пакетов данных в надлежащей последовательности, мультиплексируют несколько потоков данных, обеспечивают механизм управления потоками данных и гарантируют достоверность принятых данных. Например, UDPограничивается контролем целостности данных в рамках одной датаграммы и не исключает возможности потери пакета целиком или дублирования пакетов, нарушения порядка получения пакетов данных;TCPобеспечивает надёжную непрерывную передачу данных, исключающую потерю данных или нарушение порядка их поступления или дублирования, может перераспределять данные, разбивая большие порции данных на фрагменты и, наоборот, склеивая фрагменты в один пакет.

Протоколы транспортного уровня: ATP, CUDP, DCCP, FCP, IL, NBF, NCP, RTP, SCTP, SPX, SST, TCP (Transmission Control Protocol), UDP (User Datagram Protocol).

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

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

Протоколы сетевого уровня маршрутизируют данные от источника к получателю. Работающие на этом уровне устройства (маршрутизаторы) условно называют устройствами третьего уровня (по номеру уровня в модели OSI).

Протоколы сетевого уровня: IP/IPv4/IPv6 (Internet Protocol), IPX, X.25, CLNP (сетевой протокол без организации соединений), IPsec (Internet Protocol Security). Протоколы маршрутизации - RIP, OSPF.

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

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

Спецификация IEEE 802разделяет этот уровень на два подуровня:MAC(англ.media access control ) регулирует доступ к разделяемой физической среде, LLC(англ.logical link control ) обеспечивает обслуживание сетевого уровня.

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

Протоколы канального уровня- ARCnet,ATMEthernet,Ethernet Automatic Protection Switching(EAPS),IEEE 802.2,IEEE 802.11wireless LAN,LocalTalk, (MPLS),Point-to-Point Protocol(PPP),Point-to-Point Protocol over Ethernet(PPPoE),StarLan,Token ring,Unidirectional Link Detection(UDLD),x.25.

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

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

На этом уровне также работают концентраторы,повторителисигнала имедиаконвертеры.

Функции физического уровня реализуются на всех устройствах, подключенных к сети. Со стороны компьютера функции физического уровня выполняются сетевым адаптером или последовательным портом. К физическому уровню относятся физические, электрические и механические интерфейсы между двумя системами. Физический уровень определяет такие виды сред передачи данных как оптоволокно,витая пара,коаксиальный кабель, спутниковый канал передач данных и т. п. Стандартными типами сетевых интерфейсов, относящимися к физическому уровню, являются:V.35,RS-232,RS-485, RJ-11,RJ-45, разъемыAUIиBNC.

Протоколы физического уровня: IEEE 802.15 (Bluetooth),IRDA,EIARS-232,EIA-422,EIA-423,RS-449,RS-485,DSL,ISDN,SONET/SDH,802.11Wi-Fi,Etherloop,GSMUm radio interface,ITUиITU-T,TransferJet,ARINC 818,G.hn/G.9960.

Семейство TCP/IP

Семейство TCP/IPимеет три транспортных протокола: TCP, полностью соответствующий OSI, обеспечивающий проверку получения данных;UDP, отвечающий транспортному уровню только наличием порта, обеспечивающий обмендатаграммамимежду приложениями, не гарантирующий получения данных; иSCTP, разработанный для устранения некоторых недостатков TCP, в который добавлены некоторые новшества. (В семействе TCP/IP есть ещё около двухсот протоколов, самым известным из которых является служебный протоколICMP, используемый для внутренних нужд обеспечения работы; остальные также не являются транспортными протоколами).

Семейство IPX/SPX

В семействе IPX/SPXпорты (называемые сокетами или гнёздами) появляются в протоколе сетевого уровня IPX, обеспечивая обмендатаграммамимежду приложениями (операционная система резервирует часть сокетов для себя). Протокол SPX, в свою очередь, дополняет IPX всеми остальными возможностями транспортного уровня в полном соответствии с OSI.

В качестве адреса хоста IPX использует идентификатор, образованный из четырёхбайтного номера сети (назначаемого маршрутизаторами) и MAC-адреса сетевого адаптера.

Модель TCP/IP (5 уровней)

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

    Транспортный (4) уровень (Transport Layer) обеспечивает доставку пакетов без ошибок и потерь, а также в нужной последовательности. Здесь же производится разбивка на блоки передаваемых данных, помещаемые в пакеты, и восстановление принимаемых данных из пакетов. Доставка пакетов возможна как с установлением соединения (виртуального канала), так и без. Транспортный уровень является пограничным и связующим между верхними тремя, сильно зависящими от приложений, и тремя нижними уровнями, сильно привязанными к конкретной сети.

    Сетевой (3) уровень (Network Layer) отвечает за адресацию пакетов и перевод логических имен (логических адресов, например, IP-адресов или IPX-адресов) в физические сетевые MAC-адреса (и обратно). На этом же уровне решается задача выбора маршрута (пути), по которому пакет доставляется по назначению (если в сети имеется несколько маршрутов). На сетевом уровне действуют такие сложные промежуточные сетевые устройства, как маршрутизаторы.

    Канальный (2) уровень или уровень управления линией передачи (Data link Layer) отвечает за формирование пакетов (кадров) стандартного для данной сети (Ethernet, Token-Ring, FDDI) вида, включающих начальное и конечное управляющие поля. Здесь же производится управление доступом к сети, обнаруживаются ошибки передачи путем подсчета контрольных сумм, и производится повторная пересылка приемнику ошибочных пакетов. Канальный уровень делится на два подуровня: верхний LLC и нижний MAC. На канальном уровне работают такие промежуточные сетевые устройства, как, например, коммутаторы.

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

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

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

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

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

Организация взаимодействия между устройствами в сети является сложной зада­чей. Как известно, для решения сложных задач используется универсальный при­ем - декомпозиция, то есть разбиение одной сложной задачи на несколько более простых задач-модулей (рис. 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 представляет хотя и очень важную, но только одну из многих мо­делей коммуникаций. Эти модели и связанные с ними стеки протоколов могут отличаться количеством уровней, их функциями, форматами сообщений, службами, поддерживаемыми на верхних уровнях, и прочими параметрами.