Причины UDP используется для DNS и DHCP:
DNS - TCP требует больше ресурсов от сервера (который прослушивает соединения), чем от клиента. В частности, когда TCP-соединение закрыто, сервер должен запоминать детали соединения (удерживая их в памяти) в течение двух минут в состоянии, известном как TIME_WAIT_2. Эта функция защищает от ошибочно повторяющихся пакетов из предыдущего соединения, которые интерпретируются как часть текущего соединения. Поддержание TIME_WAIT_2 использует память ядра на сервере. DNS-запросы невелики и часто приходят от разных клиентов. Этот шаблон использования увеличивает нагрузку на сервер по сравнению с клиентами. Считалось, что использование UDP, у которого нет соединений и нет состояния для обслуживания ни на клиенте, ни на сервере, уменьшит эту проблему.
DHCP - DHCP является расширением BOOTP. BOOTP - это протокол, который клиентские компьютеры используют для получения информации о конфигурации с сервера во время загрузки клиента. Чтобы найти сервер, отправляется широковещательная рассылка с запросом серверов BOOTP (или DHCP). Широковещательные сообщения могут быть отправлены только через протокол без установления соединения, такой как UDP. Следовательно, для BOOTP требуется, по крайней мере, один пакет UDP для широковещательной рассылки на сервере. Более того, поскольку BOOTP работает, пока клиент ... загружается, и это период времени, когда у клиента может не быть загружен и запущен весь стек TCP / IP, UDP может быть единственным протоколом, который клиент может обработать при этом. время. Наконец, некоторые клиенты DHCP / BOOTP имеют только UDP на борту. Например, некоторые IP-термостаты реализуют только UDP. Причина в том, что они построены с такими крошечными процессорами и небольшим объемом памяти, что они не могут выполнять TCP - но им все равно нужно получить IP-адрес при загрузке.
Как уже упоминалось, UDP также полезен для потоковой передачи мультимедиа, особенно аудио. Разговоры звучат лучше при отставании в сети, если вы просто отбрасываете задержанные пакеты. Вы можете сделать это с UDP, но с TCP все, что вы получаете во время задержки - это пауза, за которой следует аудио, которое всегда будет задерживаться на столько, сколько оно уже приостановило. Для двусторонних телефонных разговоров это недопустимо.