Quelle est la différence entre TCP et UDP?
Je sais que le protocole TCP est utilisé dans le cas des applications non ponctuelles et que le protocole UDP est utilisé pour les jeux ou les applications nécessitant une transmission rapide des données. Je sais que TCP est utilisé pour HTTP, HTTP, FTP, SMTP et Telnet. Je sais que UDP est utilisé pour DNS et DHCP.
Mais pourquoi? Quelles sont les caractéristiques de TCP et UDP qui le rendent utile pour leurs cas d’utilisation respectifs?
TCP
est un stream orienté connexion sur un réseau IP. Il garantit que tous les paquets envoyés atteindront la destination dans le bon ordre. Cela implique l’utilisation de paquets d’accusé de réception renvoyés à l’expéditeur et une retransmission automatique, entraînant des retards supplémentaires et une transmission moins efficace que l’ UDP
.
UDP
est un protocole sans connexion. La communication est orientée datagramme . L’intégrité est garantie uniquement sur le datagramme unique. Les datagrammes arrivent à destination et peuvent arriver en panne ou ne pas arriver du tout. Il est plus efficace que TCP
car il utilise non ACK . Il est généralement utilisé pour la communication en temps réel, où un petit pourcentage du taux de perte de paquets est préférable à la surcharge d’une connexion TCP
.
Dans certaines situations, UDP
est utilisé car il permet la transmission de paquets de diffusion. Ceci est parfois fondamental dans les cas comme DHCP
protocole DHCP
, car la machine cliente n’a toujours pas reçu d’adresse IP
(il s’agit du DHCP
négociation DHCP
) et aucun moyen d’établir un stream TCP
sans l’adresse IP
elle-même.
De l’article de Skullbox:
TCP (Transmission Control Protocol) est le protocole le plus couramment utilisé sur Internet. La raison en est que TCP offre une correction d’erreur. Lorsque le protocole TCP est utilisé, il existe une “livraison garantie”. Cela est dû en grande partie à une méthode appelée “contrôle de stream”. Le contrôle de stream détermine le moment auquel les données doivent être renvoyées et arrête le stream de données jusqu’à ce que les paquets précédents soient transférés avec succès. Cela fonctionne car si un paquet de données est envoyé, une collision peut se produire. Lorsque cela se produit, le client demande à nouveau le paquet du serveur jusqu’à ce que le paquet entier soit complet et soit identique à son original.
UDP (User Datagram Protocol) est un autre protocole couramment utilisé sur Internet. Cependant, UDP n’est jamais utilisé pour envoyer des données importantes telles que des pages Web, des informations de firebase database, etc. UDP est couramment utilisé pour le streaming audio et vidéo. Les supports de diffusion en continu tels que les fichiers audio Windows Media (.WMA), Real Player (.RM) et autres utilisent le protocole UDP, car il offre une rapidité! La raison pour laquelle UDP est plus rapide que TCP est qu’il n’existe aucune forme de contrôle de stream ou de correction d’erreur. Les données envoyées sur Internet sont affectées par des collisions et des erreurs sont présentes. Rappelez-vous que UDP ne concerne que la vitesse. C’est la principale raison pour laquelle les médias en continu ne sont pas de haute qualité. 1) TCP est orienté connexion et fiable où UDP est moins connecté et moins fiable.
2) TCP nécessite davantage de traitement au niveau de l’interface réseau, contrairement à UDP.
3) TCP utilise, poignée de main 3 voies, contrôle de congestion, contrôle de stream et d’autres mécanismes pour assurer la transmission fiable.
4) UDP est principalement utilisé dans les cas où le délai de transmission des paquets est plus grave que la perte de paquets.
Considérez TCP comme une collecte / remise de paquets UPS / FedEx dédiée et programmée entre deux emplacements, tandis que UDP équivaut à lancer une carte postale dans une boîte aux lettres.
UPS / FedEx fera son possible pour s’assurer que le colis que vous expédiez arrive et arrive à temps. Avec la carte postale, vous avez de la chance si elle vous parvient et elle peut arriver en panne ou en retard (combien de fois avez-vous reçu une carte postale de quelqu’un APRÈS son retour de vacances?)
TCP est aussi proche d’un protocole de livraison garanti que possible, alors que le protocole UDP n’est que le meilleur effort.
Raisons UDP est utilisé pour DNS et DHCP:
DNS – TCP requirejs plus de ressources du serveur (qui écoute les connexions) que du client. En particulier, lorsque la connexion TCP est fermée, le serveur doit mémoriser les détails de la connexion (en les conservant en mémoire) pendant deux minutes, dans un état appelé TIME_WAIT_2. Ceci est une fonctionnalité qui défend contre les paquets répétés de manière erronée d’une connexion précédente interprétée comme faisant partie d’une connexion en cours. La maintenance de TIME_WAIT_2 utilise la mémoire du kernel sur le serveur. Les requêtes DNS sont petites et arrivent fréquemment de nombreux clients différents. Ce modèle d’utilisation aggrave la charge sur le serveur par rapport aux clients. On pensait que l’utilisation du protocole UDP, qui n’a aucune connexion et aucun é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 à partir d’un serveur, au démarrage du client. Afin de localiser le serveur, une diffusion est envoyée pour demander des serveurs BOOTP (ou DHCP). Les diffusions ne peuvent être envoyées que via un protocole sans connexion, tel que UDP. Par conséquent, BOOTP nécessitait au moins un paquet UDP, pour la diffusion de localisation de serveur. De plus, étant donné que BOOTP est en cours d’exécution alors que le client … démarre et que le client n’a peut-être pas toute la stack TCP / IP chargée et en cours d’exécution, UDP peut être le seul protocole prêt à être utilisé par le client. temps. Enfin, certains clients DHCP / BOOTP ne disposent que du protocole UDP. Par exemple, certains thermostats IP implémentent uniquement le protocole UDP. La raison en est qu’ils sont construits avec des processeurs si minuscules et peu de mémoire que le TCP ne peut pas les exécuter. Pourtant, ils doivent toujours obtenir une adresse IP au démarrage.
Comme d’autres l’ont mentionné, UDP est également utile pour la diffusion multimédia en continu, en particulier l’audio. Les conversations ont un meilleur son en cas de retard du réseau si vous déposez simplement les paquets retardés. Vous pouvez le faire avec UDP, mais avec TCP, tout ce que vous obtenez pendant le retard est une pause, suivi de l’audio qui sera toujours retardé autant qu’il a déjà fait une pause. Pour les conversations téléphoniques de type bidirectionnel, cela est inacceptable.
L’une des différences est courte
UDP : Envoyer un message et ne pas regarder en arrière s’il a atteint la destination, protocole sans connexion
TCP : Envoyer un message et garantir l’atteinte de la destination, protocole orienté connexion
TCP établit une connexion avant que la transmission de données proprement dite ait lieu, contrairement à UDP. De cette manière, UDP peut fournir une livraison plus rapide. Les applications telles que DNS, l’access au serveur de temps utilisent donc UDP.
Contrairement à UDP, TCP utilise le contrôle de congestion. Il répond à la charge du réseau. Contrairement au protocole UDP, il ralentit lorsque la congestion du réseau est imminente. Ainsi, les applications telles que le multimédia préférant un débit constant pourraient être destinées au protocole UDP.
De plus, UDP n’est pas fiable, il ne réagit pas aux pertes de paquets. Ainsi, les applications sensibles à la perte telles que la transmission multimédia préfèrent UDP. Cependant, TCP est un protocole fiable, de sorte que les applications nécessitant une fiabilité telle que le transfert Web, le courrier électronique ou le téléchargement de fichiers préfèrent le protocole TCP.
De plus, dans Internet d’aujourd’hui, le protocole UDP n’est pas aussi accueillant que TCP en raison des boîtiers intermédiaires. Certaines applications, telles que skype, basculent vers TCP lorsque la connexion UDP est supposée être bloquée.
La loi des abstractions qui fuient par Joel Spolsky
http://www.joelonsoftware.com/articles/LeakyAbstractions.html
Différences courtes et simples entre le protocole TCP et UDP:
1) protocole TCP – Transmission control et Udp – User datagram protocol.
2) Tcp est un protocole fiable, où Udp est un protocole peu fiable.
3) Tcp est un stream orienté où Udp est un protocole orienté message.
4) Tcp est plus lent que Udp.
TCP est comme ça.
Imaginez que vous ayez un correspondant sur Mars (nous avons communiqué avec des lettres écrites dans le bon vieux temps avant Internet).
Vous devez envoyer à votre correspondant les sept habitudes de personnes très efficaces. Vous décidez donc de l’envoyer en sept lettres distinctes:
etc.
etc.Letter 7 – Aiguiser la scie
Vous voulez vous assurer que votre correspondant reçoit toutes vos lettres – dans l’ordre et qu’elles arrivent parfaitement . Si le paiement de votre stylo reçoit la lettre 7 avant la lettre 1, ce n’est pas bon. Si votre correspondant reçoit toutes les lettres sauf la lettre 3, cela ne va pas non plus.
Voici comment nous nous assurons que nos exigences sont satisfaites: