[successivo] [precedente] [indice]

Trivial File Transfer Protocol

Il protocollo TFTP viene tipicamente usato dae stazioni senza disco fisso o da Terminali X per il rapido trasferimento di immagini di sistema operativo o files di fonts o di configurazione. Le specifiche sono contenute nel documento RFC1350.

Il campo Codice e' a due byte. Vi sono 5 possibili messaggi TFTP, denotati dal campo Codice del messaggio:

Per una richiesta RRQ seguono il campo Nome File e il campo Modo, entrambi stringhe terminati da un NUL, il normale carattere terminatore di stringa del Linguaggio C.

Il campo Modo puo' avere i valori netascii o octet, a denotare un file di testo a 7 bit per carattere con linee terminate dalla coppia Carriage Return e Line Feed, oppure un file binario a 8 bit per carattete.

I messaggi di tipo Data contengono un campo Numero Blocco a 2 byte, che viene usato dai messaggi ACK, seguito dal campo Dati. Il campo dati e' di lunghezza 512 byte, tranne l'ultimo blocco del file che puo' essere di lunghezza inferiore.

Il protocollo TFTP e' del tipo ARQ, anche detto stop-and-wait: il trasmittente invia un blocco dati e quindi attende fino ad un tempo di timeout per conferma di ricezione. Il ricevente conferma ogni blocco con un messaggio ACK seguito dal numero del blocco confermato.

Il numero di blocco puo' compiere un wrap-around se il file e' piu' lungo di 65536 blocchi. Quando il ricevente vede arrivare un blocco di dimensioni inferiori a 512 byte sa' che il trasferimento file e' terminato.

Per una richiesta di scrittura ad un file (WRQ) il ricevente risponde con un ACK seguito dal numero di blocco 0 se il permesso di scrittura e' accordato. Per una richiesta di lettura invece, se il permesso di lettura esiste, il ricevente invia subito il primo blocco del file richiesto con il Numero di Blocco 1.

Il messaggio Error viene inviato dal ricevente se il permesso di operazione sul file richiesto non esiste o in altri casi di errore. IL campo Numero Errore contiene un codice a due byte del tipo di errore verificatosi, e puo' essere seguito da una stringa terminata col NUL di specifica dell'errore. Questa stringa dipende dal sistema operativo del ricevente.

I pacchetti perduti sono gestiti semplicemente con tempi di timeout e ritrasmissione sia dal richiedente che dal rispondente. Il protocollo di trasporto usato e' UDP. Il protocollo TFTP e' soggetto alla cosiddetta "sindrome dell'apprendista stregone", in cui entrambi i lati della comunicazione vanno in timeout simultaneamente e ripetono l'invio messaggio.

TFTP non fornisce alcuna sicurezza. Quasi tutte le implementazioni contano sull'amministratore di sistema per restringere l'accesso ai file contenuti solo in alcune directory.