Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

лекции 2005 / Лекции по ИТС для МП-IV / P5 / Дополнительная информация об интерфейсах стека протоколов

.doc
Скачиваний:
15
Добавлен:
16.04.2013
Размер:
33.79 Кб
Скачать

Дополнительная информация об интерфейсах стека протоколов.

Инкапсуляция - способ упаковки данных в формате одного протокола в формат другого протокола. Например, упаковка IP-пакета в кадр Ethernet или TCP-сегмента в IP-пакет.

Согласно словарю иностранных слов термин "инкапсуляция" означает "образование капсулы вокруг чужих для организма веществ (инородных тел, паразитов и т.д.)".

В рамках межсетевого обмена понятие инкапсуляции имеет несколько более расширенный смысл. В случае инкапсуляции IP в Ethernet речь идет действительно о помещении пакета IP в качестве данных Ethernet-фрейма, или, в случае инкапсуляции TCP в IP, помещение TCP-сегмента в качестве данных в IP-пакет. Однако, при передаче данных по коммутируемым каналам происходит не вкладывание, а дальнейшая "нарезка" пакетов теперь уже на пакеты SLIP или фреймы PPP.

Блок данных

Уровень приложений

Заголовок TCP

Блок данных TCP

Транспортный уровень

Заголовок IP

Заголовок TCP

Блок данных TCP

Уровень интернет

Рис 1. Инкапсуляция протоколов верхнего уровня в протоколы TCP/IP

Если на канальном уровне используется протокол Ethernet, то он инкапсулирует IP-пакет сетевого уровня (уровня интернет) в свой блок данных.

В отличие от Ethernet, протокол SLIP не "заворачивает" IP-пакет в свою обертку, а "нарезает" его на "кусочки". При этом делает это довольно примитивно. SLIP-пакет начинается символом ESC (3338 или 21910) и кончается символом END (3008 или 19210). Если внутри пакета встречаются эти символы, то они заменяются двухбайтовыми последовательностями ESC-END (3338 3348) и ESC-ESC (3338 3358). Стандарт не определяет размер SLIP-пакета, поэтому любой SLIP-интерфейс имеет специальное поле, в котором пользователь должен указать эту длину. Однако в стандарте есть указание на то, что BSD SLIP драйвер поддерживает пакеты длиной 1006 байт, поэтому "современные" реализации SLIP-программ должны поддерживать эту длину пакетов. SLIP-модуль не анализирует поток данных и не выделяет какую-либо информацию в этом потоке. Он просто "нарезает" ее на "кусочки", каждый из которых начинается символом ESC, а кончается символом END.

В заголовке пакета TCP (как и в UDP) имеются ссылки на порты. Первые 256 портов закреплены за WKS, порты от 256 до 1024 закреплены за Unix-сервисами, а остальные можно использовать по своему усмотрению.

WKS (Well Known Service - хорошо известный сервис). В базе данных DNS-сервера, запись этого типа содержит информацию о том, какие сервисы из «джентльменского набора» Internet предоставляет компьютер с данным IP-адресом.

Информационный сервис - это прикладная программа, которая осуществляет обслуживание на определенном порте TCP или UDP. Собственно WKS - это и есть совокупность этих сервисов Internet. К сервисам относятся: доступ в режиме удаленного терминала, доступ к файловым архивам FTP, доступ к серверам WWW и т. п.

Кроме статически назначенных WKS существуют еще динамически назначаемые сервисы. Динамически назначаемые номера портов TCP и UDP используются для того, чтобы можно было организовать обслуживание множества запросов по сети к одному WKS. В том же примере стрелочки только в одном направлении указаны не случайно. К серверу протокола HTTP могут обращаться сразу несколько клиентов, следовательно, должен быть механизм, который бы позволил распараллелить их обслуживание. Таким механизмом служит динамическое назначение портов (рисунок 2). Происходит это назначение в момент установки соединения. Клиент, запрашивая обслуживание, обращается к сервису по номеру порта WKS, но при этом сообщает, что принимать ответы он будет по номеру порта, отличному от WKS. Таким образом, сервер может обслуживать запросы к одному и тому же порту WKS, используя разные порты при ответе. Образующаяся при этом пара (IP-адрес, номер порта) называется сокетом (буквально "розетка"). Таким образом, можно сказать, что http-сервер для обслуживания использует сокет, например, 144.206.130.137:80, а клиент, который к нему обращается – сокет 144.206.130.138:8080. Графически определение сокета можно продемонстрировать на примере протокола TCP.

D=80, S=8080

D=8080, S=80

Получатель

Источник

Рис. 2. Динамическое назначение портов. Образование сокетов. В заголовке TCP-пакета указывается: D – Destination port, S – Service port.