sexta-feira, março 20, 2009

O Protocolo YModem

O protocolo XModem que examinamos nos posts anteriores é voltado à transmissão dos dados de um arquivo de um computador para outro.

O protocolo YModem acrescenta um nível acima do XModem para permitir transferir informações sobre o arquivo, particularmente nome, tamanho e data. Isto possibilita:
  • Receber arquivos com tamanho arbitrário (no XModem o tamanho recebido é sempre múltiplo de 128 bytes).
  • Deixar a recepção mais automática, com o transmissor definindo o nome do arquivo.
  • Realizar a transferência de múltiplos arquivos (modo batch).
O YModem pressupõe a implementação do XModem com pacotes de 1K e CRC.

Uma transferência YModem se inicia da mesma forma que no XModem CRC, com o receptor enviando um caracter 'C' para indicar que está pronto. O transmissor, entretanto, responde com um pacote de número zero que contem as informações sobre o arquivo:
  • nome do arquivo, finalizado por um NUL (0x00)
  • tamanho do arquivo (opcional). O tamanho é transmitido em texto (ex: '1234'); o programa receptor deve desprezar os bytes irelevantes do último pacote recebido.
  • data do arquivo (opcional), separado por um espaço do tamanho. A data do arquivo é transmitida em octal como o número de segundos desde as zero horas GMT de primeiro de janeiro de 1970. A data zero indica que a data não é especificada.
  • outras informações menos usuais.
O receptor deve responder a um pacote zero correto com ACK e em seguida iniciar uma recepção normal XModem CRC, enviando novamente 'C'. A transferência dos dados do arquivo procede normalmente, exceto que o receptor não deve gravar os bytes que ultrapassem o tamanho informado.

Após enviar o ACK do EOT dos dados do arquivo, o receptor deve novamente enviar 'C' e aguardar um novo pacote zero. Um pacote zero com nome de arquivo vazio indica o fim dos arquivos.

Normalmente um programa transmissor YModem permite ao operador especificar uma máscara como nome de arquivo (como 'Arq*.txt'). O programa utiliza o protocolo para enviar todos os arquivos existentes que atendam à máscara. No programa receptor, o usuário apenas inicia a recepção, o programa recebe os arquivos e os salva com os nomes especificados.

Referência

XMODEM/YMODEM PROTOCOL REFERENCE
- Edited by Chuck Forsberg

Nenhum comentário: