Модель сетевого взаимодействия OSI

Модель сетевого взаимодействия OSI

В основу работы стека протоколов положена модель OSI (Open System Interconnection — взаимодействие открытых систем). Данная модель предусматривает семь уровней сетевого взаимодействия, на каждом из которых решаются конкретные задачи. Источником данных, предназначенных для передачи, является программа, находящаяся на верхнем уровне модели OSI, который называется прикладным уровнем. Программа передает данные нижележащему представительскому уровню, и далее информация перемещается вниз по стеку. На каждом уровне выполняется определенная обработка данных. Нижним уровнем OSI является физический уровень, на котором решаются вопросы передачи электрических сигналов, использования кабелей, концентраторов, коммутаторов и т.д. Именно на физическом уровне осуществляется реальная передача данных от передающего компьютера к принимающему. (Если оба компьютера принадлежат одному сегменту сети, данные передаются достаточно просто. В противном случае передача осуществляется поэтапно, и на каждом этапе выполняется дополнительная обработка информации.) На принимающем компьютере данные перемещаются вверх по стеку протоколов и в конечном итоге достигают программы на прикладном уровне. Получив информацию, программа может передать ответ. Данные, составляющие ответ, также движутся вниз по стеку, передаются через сетевые соединения, а затем на компьютере, которому они предназначены, перемещаются вверх по стеку протоколов. На рис. 3.1. проиллюстрирован описанный выше процесс.

Рис. 3.1. Компоненты стека протоколов выполняют обработку данных для передачи их на другой компьютер

На заметку

Несмотря на то что OSI является универсальной моделью, описывающей сетевое взаимодействие, в реальных стеках протоколов редко поддерживаются все семь уровней. Наиболее часто используемые стеки — TCP/IP, AppleTalk и NetBEUI — могут быть описаны в терминах OSI. При этом стек TCP/IP насчитывает лишь четыре уровня, однако общие принципы обработки передаваемых данных остаются неизменными.

Каждый уровень модели OSI взаимодействует только с двумя уровнями; один из них расположен непосредственно над ним, а другой — под ним. (Исключениями являются прикладной и физический уровни. Прикладная программа взаимодействует непосредственно с пользователем, а на физическом уровне решаются вопросы соединения двух компьютеров.) Для программных средств, реализующих различные уровни стека протоколов на конкретном компьютере, должен быть четко определен интерфейс межуровневого взаимодействия. Компоненты, соответствующие определенным уровням, должны допускать замену. Так, например, на прикладном уровне могут работать Web-броузеры и Web-серверы. Если вы замените один броузер или сервер другим, работа всего стека протоколов не нарушится. (В некоторых броузерах и серверах могут отсутствовать определенные возможности, например, броузер может не поддерживать средства SSL, однако на самом деле такие вопросы скорее относятся к интеграции сетевых средств.) Аналогично вы можете на физическом уровне заменять сетевые кабели, концентраторы и даже сетевые карты с драйверами. При этом средства поддержки более высоких уровней не нуждаются в модификации.

Для двух компьютеров, взаимодействующих по сети, действия на некотором уровне одного компьютера строго согласованы с действиями на этом же уровне другого компьютера. В некотором смысле можно утверждать, что результаты, получившиеся при обработке данных на определенном уровне стека протоколов передающего компьютера, отменяются на этом же уровне принимающего компьютера. Главная цель работы всего стека протоколов — обеспечение взаимодействия программ прикладного уровня, поэтому каждый уровень на принимающем узле сети должен получать от нижележащего уровня в точности те же данные, которые предоставил соответствующий уровень на передающем узле. Взаимодействие компьютеров, использующих стеки протоколов, можно представить себе так, как будто некоторый уровень обменивается данными не с нижележащим и вышестоящим уровнями, а непосредственно с соответствующим уровнем другого компьютера. Очевидно, что стеки протоколов на разных компьютерах должны отвечать одному стандарту, даже если эти компьютеры работают под управлением различных операционных систем. Например, на разных уровнях стека TCP/IP, реализованного для Linux, Windows, и BeOS, выполняются одинаковые действия, несмотря на то, что коды соответствующих программных средств различаются.