Cómo Medir la Latencia a Través de Cada Capa de Red

EVOproxy Team
Cómo Medir la Latencia a Través de Cada Capa de Red

Tienes una ejecución en vuelo, y un grupo de solicitudes sigue agotándose mientras el resto se ve bien. La verificación de anuncios pasa en una sesión de navegador, falla en otra, y el trabajo de raspado solo pierde la página objetivo cuando el grupo de proxies rota en el momento equivocado. Ese es el tipo de desastre que crea la latencia, porque el problema generalmente no es una mala muestra. Es una distribución que se oculta detrás de un promedio que parece limpio.

Si mides la latencia de la manera incorrecta, pasarás horas ajustando la capa equivocada. La solicitud puede ser lenta debido a DNS, configuración de TCP, negociación de TLS, procesamiento del servidor, pérdida de paquetes, o el propio camino del proxy. En flujos móviles y 4G, la IP pública, el ASN y NAT de grado de operador pueden cambiar la forma de lo que ves, así que el camino que pruebas en un centro de datos no te dirá mucho sobre el camino que toma tu tráfico real. Un buen punto de referencia comienza tratando la latencia como una curva, luego descompone esa curva hasta que la pieza lenta es obvia.

El verdadero costo de una solicitud lenta

Una ejecución de raspado que parece saludable en papel puede seguir siendo frágil en producción. El programador de trabajos informa un rendimiento normal, pero algunas páginas se detienen el tiempo suficiente para activar reintentos, y todo el lote termina tarde. En la verificación de anuncios, el mismo patrón aparece como una prueba que se ve bien en un navegador de baja carga, luego devuelve resultados inconsistentes cuando cambia el camino de la red o el proxy rota a mitad de sesión. En ambos casos, el síntoma visible es un plazo perdido, pero la causa generalmente se distribuye entre muchas solicitudes, no una interrupción dramática.

Por eso los promedios son peligrosos. Un servicio puede tener una media respetable y aún así sentirse lento para los usuarios porque la cola es fea. Si solo miras un número resumen, te pierdes las solicitudes más lentas, y esas son las que rompen los flujos de inicio de sesión, las verificaciones sensibles al tiempo y las pruebas dependientes de la geolocalización.

Regla práctica: trata la latencia como un conjunto de muestras, no como una sola lectura. La primera pregunta no es “¿Cuál es el promedio?” Es “¿Cómo se ve la cola, y qué cambió allí?”

Cuando estoy depurando un camino de raspado o verificación, empiezo con la forma de la latencia, no con la media. Una mediana limpia con un p95 o p99 feo significa que el sistema está mayormente bien, pero un pequeño segmento de tráfico está siendo golpeado por congestión, reintentos, o un salto malo. Ese segmento a menudo es suficiente para arruinar el comportamiento en producción.

Para los equipos que operan a través de caminos móviles, esto importa aún más. Una ruta 4G puede parecer estable por un tiempo, luego cambiar debido a la red, el operador, o el estado de la sesión del proxy. Por eso el punto de referencia correcto es una distribución completa, no un promedio reconfortantemente pequeño. Si necesitas una línea base para conceptos de estabilidad de red, mantén un ojo en el contexto operativo más amplio también, porque la latencia es solo un lado de la calidad del camino: referencia de estabilidad de red.

Fundamentos de latencia que necesitas antes de probar

Un diagrama que ilustra cuatro herramientas de línea de comandos para medir la latencia de red: ping, traceroute, mtr y netcat.

Comienza con los términos que importan

Tiempo de ida y vuelta, RTT, es el tiempo que tarda un paquete en salir y regresar. Es la unidad básica que la mayoría de las herramientas de red exponen, y generalmente se mide en milisegundos. Retraso de un solo sentido solo es válido cuando ambos extremos tienen relojes sincronizados de manera precisa, razón por la cual la mayoría de los equipos de producción se adhieren al RTT a menos que controlen el tiempo en ambos lados. Jitter es la variación entre mediciones, pérdida de paquetes es tráfico perdido, y rendimiento es cuánta data puede transportar el camino a lo largo del tiempo.

