En este paso, examinaremos cómo Wireshark registra información de tiempos en formato JSON. JSON (JavaScript Object Notation) es un formato de datos ligero que es fácil de leer para los humanos y de analizar para las máquinas. Combinaremos las habilidades de captura y filtrado de paquetes de los pasos anteriores para generar estadísticas de tiempos significativas.
Antes de comenzar, asegúremos de estar en el directorio correcto. La carpeta del proyecto contiene todos los archivos necesarios y mantendrá nuestro trabajo organizado:
cd ~/project
Ahora generaremos datos de tiempos específicamente para los paquetes TCP. La bandera --print-timers
le indica a Tshark que incluya información de tiempos en su salida, mientras que -T json
lo formatea como JSON. Estamos guardando esto en un archivo para su posterior análisis:
tshark -r /usr/share/wireshark/example_captures/http.pcap -Y "tcp" --print-timers -T json > tcp_timings.json
Echemos un vistazo rápido a la estructura de nuestra salida JSON. El comando head
nos muestra las primeras 20 líneas, lo que nos ayuda a entender cómo está organizada la data antes de procesarla más:
head -20 tcp_timings.json
Para trabajar de manera efectiva con datos JSON, usaremos jq
, un potente procesador de JSON de línea de comandos. Si aún no lo tienes instalado, este comando lo configurará:
sudo apt-get install -y jq
Ahora podemos extraer métricas de tiempo específicas. Este comando filtra el JSON para mostrar solo la información de los temporizadores de cada paquete, dándonos una vista más clara de los datos de tiempo:
jq '.[].timers' tcp_timings.json | head -10
Finalmente, creemos un resumen más enfocado que muestre solo los números de paquete y sus tiempos de procesamiento correspondientes. Esto nos da una vista clara de cuánto tiempo tardó en procesarse cada paquete:
jq '.[].timers | {packet_number: .packet_num, processing_time: .processing_time}' tcp_timings.json | head -5