RTT en Red Qué es y Cómo Analizarlo con Wireshark?
RTT en Red Cómo Analizarlo con Wireshark

RTT en Red ¿Qué es? ¿Cómo Analizarlo con Wireshark?

En este artículo, vamos a abordar la noción de RTT red y la latencia de las redes, que son dos conceptos importantes cuando se habla de rendimiento de las redes y de las aplicaciones.

Este artículo se divide en dos partes principales:

  • Una parte teórica.
  • Una parte práctica con Wireshark.

En una Red, ¿Qué es la Latencia?

La latencia es el tiempo que tarda un paquete en ir de un punto A a un punto B, se mide en milisegundos (ms). En otras palabras, es el tiempo que tarda una información (como una solicitud o una respuesta) en enviarse, transmitirse a través de la red y recibirse en el destino.

Está influenciada por varios factores, entre ellos la distancia física, la calidad de los equipos de red, el soporte de conexión (fibra óptica, enlace inalámbrico, etc.) y la congestión de la red.

¿Qué es el Round Trip Time?

Explicación del Round Trip Time
Explicación del Round Trip Time

El Round Trip Time, que llamaremos RTT, es el tiempo de ida y vuelta de un paquete en la red. Representa el tiempo que tarda un paquete de datos en enviarse desde un punto A, llegar a un punto B (el destino) y que la respuesta regrese de B a A (la confirmación).

El RTT está influenciado por diferentes factores, al igual que la latencia, y lo explicaremos en la continuación de este artículo. Las nociones de RTT en red y latencia de la red son extremadamente importantes en el contexto del rendimiento de las redes (por cierto, sabes ¿Cómo se mide el rendimiento de la red?).

¿Cómo se Calcula el RTT en Red?

El RTT de la red inicial

El RTT red se calcula por primera vez por la solicitud de conexión TCP que permite establecer una conexión a un servicio como un servidor web, por ejemplo.

El cálculo del RTT red se realiza entre la solicitud de conexión “SYN” y “SYN ACK” cuando la captura se realiza en el lado del cliente. Si su captura se realiza en el lado del servidor, esta se calcula entre el “SYN ACK” enviado y la recepción del “ACK”.

Cálculo de RTT en Red
Cálculo de RTT en Red

Monitoreo de RTT de red

El RTT en red se calcula con las confirmaciones TCP, ya que estas no tienen ninguna carga de aplicación en los paquetes, lo que permite ver la variación del RTT red para una aplicación determinada.

Este cálculo del RTT red es utilizado por sondas de rendimiento de tipo NPMd (Network Performance Monitoring and Diagnostic) y sondas QoS (Quality of Service).

¿Por qué este tipo de equipo no calcula la latencia de forma global en un enlace WAN? Intentemos responder a esta pregunta.

En las redes WAN, se colocan equipos que permiten priorizar ciertos tipos de flujos, como flujos de aplicaciones que impactan el negocio de la empresa, a diferencia de aplicaciones de tipo intercambio de archivos o de respaldo. Para eso, los dispositivos QoS pueden afectar la latencia al ralentizar las confirmaciones TCP, entre otras cosas, por lo que la latencia será más alta para ciertos flujos de aplicaciones.

Para un seguimiento global, se puede utilizar una herramienta de supervisión como Zabbix, para realizar a intervalos regulares solicitudes ICMP (Internet Control Message Protocol) de tipo “echo” y “reply”.

¿Qué Puede Influir en el RTT de una Red?

Veamos los diferentes factores que pueden influir en el RTT de una red.

  • Congestión de la red: La congestión se produce cuando circulan demasiados datos en la red al mismo tiempo. Esto puede provocar retrasos debidos a la cola de paquetes o a su retransmisión en caso de pérdida. Esto aumenta el RTT.
  • Tiempos de respuesta de los servidores: Los servidores pueden aumentar los tiempos de respuesta si están sobrecargados de CPU o de memoria.
  • Número de saltos de red: El número de saltos corresponde al número de routers que atraviesa un paquete para llegar a un destino. Así, cuanto más routers atraviese, más aumentará el RTT red.
  • Distancia geográfica: La distancia geográfica es un elemento físico que impactará en el RTT red.
  • Soporte de transmisión: El tipo de soporte influirá en el RTT red, al pasar por una fibra óptica, la velocidad de transmisión será más rápida que un soporte de cobre o vía un enlace satelital.

Análisis del RTT Red con Wireshark

La herramienta ping, basada en el protocolo ICMP, es útil para medir el RTT de una red de forma global en un enlace. Wireshark presenta la ventaja de ser más preciso y de permitirnos profundizar en el análisis, ya que mide el RTT por sesión TCP. Descubramos cómo utilizar Wireshark para medir el RTT de una red.