Los percentiles te dan la vista práctica. p50 es el medio de la distribución, p95 muestra el nivel bajo el cual se mantienen el 95% de las solicitudes, y p99 profundiza más en la cola donde viven las raras solicitudes lentas. Si la mediana está bien pero p95 y p99 se extienden, tus usuarios aún lo sentirán.

Piense en capas, no en un solo salto

La latencia comienza en la capa de enlace, pero los usuarios la experimentan en la capa de aplicación. Un paquete debe ser enviado, enrutado, transportado, reensamblado y finalmente procesado por el servicio. Eso significa que un solo ping solo puede contarte parte de la historia, porque mide principalmente el camino, no el trabajo realizado por la aplicación una vez que el paquete llega.

Un modelo mental útil es simple. La calidad del camino físico afecta el RTT, el comportamiento de transporte afecta los retransmisiones y la configuración de conexión, y el trabajo de la aplicación afecta cuánto tiempo espera la solicitud antes de que llegue el primer byte. Por eso terminarás midiendo en varias capas si quieres una respuesta confiable.

Si una prueba solo muestra un número, asume que está incompleta hasta que se demuestre lo contrario.

Las conexiones móviles 4G añaden otra capa de variabilidad. La IP pública puede estar detrás de NAT de grado de operador, múltiples usuarios pueden compartir la misma dirección pública, y el tráfico puede agruparse por contexto de ASN en lugar de por una simple huella residencial. Eso cambia tanto cómo se ve el camino como cómo los sistemas posteriores lo clasifican, razón por la cual las pruebas basadas en proxy necesitan su propia disciplina de medición.

Midiendo la latencia desde la línea de comandos

Un diagrama infográfico que ilustra el desglose paso a paso de los procesos de latencia de solicitudes de red de aplicaciones y navegadores.

Ping te dice el RTT de primer paso

Usa ping cuando quieras una lectura rápida sobre la calidad del camino. Un comando simple como ping -c 20 target te da un pequeño conjunto de muestras, y la salida generalmente termina con min/avg/max más un valor de dispersión. El campo de latencia a leer es la línea de RTT, no la secuencia de paquetes.

Patrón de salida de ejemplo:

20 paquetes transmitidos, 20 recibidos, 0% de pérdida de paquetes rtt min/avg/max/mdev = 12.4/18.7/41.3/6.2 ms

Aquí, avg es útil solo como una orientación aproximada, mientras que max sugiere la cola. Si el máximo es mucho más feo que el promedio, ya has aprendido que el camino no es lo suficientemente estable para flujos sensibles.

Traceroute muestra dónde se ralentiza el camino

Usa traceroute target cuando necesites un tiempo salto a salto. El número a observar es el RTT mostrado por salto, porque ahí es donde se acumula el retraso. Un salto lento no siempre significa un fallo, pero te dice dónde el camino comienza a ampliarse.

Patrón de salida de ejemplo:

1 1.1 ms 1.0 ms 1.2 ms 2 4.8 ms 5.1 ms 4.9 ms 3 19.6 ms 20.1 ms 21.0 ms

Si el salto aparece en el salto 3 y se mantiene alto después de eso, el cuello de botella probablemente esté aguas arriba del objetivo, no dentro de él. Si el primer salto lento aparece y los saltos posteriores se recuperan, no lo interpretes en exceso. Algunos enrutadores depriorizan las respuestas de sondeo, lo que hace que parezcan lentas sin perjudicar el tráfico real.

MTR combina las dos vistas

mtr target es útil cuando quieres un informe en vivo tanto del camino como de la pérdida. Las columnas a leer son Pérdida% y Promedio. Un salto con pérdida creciente y promedio de RTT creciente es más preocupante que uno con un solo pico extraño.

Patrón de salida de ejemplo:

Host Pérdida% Promedio Mejor Peor 1 0.0% 1.1 1.0 1.5 2 0.0% 5.0 4.8 5.4 3 2.0% 20.4 19.7 41.2

El comando es más útil cuando lo dejas correr el tiempo suficiente para ver patrones en lugar de picos únicos. Para el trabajo con proxies, eso importa porque una ruta rotada puede parecer bien durante un minuto y luego desviarse una vez que cambia la sesión. Si estás construyendo un punto de referencia repetible en torno a la velocidad del proxy, mantén la sesión estable y compara la ejecución contra una línea base fija, luego usa un flujo de trabajo de verificación de velocidad de proxy dedicado como esta guía de prueba de velocidad de proxy.

Iperf3 te dice cómo se comporta el enlace bajo carga

Usa iperf3 cuando te importa la capacidad y la sensibilidad a la carga. Un comando básico como iperf3 -c target verifica cómo se comporta el camino cuando los datos están fluyendo, no solo cuando un sondeo está rebotando. El campo a observar es la tasa de transferencia, porque la latencia a menudo empeora una vez que el enlace se vuelve ocupado.

Patrón de salida de ejemplo:

[ ID] Interval Transfer Bitrate [ 5] 0.00-10.00 sec 120 MBytes 101 Mbits/sec

Eso no es un número de latencia por sí mismo, pero te dice si es probable que la congestión afecte los tiempos de tu solicitud. Si el rendimiento colapsa bajo carga, el camino de la solicitud va a sentir esa presión en algún lugar.

Tcpdump y tshark exponen el tiempo a nivel de paquete

tcpdump es para captura, y tshark o Wireshark es para análisis. Captura el flujo, luego inspecciona las estadísticas de ICMP o transporte para ver mínimo, máximo, media, mediana y desviación estándar. Esos campos te ayudan a entender si la distribución es ajustada o ruidosa.

Patrón de captura de ejemplo:

tcpdump -i any host target Estadísticas de ICMP: min 12 ms, max 71 ms, mean 19 ms, median 16 ms, stddev 8 ms

Esa es la vista más honesta que obtendrás cuando un promedio de ping oculta la forma de la cola. También ayuda cuando sospechas que el salto del proxy está añadiendo retraso de una manera que las herramientas de salto a salto no pueden explicar claramente.

Latencia de Aplicación y Navegador que Realmente Puedes Ver

Una solicitud puede parecer rápida en la capa de red y aún sentirse lenta en el navegador. Por eso siempre lo desgloso con curl antes de confiar en cualquier otra cosa. Los campos útiles son tiempo de DNS, tiempo de conexión TCP, tiempo de TLS, TTFB para tiempo hasta el primer byte, y tiempo total.

Un comando práctico se ve así:

curl -o /dev/null -s -w "dns:%{time_namelookup} tcp:%{time_connect} tls:%{time_appconnect} ttfb:%{time_starttransfer} total:%{time_total}\n" https://example.com

Salida de ejemplo:

dns:0.012 tcp:0.045 tls:0.089 ttfb:0.150 total:0.320

Esa línea te dice dónde está ocurriendo la espera. Si DNS es barato pero TTFB es lento, el servidor o el camino del proxy son el problema. Si TCP y TLS son el lastre, estás mirando la configuración de la conexión, no la entrega de contenido.

Usa la cascada del navegador para el tiempo visible al usuario

Las herramientas de desarrollo del navegador te dan un ángulo diferente. La cascada del panel de red muestra dónde pasó tiempo cada solicitud, y la pestaña de tiempo la divide en detenido, búsqueda de DNS, conexión inicial, SSL, solicitud enviada, esperando (TTFB), y descarga de contenido. Esa descomposición importa porque una página puede parecer rota incluso cuando el backend está sano.

Si la cascada muestra la mayor parte de la espera antes de que se envíe la solicitud, el navegador o el camino del proxy son el punto de estrangulamiento. Si la espera domina, el backend es lento para responder. Si la descarga de contenido es el problema, la carga es demasiado pesada o la conexión está demasiado restringida.

Hábito útil: compara la cascada del navegador con la línea de tiempo de curl del mismo objetivo. Si no coinciden, el camino del navegador tiene un costo adicional que tu prueba de CLI no está viendo.

El monitoreo sintético y el monitoreo de usuarios reales sirven para diferentes propósitos. Las verificaciones sintéticas son controladas y repetibles, que es lo que deseas para pruebas de regresión. El tiempo de usuarios reales captura lo que experimentan los visitantes reales, lo que es mejor para detectar problemas de cola larga que solo aparecen en el mundo real.

