UDP — описание протокола транспортного уровня для сетевых приложений


Протокол пользовательских дейтаграмм (UDP) был введен в 1980 году и является одним из старейших существующих сетевых протоколов . Это простой протокол транспортного уровня OSI для сетевых приложений клиент-сервер, основанный на интернет-протоколе (IP) и являющийся основной альтернативой TCP.

Краткое объяснение UDP может объяснить, что это ненадежный протокол по сравнению с TCP. Хотя это действительно так, поскольку при передаче данных нет никакой проверки или исправления ошибок, также верно, что существуют приложения для этого протокола, которым TCP не может соответствовать.

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

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

UDP лучше, чем TCP?

Ответ на этот вопрос зависит от контекста, поскольку UDP обеспечивает лучшую производительность, но, возможно, и худшее качество, чем TCP.


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

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



Однако причина, по которой UDP не так велик, когда дело доходит до передачи файлов, заключается в том, что вам нужен весь файл, чтобы правильно его использовать. Как TCP, так и UDP находятся на уровне 4 модели OSI и работают с такими сервисами, как TFTP, RTSP и DNS.

UDP датаграммы

UDP-трафик работает через так называемые дейтаграммы, причем каждая дейтаграмма состоит из одного блока сообщений. Детали заголовка хранятся в первых восьми байтах, но остальное — это то, что содержит фактическое сообщение.

Каждая часть заголовка дейтаграммы UDP, указанная здесь, составляет два байта:

  • Номер исходного порта
  • Номер порта назначения
  • Размер датаграммы
  • Контрольная сумма

Номера портов UDP позволяют различным приложениям поддерживать свои собственные каналы для данных, аналогично TCP. Заголовки порта UDP имеют длину два байта; следовательно, допустимые номера портов UDP варьируются от 0 до 65535.

Размер дейтаграммы UDP — это общее количество байтов, содержащихся в разделах заголовка и данных. Поскольку длина заголовка является фиксированным размером, это поле эффективно отслеживает длину части данных переменного размера (иногда называемой полезной нагрузкой).

Размер дейтаграмм варьируется в зависимости от операционной среды, но его максимальный размер составляет 65535 байт.

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

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


Понравилась статья? Поделиться с друзьями: