Académique Documents
Professionnel Documents
Culture Documents
Recherche Scientifique et la
Technologie
*** * ***
Compte rendu
TP1 Réseaux Locaux: Réalisation
d’un programme de capture de
trames
Elaboré par :
Abdelkrim FITOURI
Salmen HITANA
Niveau : 4 ème année réseaux informatiques et
télécommunications
Année universitaire : 2009/2010
1
Partie1 : Capture de trame avec Wireshark et
Libpcap
Introduction :
Ethereal est le plus ancien analyseur de trafic, même s’il a encore un site
www.ethereal.com ,le projet a pris une nouvelle tournure et s’appelle
Wireshark(www.wireshark.org).
✔ Remarque :
Dans les réseaux commutés nous pouvons voir que les paquets entrants,
sortent de notre machine ou le trafic broadcaste.
2
On appuie sur START pour commencer l’écoute :
➢ Les paquets sont codés selon les protocoles qui s’y trouvent.
➢ Dans la partie encadrée en rouge :
• La première colonne correspond au numéro du paquet
• Time : temps écoulé depuis le lancement de la capture et l’arrivée de la
trame.
• 3 ème colonne l’adresse source (IP ou MAC selon le protocole)
• 4 ème colonne l’adresse destination (IP ou MAC selon le protocole
aussi).
• 5 ème colonne correspond au protocole utilisé.
• Dernière colonne quelques informations relatives sur le contenu du
paquet (flag, numéro de séquence, port…).
➢ Une pile d’encapsulation est construite (partie encadré avec la couleur
verte) qui contient des informations pour chaque paquet :
• Les protocoles utilisés dans chaque couche.
• Le contenu des différents champs de chaque protocole.
3
Tout en bas de la fenêtre on trouve le contenu du paquet en format hexadécimal
(rouge) et ASCII (vert) :
L’utilisation des filtres peut s’avérer utile si on veut voir juste des paquets
spécifiques par exemple qui sont destinés à notre machine ou utilisant un
protocole donné.
4
On peut taper directement « icmp » dans le champ « filtre » :
On veut maintenant afficher les paquets ICMP avec une adresse destination
74.125.39.174 qui est l’adresse IP de www.google.com
On aura alors :
5
Fonctionnement :
Si la machine ne trouve pas l’adresse mac dans son ARP cache elle utilise le
protocole ARP pour le trouver.
La machine envoie alors un ARP-REQUEST qui contient dans son champ adresse
destination, une adresse broadcaste mac sous la forme ff-ff-ff-ff-ff-ff et l’adresse
IP destination. Cette trame sera envoyée à toute les machines du réseau.
Le protocole TCP :
192.168.1.1 est l’adresse ip du routeur qu’on utilise et qui contient une interface
web donc en tapant son adresse dans l’explorateur web on accédera à l’interface
web du routeur donc il va y avoir une établissement de connexion entre la
machine et le routeur qui contient un serveur web .
6
On aura alors :
7
Et enfin le 3 ème paquet pour que le client informe le serveur qu’il va
maintenant commencer l’envoi des données.
8
2 ème partie : Réalisation d’un programme
qui capture les Trames
Dans cette partie nous allons réaliser un programme qui utilise la bibliothèque
LIBPCAP pour capturer les trames en s’inspirant de Wireshark.
Le programme permettra de capturer puis décoder les paquets de type IP, UDP,
TCP, ICMP, ARP, et ETHERNET qui transitent sur le réseau.
Tous d’abord on doit ajouter la structure des entêtes dans le fichier « headers.h »
Remarque :
9
Paquet UDP :
10
Le choix des types de chaque champ est effectué selon :
Source www.commentcamarche.com
On a choisi unsigned short car dans la trame réelle, la taille du port est de 16
bit (2 octet).
Ca aurait pu être un short in mais les numéros de port ne sont pas de signe
négatif.
11
Paquet ICMP :
Toutes les structures des paquets peuvent être trouvées dans le fichier
(/usr/include/netinet/*.h)
Paquet ARP :
12
Réalisation :
Menu principale :
Choix de l’interface
13
Affichage des informations liées à l’interface choisie et choix du nombre de
paquet à capturer
14
Exemple d’écoute sur des paquets ARP
15
Exemple d’écoute sur des paquets UDP
16