Как называется сообщение udp

Обновлено: 11.05.2024

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

Централизованное присвоение сервисам номеров портов выполняется организацией Internet Assigned Numbers Authority. Эти номера затем закрепляются и опубликовываются в стандартах Internet. Например, упомянутому выше сервису удаленного доступа к файлам TFTP присвоен стандартный номер порта 69.

Локальное присвоение номера порта заключается в том, что разработчик некоторого приложения просто связывает с ним любой доступный, произвольно выбранный числовой идентификатор, обращая внимание на то, чтобы он не входил в число зарезервированных номеров портов. В дальнейшем все удаленные запросы к данному приложению от других приложений должны адресоваться с указанием назначенного ему номера порта.

Мультиплексирование и демультиплексирование запросов протоколом UDP

  • Поле source port - номер порта процесса-отправителя.
  • Поле destination port - номер порта процесса-получателя.
  • Поле message length - длина UDP-пакета в байтах.
  • Поле checksum - контрольная сумма UDP-пакета.

Контрольное суммирование

Не все сегменты, посланные через соединение, будут одного и того же размера, однако оба участника соединения должны договориться о максимальном размере сегмента, который они будут использовать. Этот размер выбирается таким образом, чтобы при упаковке сегмента в IP-пакет он помещался туда целиком, то есть максимальный размер сегмента не должен превосходить максимального размера поля данных IP-пакета. В противном случае пришлось бы выполнять фрагментацию, то есть делить сегмент на несколько частей, для того, чтобы он вместился в IP-пакет.

Аналогичные проблемы решаются и на сетевом уровне. Для того, чтобы избежать фрагментации, должен быть выбран соответствующий максимальный размер IP-пакета. Однако при этом должны быть приняты во внимание максимальные размеры поля данных кадров всех протоколов канального уровня, используемых в сети. Максимальный размер сегмента не должен превышать минимальное значение на множестве всех MTU составной сети.

Порты и установление TCP-соединений

  • При установлении соединения одна из сторон является инициатором. Она посылает запрос к протоколу TCP на открытие порта для передачи (active open).
  • После открытия порта протокол TCP на стороне процесса-инициатора посылает запрос процессу, с которым требуется установить соединение.
  • Протокол TCP на приемной стороне открывает порт для приема данных (passive open) и возвращает квитанцию, подтверждающую прием запроса.
  • Для того чтобы передача могла вестись в обе стороны, протокол на приемной стороне также открывает порт для передачи (active port) и также передает запрос к противоположной стороне.
  • Сторона-инициатор открывает порт для приема и возвращает квитанцию.
  • Соединение считается установленным. Далее происходит обмен данными в рамках данного соединения.

Концепция квитирования

В рамках соединения правильность передачи каждого сегмента должна подтверждаться квитанцией получателя. Квитирование - это один из традиционных методов обеспечения надежной связи. Идея квитирования состоит в следующем.

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

Метод с простоями требует, чтобы источник, пославший кадр, ожидал получения квитанции (положительной или отрицательной) от приемника и только после этого посылал следующий кадр (или повторял искаженный). Из рисунка 4 видно, что в этом случае производительность обмена данными существенно снижается - хотя передатчик и мог бы послать следующий кадр сразу же после отправки предыдущего, он обязан ждать прихода квитанции. Снижение производительности для этого метода коррекции особенно заметно на низкоскоростных каналах связи, то есть в территориальных сетях.

Рис.4. Метод подтверждения корректности передачи кадров с простоем источника

Во втором методе для повышения коэффициента использования линии источнику разрешается передать некоторое количество кадров в непрерывном режиме, то есть в максимально возможном для источника темпе, без получения на эти кадры ответных квитанций. Таким образом, между отправленными и подтвержденными данными существует окно уже отправленных, но еще неподтвержденных данных. Количество кадров, которые разрешается передавать таким образом, называется размером окна. Как правило, размер окна устанавливается в стартовых файлах сетевого программного обеспечения. Рисунок 5 иллюстрирует данный метод для размера окна в W кадров. Обычно кадры при обмене нумеруются циклически, от 1 до W. При отправке кадра с номером 1 источнику разрешается передать еще W-1 кадров до получения квитанции на кадр 1. Если же за это время квитанция на кадр 1 так и не пришла, то процесс передачи приостанавливается, и по истечению некоторого тайм-аута кадр 1 считается утерянным (или квитанция на него утеряна) и он передается снова.