El Initial Round Trip Time

Para tener el iRTT (Initial Round Trip Time – RTT inicial), es imprescindible capturar el handshake TCP.

Para hacerlo, si estás en el lado del cliente, ve al paquete “SYN ACK” y luego al detalle del paquete. Aquí, despliega la parte “Transmission Control Protocol“, luego “SEQ/ACK Analysis” para mostrar el iRTT red.

Captura de iRTT y RTT
Captura de iRTT y RTT

Nota: Puedes utilizar en columna el filtro de visualización “tcp.time_delta“, esto te dará también el iRTT para los primeros paquetes intercambiados a nivel del handshake TCP.

Monitoreo del RTT red

Para seguir el RTT red de una sesión TCP, hay que ir a “Statistics” luego “TCP Stream Graphs” y hacer clic en “Round Trip Time“.

Se abre una nueva ventana:

Gráfico TCP Stream Graphs
Gráfico de TCP Stream Graphs

En la imagen de arriba, se puede ver en el eje vertical el tiempo del RTT red, que es de 50 ms como máximo en el sentido “sitio web hacia mi ordenador”. Puedes cambiar de sentido en cualquier momento haciendo clic en el botón “Switch Direction“.

Cambiar dirección de TCP Stream Graphs
Cambiar dirección de TCP Stream Graphs

Un RTT red inferior a 100 ms será transparente para los usuarios. Entre 100 y 200 ms, comenzará a impactar en la experiencia del usuario. Tenga en cuenta que el RTT red también dependerá de la sensibilidad de la aplicación, la VOIP será más sensible que una aplicación WEB, por ejemplo. En algunos casos, un proceso de almacenamiento en caché puede mejorar el RTT y, por lo tanto, el rendimiento de una aplicación.

¿Cómo saber qué paquete ha subido los XX ms de RTT red? Coloque el cursor sobre el punto y en la parte inferior aparecerá el paquete que ha subido XX ms de RTT red.

Puedes ver en un paquete el RTT red calculado. Siempre está ligado a una confirmación TCP. Basta con repetir el mismo procedimiento que para el iRTT red, Wireshark añadirá dos informaciones, el paquete a partir del cual ha calculado el RTT red y el RTT red mostrado.

RTT calculado en un paquete
RTT calculado en un paquete

El RTT Red y el Rendimiento de las Aplicaciones

Turno de aplicación

¿Qué es un turno de aplicación? Un turno de aplicación se define como el conjunto formado por una solicitud de aplicación y la respuesta correspondiente.

Tomemos el ejemplo de una aplicación sencilla, donde cada interacción se limita a una única solicitud seguida de una única respuesta. En un entorno local, como un LAN de pruebas con una latencia de 1 ms de RTT, el retraso inducido por un turno de aplicación es prácticamente imperceptible.

Sin embargo, si esta misma aplicación se despliega en una red satelital, donde la latencia puede alcanzar fácilmente los 500 ms por turno, se observa inmediatamente una pérdida de 0,5 segundos por interacción. Aunque esto sigue siendo generalmente soportable para operaciones aisladas, la situación se vuelve problemática cuando las interacciones se multiplican.

Imagine ahora que, en lugar de una única interacción, la aplicación realiza una serie de solicitudes SQL donde el cliente recupera línea por línea las 1000 líneas de la respuesta. Cada línea recuperada requiere un nuevo turno de aplicación y, por lo tanto, una nueva espera de 0,5 segundos. Así, la operación que podría haberse realizado en una sola interacción rápida en un entorno de baja latencia se convierte en una serie de esperas acumuladas, lo que hace que la aplicación sea casi inutilizable en estas condiciones.

¿Cómo ver los turnos de aplicación en Wireshark?

Selecciona un paquete, haz clic con el botón derecho del ratón y ve a ‘Follow‘ luego ‘TCP Stream

Follow y TCP Stream
Follow y TCP Stream

Se abre una nueva ventana. En la parte inferior izquierda, tiene el número de turnos de aplicación.

Número de turns en Wireshark
Número de turns en Wireshark

Basta con hacer el siguiente cálculo para conocer el impacto del RTT red en el rendimiento de la aplicación:

Número de turnos * por el RTT red en segundos

Nota: Las aplicaciones de tipo SQL hacen muchos intercambios de aplicaciones y no están optimizadas para los enlaces WAN.

Conclusión

Aquí tienes una visión general del RTT red y su análisis con Wireshark! Ahora, vamos a poder entrar en el universo de TCP en los próximos artículos…

Si tienes alguna pregunta, no dude en comentar este artículo.