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