Protocole TCP, UDP, ICMP : fonctionnement et différences

Bloqueur de pub détectée - Vous bloquez l'affichage des publicités.
Pour soutenir le site, merci de bien vouloir laisser les publicités s'afficher
Plus d'informations : Comment désactiver les bloqueurs de publicité sur un site internet

Sur les réseaux et sur internet, pour communiquer, les équipements utilisent différents protocoles.
Parmi, les plus utilisés, on trouve TCP, UDP, ICMP.

Comment fonctionnent ces protocoles réseaux ?
Quelles sont les différents ?
Et dans quel cas, on utilise l'un ou l'autre.

Cet article aborde de manière générale les protocoles TCP, UDP, ICMP afin de bien comprendre quelles sont les différences.

Protocole TCP, UDP, ICMP : fonctionnement et différences
Protocole TCP, UDP, ICMP : fonctionnement et différences

Présentation des protocoles TCP, UDP, ICMP

TCP

TCP (Transmission Control Protocol) est donc un protocole de transmission de données avec vérification des erreurs.
En cas d'erreur, TCP retransmet les paquets manquants.

Le fonctionnement est similaire à une communication téléphonique.
Vous composez le numéro puis la connexion s'établit et les données transitent dans les deux sens.
Ainsi TCP lit les données sous forme de flux d'octets et le message est transmis aux limites de segment.

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.
Si un paquet est erroné, il n'est pas acquitté par le récepteur, ce qui déclenche une retransmission par l'expéditeur.
Il embarque donc une vérification du contrôle de flux (Flow control en anglais).

TCP est utilisé par les protocoles d'application qui nécessitent une remise de messages garantie.
On l'utilise donc pour la communication de données pour les protocoles applicatifs tels que HTTP, FTP, SMTP, POP3, etc.

TCP en résumé :

  • Une connexion s'établit puis un flux de données passe
  • Vérifie la délivrance des données
  • La taille des paquets est plus important qu'en UDP
  • Consomme plus de ressources systèmes car il garde une connexion ouverte. De plus, le destinataire peut avoir besoin de réassembler les paquets afin de former le message initial (fragmentation).

Le protocole TCP est détaillé dans cet article :

UDP

UDP (User Datagram Protocol) permet d'envoyer des données sans remise de messages garantie.
Ainsi les données sont envoyées sans que l'on sache si le destinataire l'a bien reçu.

Mais surtout les messages UDP sont des paquets qui sont envoyés individuellement. Les paquets ont des limites définies alors que le flux de données n'en a pas.

UDP 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.
De ce fait, UDP est généralement destiné aux applications sensibles au temps de réponse 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é.

UDP en résumé :

  • Aucune remise de messages garantie
  • Embarque une somme de contrôle
  • Les données sont envoyés par paquet individuel. Aucune connexion persistante, ce qui libère des ressources systèmes

ICMP

ICMP (Internet Control Message Protocol) est un protocole de contrôle.
Il n'est pas conçu pour transporter des données d'application, mais plutôt des informations sur l'état du réseau lui-même.
On l'utilise donc pour recevoir des informations en cas de succès, d'erreur, perte d'une connexion TCP.

Par exemple, si un serveur ne peut ou ne veut pas accepter une connexion TCP du client, il peut répondre avec un paquet RST / ACK (Reset Acknowledgement) ou un paquet ICMP Port Unreachable, pour informer le client que sa demande de connexion avait été refusée.

Enfin une utilisation dérivée est le ping et traceroute.
Ping sonde les hôtes distants pour la réactivité et le temps d'aller-retour global des messages de sonde.

Voici les principaux type, numéro et messages ICMP.

Type et numéroMessage ICMP
0Echo Reply
3Destination Unreachable
5Redirect
8Echo
9Router Advertisement
10Router Selection
11Time Exceeded
12Parameter Problem
13Timestamp
14Timestamp Reply
20-29 Reserved (for Robustness Experiment)
40Photuris
41ICMP messages utilized by experimental mobility protocols such as Seamoby
42Extended Echo Request
43Extended Echo Reply
Liste des types, messages et codes ICMP

