Mesmo que você tenha uma conexão ADSL em casa, existem muitas situações em que você pode ser obrigado a navegar usando uma conexão muito mais lenta, como ao acessar através de uma rede congestionada, ou em lugares afastados onde sua conexão 3G chaveie para o GPRS/EDGE com a taxa de transferência já próximo do mínimo, ou onde você precise se conectar via modem através de uma linha ruidosa.
A solução mais popular para melhorar a velocidade da conexão quando o link não ajuda é desativar a exibição das imagens (“editar > preferências > conteúdo > carregar imagens automaticamente” no Firefox) o que vai reduzir significativamente o volume de dados a carregar.
Entretanto, além da questão da banda existe um outro problema, que é a questão da latência. Em conexões via GPRS não é incomum que a latência da conexão chegue a 2 ou 3 segundos, já que em áreas afastadas o sinal precisa passar por várias torres de retransmissão até finalmente chegar aos roteadores. Isso significa que cada resolução de DNS demoraria no mínimo de 4 a 6 segundos!
A melhor saída para amenizar o problema é usar um cache de DNS local, reduzindo assim o número de requisições. No Linux você pode usar o dnsmasq.
Ele está disponível em quase todas as distribuições e pode ser instalado usando o gerenciador de pacotes, como em:
ou:
Com o pacote instalado, abra o arquivo “/etc/dnsmasq.conf” e adicione as seguintes linhas logo no início da configuração:
no-resolv
server=208.67.220.220
server=208.67.222.222
Elas fazem com que ele escute apenas conexões locais (precaução de segurança) e use os servidores DNS especificados nas duas últimas linhas. Os dois endereços do exemplo são os endereços do OpenDNS, mas você pode substituí-los pelos endereços do provedor caso note que eles estão mais rápidos.
Depois de salvar o arquivo, reinicie o serviço para que a configuração entre em vigor:
A partir daí, você pode configurar o sistema para usar o “127.0.0.1” como DNS primário, deixando que o dnsmasq cacheie as requisições. No Linux, você pode simplesmente editar o arquivo “/etc/resolv.conf“, adicionando a linha “nameserver 127.0.0.1” antes das demais, como em:
nameserver 208.67.220.220
nameserver 208.67.222.222
Se o seu micro usa DHCP para obter a configuração da rede, o arquivo “/etc/resolv.conf” será modificado a cada acesso, voltando à configuração original, fornecida pelo servidor. Ao invés de ter que modificar o arquivo novamente, a cada acesso, adicione a linha abaixo no começo (começo, não final) do arquivo “/etc/dhcp3/dhclient.conf“, onde vai a configuração do cliente DHCP:
Esta linha faz com que ele sempre adicione a linha “nameserver 127.0.0.1” no início do arquivo “/etc/resolv.conf”, substituindo a edição manual.
Outra opção para acelerar a resolução de nomes é adicionar entradas para os sites que você acessa com frequência diretamente no arquivo “/etc/hosts”. Fazendo isso, o sistema deixará de perder tempo resolvendo os endereços e acessará diretamente os endereços especificados.
Para descobrir os endereços IP, use o comando “dig” (que faz parte do pacote “dnsutils”), como em:
O endereço aparece na seção “ANSWER SECTION”, como em:
gdhpress.com.br. 81373 IN A 72.36.173.154
Ao adicionar as entradas no “/etc/hosts”, basta adicionar o endereço seguido pelo domínio (uma linha para cada site), como em:
72.36.173.154 gdhpress.com.br
74.125.67.100 google.com
Outro problema comum em conexões GPRS/EDGE/3G em áreas distantes é a perda de pacotes, sobretudo perda de pacotes SYN, ACK e FIN, que são os responsáveis por iniciar e encerrar as conexões. As perdas fazem com que os aplicativos fiquem um longo tempo esperando por uma resposta do servidor remoto em vez de encerrarem a conexão. Isso causa diversas dores de cabeça, como os eternos “Aguardando resposta…” do Firefox.
No Linux, você pode amenizar o problema ajustando os tempos de timeout e o número de tentativas antes de encerrar as conexões. Isso faz com que o sistema passe a encerrar as conexões depois de algum tempo, em vez de deixar os aplicativos esperando por meia hora ou mais, como é o default. Para isso, use os comandos abaixo, como root:
echo 2 > tcp_syn_retries
echo 2 > tcp_synack_retries
echo 3 > tcp_retries1
echo 5 > tcp_retries1
echo 30 > tcp_fin_timeout
echo 3 > tcp_keepalive_probes
echo 30 > tcp_keepalive_intvl
Essas configurações não são permanentes, por isso caso as alterações não surtam o efeito desejado, basta reiniciar o micro para que as configurações default sejam restabelecidas.
Deixe seu comentário