Site menu Configurando o modem SpeedStream 4200 para ADSL mais confiável
e-mail icon
Site menu

Configurando o modem SpeedStream 4200 para ADSL mais confiável

e-mail icon

Complementando um post recente em inglês sobre o assunto, segue uma dica derivada das minhas desventuras recentes com ADSL2.

Em resumo, se a sua ADSL estiver com aparentes problemas de lentidão, isto pode ser causado por excesso de perda de pacotes, e uma forma de tentar diminuir eesta perda é desligar o modo ADSL2+ no modem, deixando apenas como ADSL2 (sem o sinal de +).

Cada modem tem uma forma de fazer isto. O D-Link 500B permite fazê-lo via Web mesmo. O SpeedStream 4200 só permite alterar o modo ADSL padrão via Telnet, e não encontrei um manual dos comandos Telnet. Mas pelo menos existem dicas de como alterar a configuração:

Figura 1: Console do modem ADSL

O script acima é exatamente o que fiz com meu modem. Esta simples alteração dobrou a relação sinal-ruído, de 6 para 11dB (depois vou oferecer uma explicação dos porquês).

Outros modos DSL do modem

O SpeedStream tem diversos modos ADSL a escolher:

Figura 2: Console do modem ADSL

Cada telecom implementa apenas alguns protocolos, portanto apenas um subconjunto das opções disponíveis vai funcionar.

As opções interessantes são:

AUTO: o nome diz tudo, e é o padrão que vem com o modem. Aqui esta opção faz o modem escolher ADSL2+, o que no meu caso causa muitos erros e perda de pacotes.

AD2P: ADSL2+, velocidade máxima de 24Mbps.

DSL2: ADSL2 sem o sinal de +, velocidade máxima de 12Mbps.

DMT: ADSL1, codificação DMT (o padrão mais comumente utilizado).

ANSI: ADSL1, codificação ANSI (não é o padrão mas funciona).

LITE: ADSL1 "lite", limitada a apenas 1,5Mbps e mais robusta.

RED2: RE-ADSL2, um anexo da ADSL2 com alcance melhorado. Muitas telecoms não implementam-no por usar mais energia e causar mais crosstalk (vazamento de sinal para fios paralelos no cabo). Ativar este padrão aqui simplesmente faz fallback para ADSL2.

Embora alguns posts mundo afora recomendem configurar o modem para ADSL1 quando a ADSL2+ estiver com muita perda de pacotes devido a erros, é mais vantagem tentar ADSL2, que usa a mesma largura de banda da ADSL1 e tem correção de erros mais forte. Talvez haja um motivo para tentar ADSL1 em lugar de ADSL2 numa linha ruim, mas não consigo imaginar nenhum.

O único modo ADSL1 que pode ser interessente é o "Lite", lento e robusto, que ao contrário do RE-ADSL2 parece ser suportado pelas telecoms daqui, já que foi o padrão utilizado nos primórdios da banda larga.

No meu antigo plano ADSL1, o modo "lite" era o único no qual o D-Link 500B conseguia funcionar com uma taxa de erros tolerável. (O modem 3Com funcionava perfeitamente na mesma linha, sem tocar na configuração.) Num caso extremo, este modo pode significar a diferença entre ter e não ter banda larga.

Por que é importante diminuir a taxa de erros?

O quadro abaixo é um screenshot das estatísticas do meu modem ADSL, o SpeedStream 4200:

Figura 3: Estatísticas na interface HTML do modem

Note que o mesmo número de erros — onze — aparece em dois quadros diferentes: ATM e AAL. Porém quase 2 milhões de pacotes ATM, ou melhor, células ATM foram trafegadas, enquanto o número de pacotes Internet (PDUs) é apenas 94217.

Num nível muito baixo, a tecnologia ADSL é baseada no protocolo ATM, cujos "pacotes", chamados de células, têm tamanho fixo de 53 bytes — 5 de cabeçalho mais 48 de dados.

Como os pacotes Ethernet e TCP/IP costumam ter tamanho variável de 32 a 1500 bytes, diversas células ATM podem ser necessárias para transportar um pacote TCP/IP.

Esta quebra e remontagem de pacotes é especificada pelo protocolo AAL5 (ATM Adaptation Layer 5), e a responsabilidade de implementar o AAL5 é sempre do modem ADSL, mesmo em modo bridge.

O uso de ATM e AAL5 é a causa de diversas "esquisitices" da ADSL.

