Les raisons pour lesquelles UDP est utilisé pour le DNS et le DHCP :
DNS - Le protocole TCP exige plus de ressources du serveur (qui écoute les connexions) que du client. En particulier, lorsque la connexion TCP est fermée, le serveur doit se souvenir des détails de la connexion (en les gardant en mémoire) pendant deux minutes, dans un état appelé TIME_WAIT_2. Cette caractéristique permet d'éviter que des paquets répétés par erreur d'une connexion précédente soient interprétés comme faisant partie d'une connexion en cours. Le maintien de TIME_WAIT_2 consomme de la mémoire du noyau sur le serveur. Les requêtes DNS sont petites et arrivent fréquemment de nombreux clients différents. Ce modèle d'utilisation exacerbe la charge du serveur par rapport à celle des clients. On pensait que l'utilisation d'UDP, qui n'a pas de connexions ni d'état à maintenir sur le client ou le serveur, améliorerait ce problème.
DHCP - DHCP est une extension de BOOTP. BOOTP est un protocole que les ordinateurs clients utilisent pour obtenir des informations de configuration d'un serveur, pendant que le client démarre. Afin de localiser le serveur, une diffusion est envoyée pour demander les serveurs BOOTP (ou DHCP). Les diffusions ne peuvent être envoyées que par un protocole sans connexion, tel que UDP. Par conséquent, BOOTP a besoin d'au moins un paquet UDP pour la diffusion de la localisation du serveur. De plus, comme BOOTP s'exécute pendant que le client... démarre, et qu'il s'agit d'une période pendant laquelle le client peut ne pas avoir chargé et exécuté toute sa pile TCP/IP, UDP peut être le seul protocole que le client est prêt à gérer à ce moment-là. Enfin, certains clients DHCP/BOOTP n'ont que UDP à bord. Par exemple, certains thermostats IP n'implémentent que le protocole UDP. La raison en est qu'ils sont construits avec des processeurs si petits et une mémoire si faible qu'ils sont incapables d'exécuter le protocole TCP - mais ils ont quand même besoin d'obtenir une adresse IP au démarrage.
Comme d'autres l'ont mentionné, UDP est également utile pour la diffusion de médias en continu, en particulier de l'audio. Les conversations sonnent mieux en cas de décalage du réseau si vous laissez simplement tomber les paquets retardés. Vous pouvez le faire avec UDP, mais avec TCP, tout ce que vous obtenez pendant le décalage est une pause, suivie d'un son qui sera toujours retardé d'autant qu'il a déjà été mis en pause. Pour les conversations téléphoniques à double sens, c'est inacceptable.
13 votes
Et ceci ( skullbox.net/tcpudp.php ) - qui était le premier résultat de Google - n'était pas assez clair ? Qu'est-ce qui était déroutant ? Peut-être que ceci est mieux ? tcpipguide.com/free/
1 votes
Je suis vraiment curieux de savoir pourquoi cette question a obtenu (au moment de la rédaction) 3 votes positifs. La première phrase n'a même pas de sens et il y a beaucoup de matériel disponible sur ce sujet si on fait des recherches.
0 votes
Duplicata possible de Quand est-il approprié d'utiliser UDP au lieu de TCP ?
23 votes
@MattH : 1) C'est une bonne question, bien qu'assez large et un double déjà bien répondu. 2) Vous aviez plus qu'assez de réputation pour corriger la coquille dans la première phrase. 3) Il n'est pas pertinent que l'information à ce sujet existe ailleurs. Stack Overflow vise à devenir un dépôt de connaissances et répond aux questions de manière canonique. ici .
2 votes
Il est intéressant de constater que presque personne ne mentionne que le DHCP utilise la diffusion, mais tout le monde pense que la "réponse" concerne la garantie de livraison et de retransmission.
0 votes
Pour info, le DNS utilise à la fois TCP et UDP.
3 votes
Pour tous ceux qui liront ces lignes à l'avenir, le site Skullbox mentionné ci-dessus contient un MALWARE selon Google (il m'a arrêté lorsque j'ai cliqué dessus). Je conseille de ne pas y aller.