ACK atrasado é basicamente a pilha tcp sendo inteligente. Colado:
ACK atrasado significa que o TCP não reconhece imediatamente todos os segmentos TCP recebidos. (Ao ler o seguinte, pense em uma sessão ssh interativa, não em transferência em massa.) Se você receber um único segmento TCP solitário, aguarde 100-200ms, supondo que o aplicativo receptor provavelmente gerará uma resposta de algum tipo. (Por exemplo, toda vez que o sshd recebe um pressionamento de tecla, ele normalmente gera um eco de caractere em resposta.) Você não deseja que a pilha TCP envie um ACK vazio seguido por um pacote de dados TCP 1 ms mais tarde, então você demora um pouco , assim você pode combinar o ACK e o pacote de dados em um. Por enquanto, tudo bem. Mas e se o aplicativo não gerar nenhum dado de resposta? Bem, nesse caso, que diferença pode fazer um pequeno atraso? Se não há dados de resposta, então o cliente não pode estar esperando por nada, pode? Bem, o cliente da camada de aplicação não pode estar esperando por nada, mas a pilha TCP no final pode estar esperando: É aqui que o Algoritmo de Nagle entra na história:
Leia mais em Problemas de TCP Performance causados pela interação entre o Algoritmo de Nagle e o ACK com Atraso