Protocole TCP, UDP : les différences

Les paquets TCP et UDP ont une structure et taille différentes.
Cela provient du fait que TCP stocke des drapeaux, séquence et accusé lié à son mode d'établissement de la connexion

Ainsi la taille des paquets diffère :

  • En TCP la taille de l'en-tête est de 20 octets
  • alors qu'en UDP, la taille est de 8 octets
Les différences dans la structures des paquets UDP et TCP

Ci-dessous un paquet UDP avec les adresses et ports sources et de destination.
Le TTL, taille du paquet et le checksum (somme de contrôle) s'y trouvent.

Structure d'un paquet UDP

Avec un paquet TCP, beaucoup d'informations sont présentes comme la séquence, les numéros ACK, Windows Size etc.
Ainsi la taille d'un paquet TCP est plus importante.

Structure d'un paquet TCP

Je détaille la structure d'un paquet TCP/IP dans l'article suivant :

Ainsi en résumé :

  • TCP est lourd. Cela à cause de l'établissement de la connexion qui nécessaite plusieurs échanges et paquets pour sa mise en place.
  • UDP est léger. Il n'y a pas de classement des messages, pas de connexion de suivi, etc.
TCP et UDP un mode de connexion différent

En conséquence, la vitesse de TCP est plus lente que celle d'UDP car il vérifie les erreurs et retransmet les paquets.

Le tableau comparatif UDP et TCP

Voici les principales différences dans cette comparaison entre le protocole TCP et UDP.

TCPUDP
AcronymesTransmission Control ProtocolUser Datagram Protocol or Universal Datagram Protocol
ConnexionEtablit une connexion et un flux puis les données transistentUDP envoie les données par paquet successifs
TCP vérifie les erreurs et récupère les erreurs. Les paquets erronés sont retransmisUDP vérifie les erreurs mais rejette simplement les paquets erronés. Aucune récupération d'erreur
UtilisationTCP 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.
Utiliser les protocoles applicatifsHTTP, HTTPs, FTP, SMTP, TelnetDNS, DHCP, TFTP, SNMP, RIP, VOIP
Transmissions des paquets de donnéesEn TCP, le destinataire doit réorganiser 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.
Vérifications d'erreurIl 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 arrivent aux destinataires
VitesseTCP est lourdUDP est léger
Comparatif et différence entre le protocole TCP et UDP

Dans quel cas on utilise UDP et TCP ?

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.

TCP est le mieux adapté pour être utilisé pour les applications qui nécessitent une fiabilité élevée où la synchronisation est moins préoccupante.
Par exemple :

UDP est le mieux adapté aux applications qui nécessitent rapidité et efficacité.
En effet 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.

  • Tunnel VPN
  • Vidéos en streaming
  • Jeux en ligne
  • Diffusions en direct
  • Téléchargement Bittorrent
  • Système de noms de domaine (DNS)
  • Voix sur protocole Internet (VoIP)
  • Protocole de transfert de fichiers trivial (TFTP)

Par exemple, Bittorrent utilise le protocole UDP pour transmettre et partager des fichiers sur internet.

Bittorrent utilise le protocole UDP

Notez que certains protocoles applicatifs peuvent fonctionner soit en TCP ou UDP ou peuvent mixer les deux.
Par exemple le protocole DNS ou certains VPN peuvent fonctionner en UDP ou TCP.

Liens

Vous avez trouvé cet article utile et interressant, n'hésitez pas à le partager...

Trouver la solution sur le forum d'aide

Vous êtes arrivé au terme de l'article Protocole TCP, UDP, ICMP : fonctionnement et différences mais vous n'avez pas trouvé la solution à votre problème...
Suivez ces articles du forum pour trouver une réponse ou demandez à votre tour de l'aide sur le forum