Tux

La programmation réseau

TD 5 - Application ICMP

C. Drocourt
I.U.T. Amiens
drocourt@iut-amiens.fr

Exercice : 

Réaliser un programme ping

1 - Consulter la rfc qui décrit le protocole ICMP,
2 - Cherchez le passage sur "echo-request" et "echo-reply",
3 - Quel est le type et le code pour un "echo-request" ?
4 - Quelle sont les différents chmps à renseigner ?
5 - Afin de simplifier le programme, vous allez commencer par définir un buffer de la manière suivante :
    unsigned char paquetout[64];
6 - Vous allez initialiser ce buffer avec des 0, à l'aide de la fonction memset,
7 - Remplissez maintenant les seuls champs qui nous intéressent : le type et le checksum,
8 - Modifiez le type de socket par SOCK_RAW, quelle doit être la valeur du champ protocole ? (voir /etc/protocols),
9 - Envoyez ce paquet à l'aide de la primitive sendto,
10 - Récupérer maintenant la réponse à l'aide de la primitive recvfrom, quelle est la taille du paquet reçu ?
11 - Affichez les informations reçues à raison de 4 octets par lignes,
12 - Analysez en détail la réponse,
13 - Effectuez maintenant une boucle d'émission/réception,