162 votes

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 en termes de temps, et que UDP est utilisé pour les jeux ou les applications qui nécessitent une transmission rapide des données. Je sais que TCP est utilisé pour HTTP, HTTPs, FTP, SMTP et Telnet. Je sais que l'UDP est utilisé pour le DNS et le DHCP.

Mais pourquoi ? Quelles sont les caractéristiques de TCP et UDP qui les rendent utiles dans leurs cas d'utilisation respectifs ?

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

128voto

Heisenbug Points 20496

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 et la retransmission automatique, ce qui entraîne des retards supplémentaires et une transmission généralement moins efficace que celle de l'IP. UDP .

UDP est un protocole sans connexion. La communication est datagramme orienté. L'intégrité est garantie uniquement sur le datagramme unique. Les datagrammes arrivent à destination et peuvent arriver dans le désordre ou ne pas arriver du tout. Il est plus efficace que TCP parce qu'il n'utilise pas de ACK . Il est généralement utilisé pour les communications en temps réel, où un petit pourcentage de taux de perte de paquets est préférable à l'overhead d'un système de gestion des paquets. TCP connexion.

Dans certaines situations UDP est utilisé car il permet la transmission de paquets par diffusion. Ceci est parfois fondamental dans des cas comme DHCP parce que la machine cliente n'a pas encore reçu un IP (il s'agit de l'adresse DHCP protocole de négociation) et il n'y aura pas de moyen d'établir une TCP sans le IP l'adresse elle-même.

12 votes

Un exemple d'utilisation d'UDP est la transmission vidéo et audio, où la perte de quelques paquets ici et là n'a généralement pas beaucoup d'importance (la couleur d'une image peut être altérée, ou une minuscule nano-seconde d'audio peut être coupée ou modifiée - ce qui n'est pas vraiment perceptible pour les humains). Bien sûr, si votre connexion est vraiment mauvaise, vous pouvez perdre tellement de paquets que la vidéo apparaît floue ou pixellisée et que le son devient flou et se coupe souvent.

57voto

p27 Points 700

De l'article de Skullbox :

TCP (Transmission Control Protocol) est le protocole le plus couramment utilisé sur Internet. La raison en est que le TCP offre une correction des erreurs. Lorsque le protocole TCP est utilisé, il y a 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 quand les données doivent être envoyées à nouveau 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 l'ensemble du paquet soit complet et identique à l'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 sur les bases de données, etc. UDP est généralement utilisé pour le streaming audio et vidéo. Les médias en continu tels que les fichiers audio Windows Media (.WMA), Real Player (.RM) et autres utilisent UDP parce qu'il offre de la vitesse ! La raison pour laquelle UDP est plus rapide que TCP est qu'il n'y a aucune forme de contrôle de flux ou de correction d'erreur. Les données envoyées sur Internet sont affectées par des collisions, et des erreurs seront présentes. N'oubliez pas que l'UDP ne s'intéresse qu'à la vitesse. C'est la principale raison pour laquelle les médias en continu ne sont pas de haute qualité.

1) TCP est orienté vers la connexion et est fiable, tandis que UDP est moins orienté vers la connexion et n'est pas fiable.

2) TCP nécessite plus de traitement au niveau de l'interface réseau, ce qui n'est pas le cas d'UDP.

3) TCP utilise une poignée de main à trois voies, un contrôle de congestion, un contrôle de flux et d'autres mécanismes pour assurer une transmission fiable.

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

1 votes

+1 Résumé raisonnablement bon. Bien que le is the most commonly used protocol on the Internet L'affirmation est discutable et dépend vraiment de la façon dont vous définissez most commonly used , protocol et the Internet . Par exemple, le protocole Internet est un prétendant plus probable à cette couronne particulière.

0 votes

-1 : La raison pour laquelle UDP est utilisé pour DHCP n'a rien à voir avec le retard ou la perte de paquets.

2 votes

Lorsqu'on envoie beaucoup de données sur un canal clair, le TCP est souvent plus rapide que l'UDP. La raison pour laquelle UDP est utilisé pour des choses comme le streaming audio ou vidéo en direct est que lorsqu'un paquet TCP manque, l'application réceptrice ne verra rien de plus jusqu'à ce que les données manquantes aient été retransmises et reçues avec succès. Dans de nombreuses applications de streaming, les données qui arrivent en retard sont inutiles. Il est donc inutile de tout retarder en attendant une retransmission qui sera de toute façon inutile.

43voto

Marc B Points 195501

Pensez au TCP comme à un ramassage/dépôt de colis UPS/FedEx programmé entre deux endroits, tandis que l'UDP est l'équivalent d'une carte postale dans une boîte aux lettres.

UPS/FedEx feront tout leur possible pour s'assurer que le paquet que vous envoyez par courrier arrive à bon port, et à temps. Avec la carte postale, vous avez de la chance si elle arrive tout court, et elle peut arriver hors service ou en retard (combien de fois avez-vous reçu une carte postale de quelqu'un APRÈS son retour de vacances) ?

Le protocole TCP est le plus proche possible d'un protocole de livraison garantie, tandis que le protocole UDP n'est qu'un "best effort".

1 votes

Réponse assez décente. J'ajouterais que dans un flux TCP, la destination accuse réception des paquets et que les paquets corrompus ou manquants sont renvoyés par l'expéditeur. En UDP, les paquets sont envoyés et la destination les reçoit dans n'importe quel ordre et n'accuse pas réception.

2 votes

Une analogie un peu trompeuse, peut-être plus adaptée à QoS.

15 votes

J'aime beaucoup l'analogie, mais une chose que cette réponse déforme légèrement est la vitesse. Elle donne l'impression que TCP est plus rapide, alors qu'en réalité UDP l'est parce qu'il y a moins de surcharge.

23voto

Heath Hunnicutt Points 9801

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.

9voto

Timir Points 94

Le protocole TCP établit une connexion avant la transmission effective des données, ce qui n'est pas le cas du protocole UDP. De cette façon, UDP peut fournir une livraison plus rapide. Des applications comme le DNS, l'accès au serveur de temps, utilisent donc UDP.

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

De plus, UDP n'est pas fiable, il ne réagit pas aux pertes de paquets. Les applications sensibles aux pertes, comme la transmission multimédia, préfèrent donc UDP. Par contre, TCP est un protocole fiable, donc, les applications qui nécessitent de la fiabilité comme le transfert web, le courriel, le téléchargement de fichiers préfèrent TCP.

De plus, dans l'Internet d'aujourd'hui, l'UDP n'est pas aussi bien accueilli que le TCP en raison des boîtes intermédiaires. Certaines applications comme Skype se rabattent sur TCP lorsque la connexion UDP est supposée être bloquée.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X