
Tengo un escenario en el que deseo deshabilitar los ACK puros (ACK de TCP sin datos), pero no encuentro cómo hacerlo. ¿Existe alguna opción que pueda configurar para que los ACK siempre se agreguen al siguiente paquete de datos (del cual puedo estar seguro de que llegará)?
Intenté deshabilitar los QuickACK mediante el ip route
comando para un rango de red y un dispositivo específicos, pero no pareció tener ningún efecto. Como información adicional, estoy ejecutando un kernel 4.4 en esta máquina. Si necesita más información, pregunte y se la proporcionaré.
Respuesta1
El destinatario debe confirmar un paquete dentro de un tiempo específico porque, de lo contrario, el remitente asume que el paquete se perdió y lo retransmitirá. Si su destinatario envía datos de todos modos, el ACK se agregará a estos datos. Si no se envían datos, entonces se debe enviar un ACK puro para informar al remitente a tiempo que se recibió el paquete.
Respuesta2
Al final resultó que, la aplicación que me estaba dando estos ACK puros usaba un socket con la opción TCP_NODELAY configurada, por lo que cada paquete sería respondido lo antes posible sin esperar datos adicionales.