
Estou tendo problemas de rede há algum tempo e estou tentando rastrear a origem do problema.
Ontem, eu estava transferindo um arquivo do meu laptop para o meu desktop com SCP, pela minha conexão wifi. Quando o download começou, ambos os computadores tinham ping baixo para o roteador local (192.168.1.1, ambos em torno de 10ms-50ms) e o download foi executado a 2-3 MB/s.
Depois de mais ou menos um minuto, descobri que a latência da minha área de trabalho para 192.168.1.1 aumentou dramaticamente (> 1.000 ms) e a transferência ficou lenta (~200 KB/s). A latência do laptop para 192.168.1.1 permaneceu a mesma (10-50ms). Assim que a transferência terminou, a latência da área de trabalho voltou ao normal.
Claramente, algo dá errado quando a conexão está saturada. O que poderia ser? Isso sugere um problema com o roteador ou com minha área de trabalho? Qual seria o lugar certo para começar a procurar?
Responder1
Procure no Google por "inchaço do buffer".
À medida que a RAM se tornou barata, os equipamentos de rede adicionaram buffers de quadros para que nunca precisassem perder um quadro.
Infelizmente, as quedas de quadros foram a forma como o TCP percebeu o congestionamento e soube quando recuar. Sem quadros perdidos, as implementações TCP tradicionais nunca percebem o congestionamento e nunca recuam, então continuam enviando em taxas altas e piorando a situação.
Se todo o seu equipamento de rede apenas armazena em buffer cada vez mais quadros durante o congestionamento e permite que o comprimento da fila cresça sem limites, a latência aumenta cada vez mais à medida que leva cada vez mais tempo para drenar as filas.
Técnicas e mecanismos de gerenciamento ativo de filas (AQM), como notificação explícita de congestionamento (ECN), podem aliviar isso, mas como o problema não é muito divulgado, é difícil saber quais produtos evitam o inchaço do buffer e quais não. Não é como se você pudesse procurar por um "No Buffer Bloat!" logotipo na lateral de uma caixa e saiba que você está adquirindo um bom equipamento.
Existem, no entanto, distribuições de firmware pós-venda de roteadores Wi-Fi especializadas em evitar o inchaço do buffer. Pelo menos uma distribuição foi desenvolvida especificamente pelos pesquisadores do TCP que primeiro reconheceram o problema e foi usada como plataforma de pesquisa e desenvolvimento enquanto procuravam soluções.
Responder2
A alta latência acontece quando os pacotes chegam a uma fila para serem transmitidos através de um link muito ocupado. Todos os pacotes à frente dele na fila devem ser enviados primeiro. Quando a demanda em um link é grande e os buffers da fila são grandes, isso leva a tempos de ida e volta elevados.