Tráfego HTTP limitado

1

Estou passando por um cenário de conectividade limitado e estranho com minha pilha de rede Linux. O problema é que sempre que eu tento fazer o download de algo, só consigo os primeiros 5,5 KB do recurso solicitado, ambos com minha placa ethernet (Realtek 8139), e através da minha placa wireless (IPW2200). Por exemplo:

  • wget google.it = > Eu irei obter uma página 'index.html' completa (como é 4.9KB)
  • wget google.it/intl/it_it/images/logo.gif = > Receberei os primeiros 5,5 KB da imagem e o wget será interrompido, indefinidamente aguardando a parte restante da imagem
  • captura de conversas HTTP para www.polito.it (6) (como você pode ver nesta captura, nada mais as solicitações estão saindo, mesmo que a página esteja faltando alguns elementos)

Ambiente e ferramentas:

  • Eu tento ver as páginas através do Firefox e dos links de linha de comando, tanto da minha instalação local quanto dos Live CDs
  • no Windows, ambas as placas de rede estão funcionando perfeitamente sem nenhum problema (estou escrevendo a partir do Windows de inicialização dupla agora)
  • esse problema está acontecendo em cada distribuição Linux que já experimentei (cada um com kernels diferentes): ArchLinux, Live ArchLinux 2007.08, grml 2008, grml 2009.10

Aqui está minha configuração do Linux:

  • o kernel está detectando a placa (módulo 8139too ou ipw2200) e atribui a ela um bom IRQ
  • o servidor DHCP (em 192.168.1.1) está atribuindo corretamente o IP 192.168.1.2 à minha interface de rede. Exemplo de um ethernet:

    Link eth0: Ethernet HWaddr 00: c0: 9f: ser: 77: da
          inet addr: 192.168.1.2 Bcast: 192.168.1.255 Máscara: 255.255.255.0       inet6 addr: fe80 :: 2c0: 9fff: febe: 77da / 64 Escopo: Link       UP TRANSMISSÃO EM FUNCIONAMENTO MULTICAST MTU: 1500 Métrica: 1       Pacotes RX: 478 erros: 0 descartados: 0 overruns: 0 frame: 0       Pacotes TX: 322 erros: 0 caiu: 0 superou: 0 portador: 0       colisões: 0 txqueuelen: 1000       Bytes RX: 163064 (159,2 KiB) bytes TX: 40610 (39,6 KiB)       Interrupção: 16 Endereço base: 0xc000

  • o MTU está configurado para 1500, mas mesmo com valores menores, o problema ainda está lá (tentei valores de 1492, 1454, 1000, 500)

  • a resolução do DNS está funcionando bem
  • os pings para outros hosts na rede / internet estão ok:

    PING www.l.google.com (74.125.43.104) 56 (84) bytes de dados. 64 bytes de bw-in-f104.1e100.net (74.125.43.104): icmp_seq = 1 ttl = 50 tempo = 52,1 ms 64 bytes de bw-in-f104.1e100.net (74.125.43.104): icmp_seq = 2 ttl = 50 tempo = 50.9 ms

  • não há buffers de recebimento de tempo limite / total / mensagens de IRQs não manipuladas indicadas pelo kernel

Eu não tenho outras idéias sobre o porquê isso está acontecendo ... Além disso, esse problema é reproduzível e, para qualquer página da Web, ele interrompe o carregamento após um valor de doação.

    
por Andrea 27.12.2009 / 18:00

2 respostas

2

Eu descobri o problema: meu gateway não está manipulando adequadamente o TCP Window Scaling. Portanto, eu instruí meu kernel Linux a não usar essa funcionalidade e agora a conexão está funcionando sem problemas.

Para sua informação, aqui está o meu patch na configuração da rede. Em /etc/sysctl.conf eu adicionei as seguintes linhas:

net.ipv4.tcp_window_scaling=0
net.ipv4.tcp_ecn=0

E esta foi a identificação do meu roteador: "Alice Gate 2 Plus Wi-Fi" com a versão de firmware "AGIA_1.2.0"

    
por 28.12.2009 / 16:25
0

Se, como você diz, ele está funcionando bem no Windows e você está tendo problemas em várias distribuições Linux, é possível que o driver do Linux seja simplesmente ruim.

Eu pessoalmente enviaria um relatório de bug ou veria se você pode encontrar uma versão diferente do driver.

Além disso, estou um pouco confuso em um ponto -

I try seeing the pages through both Firefox and command-line Links, both from my local installation and from Live CDs

Você está dizendo que tentou e funciona ou falha?

Se funcionar, tente extrair o driver do live CD. Se falhar, você pode estar sem sorte.

Em nenhum momento você deve mexer manualmente com o MTU ou outros itens técnicos ... Eu sempre digo que coisas assim estão lá, então você pode ajustá-lo quando souber que ele já está funcionando (então você sabe o que fazer voltar para se houver um erro!), mas se ele não funcionar por padrão, é algum outro tipo de falha que você deve olhar primeiro.

    
por 27.12.2009 / 18:09