Взаимодействие уровней модели OSI (на примере стека TCP/IP)
Прикладной уровень порождает поток данных (байт), который необходимо передать через сеть на какой либо узел. Каждый такой поток необходимо направить конкретному процессу-получателю. Каждый компьютер может выполнять несколько процессов, более того, прикладной процесс тоже может иметь несколько точек входа, выступающих в качестве адреса назначения. Процесс, к которому направляется поток (или его точка входа) описывается идентификатором (номера) порта прикладной службы. Номер порта в совокупности с номером сети и номером конечного узла однозначно определяют прикладной процесс в сети. Этот набор идентифицирующих параметров имеет название сокет (socket).
Представительский уровень может при необходимости преобразовать наш поток.
Далее поток поступает на вход транспортного уровня, который «нарезает» его на некоторые непрерывные части (порции) данных для передачи на сетевой уровень. К этой порции протокол сетевого уровня добавляет заголовок и концевик. В результате получаем часть потока, которая обрабатывается транспортным уровнем и называется сегментом (segment). Не все сегменты, посланные через соединение, будут одного и того же размера, однако оба участника соединения должны договориться о максимальном размере сегмента, который они будут использовать (функция договаривания относится к сеансовому уровню). При передаче сегментов осуществляется обязательное подтверждение правильности приема. На стороне адресата сетевой уровень на основании информации содержащейся в заголовках сегментов соединит полученные сегменты и снова получит поток данных.
Каждый сегмент будет иметь свой собственный заголовок и концевик.
Сегменты поступают на сетевой уровень, где упаковываются внутрь пакета, который является порцией данных на сетевом уровне. Понятно что у каждого пакета должен быть свой собственный заголовок и концевик.
Пакеты передаются вниз канальному уровню, который вкладывает их в свои кадры, добавляя свой собственный заголовок.
Наконец, сообщение достигает нижнего, физического уровня, который собственно и передает его по линиям связи узлу-адресату. К этому моменту сообщение «обрастает» заголовками всех уровней (рис. …).
Когда сообщение по сети поступает на узел-адресат, оно принимается его физическим уровнем и последовательно перемещается вверх с уровня на уровень. Каждый уровень анализирует и обрабатывает заголовок своего уровня, выполняя соответствующие данному уровню функции, а затем удаляет этот заголовок и передает сообщение вышележащему уровню. Все будет закончено, когда поток данных будет передан процессу, к которому он направляется.
Процесс последовательной упаковки данных для передачи называется также инкапсуляцией пакетов. Обратный процесс последовательной распаковки данных приемником называется декапсуляцией пакетов.
ПРИМЕЧАНИЕ Термины «пакет» (packet) и «кадр» (frame) в литературе нередко путаются. Иногда под этими терминами имеется в виду одно и то же. Но иногда подразумевается, что кадр и пакет различаются. В дальнейшем мы будем употреблять эти термины в соответствии с терминологией устоявшейся в стандартах TCP/IP. Сегмент – на транспортном уровне, пакет – на сетевом, кадр – на канальном.
Дата добавления: 2016-06-18; просмотров: 2509;