Инкапсуляция UDP, мультиплексирование и порты

Протокол UDP, согласно стеку протоколов TCP/IP, должен взаимодействовать с протоколами прикладного уровня и протоколами межсетевого уровня. Протоколы прикладного уровня передают битовый (байтовый) поток протоколу UDP. Этот поток протокол UDP фрагментирует и вставляет в область данных своих дейтаграмм. Далее протокол UDP вычисляет контрольную сумму, добавляет свой заголовок и передаёт свои дейтаграммы нижележащему протоколу межсетевого уровня - протоколу IP. Протокол IP вставляет в область своих данных UDP дейтаграмму целиком, не изменяя, и добавляет свой IP заголовок, таким образом, получая целостный IP пакет. После чего, IP пакет передаётся протоколу нижележащего уровня сетевого интерфейса. В случае, использования на этом уровне протокола Ethernet, IP пакет вставляется в область данных Ethernet кадра, после чего протокол Ethernet вычисляет свой заголовок и окончание и дописывает их к области данных. В результате получается полный Ethernet кадр с вложенными IP пакетом и UDP дейтаграммой, содержащей битовый поток от конкретного приложения. Процесс вложения называется инкапсуляцией пользовательских данных и показан в таблице 3.

Таблица 3 - Инкапсуляция UDP дейтаграмм

    Заголовок UDP Область данных UDP
  Заголовок IP Область данных IP
Заголовок Ethernet   Область данных кадра   Окончание
         


Инкапсуляция и деинкапсуляция

Обратный процесс называется декапсуляцией и происходит он, по мере надобности, в промежуточных узлах и обязательно на узле назначения. Его необходимость обусловлена различными зонами ответственности конкретных протоколов, а, следовательно, и заголовков этих протоколов.

Зона ответственности протокола Ethernet - локальная сеть. Если узел находится за пределами локальной сети, кадр должен быть декапсюлирован до IP пакета, чтобы осуществить доставку по IP адресу, указанном в IP заголовке. Двух заголовков Ethernet и IP хватит, чтобы доставить UDP пакет до узла назначения, но не хватит, чтобы передать конкретному приложению переданный битовый поток. Поэтому необходимо на узле получателя декапсулировать пакет, сначала до UDP дейтаграммы, заголовок которой поможет мультиплексировать битовый поток между приложениями, и затем отбросить и UDP заголовок, передав данные в чистом виде приложению.

Мультиплексирование данных протоколом UDP между приложения осуществляется с помощью механизма портов. Порт - это своеобразный адрес конкретного приложения на определённом хосте (Порт + IP адрес = сокет. Сокет - уникальный идентификатор приложения конкретного узла в сети). Такой же механизм адресации используется и для протокола TCP, причём порты TCP и UDP могут иметь одно и то же значение. Следовательно, можно обобщить понятие порт до адреса транспортного уровня.

Порт в TCP или UDP – это логический канал с определенным номером (от 0 до 65536), обеспечивающий текущее взаимодействие между отправителем и получателем. Порты позволяют компьютеру с одним IP-адресом параллельно обмениваться данными с множеством других компьютеров. Некоторые номера портов (от 0 до 1024) привязаны к определенным службам и приложениям.

Пакеты, поступающие на транспортный уровень, организуются операционной системой в виде множества очередей к точкам входа различных прикладных процессов. В терминологии TCP/IP такие системные очереди называются портами. Прикладной процесс, предоставляющий некоторые услуги другим прикладным процессам (сервер), ожидает поступления сообщений в порт, специально выделенный для этих услуг. Сообщения отправляются процессами-клиентами и должны содержать запросы на предоставление услуг. Порты нумеруются, начиная с нуля. Например, сервер SNMP всегда ожидает поступлений сообщений в порт 161. В каждом узле может быть только один сервер SNMP, так как существует только один UDP-порт 161. Данный номер порта является общеизвестным, то есть фиксированным номером, официально выделенным для услуг SNMP. Таким образом, адресом назначения, который используется на транспортном уровне, является идентификатор (номер) порта прикладного сервиса. Номер порта, задаваемый транспортным уровнем, в совокупности с номером сети и номером компьютера, задаваемыми сетевым уровнем, однозначно определяют прикладной процесс в сети.

Назначение номеров портов прикладным процессам осуществляется либо централизовано, если эти процессы представляют собой популярные общедоступные сервисы, либо локально для тех сервисов, которые еще не стали столь распространенными, чтобы за ними закреплять стандартные(зарезервированные) номера.

Централизованное присвоение сервисам номеров портов выполняется организацией Internet Assigned Numbers Authority (IANA).

В случае, если приложение не имеет назначенного IANA порта, оно назначает себе порт самостоятельно из диапазона 49152- 65535, начиная с большего значения. Далее, чтобы узнать какой порт приложение назначило себе самостоятельно, любой узел может отправить запрос узлу.

Таблица 5. Используемые протоколами UDP и TCP порты

Десятичный номер порта Обозначение порта Описание
  - Зарезервировано
  FTP-data FTP (данные)
  FTP Протокол пересылки файлов (управление)
  telnet Подключение терминала
  SMTP Протокол передачи почтовых сообщений
  login Протокол входа в ЭВМ
  Domain Сервер имен доменов (dns)
  TFTP Упрощенная пересылка файлов
  WWW-HTTP World Wide Web HTTP
  Hostname Сервер имен ЭВМ для сетевого информационного центра
  POP3 Почтовый протокол POP3
  NTP Сетевой протокол синхронизации
  BGP Динамический протокол внешней маршрутизации
  SIP Протокол инициации сеансов

Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: