He estado experimentando con los parámetros TCP en Linux (con un kernel 3.5). Básicamente con respecto a esta conexión:
Servidor: enlace ascendente Gigabit en el centro de datos, el ancho de banda real (debido a compartir enlaces ascendentes) es de alrededor de 70 MB / s cuando se prueba desde otro centro de datos.
Cliente: LAN local Gigabit conectado a fibra de 200mbit. Obtener un archivo de prueba en realidad alcanza 20 MB / s.
Latencia: alrededor de 50 ms ida y vuelta.
El servidor remoto se utiliza como servidor de archivos para archivos en el rango de 10 a 100 mb. Me di cuenta de que al usar un initcwnd de 10, el tiempo de transferencia para estos archivos se ve muy afectado por el inicio lento de TCP, tardando 3,5 segundos en cargar 10 mb (velocidad máxima alcanzada: 3,3 MB / s) porque comienza lentamente y luego aumenta sin embargo. finaliza antes de alcanzar la velocidad máxima. Mi objetivo es ajustar los tiempos de carga mínimos de esos archivos (por lo que no es el rendimiento bruto más alto o la latencia de ida y vuelta más baja, estoy dispuesto a sacrificar ambos si eso disminuye el tiempo real que lleva cargar un archivo)
Así que intenté un cálculo simple para determinar cuál debería ser el initcwnd ideal, ignorando cualquier otra conexión y el posible impacto en otros. El producto de retraso de ancho de banda es de 200 Mbit / s * 50 ms = 10 Mbit o 1.310.720 bytes. Teniendo en cuenta que initcwnd se establece en unidades de MSS y suponiendo que el MSS es de alrededor de 1400 bytes, esto requerirá una configuración de: 1.310.720 / 1400 = 936
Este valor está muy lejos del valor predeterminado (10 * MSS en Linux, 64 kb en Windows), por lo que no parece una buena idea configurarlo de esta manera. ¿Cuáles son las desventajas esperadas de configurarlo así? P.ej:
- ¿Afectará a otros usuarios de la misma red?
- ¿Podría crear una congestión inaceptable para otras conexiones?
- ¿Inundación-enrutador amortiguadores en algún lugar del camino?
- ¿Aumentar el impacto de pequeñas cantidades de pérdida de paquetes?
70 MB/s
y no megabits? Solo busco aclaraciones.