Para el trabajo en tuberías, la respuesta más limpia suele ser marcar el evento en ingestión, procesamiento, y servicio, luego restar puntos adyacentes. El marco basado en etapas de Amplitude para el tiempo de eventos y la definición de latencia de datos de Snowplow apuntan a la misma idea, el número útil suele ser el tiempo de una etapa a la siguiente, no solo el total de extremo a extremo. Ese es el perfil de latencia que la verificación de anuncios y los flujos de investigación de mercado suelen necesitar.

Leer los Números Sin Engañarte a Ti Mismo

Un promedio puede parecer saludable mientras que la experiencia del usuario es miserable. Supón que la mayoría de las solicitudes terminan en una pequeña banda, pero algunas lentas se extienden mucho. La mediana puede permanecer tranquila, el promedio puede moverse solo un poco, y sin embargo, las personas afectadas por la cola sienten que el sistema está roto.

Lee los percentiles como una forma

p50 te dice cómo se siente lo normal. p95 te dice cuán lejos se extiende la cola común. p99 te dice si el dolor raro está entrando en producción. Cuando p50 se mantiene plano pero p99 sube, el sistema se está volviendo menos predecible incluso si el centro de la distribución parece bien.

Esa es la primera parte que miro en un benchmark de producción. Si p99 es feo, dejo de tratar la media como una métrica de decisión y empiezo a tratarla como una fuente de ruido.

Separa los problemas de salto de los problemas de servicio

Un primer salto lento en traceroute o MTR generalmente apunta a congestión del camino, distancia, o la ruta del proxy en sí. Un salto con pérdida puede ser un artefacto de enrutamiento, especialmente si los saltos posteriores no se degradan de la misma manera. Una búsqueda de DNS lenta significa que debes probar la resolución de nombres por separado, mientras que un apretón de manos TLS lento generalmente significa que la configuración de la conexión o la negociación del certificado son el lastre. Si el lado del servidor es lento después de todo eso, el tiempo hasta el primer byte lo mostrará.

El flujo de trabajo más seguro es repetitivo, no ingenioso. Establece una línea base, prueba bajo carga, divide por hora del día y por día de la semana frente al fin de semana, luego busca pérdida de paquetes y saltos lentos. Una instantánea puede mentir, pero el patrón a lo largo del tiempo generalmente no lo hace.

Para la verificación de anuncios y el scraping, el trabajo comienza aquí. Un camino que es aceptable en horas fuera de pico puede volverse inestable una vez que el transportista o la ruta ascendente cambian. Si el camino cambia a mitad de prueba, tus percentiles dejan de describir un sistema y comienzan a describir varios diferentes.

Midiendo la Latencia a Través de Proxies Móviles y 4G

Una tabla comparativa infográfica que explica las diferencias en latencia, estabilidad y uso entre proxies móviles y conexiones 4G.

Una solicitud puede parecer rápida desde un centro de datos y aún sentirse lenta una vez que sale de una red móvil. El ASN cambia la imagen antes de que el paquete llegue a tu objetivo, porque muestra qué red posee la dirección y qué ruta ascendente realmente estás probando. NAT de grado de transportista lo cambia nuevamente, porque una IP pública compartida puede ocultar contención adicional y hacer que la misma solicitud se comporte de manera diferente de una ejecución a la siguiente.

Por eso el benchmark debe permanecer anclado a un solo camino. Si rotas la IP del proxy mientras recopilas muestras, dejas de medir una sola conexión y comienzas a mezclar varias rutas en un conjunto de percentiles. Mantén la misma sesión persistente durante toda la ejecución, luego repite la prueba después de la rotación si deseas ver cuánto cambia el camino en sí. Para una nota de configuración más profunda sobre el enrutamiento móvil, esta guía de proxy 4G LTE es el lugar más claro para verificar el comportamiento de sesión que necesitas mantener constante.

Qué mantener constante durante la prueba

  • Mantén la sesión estable: No gires la IP mientras recopilas muestras de latencia. Un cambio en la ruta puede desplazar la distribución lo suficiente como para hacer que el benchmark sea difícil de leer.
  • Verifica el ASN primero: Confirma si el camino se encuentra en una red móvil, un camino residencial, o un camino de centro de datos antes de comparar resultados.
  • Usa el mismo endpoint y la misma ventana de tiempo: De lo contrario, mezclas cambios de red con cambios de carga de trabajo, y el resultado deja de ser útil.
  • Compara igual con igual: Ejecuta la misma solicitud desde el origen, luego a través de un proxy residencial, luego a través de un proxy móvil 4G.

