ТОР 5 статей: Методические подходы к анализу финансового состояния предприятия Проблема периодизации русской литературы ХХ века. Краткая характеристика второй половины ХХ века Характеристика шлифовальных кругов и ее маркировка Служебные части речи. Предлог. Союз. Частицы КАТЕГОРИИ:
|
Протокол транспортного уровня UDP (определение, порты, инкапсуляция, формат, мультиплексирование и демультиплексирование).UDP (англ. User Datagram Protocol — протокол пользовательских дейтаграмм) — это транспортный протокол для передачи данных в сетях IP без установления соединения. Он является одним из самых простых протоколов транспортного уровня модели OSI. Его IP-идентификатор — 0x11. UDP не подтверждает доставку данных, не заботится о корректном порядке доставки и не делает повторов. Зато отсутствие соединения, дополнительного трафика и возможность широковещательных рассылок делают его удобным для применений, где малы потери, в массовых рассылках локальной подсети, в медиапротоколах и т.п.
Инкапсуляция:
Состав UDP-датаграммы. Первые 64 бита (8 байт) датаграммы представляют собой UDP-заголовок, остальные биты — данные сообщения:
UDP-заголовок не содержит информации об адресе отправителя и получателя, поэтому даже при совпадении порта получателя нельзя с точностью сказать, что сообщение пришло в нужное место. Для проверки того, что UDP-сообщение достигло пункта своего назначения, используется дополнительный псевдозаголовок:
Поле «протокол» содержит в себе значение 17 (00010001 в двоичном виде, 0x11 — в шестнадцатеричном) — идентификатор UDP-протокола. Поле «длина UDP-датаграммы» содержит в себе длину UDP-сообщения (UDP-заголовок + данные; длина псевдозаголовка не учитывается) в октетах, то есть совпадает с одноименным полем в UDP-заголовке. Псевдозаголовок не включается в UDP-сообщение. Он используется для расчета контрольной суммы перед отправлением сообщения и при его получении (получатель составляет свой псевдозаголовок, используя адрес хоста, с которого пришло сообщение, и собственный адрес, а затем считает контрольную сумму).
В протоколах TCP и UDP (семейства TCP/IP) порт — идентифицируемый номером системный ресурс, выделяемый приложению, выполняемому на некотором сетевом хосте, для связи с приложениями, выполняемыми на других сетевых хостах (в том числе c другими приложениями на этом же хосте). По сути, порт — адресуемый участок оперативной памяти устройства, предназначенный для сетевого взаимодействия. Для каждого из протоколов TCP и UDP стандарт определяет возможность одновременного выделения на хосте до 65536 уникальных портов, идентифицирующихся номерами от 0 до 65535. При передаче по сети номер порта в заголовке пакета используется (вместе с IP-адресом хоста) для адресации конкретного приложения (и конкретного, принадлежащего ему, сетевого соединения). Порты TCP не пересекаются с портами UDP. То есть, порт 1234 протокола TCP не будет мешать обмену по UDP через порт 1234.
Теоретически мультиплексирование и демультиплексирование дейтаграмм между программами протокола UDP и прикладными программами должно выполняться исключительно на основе номеров портов. На практике же, прежде чем прикладная программа сможет посылать UDP-дейтаграммы, она должна обратиться к операционной системе и получить стандартный номер порта для данного протокола и ассоциированный с ним номер порта1. После назначения номера порта прикладная программа может отправлять через этот порт пользовательские дейтаграммы. При этом номер выделенного порта будет автоматически занесен в поле номера порта отправителя заголовка UDP-дейтаграммы.
Пример демультиплексирования. При выборе соответствующего номера порта для поступивших дейтаграмм в программе протокола UDP используется поле номера порта получателя заголовка UDP-дейтаграммы. Проще всего представить UDP-порт в виде очереди. В большинстве реализаций протокола при обращении прикладной программы к операционной системе за выделением порта последняя создает внутреннюю очередь, в которую помещаются прибывающие в порт сообщения. Часто прикладной программе разрешается указывать операционной системе размер очереди сообщений или изменять его в процессе работы. При поступлении дейтаграммы в модуль протокола UDP проверяется номер порта получателя. Программа проверяет, был ли выделен указанный в заголовке UDP-дейтаграммы номер порта одной из запущенных прикладных программ. Если указанный номер порта не найден, программа протокола UDP посылает отправителю дейтаграммы ICMP-сообщение о недоступности указанного порта (port unreachable), после чего аннулирует дейтаграмму. Если номер порта найден, прибывшая дейтаграмма помещается в ассоциированную с ним очередь, откуда ее сможет прочитать прикладная программа. В случае переполнения очереди сообщений отправляется соответствующее сообщение об ошибке, и дейтаграмма аннулируется.
Протокол транспортного уровня TCP (порты, установление соединения, сегменты и потоки, метод скользящего окна, выбор тайм-аута, управление размером окна и перегрузкой, формат сообщений, управление логическим соединением).
Не нашли, что искали? Воспользуйтесь поиском:
|