logo

Протокол дейтаграм користувача (UDP)

Протокол дейтаграм користувача (UDP) є протоколом транспортного рівня. UDP є частиною набору Інтернет-протоколів, який називається пакетом UDP/IP. На відміну від TCP, це an ненадійний протокол без підключення. Таким чином, немає необхідності встановлювати з'єднання перед передачею даних. UDP допомагає встановлювати з’єднання в мережі з низькою затримкою та стійкими до втрат. UDP забезпечує обмін даними між процесами.

Що таке протокол дейтаграм користувача?

Хоча протокол керування передачею (TCP) є домінуючим протоколом транспортного рівня, який використовується з більшістю Інтернет-сервісів; забезпечує гарантовану доставку, надійність і багато іншого, але всі ці послуги коштують нам додаткових витрат і затримок. Тут на сцену з’являється UDP. Для послуг у режимі реального часу, таких як комп’ютерні ігри, голосовий або відеозв’язок і живі конференції; нам потрібен UDP. Оскільки потрібна висока продуктивність, UDP дозволяє відкидати пакети замість обробки затриманих пакетів. У UDP немає перевірки помилок, тому він також економить пропускну здатність.



UDP-gif

Заголовок UDP

Заголовок UDP є 8-байт фіксований і простий заголовок, тоді як для TCP він може варіюватися від 20 байт до 60 байт. Перші 8 байтів містять всю необхідну інформацію заголовка, а інша частина складається з даних. Кожне з полів номера порту UDP має 16 біт, тому діапазон номерів портів визначається від 0 до 65535; номер порту 0 зарезервований. Номери портів допомагають розрізняти різні запити або процеси користувачів.

UDP-заголовок



Заголовок UDP

  1. Порт джерела: Порт джерела – це поле довжиною 2 байти, яке використовується для визначення номера порту джерела.
  2. Порт призначення: Це поле довжиною 2 байти, яке використовується для ідентифікації порту призначеного пакета.
  3. Довжина: Довжина — це довжина UDP, включаючи заголовок і дані. Це 16-бітне поле.
  4. Контрольна сума: Контрольна сума – це поле довжиною 2 байти. Це 16-бітне доповнення до одиничної суми заголовка UDP, псевдозаголовка інформації з заголовка IP та даних, доповнених нульовими октетами в кінці (якщо необхідно), щоб зробити кратним двом октети.

Примітки – На відміну від TCP, обчислення контрольної суми не є обов’язковим у UDP. UDP не забезпечує контроль помилок або контроль потоку. Таким чином, UDP залежить від IP та ICMP для звітування про помилки. Також UDP надає номери портів, щоб можна було розрізняти запити користувачів.

Застосування UDP

  • Використовується для простого зв’язку запит-відповідь, коли розмір даних менший і, отже, менше занепокоєння щодо потоку та контролю помилок.
  • Це придатний протокол для багатоадресної передачі, оскільки UDP підтримує комутацію пакетів.
  • UDP використовується для деяких протоколів оновлення маршрутизації, таких як RIP (протокол інформації про маршрутизацію).
  • Зазвичай використовується для програм реального часу, які не допускають нерівномірних затримок між розділами отриманого повідомлення.
  • UDP широко використовується в онлайн-іграх, де низька затримка та висока швидкість зв’язку є важливими для якісного ігрового процесу. Ігрові сервери часто надсилають невеликі часті пакети даних клієнтам, і UDP добре підходить для цього типу зв’язку, оскільки він швидкий і легкий.
  • Програми потокового передавання медіа, такі як IPTV, онлайн-радіо та відеоконференції, використовують UDP для передачі аудіо- та відеоданих у реальному часі. У цих програмах можна допустити втрату деяких пакетів, оскільки дані безперервно надходять і не потребують повторної передачі.
  • Сервіси VoIP (голос через Інтернет-протокол), такі як Skype і WhatsApp, використовують UDP для голосового зв’язку в реальному часі. Затримка в голосовому зв’язку може бути помітною, якщо пакети затримуються через контроль перевантаження, тому UDP використовується для забезпечення швидкої та ефективної передачі даних.
  • DNS (система доменних імен) також використовує UDP для повідомлень запитів/відповідей. Запити DNS зазвичай невеликі та вимагають швидкого часу відповіді, що робить протокол UDP придатним для цієї програми.
  • DHCP (Dynamic Host Configuration Protocol) використовує UDP для динамічного призначення IP-адрес пристроям у мережі. Повідомлення DHCP, як правило, невеликі, і затримка, викликана втратою пакетів або повторною передачею, як правило, не критична для цієї програми.
  • Наступні реалізації використовують UDP як протокол транспортного рівня:
    • NTP (протокол мережевого часу)
    • DNS (служба доменних імен)
    • BOOTP, DHCP.
    • NNP (протокол мережевих новин)
    • Цитата протоколу дня
    • TFTP, RTSP, RIP.
  • Прикладний рівень може виконувати деякі завдання через UDP-
    • Трасування маршруту
    • Запис маршруту
    • Мітка часу
  • UDP приймає дейтаграму з мережевого рівня, додає її заголовок і надсилає її користувачеві. Отже, працює швидко.
  • Насправді UDP є нульовим протоколом, якщо видалити поле контрольної суми.
    1. Зменшити потребу в ресурсах комп’ютера.
    2. Якщо для передачі використовується Multicast або Broadcast.
    3. Передача пакетів у реальному часі, головним чином у мультимедійних програмах.

