web-dev-qa-db-fra.com

Différence entre TCP et UDP?

Quelle est la différence entre TCP et UDP?

Je sais que TCP est utilisé dans le cas d'applications non critiques, et UDP, dans le cas de jeux ou d'applications nécessitant une transmission rapide des données. Je sais que TCP est utilisé pour HTTP, HTTPs, FTP, SMTP et Telnet. Je sais que UDP est utilisé pour DNS et DHCP.

Mais pourquoi? Quelles caractéristiques de TCP et de UDP le rendent utile pour leurs cas d'utilisation respectifs?

137
user749414

TCP est un flux 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, ainsi que la retransmission automatique, entraînant des retards supplémentaires et une transmission générale moins efficace que UDP.

UDP est un protocole sans connexion. La communication est datagramme orientée. 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 les communications en temps réel, où un faible 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 en diffusion. Ceci est parfois fondamental dans des cas tels que le protocole DHCP, car la machine cliente n'a toujours pas reçu d'adresse IP (il s'agit du but du protocole DHCP à négocier) et il n'y aura pas moyen d'établir un flux TCP sans l'adresse IP elle-même.

114
Heisenbug

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 flux". Le contrôle de flux détermine le moment auquel les données doivent être renvoyées et arrête le flux 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 au serveur jusqu'à ce que tout le paquet soit complet et 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 base de données, etc. UDP est couramment utilisé pour le streaming audio et vidéo. Les supports de diffusion tels que les fichiers audio Windows Media (.WMA), Real Player (.RM) et autres utilisent le protocole UDP, car il offre la vitesse! La raison pour laquelle UDP est plus rapide que TCP est qu’il n’existe aucune forme de contrôle de flux ni de correction d’erreur. Les données envoyées sur Internet sont affectées par des collisions et des erreurs seront présentes. Rappelez-vous que UDP ne concerne que la vitesse. C'est la raison principale pour laquelle le streaming multimédia n'est pas de haute qualité.

2) TCP nécessite davantage de traitement au niveau de l’interface réseau, ce qui n’est pas le cas dans UDP.

3) TCP utilise une poignée de main à 3 voies, un contrôle de congestion, un contrôle de flux et un autre mécanisme permettant d’assurer une transmission fiable.

4) UDP est principalement utilisé dans les cas où le retard de paquet est plus grave que la perte de paquet.

50
p27

Pensez à TCP comme à un enlèvement/dépôt UPS/FedEx prévu et dédié des colis entre deux sites, tandis qu'UDP équivaut à jeter une carte postale dans une boîte aux lettres.

UPS/FedEx fera tout ce qui est en son pouvoir pour s’assurer que le colis que vous expédiez y parvient, et le recevoir à temps. Avec la carte postale, vous avez de la chance si elle arrive, et elle peut arriver en panne ou en retard (combien de fois avez-vous reçu une carte postale de quelqu'un APRÈS qu'il soit rentré chez lui après les vacances?)

Le protocole TCP est aussi proche d'un protocole de livraison garanti que vous pouvez obtenir, tandis qu'UDP est simplement "au mieux".

40
Marc B

Raisons UDP est utilisé pour DNS et DHCP:

DNS - TCP nécessite 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, au cours d'un état appelé TIME_WAIT_2. Il s'agit d'une caractéristique qui empêche que des paquets répétés par erreur provenant d'une connexion précédente ne soient interprétés comme faisant partie d'une connexion en cours. La maintenance de TIME_WAIT_2 utilise 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 sur le serveur par rapport aux clients. On pensait qu'utiliser UDP, qui ne dispose ni de connexions ni d'état à maintenir sur le client ou le serveur, permettrait d'améliorer ce problème.

DHCP - DHCP est une extension de BOOTP. BOOTP est un protocole utilisé par les ordinateurs clients pour obtenir les informations de configuration d’un serveur pendant le démarrage du client. Afin de localiser le serveur, une diffusion est envoyée demandant des serveurs BOOTP (ou DHCP). Les émissions 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 pendant le démarrage du client ... et qu’il s’agit d’une période au cours de laquelle le client peut ne pas avoir la pile TCP/IP entière chargée et en cours d’exécution, le protocole UDP peut être le seul protocole que le client est prêt à gérer à ce moment. temps. Enfin, certains clients DHCP/BOOTP ont uniquement UDP intégré. 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 qu’ils ne peuvent pas exécuter TCP - mais ils doivent tout de même obtenir une adresse IP lors de l’amorçage.

Comme d'autres l'ont mentionné, le protocole UDP est également utile pour la diffusion de contenu multimédia, notamment audio. Les conversations sonnent mieux sous le décalage du réseau si vous supprimez simplement 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é autant qu'il a déjà été mis en pause. Ceci est inacceptable pour les conversations téléphoniques bidirectionnelles.

