Dans cette étape, nous allons examiner comment Wireshark enregistre les informations de chronométrage au format JSON. JSON (JavaScript Object Notation - Notation d'objet JavaScript) est un format de données léger, facile à lire pour les humains et à analyser pour les machines. Nous allons combiner les compétences en capture et filtrage de paquets des étapes précédentes pour générer des statistiques de chronométrage significatives.
Avant de commencer, assurons-nous que nous sommes dans le bon répertoire. Le dossier du projet contient tous les fichiers nécessaires et organisera notre travail :
cd ~/project
Maintenant, nous allons générer des données de chronométrage spécifiquement pour les paquets TCP. Le drapeau --print-timers
indique à Tshark d'inclure les informations de chronométrage dans sa sortie, tandis que -T json
la formate au format JSON. Nous enregistrons cela dans un fichier pour une analyse ultérieure :
tshark -r /usr/share/wireshark/example_captures/http.pcap -Y "tcp" --print-timers -T json > tcp_timings.json
Jetons rapidement un coup d'œil à la structure de notre sortie JSON. La commande head
nous montre les 20 premières lignes, ce qui nous aide à comprendre comment les données sont organisées avant de les traiter plus en détail :
head -20 tcp_timings.json
Pour travailler efficacement avec les données JSON, nous allons utiliser jq
, un puissant processeur JSON en ligne de commande. Si vous ne l'avez pas encore installé, cette commande l'installera :
sudo apt-get install -y jq
Maintenant, nous pouvons extraire des métriques de chronométrage spécifiques. Cette commande filtre le JSON pour afficher uniquement les informations de chronométrage pour chaque paquet, nous donnant une vue plus claire des données de chronométrage :
jq '.[].timers' tcp_timings.json | head -10
Enfin, créons un résumé plus ciblé qui affiche uniquement les numéros de paquets et leurs temps de traitement correspondants. Cela nous donne une vue claire du temps que chaque paquet a pris à être traité :
jq '.[].timers | {packet_number: .packet_num, processing_time: .processing_time}' tcp_timings.json | head -5