¿Qué significa exactamente el tamaño del búfer (en KB)? (al cargar datos en un sitio de respaldo externo como CrashPlan)?

Creo que tienes las cosas al revés. Hay al menos dos suposiciones erróneas con tus matemáticas:

  1. Asume que solo puede tener un paquete en el cable a la vez; por lo tanto, envía un paquete, espera 200 ms para el reconocimiento y envía otro, que le da 5 paquetes por segundo. Pero esto no es cierto, ya que el concepto de una ventana de transmisión le permite enviar varios paquetes mientras espera la respuesta del primero.
  2. También asume que puede determinar su ancho de banda a partir del tamaño de su búfer, pero eso también es incorrecto [1]. El ancho de banda es una medida de la velocidad de su conexión y no depende de la latencia o el tamaño del búfer. El rendimiento, por otro lado, depende de estos tres factores (ancho de banda, latencia y tamaño del búfer).

La forma correcta de entenderlo es la siguiente:

  1. Tiene algo de ancho de banda disponible entre usted y el destino. Esto es para todos los fines prácticos una cantidad fija (a pesar del hecho de que en Internet puede enfrentar cuellos de botella y congestiones, pero ignoremos esto por ahora).
  2. También tiene una latencia fija en el camino entre usted y el destino. Una vez más, en realidad hay variaciones dinámicas causadas por patrones de tráfico, pero podemos ignorarlas con seguridad por ahora.
  3. Está utilizando un protocolo que utiliza una ventana de transmisión que es más grande que un paquete. El tamaño de la ventana de transmisión debe ser el mismo que el búfer en ambos lados. (Esto no es lo mismo que el “paquete de búfer” que solo contiene un único paquete en la memoria, puede ignorarlo por ahora).

Dados estos tres factores, el único que puede ajustar en el lado del software es la ventana de transmisión. Hacerlo bien le dará el máximo rendimiento. Si su ventana es demasiado pequeña, el remitente deberá esperar a que vuelva el reconocimiento antes de enviar otro paquete y perderá rendimiento.

En este escenario ideal, el producto de latencia de ancho de banda es una aproximación del tamaño de búfer recomendado. Puede imaginarlo como el cable es un búfer (de hecho, si pudiera tomar una instantánea de él, podría “ver” cada bit que viaja por el cable en un momento dado). Esa es la forma correcta de entenderlo.

Entonces volvamos a la pregunta real: el tamaño del búfer significa que obtendrá un mejor rendimiento, más grande será mejor hasta un límite que depende de su producto de ancho de banda x latencia. El aumento del tamaño del búfer más allá de ese límite no mejora las comunicaciones, y en realidad puede causar problemas (consulte “bloqueo del búfer” para comprender por qué).


[1] En realidad puedes calcularlo, pero eso no significa que sea correcto. Lo mejor que puede hacer es medir su rendimiento, y eso debería estar muy cerca del ancho de banda real, pero solo si el tamaño de su búfer ya está optimizado .