Réseaux

Protocoles sur Internet - Correction

Communication entre deux machines

Trames Filius ping
  1. Le protocole utilisé est le protocole ARP qui appartient à la couche Réseau/Internet.
  2. Paquet 1 : émission d'une recherche par la source 192.168.1.1
    Paquet 2 : réponse du destinataire 192.168.1.2 qui donne son adresse MAC
  3. La commande ping utilise le protocole ICMP qui appartient lui-aussi à la couche Réseau/Internet
  4. La source envoie un paquet ICMP vers le destinataire ( "ping" ); si ce dernier renvoie une réponse ("pong" ) c'est qu'il est bien joignable.
    Le TTL ( = Time To Live ) indique de manière générale le nombre de routeurs qu'un paquet peut traverser avant qu'il ne soit considéré comme "perdu" : le TTL est décrémenté de 1 à chaque traversée de routeur, et lorsqu'il arrive à 0, le paquet n'est plus re-routé. Ce mécanisme évite qu'un paquet "n'encombre" inutilement le réseau en continuant à circuler alors que sa destination n'est pas joignable.
    Pour la commande ping, le TTL par défaut est de 64 routeurs : si à l'issue de ce "trajet" le "pong" n'est pas parvenu à la source, le paquet ICMP est perdu et le destinataire considéré comme injoignable.( ici, on peut remarquer que le TTL à réception est encore de 64, ce qui signifie qu'aucun routeur n'a été traversé, ce qui est bien le cas ! )

Requète et réponse HTTP

Trames Filius HTTP
  1. Le numéro de port est indiqué après l'IP de chaque machine dans les paquets des couches Transport et Application :
    • pour le client : 192.168.1.1:10733 → port TCP 10733 ( aléatoire )
    • pour le serveur : 192.168.1.200:80 → port 80, port par défaut pour le protocole HTTP
  2. Ouverture de la connexion TCP :
    • Paquet 1 : demande d'ouverture de connexion client → serveur ( "SYN" )
    • Paquet 2 : acquitement du serveur ( "ACK" ) et demande d'ouverture de connexion serveur → client ( "SYN" )
    • Paquet 3 : acquitement du client ( "ACK" )

    A chaque paquet est associé un numéro de séquence ( SEQ ) et un numéro d'acquitement ( ACK ).

    On peut remarquer que chaque machine ( le client et le serveur ) ont chacune leur propre ensemble de valeurs SEQ/ACK. C'est grâce aux numéros de séquence/acquitement que le protocole TCP peut mettre les paquets reçus par chaque machine dans le "bon" ordre.

  3. Les paquets correspondant à des échanges de données sont les paquets de la couche Application ( lignes en bleu foncé ).
    On constate que l'envoi d'un paquet dans un sens est toujours suivi d'un paquet d'acquitement dans le sens inverse.
    Le protocole utilisé ici par la couche Application est un transfert de données web, donc HTTP.
  4. Requètes du client : elles correpondent aux paquets qui circulent dans le sens client → serveur. Il y en a deux :
    • Paquet 4 : requète du fichier HTML
    • Paquet 8 : requète de l'image
    Dans les deux cas, la méthode HTTP utilisée est la méthode GET.
  5. Réponses du serveur : elles correspondent à 7 paquets :
    • un seul paquet pour le fichier HTML : paquet 6 ( on peut noter dans ce paquet la réponse HTTP 200 de la part du serveur, qui signifie "OK" )
    • 6 paquets pour l'image : paquets 10, 12, 14, 16, 18 et 20
  6. Fermeture de la connexion TCP : correspond au 4 derniers paquets ( c'est donc un "4-way handshake"...) :
    • Paquet 22 : demande de FIN par le client ( donc pour la connexion client → serveur )
    • Paquet 23 : acquitement par le serveur
    • Paquet 24 : demande de FIN par le serveur ( donc pour la connexion serveur → client )
    • Paquet 25 : acqiutement par le client
    On constate donc que, comme pour la connexion, c'est le client qui demande la déconnexion...

Un petit résumé en images de tout ça.

Protocole du bit alterné

  1. Quand l'ordinateur B reçoit un paquet avec le bit de contrôle à 1, il doit renvoyer un acquitement avec le bit inversé, donc 0
  2. Le paquet perdu avait son bit de contrôle à 0; la réponse de l'ordinateur B aurait du être un message avec le bit de contrôle à 1.
  3. Comme le bit est alterné à chaque paquet, on en déduit donc qu'il est de 0 pour tous les paquets de numéro impair (1, 3, 5, etc...) et de 1 pour tous les paquets de numéro pair (2, 4, 6, ...)

Décodage d'une trame Ethernet

Le fichier de correction.