2010-05-21 15 views
5

Estaría agradecido por la ayuda, la comprensión de cuánto tiempo se tarda en establecer una conexión TCP cuando tengo el ping RoundTripTip:Establecimiento de conexión TCP = ¿Cómo medir el tiempo basado en Ping RRT?

Según Wikipedia se establecerá una conexión TCP en tres pasos:

1.SYN-SENT (=>CLIENT TO SERVER) 
2.SYN/ACK-RECEIVED (=>SERVER TO CLIENT) 
3.ACK-SENT (=>CLIENT TO SERVER) 

Mis preguntas:

  1. es correcto, que la tercera transmisión (ACK-SENT) aún no llevará a ninguna carga útil (mis datos), pero sólo se utiliza para el establishement conexión (Esto lleva a la conclusión de que. el cuarto paquete será el primer paquete que contenga cualquier carga útil ...)

  2. Es correcto suponer, que cuando mi Ping RoundTripTime es de 20 milisegundos, que en el ejemplo anterior, el establecimiento de Conexión TCP lo haría en menos requieren 30 milisegundos, antes de que se puedan transmitir datos entre el Cliente y el Servidor?

Muchas gracias

Tom

+0

Si puede medir el tiempo de ping hacia el host, ¿por qué no medir también la conexión? Todo lo que necesitas hacer es cronometrar la llamada de conexión en tu código, básicamente. –

Respuesta

4

Esas cosas son básicamente correcto, aunque # 2 supone que el tiempo de ida y vuelta es simétrica.

+1

+1. El enrutamiento en Internet en general rara vez es simétrico. Dentro de una empresa, es una historia diferente. –

0

Para medir esto, llamado "Tiempo de sincronización/ACK" (que NO es el momento de establecer una conexión: la conexión solo está medio abierta cuando está en ese estado, necesita que el 3er paquete reconozca que el establecimiento tiene en cuenta establecido), generalmente necesita herramientas profesionales que incluyan su propia pila TCP, permitiendo ese tipo de medición. El más usado se llama Spirent Avalanche, pero también tiene Ixia's IxLoad o BreakingPoint Systems box (BPS ahora ha sido adquirido por Ixia por cierto).

Tenga en cuenta que, sí, el tercer paquete no tendrá ningún dato, y eso también es cierto para los dos primeros. Solo están marcados Syn y Syn + Ack (esos son indicadores TCP) y no contienen datos de aplicación. Este intercambio inicial, llamado Handshake de tres vías, por lo tanto, causa una sobrecarga, que es la razón por la cual TCP no se usa típicamente en aplicaciones en tiempo real (voz, video en vivo, etc.).

También como se indicó, no puede suponer que latencia = RTT/2. De hecho, es muy complicado medir la latencia unidireccional por encima de la capa 3 (IP), y ya se encuentra en la capa 4 (TCP) aquí. Esta publicación de blog cubre en detalle el desafío de esto: http://synsynack.wordpress.com/2012/04/09/realistic-latency-measurement-in-the-application-layers/

Cuestiones relacionadas