test que normal mejorar latencia internet ideal cual como latency measurement

latency - que - ¿Cómo se mide la latencia en entornos de baja latencia?



que es el ping en internet (4)

El problema de hacer esto es muy similar a medir la "velocidad" en el espacio: ¿Tiene que preguntar la latencia con respecto a qué? Si intenta medirlo en el cable, perderá cualquier latencia adicional en la conmutación, o en la pila de protocolos en el lado receptor. Realmente no se puede medir de extremo a extremo, ya que las computadoras tendrán dos relojes diferentes que es casi imposible de reconciliar sin introducir pequeños errores (¡y se desvían uno del otro!)

El único enfoque que realmente tiene alguna esperanza es medir la latencia de ida y vuelta, asumiendo que tiene mensajes que regresan de un recibo de acuse de recibo. UDP no tiene ACK en la pila, por lo que tendrían que ser codificados en la aplicación en algún lugar. Lo que haces es usar algo como el temporizador de alta resolución del x86 para medir el tiempo entre el envío de un mensaje y su respuesta.

Aquí está la configuración ... Su sistema está recibiendo un flujo de datos que contiene mensajes discretos (generalmente entre 32-128 bytes por mensaje). Como parte de su proceso de procesamiento, cada mensaje pasa a través de dos aplicaciones físicamente separadas que intercambian los datos utilizando un enfoque de baja latencia (como el envío de mensajes a través de UDP) o RDMA y finalmente a un cliente a través del mismo mecanismo.

Suponiendo que pueda inyectarse a sí mismo en cualquier nivel, incluido el análisis de protocolo de cable, qué herramientas y / o técnicas usaría para medir la latencia de su sistema. Como parte de esto, asumo que cada mensaje que se entrega al sistema da como resultado que un mensaje correspondiente (aunque no equivalente) sea enviado a través del sistema y entregado al cliente.

La única herramienta que he visto en el mercado como esta es TS-Associates TipOff. Estoy seguro de que con el acceso correcto usted probablemente podría medir la misma información utilizando una herramienta de análisis de cables (ala wireshark) y los disectores correctos, pero ¿es este el enfoque correcto o hay alguna solución de productos básicos que pueda usar?


Si varios bytes más por mensaje no serán una exageración para usted, recomiendo simplemente sellar el mensaje en la fuente con la marca de tiempo completa (64 bits) y en cada salto agregar / dejar marcas de marca de hora (un byte por sello). Al analizar un flujo bidireccional, calculará la inclinación del reloj entre las cajas y luego podrá tener una información completa de la latencia en tiempo real para su consideración o para publicar en las herramientas de monitoreo.


Su último párrafo es la forma típica en que debe hacerse. Los sospechosos habituales en este campo (al menos por lo que sé de latencia de datos de mercado (Wall Street)) son:

  • TSA (TS Asociados)
  • Correlix
  • Corvil
  • Napatech (dispositivos de captura de hardware)
  • Endace (dispositivos de captura de hardware)

Hubo otra empresa mal administrada que recientemente consumió dinero de VC (¿4 millones?).

Para los datos que se procesan (digamos en una fuente de intercambio directo o RMDS u ​​otro servidor que cambia el protocolo) en diferentes formatos, debe poder analizar las cargas útiles para correlacionar los mensajes. Puede ser un desafío ya que a veces los proveedores de datos no exponen las definiciones de los mensajes.

Creo que hay dispositivos de hardware que inyectarán información de carga útil con marcas de tiempo para que el cliente pueda verlos. Por supuesto, como señaló otro póster, la cuestión del tiempo es muy importante. Todos los dispositivos y clientes deben tener el mismo punto de referencia por tiempo. Tiene que ser preciso ...

La última vez que hablé con TSA, una instalación con 4 puntos de observación fue del orden de $ 150k. Sospecho que los otros mencionados anteriormente son similares en precio.

Las tarjetas de hardware enumeradas arriba comienzan alrededor de $ 2k (para una tarjeta simple) y aumentan (significativamente) desde allí.

Para hacerlo en software, necesitarías tener clientes que usen pcap (o algo similar) y mirar las cargas útiles y tratar de hacer coincidirlas. En algunos casos, es difícil lograr que esto sea determinista, especialmente al comienzo de una "sesión" o si faltan mensajes en una canalización. Por lo general, después de algún umbral, si no coincide con algo, simplemente lo suelta.

EDITAR: RENUNCIA DE RESPONSABILIDAD: También soy parte de la empresa ahora y debo revelar eso.


Un artículo reciente podría ser de alguna utilidad (y también sería mucho más barato que las soluciones basadas en hardware). También hay formas de contabilizar con bastante precisión el sesgo del reloj; la última vez que estudié seriamente la investigación de medición de latencia unidireccional (hace un par de años), la técnica más precisa fue un algoritmo de programación lineal por Sue Moon (con el código de referencia convenientemente disponible here ), pero sin usar algunas técnicas de programación lineal más bien modernas. , es bastante poco práctico hacerlo como un algoritmo en línea; es mejor simplemente registrar las marcas de tiempo sin realizar ningún cálculo periódicamente a lo largo del día, y luego ejecutar el algoritmo LP en los datos acumulados posteriormente. Hubo algunas otras técnicas que fueron lo suficientemente rápidas para hacerse en línea (incluido el artículo seminal de Vern Paxson), pero todas fueron mucho menos precisas.