UDP и транспорт без установления соединения
Протокол пользовательских дейтаграмм (User Datagram Protocol) — это облегченный транспорт без установления соединения в Интернете, который добавляет к услуге IP «наилучших усилий» лишь мультиплексирование процессов и необязательную контрольную сумму. Таким образом, приложения получают минимальные накладные расходы и задержки ценой гарантий надежности.
Definition
Протокол пользовательских дейтаграмм (User Datagram Protocol) — это протокол транспортного уровня без установления соединения, который обеспечивает ориентированную на сообщения доставку «наилучших усилий» между процессами, добавляя мультиплексирование на основе портов и необязательную контрольную сумму к сетевому уровню, но не предлагая надежности, упорядочивания, управления потоком или управления перегрузками.
Scope
Эта тема охватывает транспорт без установления соединения: формат сегмента UDP, его мультиплексирование и демультиплексирование с помощью номеров портов, его необязательную контрольную сумму, а также причины, по которым приложение может выбрать его вместо TCP — отсутствие задержки при установлении соединения, отсутствие регулирования перегрузок, более тонкий контроль над тем, что и когда отправлять, и малые накладные расходы на каждый пакет. В ней рассматриваются типичные приложения, основанные на UDP, и обязанности (такие как обеспечение надежности или контроль скорости), которые переходят к приложению. Она исключает механизмы надежности и управления перегрузками TCP.
Core questions
- Какие минимальные услуги UDP добавляет поверх IP?
- Как UDP мультиплексирует и демультиплексирует данные, используя номера портов?
- Почему приложение может предпочесть UDP протоколу TCP?
- Какие обязанности, такие как надежность и контроль скорости, переходят к приложению при использовании UDP?
- Какие виды приложений обычно используют UDP?
Key concepts
- служба без установления соединения
- ориентация на дейтаграммы (сообщения)
- формат сегмента UDP
- мультиплексирование/демультиплексирование на основе портов
- необязательная контрольная сумма
- низкие накладные расходы и задержка
- отсутствие управления перегрузками
- надежность на уровне приложения
Key theories
- Минимальная служба без установления соединения
- UDP предоставляет приложениям службу дейтаграмм IP «наилучших усилий» практически без изменений, добавляя только мультиплексирование по порту и необязательную контрольную сумму, поэтому он не имеет установки соединения, состояния и автоматического восстановления — обменивая гарантии на простоту и низкую задержку.
- Транспорт, управляемый приложением
- Избегая управления перегрузками и надежности TCP, UDP дает приложению прямой контроль над временем и тем, что нужно повторно передать, что подходит для протоколов реального времени и пользовательских протоколов, но обязывает приложение обрабатывать потери и избегать перегрузки самой сети.
Clinical relevance
UDP лежит в основе служб, где низкая задержка или тонкий контроль важнее гарантированной доставки: запросы DNS, голосовая и видеосвязь в реальном времени, онлайн-игры и управление сетью. Новые транспортные протоколы, такие как QUIC, построены поверх UDP именно для получения контроля над транспортом при обходе ограничений TCP, что делает транспорт без установления соединения центральным элементом современной сетевой инфраструктуры с низкой задержкой.
History
UDP был описан в RFC 768 (1980) как минимальный транспорт для приложений, которым не требовались механизмы TCP, когда TCP и IP были разделены на отдельные протоколы. Он остался практически неизменным, и его роль возросла по мере распространения приложений, чувствительных к задержкам, а также по мере того, как разработчики создавали на его основе новые транспортные функции, включая протокол QUIC.
Key figures
- Jon Postel
- James F. Kurose
- Keith W. Ross
Related topics
Seminal works
- rfc768
- kurose2021
Frequently asked questions
- Если UDP ненадежен, зачем его использовать?
- Для многих приложений быстрая доставка важнее идеальной доставки. Голосовая и видеосвязь в реальном времени могут допускать случайные потери, но не задержки; DNS выигрывает от быстрого однократного запроса; а некоторые приложения реализуют собственную надежность. Отсутствие установки соединения и регулирования перегрузок в UDP обеспечивает им более низкую задержку и больший контроль.
- Делает ли UDP что-либо, помимо IP?
- Да, но немногое. UDP добавляет номера портов, чтобы данные достигали правильного процесса приложения на хосте (мультиплексирование и демультиплексирование), и необязательную контрольную сумму для обнаружения повреждений. Помимо этого, он оставляет доставку IP «наилучших усилий» без установления соединения неизменной.