Современные сети построены по многоуровневому принципу. Сетевое взаимодействие компьютеров в сети описывается с помощью эталонной модели взаимодействия открытых систем OSI (Open System Interconnect). Она была разработана в начале 80-х годов международной организацией по стандартизации ISO как архитектурная модель передачи информации по сети. Модель регламентирует взаимодействие локальных и глобальных сетей, создает основу для стандартизации программных и аппаратных средств. Такой подход обеспечивает возможности передачи информации между различными типами локальных и глобальных сетей, позволяет устройствам одного производителя взаимодействовать с устройствами других производителей. Не все разработчики сетевого оборудования и программного обеспечения в точности следуют этой модели, однако она дает основы для понимания способов взаимодействия сетевых компонент.
Модель описывает структуру уровней сети, каждый из которых обеспечивает выполнение определенной части сетевых функций при обмене данными между компьютерами. Модель подразделяет работающее оборудование и процессы, происходящие при объединении компьютеров в сеть, в соответствии с логикой их работы. Каждый из уровней выполняет свою специфическую задачу, тем самым, обеспечивая функционирование всей системы в целом.
Под открытыми системами в рассматриваемом контексте понимают локальные и глобальные сети, построенные на основе доступных для всех (открытых) правил и спецификаций. Стандарт описывает структуру самих открытых систем, требования к ним, их взаимодействие. Модель OSI (рис.1.) состоит из семи уровней, каждый из которых представляет определенный этап процесса сетевой коммуникации. На каждом уровне действует протокол - набор правил и соглашений, регламентирующий обмен информацией по сети. Модули, реализующие протоколы соседних уровней и находящиеся в одном узле, также взаимодействуют друг с другом в соответствии с четко определенными правилами и с помощью стандартизированных форматов сообщений. Эти правила принято называть интерфейсом. Интерфейс определяет сервисы, предоставляемые данным уровнем соседнему уровню. В сущности, протокол и интерфейс выражают одно и то же понятие, но традиционно в сетях за ними закреплены разные области действия: протоколы определяют правила взаимодействия модулей одного уровня в разных узлах, а интерфейсы – модулей соседних уровней в одном узле. Средства каждого уровня должны обрабатывать, во-первых, свой собственный протокол, а во-вторых, интерфейсы с соседними уровнями.
Компьютеры, участвующие в обмене, должны работать по одним и тем же протоколам, чтобы в результате передачи вся информация восстанавливалась в первоначальном виде. Сетевые протоколы управляют разными аспектами передачи информации: физической связью, доступом к различным ресурсам, разбиением передаваемого сообщения на пакеты, выбором маршрута для передачи данных, выявлением ошибок и др. Группы сходных протоколов, имеют имена, соответствующие уровню модели OSI, на котором работают: сетевой, транспортный и т.п.
Нормативы OSI описывают следующие моменты функционирования сети:
· взаимодействие сетевых устройств, в том числе устройств, использующих разные протоколы;
· принципы действия и способы физического соединения сетевых устройств;
· методы обеспечения правильности передачи данных;
· способы поддержания непрерывного потока данных в сетевых устройствах;
· способы представления данных в виде электрических сигналов при передаче по сетевой среде.
Многоуровневая структура используется для упрощения и упорядочения большого количества протоколов, создания сетевых систем из модулей программного обеспечения, выпущенных разными производителями. Цель нижестоящего уровня – предоставление услуг вышестоящему. Каждый уровень взаимодействует только с теми уровнями, которые находятся рядом с ним (выше и ниже него). Верхний уровень модели соответствует работающему в данный момент приложению, нижний – непосредственной передаче сигналов по каналу связи.
Потоки информации в модели организованы так, что каждый уровень предполагает, что он напрямую взаимодействует с одноименным уровнем другого узла. Как показано на рис.1., сетевой уровень компьютера 1 считает, что он взаимодействует с сетевым уровнем компьютера 2. Между одноименными уровнями компьютеров сети существует виртуальная (логическая) связь. Реальную же, физическую связь (кабель, радиоканал) абоненты одной сети имеют только на самом нижнем, физическом уровне. В передающем компьютере информация проходит все уровни, начиная с верхнего и заканчивая нижним. В принимающем компьютере полученная информация совершает обратный путь: от нижнего уровня к верхнему.
Иерархически организованный набор протоколов, достаточный для организации взаимодействия узлов в сети, называется стеком коммуникационных протоколов.
Коммуникационные протоколы могут быть реализованы как программно, так и аппаратно. Протоколы нижних уровней часто реализуются комбинацией программных и аппаратных средств, а протоколы верхних уровней – как правило, чисто программными средствами.
Согласно модели, средства взаимодействия делятся на семь уровней: прикладной, представительный, сеансовый, транспортный, сетевой, канальный и физический. Каждый уровень имеет дело с одним определенным аспектом взаимодействия сетевых устройств. Взаимодействие компонентов модели OSI можно проиллюстрировать на следующем примере. Пусть приложение обращается с запросом к прикладному уровню, например к файловой службе. На основании этого запроса программное обеспечение прикладного уровня формирует сообщение стандартного формата. Обычное сообщение состоит из заголовка и поля данных. Заголовок содержит служебную информацию, которую необходимо передать через сеть прикладному уровню машины-адресата, чтобы сообщить ему, какую работу надо выполнить. В рассматриваемом случае заголовок должен содержать служебную информацию о месте нахождения файла и о типе операции, которую необходимо над ним выполнить. Поле данных сообщения может быть пустым или содержать данные, которые необходимо записать в удаленный файл. Для того чтобы доставить эту информацию по назначению, необходимо пройти ряд этапов, выполняемых нижележащими уровнями.
После формирования сообщения прикладной уровень направляет его вниз по стеку представительному уровню. Протокол представительного уровня на основании информации, полученной из заголовка прикладного уровня, выполняет требуемые действия и добавляет к сообщению собственную служебную информацию – заголовок представительного уровня, в котором содержатся указания для протокола представительного уровня машины-адресата. Полученное в результате сообщение передается вниз сеансовому уровню, который в свою очередь добавляет свой заголовок, и т.д. Наконец, сообщение достигает нижнего, физического уровня, который собственно и передает его по линиям связи машине-адресату. К этому моменту к сообщению добавлены заголовки и концевики всех уровней.
Когда сообщение по сети поступает на компьютер-адресат, оно принимается ее физическим уровнем и последовательно перемещается вверх с уровня на уровень. Каждый уровень анализирует и обрабатывает заголовок со служебной информацией своего уровня, выполняя соответствующие данному уровню функции, а затем удаляет этот заголовок и передает сообщение вышележащему уровню.
Физический уровень описывает физические среды передачи данных (коаксиальный кабель, витая пара, оптоволоконный кабель), преобразует данные в передаваемый сигнал (биты), соответствующий среде. Этот уровень распознает физическую структуру сети, учитывает характеристики физических сред: полосу пропускания, помехозащищенность, волновое сопротивление и другие, определяет уровни напряжения или тока передаваемого сигнала, тип кодирования, скорость передачи сигналов. Кроме этого, здесь стандартизуются типы разъемов и назначение каждого контакта. Функции физического уровня реализуются во всех устройствах, подключенных к сети. Со стороны компьютера функции физического уровня выполняются сетевым адаптером.
Одной из задач канального уровня является проверка доступности среды передачи в том случае, если используются разделяемые линии связи. Другой задачей является реализация механизмов обнаружения и коррекции ошибок. Для этого биты группируются в наборы, называемые кадрами (frames), содержащие поля с адресной и управляющей информацией. Фрейм содержит признак начала кадра, адрес устройства или передающего узла, отправляющего кадр ( адрес источника), адрес устройства или принимающего узла, получающего кадр (адрес назначения), управляющую информацию для контроля коммуникационного процесса, данные, информацию для обнаружения ошибок (контрольные данные), трейлер (концевик) или признак конца кадра. Канальный уровень обеспечивает корректность передачи каждого кадра, помещая специальную последовательность битов в начало и конец каждого кадра. При этом путем обработки всех байтов кадра вычисляется контрольная сумма и добавляется к нему. Когда кадр приходит по сети, получатель снова вычисляет контрольную сумму полученных данных и сравнивает результат с контрольной суммой из кадра. Если они совпадают, кадр считается правильным и принимается. Если же контрольные суммы не совпадают, то фиксируется ошибка. Канальные уровни двух устройств связаны логически благодаря используемым протоколам. Протоколы канального уровня обеспечивают доставку кадра между любыми двумя узлами локальной сети той топологии, для которой они разработаны. Они используются компьютерами, коммутаторами и маршрутизаторами. В компьютерах функции канального уровня реализуются сетевыми адаптерами. Они реализуют различные протоколы локальных сетей, в зависимости от этого делятся на адаптеры Ethernet, Token Ring, FDDI и т.д.