Tableau comparatif entre TCP et UDP

Tableau comparatif entre TCP et UDP
Vidéo: Quelles différences entre les protocoles TCP et UDP de la couche "transport" du modèle OSI ?

Contenu

  • Tableau de comparaison
  • Différences dans les fonctionnalités de transfert de données
  • Comment fonctionnent TCP et UDP
  • Différentes applications de TCP et UDP

Il existe deux types de trafic IP (Internet Protocol). Elles sont TCP ou Protocole de contrôle de transmission et UDP ou Protocole de datagramme utilisateur. TCP est orienté connexion - une fois la connexion établie, les données peuvent être envoyées de manière bidirectionnelle. UDP est un protocole Internet plus simple et sans connexion. Plusieurs messages sont envoyés sous forme de paquets en morceaux en utilisant UDP.

Tableau de comparaison

Tableau de comparaison TCP / UDP
TCPUDP
Acronyme deProtocole de contrôle de transmission Protocole de datagramme utilisateur ou protocole de datagramme universel
LienLe protocole de contrôle de transmission est un protocole orienté connexion. Le protocole de datagramme utilisateur est un protocole sans connexion.
FonctionAu fur et à mesure qu'un message traverse Internet d'un ordinateur à un autre. Ceci est basé sur la connexion. UDP est également un protocole utilisé dans le transport ou le transfert de messages. Ce n'est pas basé sur la connexion, ce qui signifie qu'un programme peut envoyer une charge de paquets à un autre et ce serait la fin de la relation.
UsageTCP convient aux applications qui nécessitent une fiabilité élevée et le temps de transmission est relativement moins critique. UDP convient aux applications nécessitant une transmission rapide et efficace, comme les jeux. La nature sans état d'UDP est également utile pour les serveurs qui répondent aux petites requêtes d'un grand nombre de clients.
Utilisation par d'autres protocolesHTTP, HTTPs, FTP, SMTP, Telnet DNS, DHCP, TFTP, SNMP, RIP, VOIP.
Commande de paquets de donnéesTCP réorganise les paquets de données dans l'ordre spécifié. UDP n'a pas d'ordre inhérent car tous les paquets sont indépendants les uns des autres. Si une commande est requise, elle doit être gérée par la couche application.
Vitesse de transfertLa vitesse pour TCP est plus lente que pour UDP. UDP est plus rapide car la récupération d'erreur n'est pas tentée. C'est un protocole du «meilleur effort».
FiabilitéIl y a une garantie absolue que les données transférées restent intactes et arrivent dans le même ordre dans lequel elles ont été envoyées. Il n'y a aucune garantie que les messages ou les paquets envoyés atteindront du tout.
Taille de l'en-têteLa taille de l'en-tête TCP est de 20 octets La taille de l'en-tête UDP est de 8 octets.
Champs d'en-tête communsPort source, port de destination, somme de contrôle Port source, port de destination, somme de contrôle
Streaming de donnéesLes données sont lues sous forme de flux d'octets, aucune indication distincte n'est transmise aux limites de message de signal (segment). Les paquets sont envoyés individuellement et leur intégrité est vérifiée uniquement s'ils arrivent. Les paquets ont des limites définies qui sont respectées à la réception, ce qui signifie qu'une opération de lecture sur la prise du récepteur donnera un message entier tel qu'il a été envoyé à l'origine.
PoidsTCP est lourd. TCP nécessite trois paquets pour configurer une connexion socket, avant que des données utilisateur puissent être envoyées. TCP gère la fiabilité et le contrôle de la congestion. UDP est léger. Il n'y a pas de classement des messages, pas de connexions de suivi, etc. Il s'agit d'une petite couche de transport conçue au-dessus de l'IP.
Contrôle du flux de donnéesTCP effectue le contrôle de flux. TCP nécessite trois paquets pour configurer une connexion socket, avant que des données utilisateur puissent être envoyées. TCP gère la fiabilité et le contrôle de la congestion. UDP n'a pas d'option pour le contrôle de flux
Vérification des erreursTCP vérifie les erreurs et récupère les erreurs. Les paquets erronés sont retransmis de la source à la destination. UDP vérifie les erreurs mais rejette simplement les paquets erronés. La récupération d'erreur n'est pas tentée.
Des champs1. Numéro de séquence, 2. Numéro d'accusé de réception, 3. Décalage des données, 4. Réservé, 5. Bit de contrôle, 6. Fenêtre, 7. Pointeur urgent 8. Options, 9. Remplissage, 10. Somme de contrôle, 11. Port source, 12. Port de destination 1. Longueur, 2. Port source, 3. Port de destination, 4. Somme de contrôle
ReconnaissanceSegments de remerciements Aucun accusé de réception
Poignée de mainSYN, SYN-ACK, ACK Pas de poignée de main (protocole sans connexion)

Différences dans les fonctionnalités de transfert de données

TCP assure une livraison fiable et ordonnée d'un flux d'octets de l'utilisateur au serveur ou vice versa. UDP n'est pas dédié aux connexions de bout en bout et la communication ne vérifie pas l'état de préparation du récepteur.

Fiabilité

TCP est plus fiable car il gère l'acquittement des messages et les retransmissions en cas de pièces perdues. Il n'y a donc absolument aucune donnée manquante. UDP ne garantit pas que la communication a atteint le destinataire car les concepts d'acquittement, de temporisation et de retransmission ne sont pas présents.

Commande

TCP les transmissions sont envoyées dans une séquence et elles sont reçues dans la même séquence. En cas de segments de données arrivant dans le mauvais ordre, TCP réorganise et délivre l'application. Dans le cas de UDP, la séquence des messages envoyés peut ne pas être conservée lorsqu'elle atteint l'application de réception. Il n'y a absolument aucun moyen de prédire l'ordre dans lequel le message sera reçu.

