Los peligros de demasiado TIME_WAIT y la solución de demasiado TIME_AWAIT
Cuando las condiciones de la red no son buenas, si la parte activa no espera TIME_WAIT, después de cerrar la conexión anterior, la parte activa establece una nueva conexión TCP con la parte pasiva. y la parte pasiva se verá directamente afectada por el impacto de la retransmisión del paquete FIN de la parte o el retraso del paquete FIN;
De manera similar, cuando la condición de la red no es buena y no hay TIME_WAIT en espera. No habrá nuevas conexiones después de cerrar la conexión. Al recibir la retransmisión de la parte pasiva o el paquete FIN retrasado, se devolverá un paquete RST a la parte pasiva, lo que puede afectar la conexión de otros servicios de la parte pasiva.
Si hay demasiados, ocupará memoria. Un TIME_WAIT ocupa 4k de tamaño.
Solución
Optimice y ajuste los parámetros relevantes (por supuesto, en función de). la situación real del servidor) Configuración, aquí se enfatiza el significado de los parámetros):
Ahora que conocemos el propósito de TIME_WAIT, haremos todo lo posible para ajustarlo de acuerdo con el protocolo TCP. La reutilización y el reciclaje de tw en realidad violan las disposiciones del protocolo TCP. Si los recursos del servidor lo permiten y la carga no lo permite, intente no habilitarlo. Cuando se produzca un desbordamiento de la tabla del depósito de tiempo de espera, intente ajustar lo siguiente. parámetros:
vim /etc/sysctl.conf
Mientras ajusta los subparámetros, también debe ajustar el tiempo de espera de TIME_WAIT_2 a TIME_WAIT. El valor predeterminado es 60 s y la optimización es 30 s. :
Otros y el propio TCP Los parámetros de coincidencia similares incluyen el número de retransmisiones synack, el número de retransmisiones syn, etc., que se presentarán más adelante. La optimización también es beneficiosa.
La máquina funciona como un cliente y time_wait se ejecuta en un bucle dentro de un segundo después de encenderse
.