Regla general para el requisito de ancho de banda ascendente de TCP

Regla general para el requisito de ancho de banda ascendente de TCP

En TCP, el destinatario acusa recibo de vez en cuando de los paquetes enviados. Por lo tanto, para lograr un ancho de banda descendente específico, siempre se requiere un ancho de banda ascendente mínimo.

Lo que estoy buscando es un factor para calcular el flujo ascendente necesario para un ancho de banda descendente determinado. Soy consciente del hecho de que existen diferentes tamaños de ventanas y probablemente otros factores en TCP que dificultan este cálculo. Pero tal vez exista un escenario predeterminado del que se pueda obtener al menos una aproximación.

Respuesta1

Ésta es una pregunta difícil de responder porque depende de muchos otros factores. Intentar obtener una respuesta muy específica sería difícil y aún más difícil, al menos para mí, intentar explicarla.

Suponiendo que el enlace de un extremo a otro es lo suficientemente estable como para que la ventana escale al máximo, podríamos decir que necesitamos un ACK por cada tamaño máximo de ventana. Un tamaño máximo de ventana típico es 64 KB, al menos creo que es el valor predeterminado para Windows... se establece mediante una clave de registro.

Sabiendo eso, ahora necesitamos saber cuál es el tiempo de ida y vuelta porque solo recibirá un tamaño máximo de ventana de datos por cada RTT; una forma de que los datos lleguen a usted y una forma de ACK. Ahora jugaremos como si intentáramos calcular el flujo ascendente necesario para un socket TCP a través de un satélite.

RTT = ~500 ms
Tamaño máximo de ventana = 64 KB

(64KB * 8)/.5 = La descarga máxima sería 1Mbps. Por supuesto, los tiempos 8 eran para convertir nuestro valor de bytes en bits.

Por cierto, muchas veces ve el tamaño de la ventana denominado búfer y ve el cálculo del rendimiento de TCP dado como (RxBuffer/RTT = Througput). Ahora necesitamos calcular el upstream. Con suerte, con todo lo anterior, la respuesta es obvia: necesitamos dos ACK por segundo para volver al remitente. Esos ACK son 20B + 20B * 8 (encabezado IP + TCP), 320 bps por pieza. Entonces, para una conexión con 500 ms de RTT y un RxBuffer máximo de 64 KB, no deberíamos esperar más de 1 Mbps de descarga y 640 bps de carga.

Espero que eso te haya llevado por el camino correcto. Al volver a leerlo me confundí...

información relacionada