Quelle est la différence entre UDP et TCP?

46

Mon routeur a deux protocoles (et une option "les deux") que je peux sélectionner lors de la configuration du transfert de port: UDP et TCP. Quelle est la différence entre ces deux protocoles et quand choisiriez-vous l'un par rapport à l'autre pour le transfert de port?

Gars
la source

Réponses:

51

TCP est soutenu par des acks et des tentatives pour vous assurer que vos données arrivent là où elles vont. UDP est sans connexion et "feu et oublie". Le format UDP est principalement utilisé pour les applications de type diffusion en continu. Si vous perdez certaines données, vous n'avez pas besoin de les envoyer à nouveau.

Celui que vous utilisez dépend de l'application. Par exemple, un serveur Web utilise TCP.


la source
3
Cela a du sens - donc, si vous diffusez une vidéo en streaming, il est inutile de renvoyer une image manquante plus tard, car vous avez déjà dépassé ce point. Merci
Guy
15
+1 Juste pour ajouter, tous ceux qui recherchent une compréhension plus approfondie devraient lire l'un des excellents livres de W. Richard Stevens sur le sujet. "TCP / IP Illustrated, v1" et "Programmation réseau UNIX" constituent d'excellents tutoriels et références.
Murali Suriar
73

Vous pouvez trouver un bon résumé ici:

Quelle est la différence entre les protocoles Internet UDP et TCP?

Les protocoles TCP et UDP fonctionnent tous deux sur le modèle TCP / IP de la couche de transport, mais leur utilisation est très différente.

Les différences les plus importantes sont:

  • Fiabilité :
    TCP:
    UDP orienté connexion: sans connexion
  • Ordonné :
    TCP: l'ordre de réception du message est garanti
    UDP: l'ordre n'est pas garanti
  • Poids du protocole :
    TCP: poids lourd, en raison de la surcharge de connexion / commande
    UDP: léger, très peu de surcharge
  • Paquets :
    TCP: diffusion en continu, les données sont lues comme un "flux", sans que l'on puisse distinguer où un paquet se termine et où un autre commence. Il peut y avoir plusieurs paquets par appel en lecture.
    UDP: datagrammes, un paquet par un appel lu.

Cadre cadre

Lorsque les données sont envoyées sur le réseau, elles doivent être encapsulées dans des "cadres". Il existe différentes méthodes d'encapsulation en fonction du protocole et de la topologie utilisés. Les images suivantes montrent les différences entre les structures de trame TCP et UDP.

Voici la structure de trame TCP:

Cadre TCP

Voici la structure de trame UDP, beaucoup plus simple:

Cadre UDP

Les protocoles typiques qui utilisent TCP sont HTTP, FTP et SMTP. DNS et DHCP sont des exemples de protocoles utilisant UDP.

éclabousser
la source
@splattne - L'ordre de réception du message est une garantie et non une transmission
Alnitak,
@Alnitak: bien sûr, vous avez raison. Je voulais dire que le reçu est garanti dans l'ordre de transmission. Je vais mettre à jour pour que ce soit clair.
Splattne
43

Et l'explication au niveau du PDG:

UDP est lorsque vous jetez votre papier dans la direction générale de la corbeille.

TCP est quand il manque, vous jetez des copies exactes du même papier encore et encore jusqu'à ce qu'il tombe dans la corbeille. Il y aurait un gaspillage de papier, même les paquets TCP renvoyés entraîneraient un gaspillage des ressources du réseau ou du système.

les pages
la source
1
C'est une très bonne explication du "niveau du PDG" - j'aime ça!
Keithius
Je ne suis pas un PDG, mais pourquoi personne ne me l'a dit plus tôt! : p
Nicolas Dorier
C'est génial!
Shylent
7

TCP et UDP sont deux protocoles qui s'exécutent sur le dessus de l'IP. La livraison est garantie par TCP et non par UDP. Vous choisirez l’un ou l’autre pour le transfert de port en fonction du service que vous essayez de transférer. HTTP, par exemple, est TCP. Si vous ne savez pas quel protocole le service que vous essayez de transférer est le protocole TCP.

Brian
la source
3

Pour répondre à une autre partie de votre question, vous devez transmettre les utilisations de votre application. Pour transférer le trafic HTTP, sélectionnez TCP. Pour transférer le trafic TFTP, sélectionnez UDP. Les programmes P2P utilisent principalement TCP et UDP, alors transmettez-les tous les deux.

Tout dépend du protocole et du programme que vous utilisez.

Hayalci
la source
vous n'avez pas tout à fait raison. Le DNS utilise également TCP / 53, pas si souvent mais quand même [par exemple. pour le transfert de zone].
pqd
Oui. En outre, il est tout à fait valide d’envoyer des requêtes DNS régulières sur TCP. J'ai changé l'exemple en TFTP, qui utilise exclusivement UDP.
hayalci
2

Outre les différences mentionnées jusqu'à présent, TCP fournit également

contrôle de flux. À l'aide d'un mécanisme de fenêtre, le destinataire limite le nombre d'octets (octets) qu'il souhaite recevoir de l'expéditeur avant que celui-ci ne doive attendre l'autorisation de transmettre davantage de données. La taille de la fenêtre peut être modifiée par le destinataire au cours de la conversation. Cela permet à un destinataire de «ralentir» le débit de données provenant d'un expéditeur: UDP ne le permet pas et tout ce qu'un destinataire peut faire est de jeter les données qu'il ne peut ni mettre en mémoire tampon ni traiter à l'arrivée.