20
Heath Hunnicutt

Une des différences est en bref

UDP: Envoyer un message et ne pas regarder en arrière s'il a atteint la destination, protocole sans connexion
TCP: Envoi du message et garantie de l'arrivée au destinataire, protocole en mode connexion

15
mcaaltuntas

TCP établit une connexion avant la transmission des données, contrairement à UDP. De cette manière, UDP peut fournir une livraison plus rapide. Les applications telles que DNS et l'accès au serveur horaire utilisent donc UDP.

Contrairement à UDP, TCP utilise le contrôle de congestion. Il répond à la charge du réseau. Contrairement à UDP, il ralentit lorsque la congestion du réseau est imminente. Ainsi, des applications telles que le multimédia préférant un débit constant peuvent opter pour UDP.

De plus, UDP n'est pas fiable, il ne réagit pas aux pertes de paquets. Ainsi, les applications sensibles aux pertes telles que la transmission multimédia préfèrent UDP. Cependant, TCP est un protocole fiable. Par conséquent, les applications qui nécessitent une fiabilité, telles que le transfert Web, la messagerie électronique, le téléchargement de fichiers, préfèrent le protocole TCP.

De plus, dans Internet actuel, UDP n’est pas aussi accueillant que TCP en raison des cases du milieu. Certaines applications telles que skype sont réduites à TCP lorsque la connexion UDP est supposée être bloquée.

9
Timir

Différences courtes et simples entre les protocoles Tcp et Udp:

1) Tcp - Protocole de contrôle de transmission et Udp - Protocole de datagramme utilisateur.

2) Tcp est un protocole fiable, où comme Udp est un protocole peu fiable.

3) Tcp est un flux orienté, où Udp est un protocole orienté message.

4) Tcp est un plus lent que Udp.

2
msc
2
rapt

Courez dans ce fil et laissez-moi essayer de l'exprimer de cette façon.

TCP

poignée de main à 3 voies

Bob: Salut Amy, je voudrais te dire un secret
Amy: OK, vas-y, je suis prête
Bob: OK

Communication
Bob: 'Je', ceci est la première lettre
Amy: Première lettre reçue, merci de m'envoyer la deuxième lettre
Bob: '', c'est la deuxième lettre
Amy: Deuxième lettre reçue, merci de m'envoyer la troisième lettre
Bob: 'L', ceci est la troisième lettre
Après un moment
Bob: 'L', c'est la troisième lettre
Amy: Troisième lettre reçue, merci de m'envoyer la quatrième lettre
Bob: 'O', c'est la quatrième lettre
Amy: ...
......

poignée de main à 4 voies
Bob: Mon secret est révélé, maintenant, vous connaissez mon coeur.
Amy: OK. Je n'ai rien à dire.
Bob: OK.

UDP

Bob: J'AIME U
Amy a reçu: OVI L E

Le protocole TCP est plus fiable que le protocole UDP avec un ordre des messages constant, c’est pourquoi UDP est plus léger et plus efficace.

1
Gearon

Explication simple par analogie

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:

  1. Lettre 1 - Soyez proactif
  2. Lettre 2 - Commencez par la fin en tête ...

etc.

etc..Lettre 7 - Affûter la scie

Exigences:

Vous voulez vous assurer que votre correspondant reçoit tout vos lettres - dans l'ordre et qu'ils arrivent parfaitement . Si votre paye de 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 n’est pas bon non plus.

Voici comment nous nous assurons que nos exigences sont satisfaites:

  • Lettre de confirmation: votre correspondant envoie alors une lettre de confirmation indiquant "j'ai reçu la lettre 1". De cette façon, vous saurez que votre correspondant l'a reçu. Si une lettre n'arrive pas ou arrive en panne, vous devez vous arrêter et revenir en arrière et renvoyer cette lettre et toutes les lettres suivantes.
  • Contrôle du flux: Aux alentours de Noël, vous savez que votre correspondant recevra beaucoup de courrier. Vous ralentissez donc parce que vous ne voulez pas submerger votre correspondant. (Votre correspondant vous informe en permanence du nombre de messages non lus qui se trouvent dans la boîte aux lettres du correspondant. Si votre correspondant vous informe que la boîte de réception est sur le point d'exploser car elle est pleine, vous ralentissez l'envoi de vos lettres. ne sera pas capable de les lire.
  • Arrivée parfaite. Parfois, lorsque vous envoyez votre lettre par la poste, elle peut se déchirer ou un escargot peut en manger la moitié. Comment savez-vous que toute votre lettre est arrivée en parfait état? Bien, votre correspondant vous donnera un mécanisme par lequel vous pourrez vérifier s’ils ont la lettre complète et si c’est exactement la lettre que vous avez envoyée. (par exemple via un nombre de mots, etc.). une analogie de base.
0
BKSpurgeon