Что такое UDP (протокол пользовательских дейтаграмм)?
UDP обозначает протокол пользовательских датаграмм — протокол связи для приложений, чувствительных к задержкам, таких как игры, потоковая передача видео и запросы к системе доменных имён (DNS). Поскольку UDP не требует установления стабильного соединения с целевым устройством перед передачей, он может значительно повысить скорость связи. UDP ускоряет передачу данных, устраняя затратный по времени процесс установления соединения, характерный для традиционных протоколов.
Однако преимущество UDP в скорости сопряжено с некоторыми потенциальными рисками. UDP может привести к потере пакетов при передаче данных от источника к месту назначения. Кроме того, из-за отсутствия установления соединения UDP является легкой мишенью для хакеров, запускающих распределенные атаки типа «отказ в обслуживании» (DDoS).
В целом такие протоколы, как протокол управления передачей (TCP), требуют, чтобы получатель не только принял данные, но и подтвердил свою готовность к их приёму до начала передачи данных. Однако UDP не ожидает этого подтверждения перед началом передачи, что может привести к проблемам с передачей данных и создать возможности для атак DDoS.
Как работает UDP?
По сравнению с другими сетевыми протоколами UDP намного проще. Он просто находит целевой компьютер и отправляет ему пакет данных, также называемый "дейтаграммой". UDP не гарантирует, что пакеты прибудут в правильном порядке, и не подтверждает их доставку к месту назначения.
Хотя UDP использует контрольные суммы для обеспечения целостности данных и номера портов для различения назначения данных на источнике и получателе, такая простота создает определенные проблемы из-за отсутствия обязательного механизма рукопожатия. Программы, использующие UDP, подвержены нестабильности базовой сети.
В результате данные могут быть успешно переданы или потеряны. Кроме того, поскольку порядок поступления пакетов не контролируется, при отображении в конечном пункте назначения данные могут выглядеть искаженными, поступать не по порядку или отсутствовать.
Однако эти проблемы обычно незначительны, если обнаружение и исправление ошибок не требуются. Это одна из причин, по которым UDP часто используется в видеоприложениях. Даже при периодической потере данных или возникновении ошибок своевременная доставка видеосигнала к месту назначения по-прежнему является главным приоритетом.
Разница между UDP и TCP
Когда данные передаются из одного места в другое, заголовок сообщает устройству, что делать с этими данными. Заголовок UDP прост и имеет фиксированный размер 8 байт, тогда как заголовок TCP гораздо сложнее и занимает от 20 до 60 байт. Заголовок UDP содержит 16-битный номер порта источника, 16-битный номер порта назначения, 16-битное поле длины и 16-битную контрольную сумму, которые направляют дейтаграмму к месту назначения. заголовок включает 16-битный номер порта источника, 16-битный номер порта назначения, 16-битное поле длины и 16-битную контрольную сумму, которые направляют дейтаграмму к месту назначения. При передаче данных аутентификация соединения между портами источника и назначения не требуется.
В отличие от этого, TCP требует подтверждения соединения перед отправкой данных, благодаря чему TCP надежнее UDP. При обмене данными по TCP передача может начаться только после установления формального соединения между получателем и отправителем. С другой стороны, поскольку UDP не требует установления соединения, данные можно отправлять немедленно.
Еще одно различие заключается в том, что TCP подтверждает порядок пакетов перед передачей и гарантирует их своевременное прибытие. Если пакет не доходит, TCP автоматически запрашивает его повторную отправку. UDP, с другой стороны, не выполняет подтверждение, проверку или повторную передачу.
Если приложение выбирает использование UDP, пользователь принимает риск возникновения ошибок, неполучения данных или повторной отправки данных. Компромиссом при таком выборе является более высокая скорость передачи. UDP не обязательно является причиной потери данных. Информация в его заголовке достаточна для доставки данных в указанное место, а порядок отправки датаграмм в основном может сохраняться корректным.
Однако большинство сетевых маршрутизаторов не могут подтверждать получение пакетов или упорядочивать их, что может привести к потере или дублированию пакетов. TCP компенсирует это, обеспечивая доставку данных в пункт назначения в правильном порядке.

Применение UDP
UDP обычно используется в сценариях связи, где скорость имеет решающее значение, а небольшая потеря данных допустима. Типичными примерами являются потоковые передачи голоса и видео в реальном времени, поскольку для них важнее своевременность, чем 100-процентная точность. Например, многие службы передачи голоса по интернет-протоколу (VoIP) используют UDP, поскольку он снижает задержку и делает звонки более плавными, даже если иногда это приводит к некоторому ухудшению качества звука.
Аналогичным образом, UDP широко используется в онлайн-играх. Для геймеров быстрая реакция важнее, чем периодическая потеря части данных. Кроме того, DNS-серверы также полагаются на UDP благодаря высокой скорости и эффективности обработки запросов, поскольку для эффективной работы таких служб требуются быстрые ответы.
Как используется UDP в DDoS-атаках?
Хотя UDP (User Datagram Protocol) отлично подходит для быстрой передачи данных в реальном времени, он делает получателя более уязвимым для DDoS-атак.
При DDoS-атаке целевой веб-сайт заполняется пакетами. При возникновении каждой проблемы целевой сервер должен отправить ответный ICMP-пакет. Поскольку сервер не может обработать такое количество запросов, он в конечном итоге оказывается перегружен, подобно засоренной канализационной трубе. В результате легитимные запросы не проходят, а настоящие пользователи и клиенты не могут нормально получить доступ к сайту.
Подключение без установления соединения, характерное для UDP, делает этот протокол особенно уязвимым для DDoS-атак. Поскольку между источником и целевым объектом не требуется устанавливать соединение посредством рукопожатия, злоумышленник может беспрепятственно отправлять множество пакетов на целевой сервер.
Однако организации могут снизить риск этой атаки, ограничив скорость ответов на ICMP-пакеты. Использование сети центра обработки данных для UDP-трафика может предотвратить перегрузку отдельных серверов поддельными запросами.





