← Назад к вопросам

Что такое UDP протокол?

1.6 Junior🔥 131 комментариев
#Браузер и сетевые технологии

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI2 апр. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

UDP протокол

Определение

UDP (User Datagram Protocol) — это транспортный протокол уровня 4 (транспортный уровень) модели OSI. Это один из основных протоколов интернета, используемый для отправки данных между компьютерами через сеть.

УDP — это альтернатива TCP, но с другой философией: скорость важнее надёжности.

Основные характеристики UDP

1. Без соединения (Connectionless)

UDP не устанавливает соединение перед отправкой данных. Просто отправляй пакеты и ждёшь ответов (или не ждёшь).

// TCP требует handshake и соединение
const socket = new WebSocket('ws://...');  // Соединение!

// UDP просто отправляет пакеты
const udpSocket = dgram.createSocket('udp4');
udpSocket.send(message, port, host);  // Просто отправил

2. Ненадёжный (Unreliable)

UDP не гарантирует доставку пакетов. Пакеты могут:

  • Теряться в сети
  • Приходить не по порядку
  • Дублироваться

Сеть сама решает, что делать с пакетами.

// С TCP — гарантия доставки
const tcpData = 'Hello World';
// Сервер ОБЯЗАТЕЛЬНО получит ВЕСЬ текст в правильном порядке

// С UDP — нет гарантий
const udpData = 'Hello World';
// Сервер может получить 'Hello', потом 'orld', потом 'W'

3. Быстрый (Fast)

УDP работает быстрее TCP потому что:

  • Нет handshake
  • Нет подтверждения доставки
  • Нет повторной отправки потерянных пакетов
  • Меньше служебной информации в заголовке

UDP vs TCP

ХарактеристикаUDPTCP
СоединениеНетДа (handshake)
НадёжностьНет гарантийГарантия доставки
ПорядокНе гарантированГарантирован
СкоростьВысокаяНиже
ЗадержкаНизкаяВыше
ЗаголовокМаленький (8 байт)Больший (20 байт)

Когда использовать UDP

1. Потоковое видео/аудио

// Видеоконференция (Zoom, Google Meet)
// Потеря одного-двух пакетов незаметна человеку
// Важнее скорость, чем каждый пакет

2. Сетевые игры

// Онлайн игры требуют низкой задержки
// Лучше потерять позицию врага на 100ms, чем ждать подтверждения
const gameServer = 'multiplayer.game.com';
// Использует UDP для низкой latency

3. IoT и мониторинг

// Датчики часто отправляют много данных
// Потеря одного значения температуры не критична
const sensorData = {
  temperature: 25.5,
  humidity: 60
};
// Если пакет потеряется - следующий будет в течение секунды

4. DNS запросы

// DNS (система имён доменов) использует UDP
// Запрос: какой IP у google.com?
// Ответ приходит быстро, нет необходимости в надёжности

5. NTP (синхронизация времени)

// Сервер синхронизации времени
// Один потерянный пакет не критичен

Когда НЕ использовать UDP

1. Важные данные

// Платёжные системы
// Банковские переводы
// Критические команды
// Здесь нужна TCP со 100% гарантией доставки

2. Большие объёмы данных

// Загрузка больших файлов
// Синхронизация баз данных
// TCP обеспечит целостность

UDP в веб-разработке

Для фронтенд-разработчика UDP встречается реже, чем TCP, но есть несколько современных протоколов::

QUIC и HTTP/3

// QUIC построен на основе UDP
// Обеспечивает преимущества UDP (скорость) и TCP (надёжность)

// fetch с HTTP/3 через QUIC
const response = await fetch('https://http3.example.com');
// Под капотом может использовать UDP через QUIC

WebRTC для видеочата

// WebRTC для peer-to-peer видеочата
const peerConnection = new RTCPeerConnection();
await peerConnection.addIceCandidate(candidate);
// Использует UDP для быстрой передачи видео/аудио

Структура UDP пакета

UDP Datagram:
+--------+--------+--------+--------+
| Source Port (16) | Dest Port (16)   |  16 байт
+--------+--------+--------+--------+
| Length (16)      | Checksum (16)    |  16 байт
+--------+--------+--------+--------+
|                                    |
|    Данные (payload)                |  Variable
|                                    |
+--------+--------+--------+--------+

Всего заголовок только 8 байт (vs 20+ для TCP).

Резюме

UDP — это быстрый, ненадёжный транспортный протокол:

  • Без соединения — просто отправляй пакеты
  • Без гарантий — пакеты могут теряться
  • Очень быстрый — минимум служебной информации
  • Идеален для — видео, игры, потоки данных
  • Не подходит для — критических операций и больших файлов

В контексте фронтенда встречается в WebRTC, QUIC/HTTP3 и потоковых приложениях.

Что такое UDP протокол? | PrepBro