Académique Documents
Professionnel Documents
Culture Documents
Les deux protocoles de la suite de protocoles TCP/IP les plus couramment employés sont le protocole
TCP (Transmission Control Protocol) et le protocole UDP (User Datagram Protocol). Ces deux
protocoles gèrent les communications de nombreuses applications. Ce sont les fonctions spécifiques
implémentées par chaque protocole qui les différencient.
4. Le protocole TCP
Au niveau de la couche transport, chaque ensemble de blocs (segment) transitant entre une
application source et une application de destination est appelé une conversation. Pour identifier chaque
segment de données, la couche transport ajoute un en-tête contenant des données. Ce sont les valeurs
contenues dans ces champs qui permettent aux différents protocoles de la couche transport d’exécuter
des fonctions diverses.
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31
Numéro d'ordre
Décalage
Réservé URG ACK PSH RST SYN FIN Fenêtre
données
Options Remplissage
Données
5
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP
Avec
1. Port Source (16 bits): Port relatif à l'application en cours sur la machine source.
2. Port Destination (16 bits): Port relatif à l'application en cours sur la machine de destination.
Ces champs servent à identifier les extrémités de la connexion. L’affectation des numéros de port
s’effectue de différentes façons selon que le message est une requête ou une réponse. Les processus
serveur se voient attribuer des numéros de port statiques, les clients, quand a eux, choisissent
dynamiquement un numéro de port pour chaque conversation.
Ports réservés (numéros 0 à 1023) : Ces numéros sont réservés à des services et applications. Ils sont
généralement réservés à des applications de type HTTP (serveur Web), POP3/SMTP (serveur de
messagerie) et Telnet.
Ports inscrits (numéros 1024 à 49151) : Ces numéros de port sont affectés à des processus ou
applications d’utilisateurs.
Ports privés ou dynamiques (numéros 49152 à 65535) : Également appelés ports éphémères, ces
ports sont généralement affectés de façon dynamique à des applications clientes lorsqu’une connexion
est initiée. Il est relativement rare pour un client de se connecter à un service par le biais d’un port
dynamique ou privé.
Remarque : il est parfois nécessaire de savoir quelles connexions TCP actives sont ouvertes et
s’exécutent sur un hôte en réseau. Netstat est un important utilitaire réseau permettant de vérifier ces
connexions. Netstat répertorie le protocole utilisé, l’adresse et le numéro de port locaux, l’adresse et le
numéro de port distants ainsi que l’état de la connexion.
3. Numéro d'ordre (ou numéro de séquence) et Numéro d'accusé de réception (32 bits):
Le principe consiste à attribuer un numéro à chaque octet de donnée. Le numéro du premier octet de
donnée du segment de message est le numéro de séquence du segment. Lorsque le récepteur envoie un
segment de message, il envoie en même temps un numéro d’acquittement qui doit correspondre au
numéro de séquence de l’octet de donnée suivant attendu. Un même acquittement peut servir à
acquitter plusieurs segments de message TCP.
En général, un service sur l’hôte de destination utilisant le protocole TCP ne génère d’accusé de
réception que pour les séquences contiguës d’octets. Si un ou plusieurs segments sont manquants,
seules les données des segments qui complètent le flux donnent lieu à l’émission d’accusés de
réception.
Quand le protocole TCP sur l’hôte source n’a pas reçu d’accusé de réception après un délai
prédéterminé, il revient au dernier numéro d’accusé de réception et retransmet les données depuis ce
point.
Remarque : Aujourd’hui, les hôtes utilisent également une fonction facultative appelée accusés de
réception sélectifs. Si les deux hôtes prennent en charge les accusés de réception sélectifs, la
destination peut accuser réception des octets de segments ne se suivant pas et l’hôte ne retransmettra
que les données manquantes.
6
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP
4. Décalage des données (4 bits): indique le nombre de mots de 32 bits qui se trouve dans l’en-tête
TCP. Cette information est nécessaire car le champ d'options est de taille variable.
5. Réservé (6 bits): Champ inutilisé actuellement mais prévu pour l'avenir.
6. Drapeaux (flags) (6x1 bit): Les drapeaux représentent des informations supplémentaires :
o URG: si ce drapeau est à 1 le paquet doit être traité de façon urgente. Le champ pointeur
d’urgence est valide, il pointe vers le numéro de séquence des données urgentes.
o ACK: si ce drapeau est à 1 le paquet est un accusé de réception et le numéro d’accusé de réception
est valide.
o PSH (PUSH): l’activation de ce drapeau indique la remise immédiate des données à la couche
supérieure. (utiliser lors de l’ouverture d’une connexion ou pour des applications temps réel).
o RST: si ce drapeau est à 1, la connexion est réinitialisée pour cause d’erreurs irrécupérables. A la
réception de RST le récepteur doit immédiatement terminer la connexion.
o SYN: Le flag ou drapeau SYN indique une demande d'établissement de connexion.
o FIN: indique la fermeture d’une connexion.
o
7. Fenêtre (16 bits): Ce champ implémente un contrôle de flux. C’est le récepteur qui fixe la taille de
la fenêtre pour l’émetteur. Une fenêtre spécifie le nombre d’octets que le récepteur est en mesure
d’accepter.
La taille de fenêtre initiale est déterminée lors du démarrage de la session par l’intermédiaire de la
connexion en trois étapes. Une fenêtre de taille nulle indique à l’émetteur d’interrompre la
transmission jusqu'à ce qu’il reçoive une valeur de fenêtre non nulle.
TCP est un protocole orienté connexion. Une information de contrôle est échangée entre les deux
extrémités de manière à établir un dialogue avant de procéder à la transmission des données.
Les deux machines doivent donc synchroniser leurs séquences grâce à un mécanisme communément
appelé three ways handshake (poignée de main en trois temps), que l'on retrouve aussi lors de la
clôture de session.
1- Dans un premier temps la machine émettrice (le client) transmet un segment dont le drapeau
SYN est à 1 (pour signaler qu'il s'agit d'un segment de synchronisation), avec un numéro d'ordre N,
que l'on appelle numéro d'ordre initial de l’émetteur.
7
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP
SYN=1
Séquence = E
SYN=0
ACK=R+1
Séquence=E+1
Suite à cette séquence comportant trois échanges les deux machines sont synchronisées et la
communication peut commencer.
Le client peut demander à mettre fin à une connexion au même titre que le serveur.
1. Quand le client n’a plus de données à envoyer dans le flux, il envoie un segment dont l’indicateur
FIN est à 1.
2. Le serveur envoie un segment ACK pour informer de la bonne réception du segment FIN afin de
fermer la session du client au serveur.
3. Le serveur envoie un segment FIN au client pour mettre fin à la session du serveur au client.
4. Le client répond à l’aide d’un segment ACK pour accuser réception du segment FIN envoyé par le
serveur.
Quand l’extrémité cliente de la session n’a plus aucune donnée à transférer, elle définit l’indicateur
FIN dans l’en-tête d’un segment. Ensuite, l’extrémité serveur de la connexion envoie un segment
normal contenant des données dont l’indicateur ACK est défini en utilisant le numéro d’accusé de
réception, confirmant ainsi que tous les octets de données ont été reçus. Quand la réception de tous les
segments a été confirmée, la session est fermée.
8
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP
La session dans l’autre sens est fermée selon le même processus. Le récepteur indique qu’il n’y a plus
de données à envoyer en définissant l’indicateur FIN dans l’en-tête d’un segment envoyé à la source.
Un accusé de réception confirme que tous les octets de données ont été reçus et que cette session, à
son tour, se ferme.
Remarque : Le protocole TCP est utilisé par les applications telles que navigateurs Web, Courriel,
Transferts de fichiers
7. Le protocole UDP
Le protocole UDP (User Datagram Protocol) est un protocole non orienté connexion de la
couche transport du modèle TCP/IP.
Le protocole UDP est un protocole simple offrant des fonctions de couche transport de base.
Il crée beaucoup moins de surcharge que le protocole TCP car il est sans connexion et ne
propose pas de mécanismes sophistiqués de retransmission, de séquençage et de contrôle de
flux. L'en-tête du segment UDP est donc très simple :
Données
Le protocole UDP est connu pour être un protocole basé sur les transactions. En d’autres
termes, quand une application doit envoyer des données, elle les envoie tout simplement.
importance à l’ordre des données, elle devra identifier l’ordre correct des données et
déterminer leur mode de traitement.
Bien que le protocole IPv4 ne soit pas un protocole fiable, il permet l’envoi de messages,
même en présence de certaines erreurs. Ces messages sont envoyés par le biais des services
du protocole ICMPv4 (Internet Control Messaging Protocol). Ces messages ont pour objectif
de fournir des commentaires sur les problèmes liés au traitement de paquets IP dans certaines
circonstances.
Le protocole ICMP est très utile lors du dépannage de problèmes de connectivité réseau. Sans
messages ICMP, un expéditeur est dans l’incapacité d’expliquer l’échec de la connexion de la
destination.
ICMP est le protocole de messagerie de la suite TCP/IP. Il existe différents types de messages
ICMP, et les raisons pour lesquelles ils sont envoyés sont très diverses.
Chaque message ICMP commence par un champ Type (8 bits), un champ Code (8 bits) et
une somme de contrôle (16 bits) calculée.
10
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP
Les codes offrent des informations complémentaires au champ Type. Par exemple, si le
champ Type est 3 (la destination inaccessible), d’autres informations sur le problème sont
retournées dans le champ Code. Le tableau dans la figure III.7 indique les codes pour le
message Type 3 ICMP. Les codes 2 et 3 (protocole inaccessible et port inaccessible) sont
utilisés par un hôte final pour indiquer que le segment TCP ou le datagramme UDP contenu
dans un paquet n’a pas pu être acheminé jusqu’au service de la couche supérieure.
0 Réseau inaccessible
1 Hôte inaccessible
2 Protocole inaccessible
3 Port inaccessible
4 Fragmentation requise et l’option Don't Fragment a été définie
5 Échec de la route source
6 Réseau de destination inconnu
7 Hôte de destination inconnu
8 Hôte source isolé
9 Communication avec réseau de destination interdit par l’administration
10 Communication avec hôte de destination Interdit par l’administration
11 Réseau de destination inaccessible pour le type de service
12 Hôte de destination inaccessible pour le type de service
Host confirmation (Confirmation de l’hôte) : Un message ICMP Echo (Écho ICMP : ping)
permet de déterminer si un hôte est fonctionnel. L’hôte local envoie un message ICMP Echo
Request (Demande d’écho) à un autre hôte. L’hôte qui reçoit le message d’écho répond par un
message ICMP Echo Reply (Réponse d’écho).
Time exceeded (Délai dépassé) : Un message ICMP Time Exceeded (Délai dépassé) est
envoyé par un routeur pour indiquer qu’il ne peut pas acheminer un paquet car le champ TTL
du paquet a expiré. Si le routeur reçoit un paquet et décrémente le champ TTL du paquet
jusqu’à zéro, il abandonne le paquet.
11
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP
Remarque : Les messages d'erreur ICMP sont transportés sur le réseau sous forme de
datagramme, comme n'importe quelle donnée. Les messages d'erreur peuvent eux-mêmes être
sujet d'erreurs.
9. Le protocole ARP
Le protocole ARP a un rôle très important parmi les protocoles de la couche Internet
de la suite TCP/IP, car il permet de connaître l'adresse physique d'une carte réseau
correspondant à une adresse IP, c'est pour cela qu'il s'appelle Protocole de résolution
d'adresse (ou ARP : Address Resolution Protocol).
Chaque machine connectée au réseau possède un numéro d'identification de 48 bits.
Ce numéro est un numéro unique qui est fixé dès la fabrication de la carte en usine (adresse
MAC). Toutefois la communication sur Internet ne se fait pas directement à partir de ce
numéro, mais à partir d'une adresse dite logique attribuée par un organisme: l'adresse IP.
Ainsi, pour faire correspondre les adresses physiques aux adresses logiques, le
protocole ARP interroge les machines du réseau pour connaître leur adresse physique, puis
crée une table de correspondance entre les adresses logiques et les adresses physiques dans
une mémoire cache.
À chaque trame placée sur un support LAN doit correspondre une adresse MAC de
destination. Quand un paquet est envoyé à la couche liaison de données pour être encapsulé
dans une trame, le nœud désigne une table dans sa mémoire pour y trouver l’adresse de
couche liaison de données qui est mappée à l’adresse IPv4 de destination. Cette table est
appelée tableau ARP ou cache ARP. Le tableau ARP est stocké dans la mémoire vive (RAM)
du périphérique.
Chaque entrée ou ligne du tableau ARP comporte deux valeurs : une adresse IP et une adresse
MAC. La relation entre les deux valeurs s’appelle une mise en correspondance : ce qui
signifie simplement que si vous choisissez une adresse IP dans la table vous y trouverez
l’adresse MAC correspondante. Le tableau ARP garde en mémoire cache le mappage des
périphériques du réseau local (LAN).
Pour lancer la procédure, un nœud émetteur tente de trouver l’adresse MAC associée à une
adresse IPv4 de destination, dans le tableau ARP. Si ce mappage est dans la mémoire cache
de la table, le nœud utilise l’adresse MAC comme destination MAC dans la trame qui
encapsule le paquet IPv4. La trame est ensuite codée sur le support réseau.
Le tableau ARP est mis à jour de manière dynamique. Un périphérique dispose de deux
méthodes pour obtenir des adresses MAC. La première consiste à surveiller le trafic sur le
segment du réseau local. Quand un nœud reçoit des trames en provenance du support, il
enregistre les adresses IP source et MAC dans le tableau ARP sous forme de mappage. Au fur
12
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP
et à mesure que les trames sont transmises sur le réseau, le périphérique remplit le tableau
ARP de paires d’adresses.
La seconde méthode permettant à un périphérique d’obtenir une paire d’adresse consiste à
diffuser une requête ARP. Le protocole ARP envoie un message de diffusion de couche 2 à
tous les périphériques du LAN Ethernet. La trame contient un paquet de requête ARP
comportant l’adresse IP de l’hôte de destination. Lorsqu’un nœud reçoit la trame et identifie
sa propre adresse IP, il répond en envoyant un paquet réponse ARP à l’expéditeur, sous la
forme d’une trame monodiffusion (à une seule adresse MAC). Cette réponse permet de créer
une nouvelle entrée dans le tableau ARP.
Ces entrées dynamiques de la table MAC sont horodatées de la même façon que les entrées de
la table MAC sur les commutateurs. Si le périphérique ne reçoit pas de trame d’un
périphérique précis avant expiration de l’horodatage, l’entrée correspondant à ce périphérique
précis est supprimée du tableau ARP.
Remarque : Des entrées statiques de mappage peuvent également être ajoutées dans une table
ARP, mais ceci ne se produit que rarement. Les entrées statiques du tableau ARP n’expirent
pas avec le temps et elles doivent être supprimées manuellement.
c. Création de la trame
Quand le protocole ARP reçoit une requête de mappage entre une adresse IPv4 et une adresse
MAC, il recherche le mappage stocké en mémoire cache dans son tableau ARP. S’il ne trouve
pas d’entrée, l’encapsulation du paquet IPv4 échoue, et les processus de la couche 2 informent
le protocole ARP qu’un mappage est nécessaire.
Les processus ARP envoient alors un paquet de requête ARP pour trouver l’adresse MAC du
périphérique de destination sur le réseau local. Si le périphérique qui reçoit la requête possède
l’adresse IP de destination, il répond à l’aide d’une réponse ARP. Une entrée est créée dans le
tableau ARP. Les paquets à destination de cette adresse IPv4 peuvent à présent être
encapsulés dans des trames.
Si aucun périphérique ne répond à la requête ARP, le paquet est abandonné car il est
impossible de créer une trame. L’échec de l’encapsulation est signalé aux couches supérieures
du périphérique. Dans le cas d’un périphérique intermédiaire, comme un routeur, les couches
supérieures peuvent choisir de répondre à l’hôte source en générant une erreur dans un paquet
ICMPv4.
Toutes les trames doivent être remises à un nœud sur un segment du réseau local. Si l’hôte
IPv4 de destination se trouve sur le réseau local, la trame utilise l’adresse MAC de ce
périphérique comme adresse MAC de destination.
Si l’hôte IPv4 de destination ne se trouve pas sur le réseau local, le nœud source doit livrer la
trame à l’interface du routeur qui sert de passerelle pour atteindre cette destination. Le nœud
source utilise l’adresse MAC de la passerelle comme adresse de destination, pour les trames
contenant un paquet IPv4 adressé à des hôtes situés sur d’autres réseaux.
L’adresse de passerelle de l’interface du routeur est stockée dans la configuration IPv4 des
hôtes. Lorsqu’un hôte crée un paquet pour une destination, il compare l’adresse IP de
destination à sa propre adresse IP pour déterminer si les deux adresses IP se situent sur le
même réseau de la couche 3. Si l’hôte destinataire ne se situe pas sur le même réseau, l’hôte
source fait appel au processus ARP pour déterminer l’adresse MAC de l’interface du routeur
qui sert de passerelle.
13
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP
Si l’entrée de la passerelle n’est pas dans la table, le processus ARP normal envoie une
requête ARP pour retrouver l’adresse MAC associée à l’adresse IP de l’interface du routeur.
Pour chaque périphérique, un compteur de cache ARP supprime les entrées ARP qui n’ont pas
été utilisées pendant une période donnée. Cette période varie en fonction des périphériques et
des systèmes d’exploitation. Par exemple, certains systèmes d’exploitation Windows stockent
les entrées du cache ARP pendant 2 minutes. Si l’entrée est réutilisée pendant ce laps de
temps, le compteur ARP de cette entrée passe à 10 minutes.
Des commandes permettent aussi de supprimer manuellement les entrées de la table ARP
totalement ou partiellement. Lorsqu’une entrée est supprimée, le processus d’envoi d’une
requête ARP et de réception d’une réponse ARP doit être répété pour entrer le mappage dans
le tableau ARP.
Comme les trames de diffusion, les requêtes ARP sont reçues et traitées par chaque
périphérique du réseau local. Sur un réseau d’entreprise type, ces diffusions auraient
probablement une incidence minime sur les performances du réseau. Toutefois, si un grand
nombre de périphériques sont mis sous tension et accèdent aux services du réseau au même
moment, les performances du réseau peuvent s’en trouver réduites, sur un court laps de temps.
En revanche, si les périphériques envoient les messages de diffusion ARP initiaux et
disposent des adresses MAC nécessaires, l’impact sur le réseau sera minime.
• Sécurité
Dans certains cas, l’utilisation du protocole ARP peut porter atteinte à la sécurité du réseau.
L’usurpation ARP ou empoisonnement ARP, est une technique d’attaque qui consiste à
injecter un faux mappage d’adresse MAC dans un réseau en émettant de fausses requêtes
ARP. Si un pirate informatique usurpe l’adresse MAC d’un périphérique, les trames risquent
d’être envoyées à la mauvaise destination.
La configuration manuelle des associations ARP statiques permet d’éviter l’usurpation ARP.
Les adresses MAC autorisées peuvent être configurées sur certains périphériques du réseau
pour limiter l’accès réseau aux seuls périphériques listés.
Remarque : Le protocole ARP est bien un protocole de niveau 3 car il permet au niveau
réseau de savoir avec qui il veut communiquer sur le lien Ethernet. ARP est en fait
indépendant d’Ethernet et fonctionne avec n’importe quel type de réseau de niveau 2. Les
requêtes ARP sont véhiculées dans des trames de niveau 2.
Un paquet ARP (ou RARP) est encapsulé dans une trame Ethernet. Dans l'entête de la trame,
le champ type de protocole permet de préciser quel est le protocole encapsulé.
- type de protocole = 0x0806 pour ARP (type de protocole = 0x8035 pour RARP)
14
Master : SSI
M1 : ARIN Chap. III Le protocole TCP/IP
0 16 31
Type de matériel (réseau) Type de protocole
Long. @Physique Long. @Protocole Opération
Adresse Ethernet Emetteur (0 – 3)
Adresse Ethernet Emetteur (4 - 5) Adresse IP Emetteur (0 – 1)
Adresse IP Emetteur (2 – 3) Adresse Ethernet Récepteur (0 – 1)
Adresse Ethernet Récepteur (2 – 5)
Adresse IP Récepteur (0 – 3)
Une requête/réponse ARP est véhiculée par une trame Ethernet. La machine émettrice envoie
une requête en broadcast (FF:FF:FF:FF:FF:FF) afin de contacter toutes les machines du
réseau local au niveau Ethernet. La machine qui reconnaît son adresse IP peut renvoyer une
réponse ARP en utilisant l’adresse Ethernet inscrite dans la requête comme adresse de
destination.
15