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:

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:

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:

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

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.

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, que me obriguem e usar ADSL2+.
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.

8 comentários:
cara, este post está salvo nos meus favoritos... São informações sobre o dsl que nunca havia encontrado antes,
parabéns.
Para mim só funcionou o red2,
minha dsl tinha dropouts
intermitentes que deixavam-me louco,
bom artigo.
Deu sorte que sua operadora suporta RE-ADSL2. A BrasilTelecom/OI aqui em SC aparentemente não suporta. Qual a sua?
BrasilTelecom/OI 1M Porto Alegre-RS.
Excelente artigo.
Ótimo artigo. Testei aqui com o ADSL2 e ficou ruim, com ADSL2+ ficou como antes, muito boa. Creio que a linha seja de boa qualidade.
Para mim só funcionou o red2
mas nao passa de 170kbps :S
alguem sabe o que pode ser ??
@Myster, lamento, você deve ter uma linha ainda mais longa e pior que a minha :)
Postar um comentário