Модель взаимодействия открытых систем
Для описания общей модели взаимодействие открытых систем используется эталонная модель OSI (Open System Interconnection). Модель OSI состоит из 7 уровней (от низших к высшим):
1) физический;
2) канальный;
3) сетевой;
4) транспортный;
5) сеансовый;
6) представительский;
7) прикладной.
Каждый уровень использует для передачи низшие уровни. Взаимодействие между уровнями одного типа осуществляется по протоколам, а между низшими и высшими – с помощью интерфейсов.
Перед отправкой по сети данные разбиваются на пакеты – группы байт фиксированной длины. Пакет последовательно проходит все уровни от прикладного до физического. При этом на каждом уровне, кроме прикладного и представительского, к пакету добавляется служебная информация, называемая заголовком. Заголовок содержит информацию для адресации сообщений и для безошибочной передачи данных по сети.
Уровни модели взаимодействия открытых систем
На принимающей стороне пакет проходит все уровни в обратном порядке. Каждый уровень анализирует пакет, отделяет заголовок своего уровня и передает пакет на следующий уровень. На прикладном уровне данные примут свой первоначальный вид.
Рассмотрим задачи каждого из уровней модели OSI.
1-й уровень – физический. Самый низший уровень модели OSI. Основной задачей физического уровня является управление аппаратурой передачи данных и подключенным к ней каналом связи. На этом уровне формируются сигналы, которые передают данные в виде потока бит по передающей среде.
2-й уровень – канальный. На этом уровне физический канал преобразовывается в надежную линию связи, свободную от необнаруженных ошибок. Для этого формируется логический канал между двумя узлами, соединенных физическим каналом. Данные передаются по канальному уровню в виде кадров, которые включают, помимо данных, проверочную информацию. Проверочная информация позволяет установить, был ли передан кадр без искажений (ошибок) и частично восстановить информацию. Если кадр не был восстановлен, то происходит его повторная передача.
3-й уровень – сетевой. Отвечает за адресацию сообщений и перевод логических адресов в физические. Этот уровень разрешает проблемы, связанные с разными способами адресации и разными протоколами при переходе пакетов из одной сети в другую, позволяя объединять разнородные сети.
4-й уровень – транспортный. На этом уровне данные разбиваются на пакеты. При этом гарантируется, что эти пакеты прибудут по назначению в правильном порядке. Для этого осуществляется поиск оптимального маршрута передачи пакетов с точки зрения загруженности сегментов сети и времени передачи данных между узлами. Уровень управляет созданием и удалением сетевых соединений и управляет потоком сообщений.
5-й уровень – сеансовый. Позволяет двум процессам (например, приложениям) разных узлов устанавливать, использовать и завершать соединение, называемое сеансом. Этот уровень управляет передачей между двумя узлами и определяет, какая из сторон, когда и как долго должна осуществлять передачу.
6-й уровень – представительский. На этом уровне определяется формат, используемый для обмена данными между узлами. Уровень отвечает за преобразование, кодирование и сжатие данных.
7-й уровень – прикладной. Предоставляет доступ прикладным процессам к сетевым службам. Этот уровень управляет общим доступом к сети.
Сетевые протоколы
Протоколы – это соглашение о формате и правилах передачи данных по сети. Протоколы обладают следующими свойствами:
- протоколы работают на разных уровнях модели OSI, поэтому функции протокола определяются уровнем, на котором он работает;
- несколько протоколов могут работать совместно, в этом случае они образуют стек или набор протоколов разных уровней модель OSI.
Передача данных по сети разбита на несколько шагов, каждому из которых соответствует протокол. Узел-отправитель выполняет следующие шаги:
- разбивает данные на пакеты;
- добавляет к пакетам служебную информацию: адрес получателя и информацию для проверки правильности и восстановления в случае возникновения ошибок при передачи;
- передает пакеты в сеть через сетевой адаптер.
Узел-получатель выполняет шаги в обратной последовательности:
- принимает пакеты из сети через сетевой адаптер;
- проверяет правильность передачи данных и удаляет служебную информацию из пакетов;
- объединяет пакеты в исходный блок данных.