Перемещение информации между компьютерами с различными аппаратными и прикладными средствами является сложной задачей в смысле совместимости.
Для нормального функционирования сети, состоящей из компьютеров и оборудования от разных производителей, необходимы какие-то правила, которые бы устанавливали стандартные способы поведения любого оборудования. Такие правила есть и они называются стандартами. Протоколы - это соглашения, принятые взаимодействующими объектами, в данном случае - компьютерами в сети. Протоколы, использующиеся для передачи данных, регламентируют следующие вопросы:
- как поток данных разбивается на пакеты,
- из каких полей состоит пакет,
- как заполняются поля пакета,
- что должна делать принимающая станция, чтобы извлечь из пакетов данные и т.п.
Строгое соблюдение протоколов гарантирует правильную передачу информации между компьютерами.
Все протоколы, в зависимости от своего функционального назначения, группируются по уровням. Для уровней описывается интерфейс, а конкретное содержание каждого уровня может разрабатываться отдельными комитетами. Преимущество такого подхода заключается в том, что уровни получаются максимально независимыми, что дает возможность изменять содержимое одного уровня без изменения других уровней.
Системы, разработанные подобным образом, часто называются открытыми, то есть системами, у которых функции взаимодействия с другими системами разбиты на несколько уровней, функции каждого уровня и протоколы взаимодействия между уровнями стандартизированы.
В начале 1980 годов Международная организация по стандартизации (ISO) разработала многоуровневый комплект протоколов, известный как Эталонная Модель Взаимодействия Открытых Систем (OSI). Основная идея модели OSI - обеспечение простого обмена информацией при использовании изготовленных разными фирмами аппаратных и программных средств, соответствующих стандарту OSI. В результате - конечные пользователи должны забыть о проблемах совместимости.
Сами протоколы OSI на сегодняшний день, практически не применяются, но подход к представлению этих протоколов оказался очень удобен для описания существующих протоколов и оборудования. Большинство поставщиков сетей сопровождает свои изделия документацией, описывающей эти изделия в соответствии с моделью OSI. Модель является средством для описания и изучения многочисленных компонент сетей.
Модель OSI делит проблему перемещения информации между компьютерами через среду сети на семь менее крупных, а следовательно, более легко разрешимых проблем. Каждая из этих семи проблем выбрана потому, что она относительно автономна.
Модель OSI описывает, каким образом информация проделывает путь через среду одной сети, от одной прикладной программы, до другой прикладной программы, выполняющейся на другом компьютере.
Рассмотрим, как выглядит общение двух компьютеров в сети с точки зрения модели OSI (рис. 16).
Рис. Рис.16. Взаимодействие двух систем в соответствии с моделью OSI
Прикладной уровень.
Прикладной уровень - это единственный видимый пользователю уровень OSI. Он отличается от других уровней тем, что не обеспечивает услуг ни одному из других уровней OSI; однако он обеспечивает ими прикладные процессы, лежащие за пределами масштаба модели OSI. Примерами таких прикладных процессов могут служить программы обработки крупномасштабных таблиц, программы обработки слов, программы банковских терминалов и т.д.
Прикладной уровень предоставляет пользовательским приложениям доступ к сети, его основной функцией является трансформация попытки доступа к сети в запрос и передача на нижележащий уровень представления. К вспомогательным функциям прикладного уровня относятся:
- организация санкционированного доступа к ресурсам,
- синхронизация совместно работающих программ,
- управление целостностью информации,
- обработка ошибок.
Прикладной уровень также определяет, имеется ли в наличии достаточно ресурсов для предполагаемой связи.
Представительный уровень (уровень представления)
Этот уровень предназначен для сокрытия различий в передаваемых данных для прикладных программ. Уровень представления обеспечивает возможность передачи данных с гарантией, что прикладные процессы, осуществляющие обмен информацией, смогут преодолеть синтаксические различия. Чтобы обмен имел место, эти два процесса должны использовать общее представление данных.
Другими словами, представительный уровень отвечает за то, чтобы информация, посылаемая из прикладного уровня одной системы, была читаемой для прикладного уровня другой системы. При необходимости, представительный уровень осуществляет трансляцию между множеством форматов представления информации, путем использования общего формата.
Простой пример. Уровень представления может перекодировать текстовый файл, пересылаемый с Unix-машины, в формат, доступный для редактора на DOS-машине (различие заключается в разных кодировках русских символов и способах обозначения конца строки).
На представительский уровень возложена также важная функция: шифрация и дешифрация для обеспечения конфиденциальности передаваемых данных.
Сеансовый уровень.
Отвечает за установление соединения, управление и завершение сеансов взаимодействия между прикладными задачами.
При установлении соединения обычно требуется ввести имя пользователя и пароль. Сеансовый уровень системы, с которой устанавливается соединение, проверяет права доступа пользователя, соотносит запрашиваемые требования с возможностями своей системы (например, требуется машина с большой вычислительной мощностью, а удаленная машина таковой не является, или слишком много пользователей на сервере и для еще одного нет ресурсов и т.п.), и, либо разрешает соединение - начинает сеанс, либо нет.
При инициализации сеанса, между сеансовыми уровнями решаются такие вопросы, как режим передачи и установка контрольных точек синхронизации. На этом уровне определяется, какой будет передача между прикладными процессами: полудуплексной или дуплексной. В полудуплексном режиме сеансовый уровень выдает тому процессу, который первым начинает передачу, маркер. Когда второму процессу приходит время отвечать, маркер передается ему.
Синхронизующие точки представляют собой моменты времени в которые, сеансовый уровень проверяет наличие связи. Если в очередной контрольной точке обнаружится, что связь прервалась, то передачу можно возобновить с последней контрольной точки, в которой связь еще присутствовала.
Транспортный уровень
Граница между сеансовым и транспортным уровнями может быть представлена, как граница между протоколами прикладного уровня и протоколами низших уровней. В то время как прикладной, представительский и сеансовый уровни заняты прикладными вопросами, четыре низших уровня решают проблемы транспортировки данных. Иногда три высших уровня даже и не рассматривают, или изображают их одним уровнем.
Транспортный уровень обеспечивает услуги по транспортировке данных. Заботой транспортного уровня является решение таких вопросов, как выполнение надежной транспортировки данных через сеть.
На транспортном уровне известен допустимый уровень размера сообщений, и в случае длинных сообщений, последние разбиваются на последовательность нескольких, более коротких сообщений - пакетов. Сообщения слишком малой длины могут собираться в один пакет. Каждому пакету назначается последовательный номер, после чего они передаются сетевому уровню. Транспортный уровень контролирует очередность прохождения пакетов, игнорирует дублирующие пакеты, буферизирует принимаемые пакеты. На одной и той же вычислительной системе могут быть запущены несколько процессов, использующих сеть. Транспортный уровень производит адресацию прикладных процессов, чтобы их данные не смешивались.
Задача транспортного уровня - создать иллюзию, что соединение подобно трубе - вы помещаете в нее сообщения, и они выходят из нее неповрежденные и в том же порядке.
Сетевой уровень.
Протоколы канального уровня обеспечивают доставку пакетов только в сети с конкретной топологией. Но современные сети достигают больших размеров, и объединяют множество сетей с простыми топологиями. Чтобы не усложнять транспортный уровень, но выйти на уровень произвольных топологий, ввели сетевой уровень.
На этом уровне, вводится понятие подсети - совокупности компьютеров, соединенных по одной из типовых топологий, и использующих протокол канального уровня, определенный для этой сети. Внутри такой сети доставка пакетов регулируется канальным уровнем. А доставкой пакетов между подсетями (маршрутизацией) занимается сетевой уровень. Для этого на сетевом уровне к адресу получателя добавляется еще номер подсети.
Сетевой уровень отвечает за маршрутизацию пакетов по всей сети. Протоколы транспортного уровня выдают запросы на передачу пакетов из одной сети в другую, а задача сетевого уровня состоит в практической реализации механизма этой передачи.
В соответствии с моделью OSI сетевой уровень должен обеспечивать правильную последовательность принимаемых пакетов, но на практике, эта обязанность возложена на транспортный уровень.
Сетевой уровень информирует транспортный об обнаружении неисправимых ошибок, помогая ему сохранить качество сервиса передачи, то есть не потерять пакеты.
Сетевой уровень также выполняет управление потоком данных. Вычислительная система может порождать пакеты намного быстрее, чем сеть в состоянии их передать. Если передавать пакеты, не обращая на это внимание, то некоторые из них могут потеряться. Сетевой уровень контролирует поток данных и, когда это необходимо, информирует транспортный о временном прекращении передачи, чтобы дать предыдущим пакетам пройти через сеть.
Часто возникает необходимость учета трафика, например, чтобы подсчитать денежные и временные затраты. Сетевой уровень учитывает трафик, выдавая информацию в терминах пакетов или бит данных.
На сетевом уровне используются два типа протоколов. Первый определяет правила передачи пакетов. Второй тип - протоколы обмена маршрутной информацией. С помощью этих протоколов маршрутизаторы и собирают информацию о топологии межсетевых соединений.
Канальный уровень (уровень соединения)
Канальный уровень, или уровень соединения, обеспечивает надежную передачу данных через физический канал.
Комитет IEEE, дополняя модель OSI, в семействе стандартов Project 802 разбил канальный уровень на два подуровня: подуровень управления доступом к среде (Media Access Control, MAC) и подуровень управления логической связью (Logical Link Control, LLC). Подуровень LLC расположен выше, чем MAC.
На физическом уровне пересылаются физические сигналы и не учитывается, что канал передачи данных может быть занят. Поэтому одна из задач подуровня MAC - проверка доступности канала, и в случае его доступности, инициализация канала.
Вторая, не менее важная, задача подуровня MAC состоит в обнаружении и коррекции ошибок. MAC принимает от сетевого уровня пакеты данных и готовит их к передаче - укладывает в кадры (рис.18).
Рис. 18. Общий формат кадра
Кадр содержит заголовок, концовку - трейлер, и сам пакет. Заголовок обычно включает адреса источника и приемника и специальные биты для синхронизации. Трейлер содержит код для обнаружения и исправления ошибок, например избыточный циклический код - CRC.
Между компьютерами могут одновременно существовать несколько независимо работающих каналов. Подуровень LLC обеспечивает отсутствие перекрытия этих каналов. Кроме того, LLC также занимается вопросами надежной доставки данных, но на более высоком уровне. К примеру, для этого подуровня могут быть определены три способа передачи кадров:
датаграммный, когда кадр данных выталкивается в сеть, и в случае неправильного приема просто сбрасывается (теряется);
датаграммный с квитированием, когда в случае успешной доставки кадра приемник посылает источнику квитанцию о правильности приема;
с установлением логического соединения между источником и приемником, при котором обнаруживаются нарушения последовательности передачи кадров, кадры-дубликаты и т.п
Каждый из трех вышеперечисленных способов, в порядке перечисления обеспечивает более надежную доставку кадров, но и требует все большего объема служебной информации.
Физический уровень
Это самый понятный и непротиворечивый уровень, т.к. он подробно описан в многочисленных международных стандартах.
Физический уровень определяет электротехнические, механические, процедурные и функциональные характеристики активации, поддержания и дезактивации физического канала между конечными системами. Спецификации физического уровня определяют такие характеристики, как уровни напряжений, синхронизацию изменения напряжений, скорость передачи физической информации, максимальные расстояния передачи информации, физические соединители и другие аналогичные характеристики.