INFORMÁTICA FÁCIL:
Ligue
seu micro com o mundo... (8)
Protocolos de comunicação
Para
que um modem entenda o que o outro está transmitindo - e ignore
ruídos da linha que interfiram na comunicação e possam
ser confundidos com os tons de áudio usados na transmissão
telefônica -, saiba se a transmissão foi interrompida, e o
quê foi transmitido corretamente, é preciso existirem algumas
regras ou convenções, conhecidas como protocolos de comunicação
e de correção de erros, ou genericamente como protocolos
de transferência de arquivos.
Eles são necessários
para garantir aos usuários que os arquivos foram transmitidos e
recebidos integralmente e sem erros, e devem ser escolhidos por ambos os
usuários (transmissor e receptor) antes da transmissão do
arquivo, pois ambos devem usar o mesmo protocolo.
Quase todos os protocolos dividem
os arquivos a transmitir em uma certa quantidade de blocos (ou “pacotes”),
acrescentando uma informação extra para o controle e a detecção
de erros (que pode ser Checksum ou CRC), calculada a partir dos dados por
processos matemáticos. O modem que recebe esses blocos deve refazer
as contas para compará-las com o resultado esperado.
Protocolos mais recentes permitem
transmitir vários blocos antes de se receber algum informe de erro
(window) e repetir apenas o bloco errado (sliding window). Como a divisão
em blocos ocorre em nível de bits, a base de qualquer programa de
computador, os arquivos transmitidos não sofrem nenhuma alteração,
depois de reconstituídos pelo modem recebedor desses dados.
Tipos - O protocolo mais simples
é o ASCII, que apenas envia o arquivo pela interface serial, sem
acrescentar nenhuma informação. Já o primeiro protocolo
popular, e o menos eficiente entre os atuais, foi o Xmodem (de Ward Christensen).
Neste caso, cada bloco transporta 128 bytes de dados mais a informação
do número do bloco e o Checksum (podemos traduzir como soma de conferência).
Possui a variação XModem-CRC que troca o cálculo do
Checksum pelo CRC, mais confiável.
O XModem-1K é uma variação
do XModem-CRC que apresenta os dados aumentados de 128 para 1024 bytes
por bloco, procurando aumentar a eficiência com mais bytes de dados
em relação aos bytes de controle.
Já o Ymodem (de Chuck Forsberg)
acrescenta a capacidade batch ao XModem-1K, isto é, permite transferir
diversos arquivos em uma simples operação. Como existe alguma
confusão entre este (conhecido então como Ymodem-batch) e
o XModem-1K (rebatizado como Ymodem), o padrão acabou não
sendo tão utilizado, pois seria trabalhoso definir, a cada vez que
fosse usado, qual o real padrão Ymodem em uso.
O Ymodem-G é do tipo streaming:
apenas envia os dados, sem esperar alguma sinalização de
erro, não perdendo portanto tempo com a espera desse sinal. Qualquer
erro simplesmente cancela a transferência dos dados. Protocolos com
o sufixo G são usados em modems com correção de erros
(MNP ou V.42), pois qualquer erro ou falha só poderão ser
corrigidos entre os modems.
Já o Zmodem (também
de Chuck Forsberg) é hoje o padrão nos BBSs. Sua principal
vantagem é mudar dinamicamente a quantidade de dados contidos em
um bloco, conforme as condições da linha de transmissão.
Usa um CRC com 32 bits, bastante confiável, e permite reiniciar
a partir do ponto de interrupção uma transferência
de arquivo interrompida, em vez de ocorrer o crash recovery (em que todo
o arquivo recomeça a ser transmitido).
Menos conhecidos - Desenvolvido
por Frank da Cruz na Columbia University, o Kermit destina-se a ligar computadores
de grande porte (mainframes) a computadores de diversos tipos. Usa “palavras”
de sete ou oito bits (dados ASCII ou binários), bem como negociação
dos recursos disponíveis entre as diversas versões do protocolo.
Embora seja mais fácil o intercâmbio, perde para o Xmodem
na velocidade. Como o Cis Quick B (usado no Compuserve dos Estados Unidos)
e alguns protocolos proprietários de alguns programas de comunicação,
o Kermit não é comum nos BBSs.
Puma, Hyper e Jmodem são outros
protocolos usados nas comunicações, mas não tão
comuns. Já o Bimodem, criado por John Erickson, se destaca por permitir
transferências bidirecionais (upload e download) simultâneas
com um chat (conversa) entre usuários e o operador do sistema do
BBS (sysop). Na mesma linha do Bimodem, Samuel H.Smith desenvolveu o protocolo
HS-Link, que usa o conceito de protocolo externo.
O protocolo externo é um programa
específico para implementação de um protocolo que
não faça parte do programa original de transmissão.
É uma forma de superar a limitação de certos programas.
Neste caso, o acesso ao programa de comunicação passa por
um arquivo “batch” do sistema operacional, que carrega e ativa o protocolo
externo, preparando-o para receber comandos e parâmetros do
programa.
O melhor - Nas primeiras experiências
com programas de comunicação, use o Xmodem, preferencialmente
na versão CRC. Nas conexões com muito ruído, em que
a linha telefônica apresente sinal de baixa qualidade, o Xmodem é
mais rápido porque o bloco de dados é menor e o protocolo
perde assim menos tempo nas retransmissões.
O Zmodem, entretanto, é o
ideal para uso com linhas telefônicas que tenham pouco ruído,
e só na falta do Xmodem e do Zmodem use o protocolo Ymodem, especialmente
Ymodem-G (a não ser que você confie na correção
de erros feita pelo próprio modem). Lembre-se: quanto pior a linha,
mais retransmissões serão feitas, maior o tempo gasto na
transmissão.
Colaboram nesta série o
Renato “Snake” Ferreira Ribeiro, da Snake
BBS, e o Christian Rodrigues Barbosa, da Blue Eagle Consulting, encarregado
da estruturação de A
Tribuna como provedora Internet. |