Couche réseau: Ping - pierre
Transcription
Couche réseau: Ping - pierre
Réseaux : Couche réseau: Protocole ICMP (Internet Control Message Protocol) : Le but est d’échanger des messages d’erreur et des demandes d’informations, soit traités par IP soit par une couche supérieure : Header IP ICMP Header ICMP Data Réseau ICMP Paquet IP Liaison Header Ethernet … Liaison Physique On peut noter que l’entête IP fait 20octets alors que la longueur du message ICMP est variable. Quelques types des messages ICMP : (Les informations comme type et code peuvent être récupérer grâce à une capture WireShark en analysant la couche réseau) Ping : La commande ping s’exécute dans l’invite de commande, elle est basée sur les messages ICMP de type 8 (echo request) et 0 (echo reply) Réception d’un message type 8 ⇒ émission d’un message type 0 La commande ping renseigne l’adresse IP, le nombre de paquets, la latence, la taille et le TTL. On appelle RTT le temps aller-retour, il peut être différent car les machines n’empruntent pas forcément le même chemin de plus la charge du réseau peut jouer un rôle important. Exemple d’une commande ping : ping www.google.fr Envoi d’une requête ping de 32octets vers 209.85.135.103 (www.google.fr) La lecture des informations est simple, on peut détailler ce qu’est le TTL : Il s’agit du nombre de « bonds » nécessaires à un message pour attendre sa cible, dans la commande ci-dessus le TTL était de 255 : Ma machine • TTL=241 www.google.com x x 243 x x 245 x x 247 x x x 249 x 251 x x x 253 • TTL=255 Le TTL qu’on lit est celui de message « retour » (echo reply). Commande ping avec WireShak : D’un couple (request, reply) à l’autre le numéro de séquence change cela permet d’identifier chaque requête (et de l’associer à sa réponse). Le champ « Checksum » correspond à la somme de contrôle, il permet de savoir si le checksum calculé correspond au checksum reçu (pour savoir si l’envoi est correct, dans le cas inverse on demande le renvoi). TraceRoute : La commande tracert s’exécute dans l’invite de commande, elle est basée sur les messages ICMP de type 11 / code 0 (time exceeded) et type 3 / code 4 (port unreachable). Envoi de datagrammes UDP qui déclenchent ces messages d’erreur ICMP Fonctionnement : (sens A → B) Exemple : tracert www.google.fr On attend la cible en 16 sauts * correspond à des machines qui « cachent » leur adresse. La première adresse correspond au routeur MTU : Le MTU correspond au plus grand paquet que l’on peut envoyer : MTU=4000 MTU=1500 X 1500 1500 1000 Fragmentation Path MTU : Découverte de la taille maximale des paquets au long de la route A → B pour éviter la fragmentation : Émission avec le bit DF = 1 (en-tête IP) Si un routeur doit fragmenter, il retourne à la source un message d’erreur ICMP. (La plus grande taille sans avoir à fragmenter est 1472 octets) Il existe également une taille « minimum » : Si on ping sans données (0 octet); on remarque avec WireShark qu’on a un paquet qui fait tout de même 42 octets : - L’entête du paquet ICMP sur 8 octets o le type sur 1octet o le code sur 1 octet o le checksum sur 2 octets o etc… - L’entête IP sur 20 octets - Les adresses MAC sur 12 octets (6 pour la source, 6 pour la destination) - Le protocole de la couche liaison sur 2 octets