Ce document est un travail pratique (TP) conçu pour les étudiants universitaires en réseaux locaux. Il a pour objectif d'analyser en détail les mécanismes fondamentaux des communications réseau, de la simulation à l'observation concrète des échanges.
Il couvre les notions suivantes :
- La simulation de communications pour visualiser les étapes en mode PDU.
- L'analyse approfondie de l'encapsulation et de la décapsulation des données.
- L'étude des protocoles ARP, ICMP, DNS et HTTP, incluant leurs champs clés, adresses et ports.
- Le mécanisme d'établissement de connexion TCP (three-way handshake).
Réseaux Informatiques : Analyse de protocole reseau local tp1 réseaux informatiques
Télécharger PDFAnalyse de protocoles réseau
Ce document présente un ensemble de travaux pratiques (TP) dédiés à l'analyse de protocoles réseau. L'objectif est de simuler des communications pour observer en détail les différentes étapes de l'échange de données. Vous allez analyser le mécanisme d'encapsulation à travers tous les nœuds participants et comprendre comment les paquets et les trames sont structurés pour distinguer divers types de flux, tels que les requêtes ou réponses ARP, Echo (ICMP), HTTP, ou DNS. La simulation sera effectuée en mode PDU (Protocol Data Unit) pour visualiser chronologiquement la circulation des différents paquets.
Scénario 1 : Analyse des protocoles ARP et ICMP
La topologie utilisée pour ce TP comprend cinq postes et un commutateur (switch) de type 2960.
- Commencez par attribuer des adresses IP à chacun des postes.
- Passez en mode simulation PDU.
- Lancez un ping du poste PC0 vers le poste PC4.
- Laissez la simulation se poursuivre jusqu'à ce que la réponse complète à la commande ping soit reçue.
- Filtrez l'affichage pour ne montrer que les paquets ARP et ICMP.
I - La requête ARP
Considérons en premier lieu la requête ARP lancée par PC0.
Pourquoi une requête ARP est-elle lancée avant la requête « Echo Request » ?
Avant d'envoyer un paquet IP (comme une requête Echo ICMP), un hôte a besoin de connaître l'adresse MAC (Media Access Control) de la destination pour encapsuler le paquet IP dans une trame Ethernet. Si l'adresse MAC de la destination (PC4) n'est pas déjà présente dans la table ARP de PC0, PC0 doit lancer une requête ARP (Address Resolution Protocol) pour la découvrir. Une fois l'adresse MAC obtenue, le paquet Echo Request peut être envoyé.
Le protocole ARP est-il encapsulé dans un paquet IP ? À quelle couche appartient le protocole ARP ?
Non, la requête ARP n'est pas encapsulée dans un paquet IP. Elle est directement encapsulée dans une trame Ethernet. Le protocole ARP opère principalement au niveau de la couche liaison de données (couche 2 du modèle OSI), bien qu'il utilise des informations de la couche réseau (adresses IP) pour sa résolution.
Quels sont les différents champs d'une trame ARP et leur signification ?
Une trame ARP, encapsulée dans une trame Ethernet, contient plusieurs champs importants :
- Type de matériel (Hardware Type) : Indique le type de matériel réseau (ex: Ethernet = 1).
- Type de protocole (Protocol Type) : Indique le type de protocole réseau pour lequel la résolution est effectuée (ex: IPv4 = 0x0800).
- Longueur adresse matérielle (Hardware Address Length - HAL) : Longueur des adresses MAC (ex: 6 octets pour Ethernet).
- Longueur adresse protocole (Protocol Address Length - PAL) : Longueur des adresses IP (ex: 4 octets pour IPv4).
- Opération (Opcode) : Spécifie s'il s'agit d'une requête ARP (1) ou d'une réponse ARP (2).
- Adresse MAC de l'expéditeur (Sender Hardware Address - SHA) : Adresse MAC de l'hôte qui envoie la requête.
- Adresse IP de l'expéditeur (Sender Protocol Address - SPA) : Adresse IP de l'hôte qui envoie la requête.
- Adresse MAC de la cible (Target Hardware Address - THA) : Adresse MAC de l'hôte cible (vide dans une requête ARP, remplie dans une réponse).
- Adresse IP de la cible (Target Protocol Address - TPA) : Adresse IP de l'hôte cible.
Quelle est la différence entre le datagramme ARP et la trame Ethernet ?
La trame Ethernet est l'unité de données de la couche liaison de données (couche 2), qui contient l'adresse MAC source et destination, ainsi que d'autres informations de contrôle, et transporte la charge utile (payload). Le datagramme ARP est la charge utile encapsulée dans cette trame Ethernet. Il contient les informations spécifiques au protocole ARP, telles que les adresses IP et MAC des expéditeurs et cibles, ainsi que l'opération (requête ou réponse).
Identifiez l'adresse MAC source et destination. Pourquoi la requête ARP est-elle envoyée en diffusion ?
L'adresse MAC source est celle du PC0 (l'expéditeur). L'adresse MAC de destination pour une requête ARP est l'adresse de diffusion Ethernet (FF:FF:FF:FF:FF:FF). La requête ARP est envoyée en diffusion car l'expéditeur ne connaît pas l'adresse MAC de la cible et doit l'envoyer à tous les hôtes sur le réseau local pour que la machine avec l'adresse IP correspondante puisse répondre.
Au niveau de l'unité de données ARP, quelles sont les adresses IP source et destination ? Quelle est la signification des adresses logiques (IP) dans ce contexte ?
Dans l'unité de données ARP :
- Adresse IP source : L'adresse IP de PC0.
- Adresse IP destination : L'adresse IP de PC4 (la cible dont on cherche l'adresse MAC).
Les adresses logiques (IP) sont utilisées par le protocole ARP pour identifier l'hôte cible et l'expéditeur au niveau de la couche réseau, même si ARP lui-même n'est pas un protocole de couche réseau. Elles permettent à ARP de faire la correspondance entre les identifiants de couche 3 (IP) et les identifiants de couche 2 (MAC).
Expliquez comment un poste détecte qu'une trame reçue encapsule un datagramme ARP. Indiquez le champ et sa valeur.
Un poste détecte qu'une trame reçue encapsule un datagramme ARP en examinant le champ "Type d'Ethernet" (EtherType) de l'en-tête de la trame Ethernet. Pour ARP, la valeur de ce champ est 0x0806.
Quelle est l'utilité du champ "Type d'Ethernet" ? Mentionnez les différentes valeurs que peut prendre ce champ.
Le champ "Type d'Ethernet" est essentiel car il indique le type de protocole de couche supérieure encapsulé dans la charge utile de la trame Ethernet. Cela permet au système d'exploitation du poste récepteur de savoir à quel protocole transmettre les données une fois la trame décapsulée. Des valeurs courantes incluent :
- 0x0800 : IPv4
- 0x0806 : ARP
- 0x86DD : IPv6
- 0x88CC : LLDP
- 0x8137 : IPX
Comment le processus ARP détecte-t-il qu'il s'agit d'une requête ? Indiquez le champ utilisé et sa valeur.
Une fois que le poste a identifié que le protocole est ARP (via EtherType 0x0806), le processus ARP examine le champ "Opération" (Opcode) dans l'en-tête du datagramme ARP. Si la valeur de ce champ est 1, cela indique qu'il s'agit d'une requête ARP.
La requête contient-elle des numéros de ports source et destination ? Expliquez pourquoi.
Non, une requête ARP ne contient pas de numéros de ports source et destination. Les numéros de ports sont utilisés par les protocoles de la couche transport (TCP, UDP) pour identifier les applications spécifiques sur les hôtes. ARP opère à un niveau inférieur (couche 2/3) et n'est pas concerné par l'identification des applications, mais par la résolution d'adresses MAC pour des adresses IP.
Expliquez le mécanisme de décapsulation détaillée lorsqu'un poste reçoit une trame qui contient un protocole ARP. Comment un poste décide-t-il qu'il doit répondre à la requête ARP ?
Lorsqu'un poste reçoit une trame Ethernet :
- La carte réseau (NIC) reçoit la trame et vérifie l'adresse MAC de destination. Si elle correspond à l'adresse MAC du poste, ou si c'est une adresse de diffusion (FF:FF:FF:FF:FF:FF), la trame est acceptée et passée à la couche supérieure.
- La couche liaison de données examine le champ "Type d'Ethernet" (EtherType). Si la valeur est 0x0806, elle identifie le contenu comme un datagramme ARP.
- Le datagramme ARP est extrait et passé au processus ARP du système d'exploitation.
- Le processus ARP examine le champ "Opération" (Opcode). S'il s'agit d'une requête (valeur 1), il vérifie l'adresse IP cible (Target Protocol Address).
- Si l'adresse IP cible correspond à l'adresse IP du poste récepteur, le poste décide qu'il doit répondre à la requête ARP. Il prépare alors une réponse ARP contenant son adresse MAC.
II - La réponse ARP
Considérons maintenant la réponse ARP envoyée par PC4.
Identifiez l'adresse MAC source et destination. Pourquoi la réponse n'est-elle pas envoyée en diffusion comme la requête ARP ?
- Adresse MAC source : L'adresse MAC de PC4.
- Adresse MAC destination : L'adresse MAC de PC0.
La réponse ARP n'est pas envoyée en diffusion car PC4, ayant reçu la requête ARP de PC0, connaît désormais l'adresse MAC de PC0 (extraite du champ Sender Hardware Address de la requête). La réponse est donc une communication unicast (point-à-point) directement adressée à PC0.
La réponse ARP est-elle encapsulée dans un paquet IP ?
Non, tout comme la requête, la réponse ARP n'est pas encapsulée dans un paquet IP. Elle est directement encapsulée dans une trame Ethernet.
Expliquez comment un poste détecte que les trames capturées encapsulent des datagrammes ARP et en particulier une réponse qui lui est destinée.
Un poste détecte une réponse ARP qui lui est destinée de la même manière qu'il détecte une requête ARP :
- La carte réseau reçoit la trame et valide l'adresse MAC de destination (qui doit correspondre à son adresse MAC ou être une diffusion, mais dans ce cas précis, c'est son adresse MAC unicast).
- Le champ "Type d'Ethernet" est analysé (valeur 0x0806 pour ARP).
- Le datagramme ARP est passé au processus ARP.
- Le processus ARP examine le champ "Opération" (Opcode). Si la valeur est 2, cela indique qu'il s'agit d'une réponse ARP.
- Le poste vérifie ensuite l'adresse IP cible (Target Protocol Address) et l'adresse MAC cible (Target Hardware Address) dans le datagramme ARP. Si elles correspondent à ses propres adresses IP et MAC, le poste sait que cette réponse lui est destinée. Il met à jour sa table ARP avec la correspondance IP-MAC de l'expéditeur (PC4).
Quel est le résultat retourné par une réponse ARP ? Où se trouve l'information au niveau du datagramme ARP ?
Le résultat retourné par une réponse ARP est l'adresse MAC de l'hôte dont l'adresse IP avait été demandée. Cette information se trouve dans le champ "Adresse MAC de l'expéditeur" (Sender Hardware Address - SHA) du datagramme ARP de la réponse. Dans ce cas, ce sera l'adresse MAC de PC4.
III - La requête Echo Request (Ping sortant)
Considérons dans cette partie la requête ICMP « Echo Request » (ping sortant).
Identifiez l'adresse MAC source et destination.
- Adresse MAC source : L'adresse MAC de PC0.
- Adresse MAC destination : L'adresse MAC de PC4 (obtenue grâce à la requête ARP précédente).
Identifiez l'adresse IP source et destination.
- Adresse IP source : L'adresse IP de PC0.
- Adresse IP destination : L'adresse IP de PC4.
Quelle est la valeur du champ "Type" (dans l'en-tête IP) ? Quelle est sa signification ?
Le champ "Type" (plus précisément, "Protocole") dans l'en-tête du paquet IP contient la valeur 1. Cette valeur indique que le protocole de couche supérieure encapsulé dans le paquet IP est ICMP (Internet Control Message Protocol).
Après réception du signal sur la couche physique, comment le poste (carte réseau) détecte-t-il que la trame lui est destinée ?
Après la réception du signal électrique ou optique sur la couche physique, la carte réseau (NIC) assemble la trame binaire. Elle lit l'adresse MAC de destination dans l'en-tête Ethernet. Si cette adresse correspond à l'adresse MAC de la carte, ou si c'est une adresse de diffusion/multidiffusion à laquelle elle doit répondre, la carte accepte la trame et la passe à la couche liaison de données.
Une fois que le poste a accepté la trame, quelles sont les tâches qu'il effectue ?
Une fois la trame acceptée, le poste effectue la décapsulation :
- Il vérifie l'intégrité de la trame (ex: CRC).
- Il supprime l'en-tête et le pied de page Ethernet.
- Il lit le champ "Type d'Ethernet" pour identifier le protocole de couche supérieure (ici, 0x0800 pour IPv4).
- Il passe la charge utile (le paquet IP) à la couche réseau.
Comment le poste détecte-t-il qu'un paquet IP est encapsulé dans la trame ?
Le poste détecte qu'un paquet IP est encapsulé dans la trame en examinant la valeur du champ "Type d'Ethernet" (EtherType) de l'en-tête de la trame Ethernet. Si ce champ contient la valeur 0x0800, cela signifie qu'un paquet IPv4 est encapsulé.
Dans un paquet IP, des datagrammes correspondant à plusieurs types de protocoles peuvent-ils être encapsulés ? Quel est le champ qui indique le type de protocole encapsulé dans le paquet IP ?
Oui, un paquet IP peut encapsuler des datagrammes de plusieurs types de protocoles de couche transport ou de couche Internet (comme ICMP). Le champ qui indique le type de protocole encapsulé dans la charge utile du paquet IP est le champ "Protocole" (Protocol) de l'en-tête IP. Pour ICMP, sa valeur est 1 ; pour TCP, 6 ; pour UDP, 17.
Comment le PC détecte-t-il que le datagramme encapsulé dans le paquet est de type ICMP ?
Le poste détecte que le datagramme encapsulé dans le paquet IP est de type ICMP en lisant la valeur du champ "Protocole" dans l'en-tête IP. Si la valeur est 1, le datagramme est identifié comme ICMP.
Une fois que le poste a détecté que le flux est de type ICMP, quels sont les champs et leurs valeurs qui permettent de détecter que c'est en particulier un « Echo Request » ?
Pour détecter un "Echo Request" (requête ping) au sein d'un datagramme ICMP, le poste examine les champs "Type" et "Code" de l'en-tête ICMP :
- Type : La valeur est 8 pour une requête Echo.
- Code : La valeur est 0 pour une requête Echo.
Quel est le nombre de trames générées par la commande « ping » ? Montrez qu'il est cohérent avec ce qui a été affiché lors de l'exécution de la commande.
Une commande "ping" classique envoie généralement 4 requêtes Echo et reçoit 4 réponses Echo. Chaque requête et chaque réponse implique une trame Ethernet distincte. De plus, avant le premier ping, une requête et une réponse ARP sont souvent nécessaires. Ainsi, le nombre total de trames pourrait être :
- 1 requête ARP + 1 réponse ARP
- 4 requêtes Echo (ICMP)
- 4 réponses Echo (ICMP)
Soit un total de 10 trames pour un ping simple réussi vers une destination dont l'adresse MAC n'est pas encore connue. Ce nombre est cohérent avec les observations faites lors de la simulation.
Quelle est la valeur TTL (Time To Live) des paquets relatifs aux requêtes ICMP ? Quelle est la signification de ce champ ?
La valeur TTL (Time To Live) des paquets ICMP (et IP en général) peut varier, mais elle est généralement initialisée à une valeur élevée (ex: 64, 128, 255) par le système d'exploitation de l'expéditeur. Chaque routeur que le paquet traverse décrémente la valeur TTL d'au moins 1. La signification de ce champ est de limiter la durée de vie d'un paquet sur le réseau afin d'éviter qu'il ne tourne en boucle indéfiniment en cas de problème de routage. Si le TTL atteint 0, le routeur supprime le paquet et envoie un message ICMP "Time Exceeded" à l'expéditeur.
IV - La réponse Echo Reply
Identifiez l'adresse MAC source et destination.
- Adresse MAC source : L'adresse MAC de PC4.
- Adresse MAC destination : L'adresse MAC de PC0.
Identifiez l'adresse IP source et destination.
- Adresse IP source : L'adresse IP de PC4.
- Adresse IP destination : L'adresse IP de PC0.
Expliquez comment un poste détecte qu'il s'agit d'un message ICMP de type Echo Reply encapsulé dans un paquet IP, qui est lui aussi encapsulé dans une trame Ethernet. Quels sont les champs indicateurs et leurs valeurs ?
La détection se fait par décapsulation successive et examen des champs indicateurs à chaque couche :
- Couche Liaison de Données (Ethernet) : Le poste reçoit la trame dont l'adresse MAC de destination correspond à la sienne. Il examine le champ "Type d'Ethernet". La valeur 0x0800 indique un paquet IPv4.
- Couche Réseau (IP) : Le poste déballe le paquet IP et examine le champ "Protocole" dans l'en-tête IP. La valeur 1 indique un datagramme ICMP.
- Couche Internet (ICMP) : Le poste déballe le datagramme ICMP et examine les champs "Type" et "Code" dans l'en-tête ICMP. Pour un "Echo Reply" (réponse ping) :
- Type : La valeur est 0.
- Code : La valeur est 0.
V - Comportement du commutateur à l'arrivée d'une trame
Lors de l'arrivée d'une trame sur le port du commutateur, comment celui-ci agit ? Dans votre réponse, présentez la procédure d'encapsulation et de décapsulation.
Un commutateur de niveau 2 (comme le 2960) opère au niveau de la couche liaison de données du modèle OSI. Il ne procède pas à une encapsulation ou décapsulation complète des données comme un hôte final ou un routeur.
Son fonctionnement principal est le suivant :
- Réception de la trame : Lorsqu'une trame arrive sur un port du commutateur, celui-ci lit l'adresse MAC source de la trame.
- Apprentissage de l'adresse MAC : Il ajoute cette adresse MAC source et le port d'entrée correspondant à sa table d'adresses MAC (ou table CAM). C'est le processus d'apprentissage.
- Lecture de l'adresse MAC de destination : Le commutateur lit ensuite l'adresse MAC de destination dans l'en-tête Ethernet de la trame.
- Décision de commutation :
- Si l'adresse MAC de destination est une adresse de diffusion (broadcast) (FF:FF:FF:FF:FF:FF) ou de multidiffusion (multicast), le commutateur inonde la trame sur tous les ports, à l'exception du port d'où elle provient.
- Si l'adresse MAC de destination est une adresse unicast et qu'elle est présente dans sa table d'adresses MAC, le commutateur transmet la trame uniquement vers le port associé à cette adresse MAC.
- Si l'adresse MAC de destination est une adresse unicast mais qu'elle n'est pas présente dans sa table d'adresses MAC, le commutateur inonde la trame sur tous les ports (sauf le port d'entrée), espérant que le destinataire se manifestera et permettra un apprentissage ultérieur.
Le commutateur ne décapsule ni n'encapsule les paquets IP ou les datagrammes ARP/ICMP. Il ne "voit" que la trame Ethernet (couche 2) et utilise les adresses MAC pour prendre ses décisions de transfert.
VI - Deuxième ping de PC0 vers PC4
Lancez un deuxième ping du poste PC0 vers le poste PC4. La requête ICMP a-t-elle été précédée par une requête ARP ? Expliquez.
Non, très probablement, la requête ICMP (ping) ne sera pas précédée par une nouvelle requête ARP lors d'un deuxième ping consécutif et rapide vers la même destination sur le même réseau local.
Explication : Après le premier ping, PC0 aura stocké la correspondance entre l'adresse IP de PC4 et son adresse MAC dans sa table ARP locale (cache ARP). Cette entrée reste valide pendant une certaine durée (TTL ARP). Tant que l'entrée est valide et n'a pas expiré, PC0 peut directement utiliser l'adresse MAC de PC4 pour encapsuler les paquets IP suivants, sans avoir besoin de refaire une résolution ARP.
Scénario 2 : Analyse des protocoles DNS et HTTP
Dans cette partie, nous allons utiliser un poste (PC5) et un serveur (hébergeant un service HTTP et DNS).
- Commencez par attribuer des adresses IP au PC5 et au serveur.
- Au niveau du serveur DNS, ajoutez le nom de domaine (par exemple, "www.exemple.com") à l'adresse IP que vous avez attribuée au serveur.
- À partir du navigateur du poste PC5, demandez le site (par exemple, "www.exemple.com"). Laissez la simulation se poursuivre jusqu'à ce que la page demandée soit affichée dans le navigateur.
I - Décrivez l'ordre et les différents types des paquets qui transitent depuis la demande du site jusqu'à l'affichage de la page. Expliquez le rôle de chacun d'eux.
L'ordre typique des paquets est le suivant :
- Requête ARP (si nécessaire) : Si PC5 ne connaît pas l'adresse MAC du serveur DNS (ou de sa passerelle pour atteindre le serveur DNS), une requête ARP sera envoyée en diffusion pour obtenir cette information. Rôle : Résoudre une adresse IP en adresse MAC.
- Réponse ARP (si nécessaire) : Le serveur DNS (ou la passerelle) répondra avec son adresse MAC. Rôle : Fournir l'adresse MAC demandée.
- Requête DNS (UDP) : PC5 envoie une requête DNS au serveur DNS configuré pour résoudre le nom de domaine (ex: "www.exemple.com") en adresse IP. Rôle : Traduire un nom de domaine en adresse IP.
- Réponse DNS (UDP) : Le serveur DNS répond avec l'adresse IP associée au nom de domaine demandé (ex: l'adresse IP du serveur web). Rôle : Fournir l'adresse IP correspondante au nom de domaine.
- Requête ARP (si nécessaire) : Si PC5 ne connaît pas l'adresse MAC du serveur web (si l'adresse IP du serveur web est différente de celle du serveur DNS et que son MAC n'est pas dans le cache), une nouvelle requête ARP peut être émise. Rôle : Résoudre l'adresse IP du serveur web en adresse MAC.
- Réponse ARP (si nécessaire) : Le serveur web (ou la passerelle) répond avec son adresse MAC. Rôle : Fournir l'adresse MAC demandée.
- Établissement de connexion TCP (Three-way Handshake - SYN, SYN-ACK, ACK) : PC5 initie une connexion TCP avec le serveur web sur le port 80 (HTTP) ou 443 (HTTPS). Rôle : Établir une connexion fiable orientée connexion entre le client et le serveur.
- Requête HTTP (TCP) : Une fois la connexion TCP établie, PC5 envoie une requête HTTP (ex: GET /index.html) au serveur web pour obtenir le contenu de la page. Rôle : Demander des ressources web au serveur.
- Réponse HTTP (TCP) : Le serveur web envoie le contenu de la page web demandée à PC5. Rôle : Fournir les ressources web demandées.
- Fermeture de connexion TCP (FIN, ACK, FIN, ACK) : Après la fin de l'échange de données, la connexion TCP est généralement fermée par un processus en quatre étapes. Rôle : Terminer la communication fiable entre le client et le serveur.
II - Analyse des requêtes et réponses DNS
Analyse détaillée des requêtes et réponses DNS :
1) Les champs les plus importants des datagrammes DNS
Les datagrammes DNS (encapsulés dans UDP) contiennent un en-tête DNS et des sections pour les questions, réponses, autorités et informations additionnelles. Les champs importants de l'en-tête DNS sont :
- ID de transaction : Identifiant unique pour associer une requête à sa réponse.
- Drapeaux (Flags) : Indiquent le type de message (requête/réponse), si c'est une requête standard, si la réponse est autoritaire, etc.
- Nombre de questions : Nombre de questions dans la section question.
- Nombre de réponses : Nombre d'enregistrements de réponse.
- Question Section : Contient le nom de domaine demandé, le type de requête (A, AAAA, MX, etc.) et la classe (IN pour Internet).
- Answer Section : Contient la ou les réponses, notamment l'adresse IP associée au nom de domaine pour un enregistrement de type A.
2) Comment se déroule l'ordre d'encapsulation ?
Pour une requête/réponse DNS :
- Le message DNS est encapsulé dans un segment UDP (User Datagram Protocol).
- Le segment UDP est encapsulé dans un paquet IP (Internet Protocol).
- Le paquet IP est encapsulé dans une trame Ethernet.
3) Quel est le protocole de transport utilisé et comment l'identifier ?
Le protocole de transport le plus couramment utilisé pour les requêtes et réponses DNS standards est UDP (User Datagram Protocol). On l'identifie en examinant le champ "Protocole" de l'en-tête IP, dont la valeur est 17 pour UDP.
4) Les numéros de ports source et destination
- Requête DNS : Le port source est un numéro de port éphémère (aléatoire, >1023) choisi par le client (PC5). Le port destination est 53 (port standard pour DNS).
- Réponse DNS : Le port source est 53. Le port destination est le port éphémère que PC5 a utilisé pour sa requête.
5) Les adresses IP et MAC
- Requête DNS :
- Adresse IP source : IP de PC5.
- Adresse IP destination : IP du serveur DNS.
- Adresse MAC source : MAC de PC5 (ou de la passerelle si le serveur DNS est sur un autre réseau).
- Adresse MAC destination : MAC du serveur DNS (ou de la passerelle).
- Réponse DNS :
- Adresse IP source : IP du serveur DNS.
- Adresse IP destination : IP de PC5.
- Adresse MAC source : MAC du serveur DNS (ou de la passerelle).
- Adresse MAC destination : MAC de PC5 (ou de la passerelle).
III - L'établissement de connexion en trois étapes (Three-way Handshake)
1) Dans cette étape, vous allez suivre l'établissement de la connexion TCP en "three-way handshake" avant le début de l'échange des données HTTP. Mentionnez comment les valeurs des drapeaux (flags) SYN et ACK sont positionnées au cours de cet échange.
Le "three-way handshake" TCP se déroule comme suit :
- Client vers Serveur (SYN) : Le client (PC5) envoie un segment TCP avec le drapeau SYN (Synchronize) activé (SYN=1) et un numéro de séquence initial (par exemple, Seq=X).
- Serveur vers Client (SYN-ACK) : Le serveur reçoit le SYN, l'acquitte en envoyant un segment avec les drapeaux SYN (Synchronize) et ACK (Acknowledge) activés (SYN=1, ACK=1). Le numéro d'acquittement est (X+1) (Ack=X+1), et le serveur envoie son propre numéro de séquence initial (Seq=Y).
- Client vers Serveur (ACK) : Le client reçoit le SYN-ACK, l'acquitte en envoyant un segment avec le drapeau ACK activé (ACK=1). Le numéro d'acquittement est (Y+1) (Ack=Y+1).
Une fois cette séquence terminée, la connexion TCP est établie et les données HTTP peuvent commencer à transiter.
2) Pourquoi une requête ARP n'est-elle pas précédée par un établissement de connexion entre l'émetteur et le récepteur ?
Une requête ARP n'est pas précédée par un établissement de connexion car ARP est un protocole sans connexion (connectionless). Il opère à un niveau inférieur (couche 2/3) aux protocoles de transport comme TCP et n'a pas besoin de la fiabilité et de la gestion de session fournies par TCP. Son rôle est simplement de résoudre des adresses, et il le fait de manière directe, souvent par diffusion, sans nécessiter de phase d'établissement ni de maintien d'état de connexion.
IV - Analyse des requêtes et réponses HTTP
Examen détaillé des requêtes et réponses HTTP :
1) Les champs les plus importants des datagrammes HTTP
Les messages HTTP sont des messages textuels et contiennent des lignes d'en-tête. Les champs importants incluent :
- Requête HTTP :
- Méthode (GET, POST, etc.)
- Chemin de la ressource (URI)
- Version HTTP (HTTP/1.1)
- En-têtes : Host, User-Agent, Accept, Connection, etc.
- Réponse HTTP :
- Version HTTP (HTTP/1.1)
- Code de statut (200 OK, 404 Not Found, etc.)
- Message de statut
- En-têtes : Content-Type, Content-Length, Server, Last-Modified, Date, etc.
- Corps du message (le contenu de la page web, si applicable)
2) Comment se déroule l'ordre d'encapsulation ?
Pour une requête/réponse HTTP :
- Le message HTTP est encapsulé dans un segment TCP (Transmission Control Protocol).
- Le segment TCP est encapsulé dans un paquet IP (Internet Protocol).
- Le paquet IP est encapsulé dans une trame Ethernet.
3) Quel est le protocole de transport utilisé ?
Le protocole de transport utilisé pour HTTP est TCP (Transmission Control Protocol). HTTP est un protocole orienté connexion qui repose sur la fiabilité offerte par TCP.
4) Les numéros de ports source et destination
- Requête HTTP : Le port source est un numéro de port éphémère (>1023) choisi par le client (PC5). Le port destination est 80 pour HTTP (ou 443 pour HTTPS).
- Réponse HTTP : Le port source est 80 (ou 443). Le port destination est le port éphémère que PC5 a utilisé pour sa requête.
5) Les adresses IP et MAC source et destination
- Requête HTTP :
- Adresse IP source : IP de PC5.
- Adresse IP destination : IP du serveur web.
- Adresse MAC source : MAC de PC5 (ou de la passerelle si le serveur web est sur un autre réseau).
- Adresse MAC destination : MAC du serveur web (ou de la passerelle).
- Réponse HTTP :
- Adresse IP source : IP du serveur web.
- Adresse IP destination : IP de PC5.
- Adresse MAC source : MAC du serveur web (ou de la passerelle).
- Adresse MAC destination : MAC de PC5 (ou de la passerelle).
6) Le suivi des acquittements envoyés, en termes de valeurs des champs numéro de séquence et ACK
Pendant la transmission des données HTTP via TCP, les numéros de séquence (Seq) et d'acquittement (Ack) sont utilisés pour garantir l'ordre et la fiabilité des données. Chaque segment TCP contient un numéro de séquence qui indique le premier octet de données transporté par ce segment. Le champ ACK indique le prochain numéro de séquence que l'expéditeur attend de son pair, confirmant ainsi la réception correcte des octets précédents. Lorsque PC5 envoie des données HTTP, son numéro de séquence augmente. Le serveur web envoie des acquittements (ACK) en réponse, indiquant qu'il a bien reçu les données et quel est le prochain numéro de séquence attendu de PC5. Inversement, lorsque le serveur envoie la réponse HTTP, son numéro de séquence augmente, et PC5 envoie des acquittements.
FAQ sur l'Analyse de Protocoles Réseau
1. Pourquoi l'ARP est-il nécessaire avant le premier ping sur un nouveau réseau ?
Le protocole ARP (Address Resolution Protocol) est essentiel car il permet de traduire une adresse IP (couche 3) en une adresse MAC (couche 2), qui est nécessaire pour l'encapsulation des paquets dans les trames Ethernet. Avant le premier ping, si l'adresse MAC de la destination n'est pas connue, le système doit effectuer une requête ARP pour la découvrir, permettant ainsi la livraison de la trame au bon hôte sur le réseau local.
2. Quelle est la différence fondamentale entre les protocoles ARP et ICMP ?
ARP (Address Resolution Protocol) est utilisé pour la résolution d'adresses, c'est-à-dire pour trouver l'adresse MAC correspondant à une adresse IP donnée sur un réseau local. ICMP (Internet Control Message Protocol), quant à lui, est un protocole de la couche réseau (IP) utilisé pour envoyer des messages de contrôle et d'erreur, ainsi que des informations opérationnelles. La commande "ping", par exemple, utilise ICMP pour tester la connectivité entre deux hôtes.
3. Comment un système distingue-t-il les différents types de protocoles encapsulés dans une trame Ethernet ou un paquet IP ?
La distinction se fait grâce à des champs spécifiques dans les en-têtes des protocoles :
- Pour une trame Ethernet, le champ "Type d'Ethernet" (EtherType) indique le protocole de couche supérieure encapsulé (ex: 0x0800 pour IPv4, 0x0806 pour ARP).
- Pour un paquet IP, le champ "Protocole" de l'en-tête IP indique le protocole de couche transport (ou Internet) encapsulé (ex: 1 pour ICMP, 6 pour TCP, 17 pour UDP).