.png)
O problema
Nota: Primeiro gostaria de entender POR QUE isso está acontecendo. Claro, uma solução também seria boa. :)
Ao baixar um arquivo grande por HTTP em alta velocidade, meu tráfego sem fio basicamente para: não consigo abrir páginas da Web e o download é pausado. Ele faz uma pausa imediatamente após iniciá-lo; às vezes com 800 KB, às vezes com alguns MB. Depois de algum tempo, o download (e outros tráfegos) é retomado, mas o problema continua ocorrendo durante o mesmo download.
O problema não ocorre ao usar uma conexão com fio através do mesmo roteador (Linskys WRT120N). Observe também que a conexão énãocaiu quando isso acontece. Acontece que o tráfego para e não consigo navegar nas páginas da web, etc. (pacotes SYN são enviados, mas nada é recebido, etc.)
A inspeção com Wireshark mostra que acontece o seguinte:
- O servidor envia pacotes de dados que são reconhecidos pelo cliente
- O servidor envia um pacote, mas SEQ indica que alguns pacotes foram perdidos (6 pacotes em uma ocorrência).
- O servidor envia mais alguns pacotes e o cliente os reconhece usando "reconhecimento seletivo"
- O servidor para de enviar dados por um tempo (já que os pacotes perdidos não foram reconhecidosouo roteador para de encaminhá-los?)
- Eventualmente, o servidor faz uma "retransmissão" e o tráfego continua normalmente.
Tudo isso me parece um comportamento normal quando ocorre perda de pacotes.É a perda consistente de pacotes durante um download grande e de alta velocidade que me intriga.
O que pode causar isso?
Minha ideia é a seguinte: minha internet é bem rápida (100 mbps); portanto, ao iniciar um download de arquivos grandes, o roteador armazena em buffer os dados recebidos (já que a conexão sem fio apresenta um pequeno atraso/velocidade menor, em parte devido a outras redes) , mas o buffer transborda e o roteador descarta pacotes para regular o tráfego (e porque não tem escolha).
Mas como isso poderia acontecer? O tamanho da janela TCP não limita a quantidade de dados que podem não ser reconhecidos? Então, como o buffer do roteador pode estourar se só pode haver 64 KB esperando para serem reconhecidos?
Observação:Desativei o dimensionamento da janela TCP e o tamanho dinâmico da janela por meio de netsh
opções, na tentativa de corrigir isso, mas isso não parece importar.
Também,O Wireshark mostra um padrão do servidor enviando 2 pacotes (de 1514 bytes) e do cliente enviando um ACK, então isso descarta um possível estouro de buffer? E mais alguns pacotes subsequentessãorecebido...
Estou perdido aqui. Obrigado por qualquer ideia.
Coisas que (provavelmente) NÃO são a causa / eu experimentei
- O navegador
- Várias opções de TCP no Windows 7 (
netsh
etc.) - Configurações do roteador como MTU, intervalo de beacon, UPnP, ...
Responder1
A solução
A solução foi simplesmentedesativar o suporte WMMna configuração do roteador. Aparentemente, o suporte Linksys WRT120N WMM não funciona bem com o Windows 7 sem fio por algum motivo.
Mais alguns detalhes
Muitas vezes, quando o problema ocorria, o tráfego acabava sendo retomado (para a mesma conexão), como se os pacotes estivessem na fila do roteador por algum tempo. Essas pausas geralmente duravam 40 segundos ou mais. Para ser honesto, ainda me intriga.
Durante esse período, nenhuma outra conexão (TCP) pôde ser feita: ao tentar navegar para uma página da Web ou algo assim, o laptop enviaria pacotes SYN, mas não haveria resposta. No entanto, solicitações de DNS e ARPeramprocessado normalmente.