O TFTP usa mecanismos semelhantes ao telnet para transmitir ASCII. Ele segue as regras estabelecidas na especificação NVT . Portanto, os marcadores de fim de linha são terminados com <cr><lf>
e, se você quiser enviar um <cr>
real, isso será traduzido como <cr><nul>
.
hexdumping um arquivo que criei:
00000000 0d 54 65 73 74 69 6e 67 33 0d 0a |.Testing3..|
No entanto, na transmissão por meio de tftp (obtido de um tcpdump -X
):
0x0020: 0d00 5465 7374 696e 6733 0d00 0d0a ..Testing3....
Observe como a sequência <cr><lf>
foi convertida em <cr><nul><cr><lf>
.
Quando difundo os resultados do arquivo local e remoto, acabo com o mesmo arquivo. Isso ocorrerá porque a sequência <cr><nul>
será retornada para <cr>
e o formato local (em unix) para uma nova linha será <lf>
e, assim, o <cr><lf>
será transformado em <lf>
e o arquivo original será transmitido é recebido. Não tenho tanta certeza sobre como um servidor tftp do DOS lidaria com a sequência <cr><nul><cr><lf>
, tenho a sensação de que pode atrapalhar a saída para ter um% extra<cr>
( <cr><nul>
se torna <cr>
e <cr><lf>
se torna <cr><lf>
), especialmente considerando os estados da RFC:
A host which receives netascii mode data must translate the data to its own format.
Referências