Estou usando 3G como minha conexão principal com a Internet, e o TCP está ficando cada vez mais intrigante a cada dia. Por exemplo:
Baixar do kernel.org é muito rápido:
$wget http://www.kernel.org/pub/linux/kernel/v3.0/linux-3.6.8.tar.bz2
aumenta para ~ 500kB / s após alguns segundos!
Alguns servidores são incrivelmente lentos, por exemplo www.graphic-pc.com: A
mesma coisa, o download de um arquivo grande com o wget começa em ~ 30kB / s por uma fração de segundo e depois cai para 5-10k ou até pior.A navegação na Web é decente, mas pouco confiável. Aleatoriamente, uma página levará muito tempo para carregar ou até falhar, mas uma recarga pode ser bem-sucedida quase imediatamente.
Agora, por acaso, comecei a jogar com o OpenVPN sobre UDP no topo da conexão 3G e, de repente, OMG tudo é extremamente rápido!
O mesmo www.graphic-pc.com agora dispara a 100-200kB / s!
- O que está acontecendo aqui ???
- Como é que é muito melhor com a VPN do que sem?
- E por que o graphic-pc.com rastreia quando o kernel.org voa?
Algo a ver com minha pilha tcp (ou o servidor) ou algum roteador de buggy no meio?
Notas:
O programa de instalação é um laptop executando Ubuntu Lucid e um dongle Huawei 3G (conexão pppd tão direta).
Posso reproduzir isso praticamente a qualquer hora do dia e não estou me mexendo, portanto, claramente não é o ambiente celular ou o congestionamento da Internet. (embora o kernel.org sem VPN às vezes melhore à noite, 60kB ou mais - mas ainda 500kB com VPN!)
Para 2) o wireshark mostra pacotes retransmitidos, dup ack, mesmo fora de ordem às vezes.
Eu tentei jogar com diferentes parâmetros / proc / sys / net / ipv4 (tcp_rmem, window_scaling, tcp_congestion ...) não parece fazer diferença.
Atualização:
Tentei no Windows 7 (sem VPN) com alguns resultados interessantes:
tcp settings : default tcp_optimizer
kernel.org : 10 kB/s 20 kB/s
graphic-pc.com: 8 kB/s 70 kB/s !
O tcp_optimizer ativou o ctcp entre outras coisas. Tenho que verificar o que os graphic-pc.com está executando, minha aposta é o tcp_westwood do linux e o ms ctcp não se mistura bem aqui ...
Respostas:
Problema resolvido:
testado com outro tipo de arquivo (.zip) em graphic-pc.com. Adivinha o quê, ao mesmo tempo, é rápido para esse arquivo e lento para o outro (que é bmp .mp3). Portanto, é claro que o ISP está realizando uma inspeção profunda e otimização de pacotes.
Quanto aos resultados estranhos no Windows, testei novamente hoje e agora é exatamente o mesmo que o Linux. Além disso, a limitação é dinâmica e muda durante o dia. Acho que tive muito azar e reiniciei e executei o tcp_optimizer exatamente quando a otimização mudou ...
Ainda curioso sobre o impacto real da 3G no desempenho do TCP como há um número de papéis sobre o assunto, mas, tanto quanto este está em causa é apenas Traffic Shaping porcaria, errado nada com 3G!
fonte
Primeiro, as conexões 3G / 4G não foram projetadas para serem suas conexões principais com a Internet e estão sujeitas a limitação, se o tráfego fluir através delas corresponder a um determinado padrão ou se você exceder uma quantidade limite de tráfego não falada. Não acredite na sua operadora (mesmo naquelas roupas de divulgação ilimitadas somente de dados) quando elas disserem que você não tem limites.
Afinal, é hora do ar e a largura de banda do ar é inferior à de fibra e cobre. Quando eles têm congestionamento de tráfego, não terão outra opção senão diminuir o tráfego dos nós finais.
O site do pc gráfico que você mencionou é um site pesado muito flash (ou similar) e leva cerca de 60 segundos na minha internet de trabalho conectada ao OC-3. Portanto, ter taxas baixas de medição acessando este site através de um 3G padrão não é uma grande surpresa. Kernel.org é mais rápido que você diz. Considerando a natureza baseada em texto deste site, tenho certeza de que o tráfego pode ser compactado e descompactado rapidamente com sua conexão 3G a taxas de sucesso muito boas, onde isso não é possível em sites pesados de imagem / flash / música / etc.
Por último, mas não menos importante, mais você quer enfiar no seu cano, ou seja, sua conexão 3G, cliente menos favorável que você será, para seu ISP e eles o estrangularão, não importa o quê. E se você ler seus Termos de Serviço, verá que eles têm o direito legal de fazê-lo, sob uso razoável (que não é uma conexão contínua 24 horas por dia, 7 dias por semana)
Quando você acessa uma conexão VPN, está criptografando todo o tráfego da rede. Portanto, seu provedor de serviços de Internet não pode mais inspecionar seus pacotes; portanto, não é possível diferenciar uma solicitação de página de texto de uma solicitação de página em flash. Portanto, você contornou a inspeção profunda de pacotes até um certo ponto. Mas ter uma VPN tem sua própria penalidade de velocidade, pois você terá que criptografar todos os pacotes que saem da sua conexão, o que tem um custo. Mas no seu caso, esse custo parece mínimo ou insignificante.
Espero que isso explique um pouco
fonte