Esa última comparación es la que más se asemeja al comportamiento de producción. Un camino móvil con una sesión estable te da una vista más clara de lo que la verificación de anuncios o el tráfico de scraping verán, mientras que una sesión rotativa te dice más sobre la rotación que sobre la latencia.

Por qué traceroute puede verse extraño en 4G

Una ruta 4G rara vez se ve como un camino empresarial limpio. Algunos saltos nunca responden, algunas respuestas están limitadas por tasa, y la IP pública puede estar detrás de un borde de transportista en lugar de una sola máquina. Traceroute aún ayuda, pero trátalo como una forma de leer la forma del camino, no como un mapa perfecto de cada salto.

El hábito operativo que se mantiene es simple. Compara tres caminos uno al lado del otro, tu red de origen, la misma solicitud a través de un proxy residencial, luego la misma solicitud a través de un proxy móvil 4G. Mantén la sesión fija en cada caso, luego compara p50, p95, p99 y máximo. Eso te da una lectura práctica sobre la latencia antes de que lo haga el tráfico de producción.

Errores Comunes y una Lista de Verificación que Puedes Reutilizar

  • Probar solo en redes inactivas. Los números pueden verse limpios en un camino tranquilo y desmoronarse una vez que el tráfico real comparte el enlace. El problema no es la prueba en sí, es el estado de la red durante la prueba. Solución: repite la ejecución durante períodos ocupados y compara el cambio en la distribución.
  • Tomar una única ventana de muestra. Una ejecución corta puede parecer concluyente mientras sigue siendo difícil de repetir. El problema es el ruido de tiempo y un camino que cambió bajo ti. Solución: recopila varias ventanas y compara la dispersión, no solo el número principal.
  • Ignorar la latencia de cola. Un promedio saludable puede ocultar las solicitudes lentas que los usuarios sienten. El problema aparece en el extremo de la distribución, no en el medio. Solución: lee p95, p99 y máximo juntos, luego decide si la cola es aceptable.
  • Rotar el proxy a mitad de prueba. Si la sesión cambia a mitad de camino, la ruta cambia con ella y los percentiles dejan de tener mucho significado. Eso es común en caminos móviles con NAT de grado de operador y comportamiento de sesión pegajosa, donde una ejecución puede permanecer en una salida y la siguiente puede no hacerlo. Solución: mantén una sesión pegajosa durante toda la ejecución.
  • Medir solo el servidor. Una búsqueda DNS lenta o un apretón de manos TLS retrasado pueden ser culpados en el backend incluso cuando la aplicación no es el cuello de botella. El temporizador debe separar la configuración de conexión, el tiempo de apretón de manos y el tiempo de respuesta. Solución: divide la solicitud en esas etapas y registra cada una.
  • Usar promedios para informes. Un promedio puede aplanar una mala experiencia de usuario en un número que parece inofensivo. Eso oculta las solicitudes que fallan en un raspado, una verificación de anuncios o un flujo de QA móvil. Solución: informa los percentiles que coinciden con solicitudes reales y mantén el máximo bruto a la vista.
  • Cerrar antes de que las solicitudes en vuelo terminen. Una ejecución que termina demasiado pronto puede perder las solicitudes más lentas y hacer que el benchmark parezca mejor de lo que es. La ventana de colección está incompleta, por lo que el máximo está subestimado. Solución: deja que el benchmark se agote antes de detenerlo.

Para flujos de trabajo de proxy móvil y 4G, la lista de verificación es simple. Confirma el ASN y el comportamiento de la sesión antes de comparar resultados, mantén el punto final y la ventana de tiempo estables, recopila suficientes muestras para ver la cola y verifica que las rarezas de traceroute son esperadas para el camino del operador que estás utilizando. Si necesitas una referencia para el comportamiento del proxy 4G y LTE, utiliza la página de wiki que ya mantienes para esa configuración, luego prueba contra tu propia línea base en lugar de asumir que un camino se comportará como otro.