Що відбувається при втраті UDP-пакета?
При втраті UDP-пакета нічого «особливого» не відбувається - він просто губиться. UDP не намагається виявити втрату і не відновлює дані.
Коротко: пакет пропав - і UDP іде далі, наче нічого не сталося.
Що саме відбувається крок за кроком
- Відправник надсилає UDP-пакет
- У мережі пакет може:
- загубитися
- бути відкинутим через перевантаження
- пошкодитися
- Отримувач пакет не отримує
- UDP нічого не робить:
- немає ACK
- немає тайм-аутів
- немає повторної передачі
На цьому все.
Що НЕ відбувається при втраті UDP-пакета
Важливо для співбесіди. UDP не робить:
- повторну відправку
- сповіщення відправника
- відновлення порядку
- компенсацію втрати
UDP працює за принципом best effort.
Хто відповідає за наслідки втрати
Якщо втрата даних критична, це має обробляти:
Прикладна логіка
Застосунок може:
- надіслати дані повторно
- ігнорувати втрату
- інтерполювати дані
- запросити оновлений стан
UDP навмисно перекладає відповідальність на застосунок.
Чому це вважається нормальним
Для багатьох сценаріїв:
- втрата одного пакета не критична
- затримка гірша, ніж втрата
Приклади:
- голос → невеликий «провал»
- відео → пропущений кадр
- гра → пропущене оновлення позиції
Повторна передача була б гіршою, ніж втрата.
Порівняння з TCP
- TCP:
- виявляє втрату
- переотправляє дані
- сповільнює передачу
- UDP:
- не виявляє втрату
- не переотправляє
- працює максимально швидко
Коротка відповідь
Для співбесідиPremium
Коротка відповідь допоможе вам впевнено відповідати на цю тему під час співбесіди.