Определение
UDP (User Datagram Protocol) — транспортный протокол в стеке TCP/IP, обеспечивающий минималистичную связь без установки соединения и гарантий доставки.
Характеристики
- Без установки соединения: Передача данных без предварительного handshake.
- Ненадежный: Нет подтверждения доставки или повторной отправки пакетов.
- Малые накладные расходы: Заголовок 8 байт (против 20 байт у TCP).
- Отсутствие контроля перегрузок: Пакеты могут теряться при высокой нагрузке.
- Бессостояние: Каждый датаграмм обрабатывается независимо.
Структура заголовка UDP (8 байт)
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| Порт отправителя | Порт получателя |
+--------+--------+--------+--------+
| Длина | Контрольная сумма|
+--------+--------+--------+--------+
| Данные... |
+----------------------------------+
Типовые применения
- Реалтайм-сервисы: VoIP (SIP/RTP), потоковое видео
- DNS-запросы: Быстрое разрешение имен в один пакет
- Онлайн-игры: Передача позиций игроков с минимальной задержкой
- IoT/Датчики: Периодическая отправка показаний
- Многоадресная рассылка: Эффективная передача “один-ко-многим”
Сравнение с TCP
Параметр | UDP | TCP |
---|---|---|
Скорость | Быстрее (нет handshake/ACK) | Медленнее |
Надежность | Нет гарантий доставки | Гарантированная доставка |
Упорядочивание | Нет | Строгий порядок данных |
Контроль перегрузок | Отсутствует | Адаптивное окно |
Особенности работы
- Потеря пакетов: Допустима для реалтайм-трафика
- Джиттер: Приложения должны сами управлять буферизацией
- Ограничение MTU: Большие датаграммы могут фрагментироваться | Контрольная сумма: В IPv4 может быть отключена (риск повреждения данных)
Рекомендуемое Чтение