Skip to main content

Що відбувається при втраті UDP-пакета?

При втраті UDP-пакета нічого «особливого» не відбувається - він просто губиться. UDP не намагається виявити втрату і не відновлює дані.

Коротко: пакет пропав - і UDP іде далі, наче нічого не сталося.


Що саме відбувається крок за кроком

  1. Відправник надсилає UDP-пакет
  2. У мережі пакет може:
  • загубитися
  • бути відкинутим через перевантаження
  • пошкодитися
  1. Отримувач пакет не отримує
  2. UDP нічого не робить:
  • немає ACK
  • немає тайм-аутів
  • немає повторної передачі

На цьому все.


Що НЕ відбувається при втраті UDP-пакета

Важливо для співбесіди. UDP не робить:

  • повторну відправку
  • сповіщення відправника
  • відновлення порядку
  • компенсацію втрати

UDP працює за принципом best effort.


Хто відповідає за наслідки втрати

Якщо втрата даних критична, це має обробляти:

Прикладна логіка

Застосунок може:

  • надіслати дані повторно
  • ігнорувати втрату
  • інтерполювати дані
  • запросити оновлений стан

UDP навмисно перекладає відповідальність на застосунок.


Чому це вважається нормальним

Для багатьох сценаріїв:

  • втрата одного пакета не критична
  • затримка гірша, ніж втрата

Приклади:

  • голос → невеликий «провал»
  • відео → пропущений кадр
  • гра → пропущене оновлення позиції

Повторна передача була б гіршою, ніж втрата.


Порівняння з TCP

  • TCP:
    • виявляє втрату
    • переотправляє дані
    • сповільнює передачу
  • UDP:
    • не виявляє втрату
    • не переотправляє
    • працює максимально швидко

Коротка відповідь

Для співбесіди
Premium

Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.