En la primera parte de la serie dedicada a tcptrace vimos su instalación, uso básico, argumentos, impresión de cabeceras, estadísticas RTT, extracción de contenido o payload del campo data tcp, etc. Es esta segunda parte vamos a comenzar con la generación de los distintos tipos de gráficas, para más adelante estudiarlas e interpretarlas. De la interpretación de las gráficas podemos obtener gran cantidad de información para la detección de problemas de red, optimización, etc.
Tcptrace. Introducción a la gráficas.
Tenemos dos formas de plotear o mostrar las gráficas:
- Mediante Jplot (Java),
- a través de Xplot.
Tcptrace, mediante una serie de opciones, generará un formato de archivo .xpl con toda la información necesaria para que tanto Jplot como Xplot puedan crear las gráficas.
Jplot 2.0.1 lo descargamos desde http://www.tcptrace.org/windows.html
Para Xplot. Necesitaremos (lo veremos en el siguiente capítulo) el comprimido http://www.tcptrace.org/useful/win_xplot.zip y Xserver for Windows http://dao.gsfc.nasa.gov/software/grads/win32/X11R6.4/. como os digo, todo esto lo veremos en el siguiente capítulo. En este nos centraremos con Jplot.
Os aviso: es posible que el enlace a XServer for Windows, más arriba reseñado, no esté activo. En el próximo capítulo os daré una alternativa que funciona perfectamente.
Tcptrace. Gráficas con Jplot.
Vamos a usar en este artículo algunos ficheros de captura de red del tipo .pcap. Para saber más sobre ellos, su uso, filtros, etc:
Empezamos.
Jplot lo descargamos desde http://www.tcptrace.org/jPlot/download/jPlot-1.0.2.zip El ejecutable .jar los tenemos en \jPlot-1.0.2\src. Para ejecutarlo lo haremos de la siguiente manera:
- java -jar jplot -h (para ver la ayuda)
Bien. Vamos ahora como preparar los archivos con los que trabajará Jplot.
Tcptrace generara los siguientes tipos de gráficas mediante las opciones:
- -T throughput graph
- -R rtt sample graph
- -S time sequence graph
- -N cwin graph
- -F segsize graph
- -G todos los tipos de gráficas
La nomenclatura, para identificar los tipos de archivos generados por tcptrace, para luego generar las gráficas, son las siguiente:
- _owin.xpl – outstanding data/congestion
- _rtt.xpl – round trip time/time
- _ssize.xpl – segment size/time
- _tput.xpl – throughput/time
- _tsg.xpl – time sequence graph
- _tline.xpl – Timeline graph
En esta ocasión vamos a ver _rtt.xpl, _tput.xpl y _tsg.xpl.
Gráfica time sequence.
Vamos con la gráfica time sequence o de número de secuencia (-S). Para ello, lo más simple es, en este caso usando un archivo de captura .pcap previa:
tcptrace -zxy -o1 -S XPLICO.pcap
- -zxy establecemos orígen de coordenadas 0 en x e y. La opción es –z. Para individualizar lo hacemos así -zx o –zy.
- -o1 aplicamos solo para la conexión 1 (a2b / b2a). Lo vimos en la primera parte.
- -S para crear la gráfica solo de time secuence.
- XPLICO.pcap es el archivo de captura que usamos para generar los gráficos. Lo generé en su momento con Tshark.
Después de ejecutar, tcptrace genera dos archivos:
- b2a_tsg.xpl
- a2b_tsg.xpl
Para generar la grafica secuence time a partir de la conexión a2b hacemos lo siguiente:
java -jar jplot.jar -t a2b_* (usamos el comodín si queremos abrir todos los tipos de gráficas) ó java -jar jplot.jar -t a2b_tsg.xpl
Al ejecutar se abre una ventana:
Podríamos usar el zoom, etc. Lo vemos luego. Pero si queremos aplicar algunos límites, podríamos usar la opción -E de tcptrace para limitar por número de segmentos a analizar. Vemos en la gráfica que hay más de 80000. Vamos a limitar un poco:
tcptrace -zxy -E30000 -o1 -S XPLICO.pcap
-E30000 limitamos hasta 30000 segmentos.
tcptrace -zxy -B10000 -E20000 -o1 -S XPLICO.pcap
-B10000 -E20000 desde 10000 a 20000
Obtenemos ahora la gráfica con -E30000:
java -jar jplot.jar -t a2b_tsg.xpl
Esta gráfica corresponde a la proción comprendida en el recuadro en rojo de la gráfica anterior.
He generado otra gráfica, aquí la tenemos:
El tiempo de conexión es menor 0-100 segundos. En el anterior es casi 4 veces más y tendríamos que hacer una vetana zoom para apreciar detalles.
Básicamente:
La línea verde representa los valores ACK recibidos. La línea amarilla representa la ventana de recepción.
Si hacemos zoom y vemos unos segmentos sobre la línea verde, se trata de ACKs duplicados. Igualmente, si vemos unos segmentos blancos con flechas en sus extremos, se trata de números desecuencia. Si las flechas son rojas, representa retransmisiones.
NOTA: Cuando veamos las gráficas con Xplot veremos que podemos tener mayor control en información que con las generadas con jplot.
Para la interpretación de las gráficas tenéis información aquí: https://seguridadyredes.wordpress.com/post/2008/12/01/graficas-con-wireshark-ii-parte-tcptrace que aunque se trate de Wireshark, son gráficas tipo tcptrace.
Gráfica RTT (Retardo Promedio de Red).
Seguimos. Vamos ahora a ver otro tipo de gráfica, por ejemplo las gráficas RTT. Ya viemos en la primera parte:
«RTT (Retardo Promedio de Red). Básicamente se trata de una estadística del tiempo que toma en enviar un paquete desde un host cliente a un host servidor y viceversa.«
Para ello usamos la opción -R y, del fichero de captura, extraemos los datos que corresponden a la conexión 1 (-o1) es decir (a2b) y (b2a):
tcptrace -zxy -l -o1 -R captura3.pcap
Ejecutamos Jplot con los datos .xpl:
java -jar jplot.jar -t a2b_* usamos el comodín pero podríamos poner también: java -jar jplot.jar -t a2b_rtt.xpl. Lo vemos:
Vemos que el eje X representa RTT en milisegundos y el eje Y el tiempo.
Gráfica throughput.
Mediante este tipo de gráfica, se nos muestra el rendimiento de los streams TCP en relación al tiempo.
Para ello:
tcptrace -zxy -o2 -T captura3.pcap
java -jar jplot.jar -t c2d_tput.xpl
La gráfica:
Tenemos en el eje y el rendimiento / segundo, eje x el tiempo.
————————————-
Hasta aquí por hoy. Seguiremos en el siguiente capítulo con:
- Los otros tipos de gráficas.
- Veremos más ejemplos para interpretarlos y usaremos las opciones para gráficas de tcptrace.