Question Quelle est la différence entre UDP et TCP?


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?


44
2018-05-16 20:25


origine




Réponses:


TCP est soutenu par des acks et des tentatives pour vous assurer que vos données se trouvent 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.

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


51
2018-05-16 20:30



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
+1 Juste pour ajouter, quiconque recherchant une compréhension plus approfondie devrait 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


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: orienté connexion
    UDP: sans connexion
  • Commandé:
    TCP: l'ordre de réception du message est garanti
    UDP: la commande n'est pas garantie
  • Poids du protocole:
    TCP: poids lourd, à cause de la surcharge de connexion / commande
    UDP: léger, très peu de frais généraux
  • Les 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 en lecture.

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:

TCP frame

Voici la structure de trame UDP, beaucoup plus simple:

UDP frame

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


71
2018-05-16 20:38



+1 - cela m'a aidé et j'en sais un peu. Merci! - tomjedrz
@splattne - ordre du message le reçu est garantie, pas de 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
ces images sont mortes. - strugee
Pouvez-vous s'il vous plaît poster de nouvelles images? - user6607


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 de ressources réseau ou système.


42
2018-06-02 16:20



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
Dans le cas du protocole TCP, vous ne récupérez pas le papier manqué: vous jetez des copies exactes du même papier encore et encore jusqu'à ce qu'il tombe dans le bac. Il y aurait un gaspillage de papier, même les paquets TCP renvoyés entraîneraient un gaspillage de ressources réseau ou système. - nixnotwin


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.


7
2018-05-16 20:34





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.


3
2018-05-16 21:12



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
en fait, vous l'avez changé en TFPT plutôt qu'en TFTP ... Malheureusement, j'ai encore trop peu de représentants pour le réparer. - Peter Hansen
@ peter-hansen merci, a corrigé l'erreur. - hayalci


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.


2
2018-06-20 13:00





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


2
2018-06-17 20:24



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). - Anonymous
@ Anonymous - Vous avez essentiellement reformulé ce que j'ai dit ci-dessus. Comment je me trompe? - J. Polfer
Je pense que vous constaterez tous les deux qu’IP est le cadre sous-jacent (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 de base, etc., utilisent un protocole au-dessus de l'IP (l'autre principal, ICMP). - Lee B


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. Ceux qui utilisent UDP sont généralement liés au streaming, ou à des choses très simples qui favorisent les protocoles légers / la rapidité par rapport à la fiabilité (DNS et NTP en particulier). Notez qu'il existe aussi d'autres protocoles que TCP et UDP - ICMP, protocoles de tunneling, etc.


1
2018-04-25 23:37





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.


1
2017-11-17 10:30