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 de la couche 4, la couche de transport du modèle OSI.
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.

Table des matières
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éro | Message ICMP |
0 | Echo Reply |
3 | Destination Unreachable |
5 | Redirect |
8 | Echo |
9 | Router Advertisement |
10 | Router Selection |
11 | Time Exceeded |
12 | Parameter Problem |
13 | Timestamp |
14 | Timestamp Reply |
20-29 | Reserved (for Robustness Experiment) |
40 | Photuris |
41 | ICMP messages utilized by experimental mobility protocols such as Seamoby |
42 | Extended Echo Request |
43 | Extended Echo Reply |
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
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.
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.
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.
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.
TCP | UDP | |
Acronymes | Transmission Control Protocol | User Datagram Protocol or Universal Datagram Protocol |
Connexion | Etablit une connexion et un flux puis les données transistent | UDP envoie les données par paquet successifs |
TCP vérifie les erreurs et récupère les erreurs. Les paquets erronés sont retransmis | UDP vérifie les erreurs mais rejette simplement les paquets erronés. Aucune récupération d’erreur | |
Utilisation | TCP 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 applicatifs | HTTP, HTTPs, FTP, SMTP, Telnet | DNS, DHCP, TFTP, SNMP, RIP, VOIP |
Transmissions des paquets de données | En 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’erreur | 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 arrivent aux destinataires |
Vitesse | TCP est lourd | UDP est léger |
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 :
- World Wide Web (HTTP, HTTPS)
- Secure Shell (SSH)
- Protocole de transfert de fichiers (FTP)
- Courriel (SMTP, IMAP / POP)
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.
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.