Resumo

  • O modo COMPRESSED separava dados literais, repetição de qualquer byte e preenchimento definido pela representação; só o preenchimento omitia o valor.
  • TYPE completava a instrução: espaço em ASCII/EBCDIC e byte zero em Image/Local byte.
  • Uma captura MODE C pode guardar todos os bits e ainda não permitir a reconstrução se perder a cronologia dos parâmetros.

Uma contagem válida que não pede amostra

O descritor de preenchimento começa com 11; os seis bits restantes dão a quantidade. O item termina ali. RFC 765 e RFC 959 definem outra forma para repetições arbitrárias: classe 10, seis bits de contagem e um byte seguinte d, usado como amostra.

Logo, “há uma contagem e não há valor” não é diagnóstico suficiente. Depois de 10, a falta da amostra indica truncamento. Depois de 11, buscar uma amostra é que corrompe a análise, pois o parser consumirá o começo do próximo item.

Dados comuns usam ainda uma terceira promessa: bit alto zero, contagem positiva de sete bits, no máximo 127, e exatamente n bytes literais. A classe determina o que vem depois.

O TYPE entregava o material

Para ASCII, o preenchimento era espaço, código 32. Para EBCDIC, espaço, código 64. Para Image e Local byte, era zero. Portanto, o mesmo descritor pode produzir brancos ou zeros sem qualquer mudança na conexão de dados.

O RFC 959 diz que representação e transmissão são basicamente independentes, mas registra a exceção: em COMPRESSED, a natureza do filler depende do tipo. A frase é a chave do formato compacto. MODE informa que há uma série e quantos elementos ela tem; TYPE informa qual valor aparece.

Um arquivo de captura que elimina o canal de controle retém a gramática parcial. Seu hash prova os bytes codificados, não qual objeto decodificado eles formaram naquela sessão.

Repetição não era sinônimo de preenchimento

A classe 10 pode repetir qualquer valor porque carrega a amostra. A classe 11 só pode representar o valor privilegiado pela representação. Uma série de zeros em ASCII continua sendo repetição comum, pois o filler ASCII é espaço. Em Image, zeros podem ser inferidos.

O ganho vinha de uma categoria semântica, não apenas da frequência. O protocolo removia a amostra porque a negociação já havia reduzido as alternativas a uma só.

Informações de controle tinham uma quarta via: byte de escape zero seguido por um descritor com os códigos de BLOCK, aplicados à série posterior. Antes de materializar o arquivo, o receptor distinguia literal, réplica explícita, filler implícito e controle.

Espaços de impressão custavam rede

O RFC 959 apresentava COMPRESSED como troca de algum processamento por largura de banda em grandes transmissões. Destacava arquivos de impressora, inclusive os gerados por hosts RJE. Formulários de largura fixa e margens produziam longas faixas de espaço.

Nesse cenário, reservar uma forma de um byte para o espaço era uma economia concreta. Para representações binárias, o zero ocupava papel análogo. Não era uma afirmação sobre toda compressão futura, mas um desenho vinculado ao significado dos formatos e ao custo operacional daquele período.

O acoplamento também traz risco de auditoria. Um log que atribua TYPE I a uma transferência feita em TYPE A altera a futura saída de filler sem tocar em nenhum bit capturado. Uma biblioteca que exija amostra após toda contagem recusará tráfego válido.

Respostas aceitas criavam épocas de parser

TYPE, STRU e MODE eram parâmetros da conexão de controle. A trilha correta precisa guardar comando e resposta: uma tentativa rejeitada não muda o estado. Cada transferência deve apontar para os parâmetros vigentes quando começou.

Depois de uma alteração aceita, abre-se nova época de decodificação. Guardam-se limites, estado inicial e final, fluxo bruto e resultado. Segmentos TCP e chamadas de leitura podem cortar qualquer forma e não estabelecem fronteiras sintáticas.

Comando base não significava argumento universal

O RFC 959 atribuiu S, B e C, deixando Stream como padrão. RFC 1123 definiu depois o mínimo apenas com Stream. MODE C pertence ao desenho padronizado, mas isso não demonstra presença em todos os produtos, muito menos nos atuais.

RFC 5797 e o registro da IANA mantêm MODE como comando base de parâmetros. O registro coordena nome e referência; não testa C, casos extremos do parser ou preservação após armazenamento.

Conservar a entrada e a reconstrução

Uma evidência útil contém fluxo, tamanho e hash; linha do tempo de TYPE/STRU/MODE aceitos; classe, quantidade e extensão esperada de cada item; controles; estado terminal; e hash do arquivo canônico. Mesmo que filler e réplica produzam bytes iguais, suas proveniências continuam diferentes.

Canários devem executar o mesmo 11 sob ASCII, EBCDIC, Image e Local byte; compará-lo a 10 com uma amostra equivalente; separar descritor e amostra entre leituras; e encerrar após uma réplica incompleta. Quem determina a resposta é a gramática combinada com o contexto.

O remetente não enviou o byte porque a sessão já o havia nomeado. Se a economia toma significado emprestado do estado, o arquivo de prova precisa devolver esse estado aos bytes.

Fontes