В компьютерных сетях могут совместно работать компьютеры разных производителей, оснащенные различным набором устройств и обладающие несхожими техническими характеристиками. На практике это означает, что для обеспечения нормального взаимодействия этих компьютеров необходим единый унифицированный стандарт, строго определяющий алгоритм передачи данных в распределенной вычислительной среде.
Взаимодействие рассредоточенных процессов в сетях осуществляется с помощью функциональной среды (т.е. комплекса технических и программных средств), обеспечивающей выполнение определенного свода правил - протоколов связи процессов.
Обычно эти протоколы реализуются с учетом принципа пакетной коммутации, в соответствии с которым перед передачей сообщение разбивается на блоки - пакеты определенной длины. Каждый пакет представляет собой независимую единицу передачи информации, содержащую, кроме собственно данных, служебную информацию (адреса отправителя и получателя, номер пакета в сообщении, информацию для контроля правильности принятых данных).
Прежде всего следует понимать, что в компьютерных сетях передача информации осуществляется не только между компьютерами как физическими устройствами, но и между приложениями, обеспечивающими коммуникации на программном уровне. Причем под такими приложениями можно понимать как компоненты операционной системы, организующие взаимодействие с различными устройствами компьютера, так и клиентские приложения, обеспечивающие интерфейс с пользователем. Таким образом, с одной стороны мы имеем дело с аппаратной конфигурацией сети, с другой стороны - с программной.
Вместе с тем, передача информации между сетевыми устройствами связана с широким кругом проблем, возникающих в процессе приема или трансляции данных. В их числе можно назвать аппаратный сбой либо выход из строя одного из обеспечивающих связь устройств, например, сетевой карты или концентратора, сбой прикладного или системного программного обеспечения, возникновение ошибки в самих передаваемых данных, потерю части транслируемой информации или ее искажение. Отсюда следует, что в компьютерной сети необходимо обеспечить контроль для отслеживания различных ошибок и организовать взаимодействие как аппаратных, так и программных компонентов сети.
Многослойный (многоуровневый) характер сетевых процессов приводит к необходимости описания их с помощью многоуровневых моделей.
Рассмотрим некоторые компоненты процесса передачи данных, которые должны быть регламентированы.
Модель сетевого взаимодействия не является неким физическим телом, отдельные элементы которого можно осязать. Сетевая модель определяет элементы взаимодействия между компьютерами, компоненты процесса передачи данных, которые реализуются как в аппаратуре, так и программными средствами.
Практика создания и развития компьютерных сетей привела к необходимости разработки стандартов по всему комплексу вопросов организации сетевых систем. В 1978 г. Международная организация по стандартизации (МОС - ISO, International Standard Organization) предложила семиуровневую эталонную модель взаимодействия открытых систем (ВОС - OSI, Open System Interconnection). Эта модель создает основу для анализа существующих телекоммуникационных вычислительных сетей и определения новых сетей и стандартов.
В соответствии с эталонной моделью OSI абонентская система (т.е. компьютер, включенный в сеть) представляется прикладными процессами и процессами взаимодействия абонентских систем. Последние разбиваются на семь функциональных уровней. Функции и процедуры, выполняемые в рамках одного функционального уровня, составляют соответствующий уровневый протокол. Нумерация уровней и соответствующих протоколов идет снизу вверх, их названия указаны на рис. 1.
Рис. 1. Семиуровневая модель взаимодействия открытых систем
Функциональные уровни взаимодействуют на строго иерархической основе: каждый уровень пользуется услугами нижнего уровня и, в свою очередь, обслуживает уровень, расположенный выше. Стандартизация распространяется на протоколы связи одноименных уровней взаимодействующих абонентских систем. Создание компьютерных сетей в соответствии с эталонной моделью OSI открывает возможность использования сети компьютеров различных классов и типов. Поэтому сеть, удовлетворяющая требованиям эталонной модели, называется открытой.
Нижние уровни управления - физический, канальный, сетевой - реализуются, в основном, техническими средствами (сетевыми адаптерами, концентраторами, мостами, коммутаторами, маршрутизаторами). Функции прикладного и сеансового уровней реализуются сетевыми операционными системами и сетевыми приложениями конечных узлов.
Это такие параметры, как напряжение в сети, сила тока, число контактов на разъемах, электрические, механические, функциональные и процедурные параметры для физической связи в системах. Физическая связь и неразрывная с ней эксплуатационная готовность являются основной функцией 1-го уровня.
Физический уровень осуществляет как соединения с физическим каналом, так и расторжение, управление каналом, а также определяет скорость передачи данных, топологию сети, механические и электрические характеристики, требуемые для подключения, поддержания соединения и отключения физической цепи. Здесь определяются правила передачи каждого бита через физический канал. Канал может быть параллельным (передавать несколько бит сразу) или последовательным.
Главные функции канального уровня: управление передачей данных по информационному каналу (генерация стартового сигнала и организация начала передачи информации, передача информации по каналу, проверка получаемой информации и исправление ошибок, отключение канала при его неисправности и восстановление передачи после ремонта, генерация сигнала окончания передачи и перевода канала в пассивное состояние) и управление доступом к передающей среде, т.е. реализация выбранного метода доступа к общесетевым ресурсам.
На канальном уровне формируются кадры, являющиеся контейнерами, в которых транспортируются пакеты.
К канальному уровню относятся протоколы, определяющие соединение, - протоколы взаимодействия между драйверами устройств и устройствами, с одной стороны, а с другой стороны, между операционной системой и драйверами устройств.
Основная задача сетевого протокола - маршрутизация данных, т.е. передача данных между разными сетями. Этот уровень отвечает за прокладку в каждом физическом канале совокупности логических каналов. Два пользователя, соединенные логическим каналом, работают так, как будто только в их распоряжении имеется физический канал. Маршрутизация осуществляется благодаря наличию сетевого адреса в пакете.
К сетевому уровню относятся протоколы, которые отвечают за отправку и получение данных, где определяется отправитель и получатель и необходимая информация для доставки пакета по сети.
Транспортный протокол связывает нижние уровни (физический, канальный, сетевой) с верхними уровнями, которые реализуются программными средствами. Этот уровень как бы разделяет средства формирования данных в сети от средств их передачи. Здесь осуществляется разделение информации по определенной длине и уточняется адрес назначения. Транспортный уровень позволяет мультиплексировать передаваемые сообщения или соединения. Мультиплексирование сообщений позволяет передавать сообщения одновременно по нескольким линиям связи, а мультиплексирование соединений - передает в одной посылке несколько сообщений для различных соединений.
Транспортный уровень требует от пользователей запроса на качество обслуживания сетью. После получения от пользователя запроса на качество обслуживания транспортный уровень выбирает класс протокола, который обеспечивает требуемое качество обслуживания. При существовании разных типов сетей транспортный уровень контролирует следующие параметры качества обслуживания: пропускная способность, надежность сети, задержка передачи информации через сеть, приоритеты, защита от ошибок, мультиплексирование, управление потоком, обнаружение ошибок.
Транспортный уровень отвечает за выбор соответствующего протокола, обеспечивающего требуемое качество обслуживания на сети. Транспортный уровень отвечает за надежность доставки данных: после проверки контрольной суммы принимается решение о сборке сообщения в одно целое. Транспортный уровень отвечает за целостность доставляемых данных.
На сеансовом уровне определяется начало и окончание сеанса связи: нормальное или аварийное; определяется время, длительность и режим сеанса связи, точки синхронизации для промежуточного контроля и восстановления при передаче данных, восстанавливается соединение после ошибок во время сеанса связи без потери данных.
Кроме того, сеансовый уровень содержит дополнительно функции управления паролями, подсчета платы за пользование ресурсами сети, управления диалогом, синхронизации и отмены связи в сеансе передачи после сбоя вследствие ошибок в нижерасположенных уровнях.
На этом уровне происходит преобразование данных из кадров, используемых для передачи данных, в экранный формат или формат для печатающих устройств оконечной системы.
На рабочих станциях могут использоваться различные операционные системы. Каждая из них имеет свою файловую систему, свои форматы хранения и обработки данных. Задачей данного уровня является преобразование данных при передаче информации в формат, который используется в информационной системе. При приеме данных уровень представления выполняет обратное преобразование. Таким образом, появляется возможность организовать обмен данными между станциями, на которых используются различные операционные системы.
Форматы представления данных могут различаться по следующим признакам: порядок следования битов и размерность символа в битах, порядок следования байтов, представление и кодировка символов, структура и синтаксис файлов.
Выше этого уровня поля данных имеют явную смысловую форму, а ниже его поля рассматриваются как передаточный груз, и их смысловое значение не влияет на обработку.
Протоколы прикладного уровня обеспечивают интерфейс с программным обеспечением, организующим работу пользователя в сети. При запуске любой программы, для функционирования которой требуется диалог с сетью, эта программа обращается к сети в соответствии с определенным протоколом прикладного уровня. Согласно данному протоколу, информация из сети передается программе в доступном для обработки формате - в виде системных сообщений либо в виде потока байтов. В точности таким же образом пользовательские приложения могут получать потоки данных и управляющие сообщения - как от самой операционной системы, так и от других запущенных на компьютере программ. Иными словами, протокол прикладного уровня выступает в роли своего рода посредника между сетью и программным обеспечением, преобразуя транслируемые через сеть данные в "понятную" программе-получателю форму.
На разных уровнях обмен происходит в различных единицах информации: биты, кадры, фреймы, пакеты, сеансовые сообщения, пользовательские сообщения. Уровень может "ничего не знать" о содержании сообщения, но он должен "знать", что дальше делать с поступившими данными. С уровня приложений сообщение передается на следующий уровень (представления) и т.д. через все уровни, вниз, пока на физическом уровне не поступает в кабель. Каждый уровень по-своему обрабатывает сообщение, но не "знает" о фактическом содержании этого сообщения.
Сообщения, поступающие в сеть от пользовательских приложений, делятся на фрагменты. Прохождение фрагмента данных по уровням модели OSI представлено на рис. 2.
Рис. 2. Схема передачи блока данных между уровнями модели OSI
На каждом уровне к фрагменту данных, поступившему с более высокого уровня, добавляется заголовок. Заголовок содержит служебную информацию, которая необходима для выполнения функций, регламентируемых протоколами данного уровня. Согласно модели OSI, на канальном уровне добавляется также и концевой блок со служебной информацией. Физический уровень ничего не добавляет к сформированному пакету данных - просто отправляет полученную информацию в сеть.
При получении блока информации от нижележащего уровня заголовки текущего уровня отбрасываются. Данные обрабатываются в соответствии с протоколами уровня и поступают на вышележащий уровень.