Переваги UDP

  • швидкість: UDP є швидшим за TCP, оскільки він не потребує додаткових витрат на встановлення з’єднання та забезпечення надійної доставки даних.
  • Менша затримка: оскільки немає встановлення з’єднання, є менша затримка та швидший час відповіді.
  • Простота: UDP має простіший дизайн протоколу, ніж TCP, що полегшує його впровадження та керування.
  • Підтримка трансляції: UDP підтримує трансляцію багатьом одержувачам, що робить його корисним для таких програм, як потокове відео та онлайн-ігри.
  • Менший розмір пакета: UDP використовує менші розміри пакетів, ніж TCP, що може зменшити перевантаження мережі та покращити загальну продуктивність мережі.
  • Протокол дейтаграм користувача (UDP) більш ефективний з точки зору затримки та пропускної здатності.

Недоліки UDP

  • Немає надійності: UDP не гарантує доставку пакетів або порядок доставки, що може призвести до відсутності або дублювання даних.
  • Без контролю заторів: UDP не контролює перевантаження, що означає, що він може надсилати пакети зі швидкістю, яка може спричинити перевантаження мережі.
  • Без контролю потоку: UDP не має контролю потоку, що означає, що він може перевантажити одержувача пакетами, які він не може обробити.
  • Вразливі до атак: UDP вразливий до атак типу «відмова в обслуговуванні», коли зловмисник може заповнити мережу UDP-пакетами, перевантажуючи мережу та спричиняючи її збій.
  • Випадки обмеженого використання: UDP не підходить для програм, які вимагають надійної доставки даних, наприклад електронної пошти або передачі файлів, і краще підходить для програм, які допускають втрату деяких даних, наприклад потокове відео або онлайн-ігри.

Псевдозаголовок UDP

  • Метою використання псевдозаголовка є перевірка того, що UDP-пакет досяг правильного пункту призначення.
  • Правильний пункт призначення складається з конкретної машини та певного номера порту протоколу на цій машині

Псевдозаголовок UDP



Деталі псевдозаголовка UDP

  • Сам заголовок UDP визначає лише номер порту протоколу. Таким чином, для перевірки адресата UDP на машині-відправнику обчислює контрольну суму, яка охоплює IP-адресу призначення, а також пакет UDP.
  • У кінцевому пункті призначення програмне забезпечення UDP перевіряє контрольну суму, використовуючи IP-адресу призначення, отриману із заголовка IP-пакета, який передав повідомлення UDP.
  • Якщо контрольна сума збігається, це означає, що пакет досяг цільового хоста, а також правильного порту протоколу в цьому хості.

Інтерфейс користувача

Інтерфейс користувача повинен дозволяти створення нових портів отримання, операції отримання на портах отримання, які повертають октети даних і вказівку порту джерела та адресу джерела, а також операцію, яка дозволяє надсилати дейтаграму, вказуючи дані, джерело та порти призначення та адресу для надсилання.

IP-інтерфейс

  • Модуль UDP повинен мати можливість визначати Інтернет-адресу джерела та призначення та поле протоколу з Інтернет-заголовка
  • Один із можливих інтерфейсів UDP/IP повертав би всю Інтернет-датаграму, включаючи весь Інтернет-заголовок, у відповідь на операцію отримання
  • Такий інтерфейс також дозволить UDP передавати повну Інтернет-датаграму разом із заголовком на IP для надсилання. IP перевірить узгодженість певних полів і обчислить контрольну суму заголовка Інтернету.
  • Інтерфейс IP дозволяє модулю UDP взаємодіяти з мережевим рівнем стека протоколів, який відповідає за маршрутизацію та доставку даних у мережі.
  • IP-інтерфейс забезпечує механізм для UDP-модуля для зв’язку з іншими хостами в мережі, надаючи доступ до основного IP-протоколу.
  • Інтерфейс IP може використовуватися модулем UDP для надсилання та отримання пакетів даних через мережу за допомогою механізмів IP-маршрутизації та адресації.
  • Інтерфейс IP забезпечує рівень абстракції, який дозволяє модулю UDP взаємодіяти з мережевим рівнем без необхідності мати справу зі складностями IP-маршрутизації та адресації безпосередньо.
  • Інтерфейс IP також обробляє фрагментацію та повторне збирання IP-пакетів, що важливо для великих передач даних, які можуть перевищувати максимальний розмір пакета, дозволений мережею.
  • Інтерфейс IP також може надавати додаткові послуги, такі як підтримка параметрів якості обслуговування (QoS) і механізмів безпеки, таких як IPsec.
  • Інтерфейс IP є критично важливим компонентом Internet Protocol Suite, оскільки він забезпечує зв’язок між хостами в Інтернеті та безперебійну передачу пакетів даних через мережу.

GATE Запитання для практики

  1. GATE CS 2013, питання 12
  2. GATE CS 2012, питання 65
  3. GATE CS 2007, питання 20
  4. GATE CS 2005, питання 23
  5. GATE IT 2008, питання 66
  6. GATE Mock 2015, питання 5

Часті запитання щодо UDP – поширені запитання

1. Назвіть протоколи, які використовують UDP?

Протокол, який використовує модель UDP:

2. Що швидше: TCP чи UDP?

UDP швидший за TCP.