certaines installations plus techniques telles que l'accusé de réception non contigu (utilise des accusés de réception sélectifs pour permettre à l'expéditeur de ne retransmettre qu'une trame manquante plutôt que la trame manquante et les suivantes que le destinataire a déjà mais ne peut pas accuser de manière habituelle), la gestion de la congestion et retransmission adaptative (ajustement du temporisateur qui décide du délai de renvoi d'une trame transmise lorsqu'un accusé de réception n'est pas reçu). Celles-ci ne concernent pas UDP mais aident TCP à fournir des services supplémentaires sur UDP sans augmenter considérablement la charge du réseau pour le même volume de charge utile.

mas
la source
2

TCP s'efforce de s'assurer que les données sont bien transmises au destinataire. UDP non.

J. Polfer
la source
Faux. Le protocole IP n'est pas fiable et des pertes de données peuvent survenir. TCP s'efforce de garantir que les données envoyées (qui sont divisées en petites parties et envoyées via des paquets IP) parviendront au destinataire (en renvoyant éventuellement de petites parties si nécessaire).
Anonyme le
@ Anonymous - Vous avez essentiellement rappelé ce que j'ai dit ci-dessus. Comment je me trompe?
J. Polfer
Je pense que vous constaterez tous les deux qu’IP est l’infrastructure sous-jacente (pile) et le protocole de communication de base utilisé par UDP et TCP. Vous ne pouvez pas réellement communiquer de données utiles sur Internet en utilisant JUST IP. Autant que je sache, même les pings élémentaires, etc. utilisent un protocole au-dessus de l'IP (l'autre principal, ICMP).
Lee B
1

Peu importe toutes les réponses qui expliquent l’un par rapport à l’autre. Pour les besoins de la configuration d’un transfert de port, les règles sont assez simples: vous devez choisir TCP, sauf si la documentation du protocole / de l’application que vous utilisez dit d’utiliser UDP. Celles qui utilisent UDP sont généralement liées au streaming, ou à des choses très simples qui favorisent les protocoles légers / la rapidité par rapport à la fiabilité (notamment DNS et NTP). Notez qu'il existe aussi d'autres protocoles que TCP et UDP - ICMP, protocoles de tunneling, etc.

Lee B
la source
1

Plus un protocole est connu, plus il y a de routeurs sur le chemin qui intervient avec le protocole. Envoyez des paquets TCP, et il y a de fortes chances pour que les paquets reçus soient fortement mutilés. UDP n'est généralement pas si malmené et les 254 autres protocoles de paiement IP ne sont généralement pas modifiés.


la source
0

Protocole de datagramme utilisateur (UDP)

Il fait partie des protocoles de base de la suite de protocoles Internet. Les programmes sur les ordinateurs en réseau peuvent envoyer des messages courts, parfois appelés datagrammes. UDP ne garantit aucune fiabilité (il arrive que les datagrammes arrivent en panne, soient dupliqués ou manquent sans préavis). Le fait qu'aucune vérification ne soit faite pour vérifier que tous les paquets sont réellement livrés est effectué, UDP se révèle plus rapide et plus efficace pour les applications qui n'ont pas besoin d'une livraison garantie. UDP trouve ses utilisations dans de telles situations:

Applications sensibles au temps. Les problèmes dus aux paquets retardés sont évités

Il est également utile pour les serveurs qui répondent à de petites requêtes émanant d’un grand nombre de clients. UDP prend en charge la diffusion par paquets (transmise à tous sur le réseau local) et la multidiffusion (transmise à tous les abonnés).

Protocole de contrôle de transmission (TCP)

Il est souvent appelé TCP / IP en raison de l'importance de ce protocole dans Internet Protocol Suite. Le protocole TCP fonctionne à un niveau supérieur et concerne uniquement les deux systèmes finaux (par exemple, entre un navigateur Web et un serveur Web). TCP fournit une transmission séquentielle et fiable d'un flux de données d'un programme situé sur un ordinateur à un autre programme installé sur un autre ordinateur. Les utilisations courantes de TCP regroupent le support e-mailing, le transfert de fichiers et les applications Web. Parmi ses tâches de gestion, TCP contrôle la taille des messages, la vitesse à laquelle les messages sont échangés et la congestion du trafic réseau. Quant à l’IP, elle traite les transmissions de bas niveau d’un ordinateur à l’autre en tant que message transféré sur Internet.


la source
0

Les deux sont des protocoles de réseau fondés sur un protocole Internet ou IP. Le protocole Internet est le principal protocole d'Internet et permet, par exemple, de naviguer sur le Web. C'est pourquoi vous verrez souvent ces protocoles écrits en tant que TCP / IP ou UDP / IP. Ce sont en réalité des protocoles essentiels d'Internet.

Dans les deux cas, vos données sont divisées en fragments appelés paquets. TCP garantit que ces paquets arrivent à leur destination, dans le bon ordre et sans erreur.

UDP, d'autre part, ne garantit pas qu'un paquet de données arrivera même. Cela garantira seulement que si cela arrive, ce sera sans erreur.

En règle générale, d'autres protocoles s'exécutent sur TCP et UDP et sont appelés protocoles d'application, car ils fonctionnent dans une application et non dans le système d'exploitation. Votre navigation Web utilise le protocole HTTP qui utilisera le protocole TCP.

Les recherches de noms de domaine ou les requêtes DNS utilisent souvent UDP mais peuvent également utiliser TCP. Un certain nombre de services de diffusion en continu utilisent UDP sous d'autres protocoles d'application.

J'espère que cela répond à votre question dans un anglais plus simple.

Mat
la source