ПО сложных компьютерных систем является многослойным, в которых каждый новый слой обладает своими свойствами и функциями. В случае распределенной обработки данных, уровни программного обеспечения концентрируются вокруг линии связи с целью повышения эффективности их использования, спрятать сложности сетевой обработки от пользователя сети и разнести функции по уровням, что упрощает их разработку.
Для обеспечения объединения в сети различных компьютеров и оборудования, ISO в 77 году опубликовала описание эталонной модели открытых систем.
OSI (Open System Interconnection) – "семиуровневая модель". Модель OSI создает основу для разработки сетевого оборудования и программного обеспечения. Уровни модели OSI должны присутствовать в любой сети и взаимодействовать на строго иерархической основе. Каждый уровень обслуживает уровень, расположенный выше и пользуется услугами нижнего уровня.
Уровни OSI
Эталонная модель определяет протоколы. Протокол определяет набор правил и соглашений, необходимых для создания соединения между компьютерами. С помощью протоколов происходит межмашинный обмен сообщениями, как управляющими, так и содержащими данные пользователя.
Протоколы специфицируют форматы сообщений:
Адрес получателя | Адрес отправителя | Данные | Контрольная сумма
Когда определено полное множество протоколов (стек протоколов), любые два устройства могут взаимодействовать, несмотря на различия в конструкциях, производительности, функциональном назначении, внутренних интерфейсах.
0 уровень – Физическая среда. Для реализации любого взаимодействия нужно физическое соединение между компьютерами.
Возможные линии связи: витая пара, коаксиальный кабель, оптоволокно, радиоизлучение, инфракрасное излучение.
1 уровень – Физическое управление. Этот уровень определяет механические (кабели и разъемы) и электрические соединения между компьютерами. Здесь описывается:
- Способ передачи информации (основная полоса частот или модуляция несущей);
- Скорость передачи и напряжение сигнала;
- Топология сети (шина, кольцо, звезда и т.д.).
2 уровень – Канальный уровень. Формирует из данных, передаваемых уровнем "1" (биты), формирует специальные кадры и их последовательности.
Кадр выглядит так:
Адрес получателя | Адрес отправителя | Данные | Контрольные суммы
На уровне "2" так же осуществляется управление доступом к передающей среде, если несколько машин используют один и тот же кабель связи. Возможные решения:
- Последовательный опрос;
- Передача маркера;
- Соперничество.
Протокол | Скорость передачи | Max длина пакета (байт) | Цена подключения | Доступ |
ARC net | 2,5 Мбит/с | 512 | 10 $ | Toking passing |
Ethernet | 10 Мбит/с | 1,5 тыс. | 15 $ | CSMA/CD |
Token Ring | 4-15 Мбит/с | 4 тыс. | 50 $ | Toking passing |
3 уровень – Сетевой уровень. Вводится для обеспечения соединения между несколькими сетями. Для работы в одной сети достаточно уровней "1" и "2". На сетевом уровне формируется виртуальная цепь (логическое соединение), связывающее компьютеры в различных сетях. Сетевой уровень формирует цепь, и выше лежащие уровни могут действовать так, как будто она существует в действительности. На сетевом уровне пользовательские сообщения разбиваются на пакеты определенной длины. На приемном конце из передаваемых пакетов опять собираются сообщения.
4 уровень – Транспортный уровень. Обеспечивает взаимодействие между процессами на удаленных машинах и сквозную транспортировку данных между двумя компьютерами, находящихся в сеансе общения. Здесь осуществляется нумерация пакетов, контроль пропусков и дублирований. В некоторых случаях естественная последовательность в процессе передачи может нарушиться, поэтому правилами транспортного уровня эта последовательность восстанавливается.
Таким образом, первые четыре уровня реализуют функции передачи данных (транспортные услуги). С помощью этих уровней обеспечивается передача битов сообщения от одного пользователя к другому, но не выполняет никаких манипуляций с этими битами. Остальные уровни связаны с обработкой данных.
5 уровень - Сеансовый уровень. На нем устанавливается и поддерживается диалог между процессами пользователей на различных WS. Здесь стандартизируются процессы установления сеанса и его завершения. Если возникает нарушение сеанса связи, уровень "5" возобновляет его без потери данных, а если это невозможно - прекращает его. Существуют разновидности диалога:
- Обмен по очереди;
- Диалог с прерыванием друг друга.
6 уровень – Уровень представления данных. Осуществляет интерпретацию данных, передаваемых во время диалога. Осуществляется перекодировка символов, шифрование, сжатие, редактирование данных.
7 уровень – Прикладной уровень. Определяет работу прикладных программ. Операторские функции над сетью, передача почты (mail), работа с базами данных, FTP, HTTP, TELNET.
В реальных системах, четко определены и выдерживаются, как правило, первые четыре уровня, потому что они основные. Уровни "5"-"7" могут значительно отличатся у разных производителей.
Попытка нарушить изолированность слоев или упустить некоторые из них, с целью повышения производительности, может привести к невозможности дальнейшего развития системы.
Недостатком расслоения является увеличение накладных расходов: увеличивается как длина передаваемого сообщения, так и растет число команд, необходимых для управления передачей.