Diferença de velocidade de download HTTP no windows 7 vs linux

0

Eu tenho uma situação estranha em relação a um PC com Windows 7 Home Premium que está mostrando velocidades limitadas de transferência de internet sem motivo aparente.

A configuração:

  • LAN gigabit interna, atrás de um roteador TP-Link WDR3600 executando o DD-WRT
  • conexão de internet de fibra com download de 100 Mbit / s, upload de 8 Mbit / s
  • PC com Windows 7 Home Premium conectado via interface com fio (gigabit)
  • Convidado virtual do Virtualbox Linux em execução no Windows PC
  • A VM tem sua interface de rede vinculada à interface do host com fio e tem um endereço IP da LAN
  • na mesma LAN, há um NAS fornecendo arquivos por HTTP (gigabit)
  • nenhuma configuração de proxy HTTP no Windows, "detectar configurações automaticamente" está desabilitada no menu de configurações da LAN no Windows
  • QoS está desativado no roteador
  • todos os testes são feitos via gigabit ethernet

Fatos:

  • As velocidades de transferência da Internet não passam de ~ 20Mbit / s no PC com Windows, apesar de a conexão com a Internet não estar saturada.
  • O mesmo download da Internet da VM do Linux atinge o limite de 100Mbit / s da conexão sem problemas. Isso ocorre quando o download é canalizado para / dev / null, mas também quando é gravado no disco
  • Fazer o download de um arquivo do NAS para o PC Windows através de hits HTTP ~ velocidades de transferência de 600 Mbit / s facilmente
  • MTU no Windows e no Linux é o mesmo
  • Tentou desativar o Large Segment Offload na interface de rede com fio (windows), sem efeito
  • Alternado entre o Firefox, o Chrome e o IE sem alteração nos resultados
  • O Speedtest.net no Windows atinge as velocidades de transferência de 100/8

Algumas hipóteses descartadas:

  • não é um problema de hardware, já que a VM do Linux pode baixar rapidamente usando a mesma interface, e os downloads da LAN também funcionam bem
  • não é um problema no roteador, os downloads da VM são rápidos
  • não é um problema de conexão com a Internet, os downloads de VMs são rápidos
  • não é uma limitação de velocidade do disco, os downloads de VM para o disco são rápidos
  • não é um problema específico do navegador
  • não é um problema de fragmentação, o MTU é o mesmo no Windows e na VM

Algumas possibilidades:

  • Limitação de pilha do Windows TCP ou configuração relacionada ao HTTP

Alguma ideia do que está acontecendo aqui? Por que o Windows não está ocupando toda a largura de banda possível?

    
por André Fernandes 30.01.2015 / 00:33

2 respostas

0

Bem, após algumas investigações, parece ter sido um problema com o Windows 7 TCP receber o dimensionamento de janelas.

Estas foram as minhas configurações iniciais de TCP:

C:\Windows\system32>netsh interface tcp show global
Querying active state...

TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State          : disabled
Chimney Offload State               : automatic
NetDMA State                        : enabled
Direct Cache Acess (DCA)            : disabled
Receive Window Auto-Tuning Level    : disabled
Add-On Congestion Control Provider  : none
ECN Capability                      : disabled
RFC 1323 Timestamps                 : disabled
** The above autotuninglevel setting is the result of Windows Scaling heuristics
overriding any local/policy configuration on at least one profile.


C:\Windows\system32>netsh interface tcp show heuristics
TCP Window Scaling heuristics Parameters
----------------------------------------------
Window Scaling heuristics         : enabled
Qualifying Destination Threshold  : 3
Profile type unknown              : normal
Profile type public               : normal
Profile type private              : restricted
Profile type domain               : normal

Minha conexão ethernet é classificada como uma rede "doméstica", que parece estar na categoria "Tipo de perfil particular" na saída heurística.

De acordo com este excelente artigo , desativando a heurística deve corrigir o problema.

Assim eu fiz:

# disable heuristics
C:\Windows\system32>netsh interface tcp set heuristics wsh=disabled
Ok.

# enable receive-side scaling
C:\Windows\system32>netsh int tcp set global rss=enabled
Ok.

# manually set autotuning profile
C:\Windows\system32>netsh interface tcp set global autotuning=experimental
Ok.

# set congestion provider
C:\Windows\system32>netsh interface tcp set global congestionprovider=ctcp
Ok.

C:\Windows\system32>netsh interface tcp show global
Querying active state...

TCP Global Parameters
----------------------------------------------
Receive-Side Scaling State          : enabled
Chimney Offload State               : automatic
NetDMA State                        : enabled
Direct Cache Acess (DCA)            : disabled
Receive Window Auto-Tuning Level    : experimental
Add-On Congestion Control Provider  : ctcp
ECN Capability                      : disabled
RFC 1323 Timestamps                 : disabled

Depois de alterar essas configurações, o download é rápido novamente, atingindo o limite da conexão com a Internet.

    
por 03.02.2015 / 00:17
0

O problema com velocidades baixas de download no Windows 7 e no Windows Server 2008 R2 é devido a um bug na pilha TCP / IP. Se entre a localização A e a localização B você tiver latência muito baixa (1-8 ms), você perceberá uma velocidade de download mais lenta que a normal. Aplique o KB2675785 do link da Microsoft para resolver o problema.

    
por 07.02.2016 / 18:38