Рис.5. Метод "окна" - непрерывная отправка пакетов

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

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

Реализация скользящего окна в протоколе TCP

Квитанция посылается только в случае правильного приема данных, отрицательные квитанции не посылаются. Таким образом, отсутствие квитанции означает либо прием искаженного сегмента, либо потерю сегмента, либо потерю квитанции.

Выбор тайм-аута

Выбор времени ожидания (тайм-аута) очередной квитанции является важной задачей, результат решения которой влияет на производительность протокола TCP .

Тайм-аут не должен быть слишком коротким, чтобы по возможности исключить избыточные повторные передачи, которые снижают полезную пропускную способность системы. Но он не должен быть и слишком большим, чтобы избежать длительных простоев, связанных с ожиданием несуществующей или "заблудившейся" квитанции.

Реакция на перегрузку сети

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

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

Протокол UDP

UDP - это протокол, который обеспечивает обслуживание без установления соединения, таким образом UDP не гарантирует доставку или проверки последовательности для любой дейтаграммы. Хост, который нуждается в надежной связи должен использовать либо протокол TCP либо программу, которая будет сама следить за последовательностью дейтаграмм и подтверждать прием каждого пакета. UDP - это аббревиатура от User Datagram Protocol (Протокол Пользовательских Дейтаграмм) является протоколом стандарта TCP/IP, определенный в стандарте RFC 768, "User Datagram Protocol (UDP)". UDP используется вместо TCP для быстрой и ненадежной транспортировки данных между TCP/IP хостами.

Автором протокола UDP является Дэвид П. Рид созданный в 1980 году.

Чувствительные ко времени приложения часто используют UDP (видеоданные), так как предпочтительнее сбросить пакеты, чем ждать задержавшиеся пакеты, что может оказаться невозможным в системах реального времени. Также потеря одного или нескольких кадров, при передаче видеоданных по UDP, не так критична, в отличии от передачи бинарных файлов, где потеря одно пакета может привести к искажению всего файла. Еще одним преимуществом протокола UDP является то, что длина заголовка UDP составляет 4 байта, а у TCP протокола - 20 байт.


UDP заголовок

На рисунке показаны поля, присутствующие в UDP заголовке.


  • Порт отправителя - в этом поле указывается номер порта отправителя. Предполагается, что это значение задает порт, на который при необходимости будет посылаться ответ. В противном же случае, значение должно быть равным 0. Если хостом-источником является клиент, то номер порта будет, скорее всего, эфемерным. Если источником является сервер, то его порт будет одним из "хорошо известных".
  • Порт получателя - это поле обязательно и содержит порт получателя. Аналогично порту отправителя, если клиент - хост-получатель, то номер порта эфемерный, иначе (сервер - получатель) это "хорошо известный порт".
  • Длина дейтаграммы - поле, задающее длину всей дейтаграммы (заголовка и данных) в байтах. Минимальная длина равна длине заголовка - 8 байт. Теоретически, максимальный размер поля - 65535 байт для UDP-дейтаграммы (8 байт на заголовок и 65527 на данные). Фактический предел для длины данных при использовании IPv4 - 65507 (помимо 8 байт на UDP-заголовок требуется еще 20 на IP-заголовок).
  • Контрольная сумма - поле контрольной суммы используется для проверки заголовка и данных на ошибки. Если сумма не сгенерирована передатчиком, то поле заполняется нулями.

Рассмотрим структуру заголовка UDP с помощью сетевого анализатора Wireshark:


UDP порты

Так как на одном и том же компьютере могут быть запущены несколько программ, то для доставки UDP-пакета конкретной программе, используется уникальный идентификатор каждой программы или номер порта.