Primeiro, você paga pela banda "bruta", sobre a qual trafega ATM. Como o overhead de cada célula de 53 bytes é 5 bytes, de cara há uma perda de 10%. Em cima disso há as perdas do AAL5, do PPPoE, e a taxa líquida vai ser 16% menor que a taxa bruta.

Segundo, cada pacote TCP/IP, por menor que seja, vai dar causa ao tráfego de no mínimo 2 células ATM, totalizando 106 bytes "no fio". Aplicações que usam muitos pacotes pequenos como Skype e VoIP comem muito mais banda do que poderíamos supor. Se uma aplicação VoIP usa pacotes de 64 bytes e trafega 100kbps, isto vai representar perto de 200kbps "no fio".

Terceiro e pior de tudo, o protocolo AAL5 não retransmite pacotes perdidos (enquanto outros padrões como AAL3 e AAL4 parece que o fazem). Se uma célula ATM for perdida devido a erros, ruídos etc. o pacote TCP/IP a que ela pertencia também estará perdido. Se por azar a célula perdida for a última, que "fecha" o pacote TCP/IP, dois pacotes estão perdidos: o que estava sendo remontado, e também o próximo.

Como um pacote TCP/IP de 1500 bytes consome 31 células ATM, uma taxa de erros de apenas 0,3% na camada ATM significará uma perda de 10% de pacotes no nível TCP/IP. Há uma "amplificação da taxa de erros". E quem conhece um pouco de TCP/IP sabe que a velocidade cai muito com perdas acima de 1%.

Para que a perda de pacotes não seja um problema, ela deve ser menor que 0,5%, o que significa que a camada ATM da ADSL não pode apresentar perdas acima de 0,016% — ou seja, zero perdas para todos os efeitos práticos. Por conta disso a banda larga ADSL começa a ficar muito ruim mesmo na presença de perdas aparentemente moderadas.

Tendo isso em vista, a camada física da ADSL trabalha muito duro para evitar perdas de céulas ATM, e elas quase nunca acontecem se a velocidade está dentro dos limites da linha telefônica. Por outro lado, a ausência de retransmissão na camada de enlace faz a situação piorar rapidamente quando a linha é "marginal".

Pacotes TCP/IP pequenos têm mais chance de passar incólumes; por exemplo, se adotássemos um tamanho máximo de pacote de 300 bytes, cada pacote precisa de apenas 6 células ATM, e uma taxa de erros ATM de 0,3% amplificaria para apenas 2% no TCP/IP. Ainda é uma perda que incomoda, mas é suportável.

Isto significa que diferentes aplicações sofrerão de forma bem diferente quando a linha ADSL é ruim. Aplicações que usam pacotes pequenos e muitas conexões em paralelo quase não tomam conhecimento do problema, enquanto Web e downloads ficam horrivelmente lentos.

Este fato também permite mensurar indiretamente a perda de pacotes devido a problemas na ADSL. Basta fazer "ping" com tamanhos diferentes de pacote:

$ ping yahoo.com

$ ping -s 1400 yahoo.com

Se o segundo ping perder consideravelmente mais pacotes que o primeiro, a principal suspeita é a sua ADSL. Outros problemas (como o congestionamento dos links internacionais das nossas "queridas" telecoms) perdem pacotes grandes e pequenos da mesma forma, na mesma taxa.

Atenuação, relação sinal/ruído e velocidade máxima

Figura 4: Estatísticas de pacotes do modem

Atenuação é a perda do sinal conforme ele viaja pelo fio. No caso da ADSL, que usa sinais de freqüência muito mais alta que a voz, essas perdas são sempre altas. Uma perda de 30dB significa que o sinal chega 1000 vezes mais fraco; e isto seria considerado um patamar muito bom.

A estatística do meu modem mostra que a perda na minha linha é 53dB, bastante alta, o que caracteriza uma linha ruim. Mas isto não é o mais importante, já que sempre se pode injetar mais potência para compensar a perda.

Importante mesmo é a relação sinal/ruído, ou SNR. Este valor informa quanto o sinal em que estamos interessados é mais forte que o ruído de fundo. No caso da minha linha, o SNR é de 14dB, o que significa que o sinal é 1014/10 = 25 vezes mais forte que o ruído de fundo. Dizem que o SNR cai muito no início da noite, o que equivale a dizer que o ruído de fundo é mais forte à noitinha.

