Визначення
UDP (Протокол користувацьких дейтаграм) — це основний протокол транспортного рівня в стеку TCP/IP. Він надає мінімальний, безз’єднаний сервіс зв’язку без гарантій надійності, впорядкування або механізмів контролю потоку.
Характеристики протоколу
- Безз’єднаний: Не потребує рукостискання перед передачею даних.
- Ненадійний: Відсутнє підтвердження отримання пакета або повторна передача.
- Низькі накладні витрати: Заголовок 8 байт проти 20 байт у TCP.
- Без контролю перевантаження: Пакети можуть бути втрачені при інтенсивному трафіку.
- Безстановий: Кожна дейтаграма обробляється незалежно.
Структура заголовка UDP (8 байт)
0 7 8 15 16 23 24 31
+--------+--------+--------+--------+
| Source Port | Destination Port|
+--------+--------+--------+--------+
| Length | Checksum |
+--------+--------+--------+--------+
| Data... |
+----------------------------------+
Поширені застосування
- Сервіси реального часу: VoIP (наприклад, SIP/RTP), потокове відео
- DNS-запити: Швидке розпізнавання за допомогою однопакетних обмінів
- Онлайн-ігри: Критичні до затримки оновлення позицій гравців
- Дані IoT/сенсорів: Періодичні звіти про стан, де втрата даних допустима
- Мультикаст/широкомовлення: Ефективна передача від одного до багатьох
Переваги порівняно з TCP
Особливість | UDP | TCP |
---|---|---|
Швидкість | Швидший (без рукостискання/ACK) | Повільніший (встановлення з’єднання) |
Надійність | Відсутня (максимальне зусилля) | Гарантована доставка |
Впорядкування | Без примусового впорядкування | Суворий порядок байтового потоку |
Контроль перевантаження | Відсутній | Адаптивне масштабування вікна |
Міркування щодо продуктивності
- Втрата пакетів: Допустима в програмах реального часу (наприклад, пропущені пакети VoIP)
- Обробка джиттера: Програми повинні реалізувати власну буферизацію
- Урахування MTU: Великі дейтаграми можуть фрагментуватися на IP-рівні
- Контрольна сума є необов’язковою: IPv4 дозволяє нульову контрольну суму (ризик пошкодження даних)
Вам також може сподобатися