Номер порта — это условное 16-битное число от 1 до 65535, указывающее, какой программе предназначается пакет.

Каждый порт UDP идентифицируется под зарезервированным или известным номером порта. В следующей таблице показан частичный список известных номеров портов UDP, которые используются стандартные UDP-программы.

UDP это протокол транспортного уровня стека протоколов TCP/IP . На транспортном уровне в стеке TCP/IP используется два протокола:

  • Протокол TCP обеспечивает надежную доставку данных
  • Протокол UDP надежные доставки данных не обеспечивает


p, blockquote 2,0,0,0,0 -->

p, blockquote 3,0,0,0,0 -->


p, blockquote 4,0,0,0,0 -->

А зачем протокол транспортного уровня, если он не обеспечивает надежность доставки выше чем IP, почему нельзя использовать просто IP для передачи данных?

p, blockquote 5,0,1,0,0 -->

Но на транспортном уровне необходимо указать порт отправителя и порт получателя, что и делает протокол UDP.

Формат заголовка

Формат заголовка udp состоит из 4-х полей:

  1. Порт отправителя;
  2. Порт получателя;
  3. Длина UDP, в которой содержится длина всей дейтаграммы UDP;
  4. Контрольная сумма UDP, которая используется для корректной доставки дейтаграммы.


p, blockquote 8,0,0,0,0 -->

  • Минимум 8 байт (только заголовок)
  • Максимум 65 515 байт (максимальная длина данных IP-пакета)

Преимущества и применение UDP

Преимущество UDP в том, что протокол обеспечивает более высокую скорость работы по сравнению с TCP, так как у него нет накладных расходов на установку и на разрыв соединения.

p, blockquote 10,1,0,0,0 -->

Ошибки в современных сетях происходят достаточно редко и сетевые приложения способны самостоятельно исправлять такие, редко возникающие ошибки.

p, blockquote 11,0,0,0,0 -->

p, blockquote 12,0,0,0,0 -->

Применение UDP: DNS

p, blockquote 13,0,0,0,0 -->

p, blockquote 14,0,0,0,0 -->


p, blockquote 15,0,0,1,0 -->

p, blockquote 16,0,0,0,0 -->


p, blockquote 17,0,0,0,0 -->

Недостаток UDP

p, blockquote 18,0,0,0,0 -->


p, blockquote 19,0,0,0,0 -->

p, blockquote 20,0,0,0,0 -->

Выводы по протоколу UDP

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

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


UDP протокол — что это

UDP — это транспортный протокол пользовательских датаграмм из набора правил TCP/IP. Позволяет отправлять информацию (датаграммы) по IP-сети без предварительного установления соединения и создания специального виртуального канала или путей данных. Официально был разработан в 1 980 году человеком по имени Дэвид П. Рид. Полностью расшифровывается как — User Datagram Protocol.

Интересно! Любой протокол, который не устанавливает предварительное соединение — называется датаграммным.


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

Заголовок UDP весит 8 байтов и состоит всего из четырех значений:


Это порты отправителя и получателя, длина датаграммы и контрольная сумма. Поля, которые помечены на скриншоте желтым цветом — необязательны к использованию в сетях IPv4.

Также, для расширения кругозора рекомендую прочитать статью — как проверить скорость интернета.

Плюсы UDP протокола — кому он полезен?

Доставка пакетов происходит гораздо быстрее, т.к. он просто не тратит время на все те проверки, установку соединения и т.д., как это делает TCP.


Благодаря этому он так популярен на серверах, которые отвечают на небольшие вопросы от большого количества клиентов, те же DNS сервера, онлайн игры, потоковое видео, например, IPTV, приложения видео/аудио связи.

Отличие UDP от TCP — сравнение

Недостатки:


Преимущества:

В заключение

Вот вы и узнали, что такое UDP, чем он отличается от другого транспортного протокола, его преимущества и недостатки. Обучайтесь, изучайте новое и жизнь станет куда интереснее.

Читайте также: