Что такое уровни взаимодействия
При описании практически любого взаимодействия можно выделять различные уровни. Например, представьте себе, что двум людям, проживающим в разных населенных пунктах, необходимо обмениваться какой-либо информацией, и они используют для этого традиционный способ посылки писем. Уже во взаимодействии такого рода можно выделить несколько уровней:
-
уровень пользователей, обменивающихся письмами, и использующих для этой цели почтовую службу;
-
уровень почтовой службы, осуществляющей пересылку корреспонденции между почтовыми отделениями населенных пунктов и использующей для работы услуги транспортной сети;
-
уровень транспортной сети, обеспечивающий доставку грузов по путям сообщения между населенными пунктами;
-
уровень путей сообщения, обеспечивающий возможность физической доставки грузов между населенными пунктами.
В случае, если не существует прямых путей сообщения между населенными пунктами, к этой схеме между уровнями почтовой службы и транспортной сети добавляется еще один уровень – уровень отделений по перевозке почты, обеспечивающих правильную перегрузку почтовых отправлений на транспортных узлах, а также выбор альтернативных путей пересылки в случае выхода из строя транспортных линий.
Пример уровневого взаимодействия
Разделение процесса взаимодействия на уровни позволяет функционально изолировать различные средства, участвующие в этом процессе по принципу - "каждый занимается своим делом". Это позволяет обеспечить достаточную гибкость при расширении функциональности этих средств. Так, например, выделение уровня транспортной сети, позволяет при необходимости обеспечить транспортировку между населенными пунктами не только почтовых грузов, но и пассажиров, не требуя для этого перестройки путей сообщения. Выделение почтовой службы обеспечивает возможность пересылки не только писем, но и посылок, переводов и т.п., используя стандартные средства транспортной сети и опосредованно – существующие пути сообщения.
Взаимодействие в компьютерных сетях также можно описывать с помощью уровней. В настоящее время для этих целей широко используется так называемая модель взаимодействия открытых систем (Open Systems Interconnection, OSI).
Модель сетевого взаимодействия
В 1984 году Международной Организацией по Стандартизации (International Standard Organization, ISO) была разработана модель взаимодействия открытых систем (Open Systems Interconnection, OSI). Модель представляет собой международный стандарт для проектирования сетевых коммуникаций и предполагает уровневый подход к построению сетей. Каждый уровень модели обслуживает различные этапы процесса взаимодействия. Посредством деления на уровни сетевая модель OSI упрощает совместную работу оборудования и программного обеспечения. Модель OSI разделяет сетевые функции на семь уровней: прикладной, уровень представления, сессионный, транспортный, сетевой, канальный и физический.
Уровни модели OSI
Ниже дается краткая характеристика уровней модели:
-
Физический уровень (Physical layer) определяет способ физического соединения компьютеров в сети. Функциями средств, относящихся к данному уровню, являются побитовое преобразование цифровых данных в сигналы, передаваемые по физической среде (например, по кабелю), а также собственно передача сигналов.
-
Канальный уровень(Data Link layer) отвечает за организацию передачи данных между абонентами через физический уровень, поэтому на данном уровне предусмотрены средства адресации, позволяющие однозначно идентифицировать отправителя и получателя во всем множестве абонентов, подключенных к обще линии связи. В функции данного уровня также входит упорядочивание передачи с целью параллельного использования одной линии связи несколькими парами абонентов. Кроме того, средства канального уровня обеспечивают проверку ошибок, которые могут возникать при передаче данных физическим уровнем.
-
Сетевой уровень(Network layer) обеспечивает доставку данных между компьютерами сети, представляющей собой объединение различных физических сетей. Данный уровень предполагает наличие средств логической адресации, позволяющих однозначно идентифицировать компьютер в объединенной сети. Одной из главных функций, выполняемых средствами данного уровня, является целенаправленная передача данных конкретному получателю.
-
Транспортный уровень(Transport layer) реализует передачу данных между двумя программами, функционирующими на разных компьютерах, обеспечивая при этом отсутствие потерь и дублирования информации, которые могут возникать в результате ошибок передачи нижних уровней. В случае, если данные, передаваемые через транспортный уровень, подвергаются фрагментации, то средства данного уровня гарантируют сборку фрагментов в правильном порядке.
-
Сессионный (или сеансовый) уровень (Session layer) позволяет двум программам поддерживать продолжительное взаимодействие по сети, называемое сессией (session) или сеансом. Этот уровень управляет установлением сеанса, обменом информацией и завершением сеанса. Он также отвечает за идентификацию, позволяя тем самым только определенным абонентам принимать участие в сеансе, и обеспечивает работу служб безопасности с целью упорядочивания доступа к информации сессии.
-
Уровень представления(Presentation layer) осуществляет промежуточное преобразование данных исходящего сообщения в общий формат, который предусмотрен средствами нижних уровней, а также обратное преобразование входящих данных из общего формата в формат, понятный получающей программе.
-
Прикладной уровень (Application layer) предоставляет высокоуровневые функции сетевого взаимодействия, такие, как передача файлов, отправка сообщений по электронной почте и т.п.
Основные принципы уровневого взаимодействия
При уровневой организации процесса взаимодействия должны соблюдаться следующие требования:
-
компоненты одного уровня одной системы могут взаимодействовать с компонентами только того же уровня другой системы;
-
в рамках одной системы компоненты какого-либо уровня могут взаимодействовать только с компонентами смежных (вышележащего и нижележащего) уровней.
Порядок уровневого взаимодействия
Набор правил, определяющих порядок взаимодействия средств, относящихся к одному и тому же уровню и функционирующих в разных системах, называется протоколом (protocol). Правила взаимодействия между собой средств, относящихся к смежным уровням и функционирующих в одной системе, называются интерфейсом (interface).
Практическая реализация уровневого взаимодействия
На практике протоколы и интерфейсы регламентируют технические требования, предъявляемые к программным и аппаратным средствам. Программные (аппаратные) модули, предназначенные для обеспечения практического взаимодействия, определяемого тем или иным протоколом (или интерфейсом), обычно называют реализацией протокола (или интерфейса).
Хотя различные компоненты, относящиеся к различным уровням сетевой модели формально должны быть функционально независимыми друг от друга, при практической разработке протоколов такая независимость не всегда выдерживается. Это объясняется тем, что попытка добиться точного соответствия эталонной модели может привести к неэффективности работы программно-аппаратного обеспечения, реализующего протокол. В настоящее время наблюдается два типа отклонений, возникающих при реализации уровневого взаимодействия:
-
функции некоторых уровней могут объединяться одним протоколом и наоборот, – функции одного уровня могут делиться между различными протоколами;
-
функционирование протокола какого-либо уровня подразумевают использование только определенных протоколов нижележащего уровня.
Поэтому разработка практических методов сетевого взаимодействия, как правило, подразумевает разработку не отдельных протоколов, а целых наборов протоколов. Такие наборы обычно включают в себя протоколы, относящиеся к нескольким смежным уровням эталонной модели OSI, и называются стеками (или семействами, наборами) протоколов (protocol stack, protocol suite). Наиболее известным стеком протоколов, обеспечивающим взаимодействие в сети Интернет, является стек протоколов TCP/IP
Поскольку при реализации протоколов допускаются отклонения от эталонной модели, стеки протоколов могут предполагать собственную схему деления на уровни. В частности, стек протоколов TCP/IP разделяет весь процесс сетевого взаимодействия на четыре уровня. На предложенном ниже рисунке показано соответствие уровней модели OSI и уровней стека TCP/IP.
Уровни модели OSI |
Уровни стека TCP/IP |
прикладной представления сессионный |
уровень приложения |
транспортный |
транспортный уровень |
сетевой |
межсетевой уровень |
канальный физический |
уровень сетевого интерфейса |
Соответствие уровней модели OSI и уровней стека TCP/IP
Резюме:
-
Описание процесса сетевого взаимодействия предполагает выделение уровней;
-
в настоящее время уровневый подход к описанию и проектированию сетевого взаимодействия систем описывается с помощью модели ISO OSI;
-
модель OSI предполагает выделение семи уровней: прикладного, уровня представления, сессионного, транспортного, сетевого, канального и физического;
-
взаимодействие компонентов различных уровней регламентируются специальными наборами правил – протоколами и интерфейсами;
-
на практике четкое следование принципу функциональной изолированности компонентов различных уровней модели оказывается не всегда удобным и эффективным, поэтому разрабатываются стеки взаимозависимых протоколов