Lien

TCP est une connexion lourde nécessitant trois paquets pour une connexion socket et gère le contrôle de la congestion et la fiabilité. UDP est une couche de transport légère conçue sur une adresse IP. Il n'y a pas de connexions de suivi ou de classement des messages.

Méthode de transfert

TCP lit les données sous forme de flux d'octets et le message est transmis aux limites de segment. UDP les messages sont des paquets qui sont envoyés individuellement et à leur arrivée, leur intégrité est vérifiée. Les paquets ont des limites définies alors que le flux de données n'en a pas.

Détection d'erreur

UDP fonctionne sur la base du «meilleur effort». Le protocole prend en charge la détection d'erreur via la somme de contrôle, mais lorsqu'une erreur est détectée, le paquet est rejeté. La retransmission du paquet pour la récupération de cette erreur n'est pas tentée. En effet, UDP est généralement destiné aux applications sensibles au temps telles que les jeux ou la transmission vocale. La récupération de l'erreur serait inutile car au moment où le paquet retransmis est reçu, il ne sera d'aucune utilité.

TCP utilise à la fois la détection d'erreur et la récupération d'erreur. Les erreurs sont détectées via la somme de contrôle et si un paquet est erroné, il n'est pas acquitté par le récepteur, ce qui déclenche une retransmission par l'expéditeur. Ce mécanisme de fonctionnement est appelé accusé de réception positif avec retransmission (PAR).

Comment fonctionnent TCP et UDP

Une connexion TCP est établie via une prise de contact à trois, qui est un processus de lancement et d'acquittement d'une connexion. Une fois la connexion établie, le transfert de données peut commencer. Après la transmission, la connexion est interrompue par la fermeture de tous les circuits virtuels établis.

UDP utilise un modèle de transmission simple sans dialogues implicites pour garantir la fiabilité, l'ordre ou l'intégrité des données. Ainsi, UDP fournit un service peu fiable et les datagrammes peuvent arriver dans le désordre, sembler dupliqués ou disparaître sans préavis. UDP suppose que la vérification et la correction des erreurs ne sont pas nécessaires ou exécutées dans l'application, évitant ainsi la surcharge d'un tel traitement au niveau de l'interface réseau. Contrairement à TCP, UDP est compatible avec les diffusions par paquets (envoi à tous sur le réseau local) et la multidiffusion (envoi à tous les abonnés).

Différentes applications de TCP et UDP

La navigation Web, le courrier électronique et le transfert de fichiers sont des applications courantes qui utilisent TCP. TCP est utilisé pour contrôler la taille du segment, le taux d'échange de données, le contrôle de flux et la congestion du réseau. TCP est préférable lorsque des fonctions de correction d'erreurs sont requises au niveau de l'interface réseau. UDP est largement utilisé par les applications sensibles au temps ainsi que par les serveurs qui répondent aux petites requêtes d'un grand nombre de clients. UDP est compatible avec la diffusion de paquets - envoi à tous sur un réseau et multidiffusion - envoi à tous les abonnés. UDP est couramment utilisé dans le système de noms de domaine, la voix sur IP, le protocole de transfert de fichiers trivial et les jeux en ligne.

TCP vs UDP pour les serveurs de jeu

Pour les jeux en ligne massivement multijoueurs (MMO), les développeurs doivent souvent faire un choix architectural entre l'utilisation de connexions persistantes UDP ou TCP. Les avantages de TCP sont les connexions persistantes, la fiabilité et la possibilité d'utiliser des paquets de tailles arbitraires. Le plus gros problème avec TCP dans ce scénario est son algorithme de contrôle de congestion, qui traite la perte de paquets comme un signe de limitation de la bande passante et limite automatiquement l'envoi des paquets. Sur les réseaux 3G ou Wi-Fi, cela peut entraîner une latence importante.

Le développeur expérimenté Christoffer Lernö a pesé le pour et le contre et recommande les critères suivants pour choisir d'utiliser TCP ou UDP pour votre jeu:

  • Utilisez HTTP sur TCP pour effectuer des requêtes sans état occasionnelles, initiées par le client, lorsqu'il est possible d'avoir un retard occasionnel.
  • Utilisez des sockets TCP simples persistants si le client et le serveur envoient des paquets indépendamment mais qu'un délai occasionnel est acceptable (par exemple, poker en ligne, de nombreux MMO).
  • Utilisez UDP si le client et le serveur peuvent envoyer des paquets indépendamment et qu'un décalage occasionnel n'est pas OK (par exemple, la plupart des jeux d'action multijoueurs, certains MMO).

Quelles sont les différences entre UDP et TCP ?

TCP (Transport Control Protocol) assure un service de transmission de données fiable avec une détection et une correction d'erreurs de bout en bout. UDP (User Datagram Protocol) offre un service de transmission de datagrammes sans connection.

Pourquoi UDP et pas TCP ?

TCP est en mode orienté connexion et fiable, tandis que UDP est en mode non-connecté et peu fiable. TCP nécessite plus de traitement au niveau de l'interface réseau, ce qui n'est pas le cas en UDP.

Quand le protocole UDP est il préfère au protocole TCP ?

De ce fait, UDP est plus "rapide" et plus "léger" que TCP. Ce protocole est surtout utilisé dans les cas où la pmerte d'un paquet n'est pas critique et quand la vitesse et le temps réel priment – tels que les flux en streaming vidéo par exemple.

Quelles sont les différences et les similitudes entre les protocoles IP et TCP ?

Le protocole IP définit la manière dont les ordinateurs peuvent se transmettre des données via un ensemble routé de réseaux interconnectés. Le protocole TCP, quant à lui, définit la manière dont des applications créent des canaux de communication fiables à l'échelle de ce réseau.