A velocidade máxima de uma linha é construída com dois "ingredientes": SNR e largura de banda. No caso da ADSL, a largura de banda é fixa, ditada pelo padrão ITU. Assim resta apenas esperar que o SNR seja alto para acomodar velocidades também altas.

Figura 5: Bandas de freqüência utilizadas pela ADSL

A fórmula de Shannon permite calcular a capacidade teórica máxima de um canal:

Banda (bits/s) = Largura * Log2(1 + SNR)

A fórmula representa numericamente um fato que qualquer um pode constatar empiricamente. Quanto mais ruidoso o ambiente, mais alto e/ou mais devagar você tem de falar para ser ouvido e entendido pelo seu interlocutor. E sua voz tem de ser ao menos um pouquinho mais forte que o ruído, ou que as demais vozes, para haver qualquer chance de você ser ouvido.

No caso da minha linha em particular, considerando ADSL2 (não 2+), a capacidade máxima é

Banda = 1000000 * Log2(1 + 25) = 4,7Mbps

A fórmula de Shannon estabelece um limite teórico, além do qual nenhuma tecnologia pode ir. Tecnologias práticas ficam sempre abaixo deste patamar teórico. Outro detalhe é que a fórmula não leva ruído impulsivo em consideração, embora ele certamente vá existir na prática.

Se o SNR é dado em decibéis, a fórmula pode ser simplificada para

Banda = 1000000 * SNR / 3 

Para cada 3dB de SNR, ganhamos 1Mbps em ADSL1/ADSL2, ou 2Mbps em ADSL2+. Bem mais fácil de memorizar.

Em resumo, não daria muito certo tentar usar 4Mbps nesta minha linha telefônica, pois está muito próximo do limite de Shannon, e qualquer piora na SNR ou a ocorrência de ruídos impulsivos causaria enorme quantidade de erros ATM, que por sua vez causam perdas de pacotes e lentidão.

O próprio modem ADSL faz uma "reserva" de 6dB de SNR para precarver-se, o que redundava em no máximo 2,4Mbps downstream no meu caso, mesmo assinando um plano de 4. (Sem piadinhas, por favor!)

Como a ADSL2+ usa largura de banda de 2MHz, teoricamente a velocidade obtenível seria o dobro, certo?

O problema é que usar mais banda "espalha" a potência total numa faixa mais larga, diminuindo a quantidade de energia que chega na outra ponta para uma mesma "fatia" de banda, e portanto diminuindo o SNR.

No meu caso aqui, o SNR fica entre 4 e 9dB usando ADSL2+. A taxa de erros aumenta muito, a ponto de incomodar; foi por isso que eu mexi na configuração do modem. Mas o principal problema é a pouca "folga" de SNR; se a linha sofrer uma queda brusca de qualidade, talvez por conta de um ruído elétrico nas imediações, o SNR fica negativo e fatalmente a conexão cai.

Usar ADSL2 evita todos esses problemas, e ainda vai longe o dia em que haverá planos de 24Mpbs por aqui.

Curiosamente, o upstream nunca incomoda. Nunca. Por pior que estivesse a ADSL aqui, por pior que fosse o modem, o upstream sempre fluía sem problemas na velocidade máxima contratada.

Creio que isto acontece porque o upstream faz uso de frequências relativamente baixas (vide gráfico mais acima), que são as que menos sofrem atenuação e ruídos.

Interleaving

Um outro fator que pode estar ajudando minha conexão funcionar melhor com ADSL2 em vez de ADSL2+, é que o modo "interleaved" sempre é ativado no primeiro caso, enquanto no segundo caso geralmente a conexão fica em "fast mode" (modo rápido).

O modo interleaved transmite diversos frames ao mesmo tempo, com os bits "embaralhados". Assim, se ocorrer um ruído impulsivo, o estrago será dividido entre diversos frames, e o algoritmo de correção de erros tem mais chances de consertar cada frame. Já o modo rápido transmite um frame depois do outro, e um erro de rajada pega o frame de jeito.

Mas nada é de graça neste mundo. Como o modo interleaved trasmite diversos frames ao mesmo tempo, cada frame individual demora mais para chegar no outro lado. O que aumenta a latência, mais conhecida pelos jogadores on-line como "ping". Aqui, o "ping" é de 13ms em modo rápido, ou 50-60ms em modo interleaved. Além da latência ser maior, ela varia bastante — esta variância é conhecida como "jitter".

Não descobri ainda se é possível configurar o interleaving no SpeedStream, ou mesmo em qualquer outro modem.

e-mail icon