Trivial File Transfer Protocol: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
PertBot (discussione | contributi)
m Freshmeat -> Freecode
Riga 11:
Alcuni dettagli sul TFTP:
 
* usa l'[[User Datagram Protocol|UDP]] ([[porta (reti)|porta]] 69) come [[livello di trasporto|protocollo di trasporto]] (a differenza del FTP che usa il [[Transmission Control Protocol|TCP]] sulla porta 21);
* non supporta la navigazione tra le [[directory]];
* non possiede meccanismi di [[autenticazione|autenticazioni]] o [[cifratura]];
* può essere usato per leggere o scrivere [[file]] da un [[server]] remoto;
* supporta tre differenti modalità di trasferimento, "netascii", "octet" e "mail", dei quali i primi due corrispondono alle modalità "[[ASCII]]" e "image" (binario) del protocollo FTP; la terza è obsoleta e raramente usata;
* ha un limite di dimensione dei file di 32 [[Megabyte|MB]].
 
Poiché TFTP utilizza UDP, è necessario creare un supporto per trasporto e [[sessione]]. Ogni file trasferito via TFTP costituisce uno scambio indipendente. Ogni trasferimento è attuato in passi distinti, con sempre un [[pacchetto (reti)|pacchetto]] (che sia un blocco di dati o un ''acknowledgement'') in trasmissione nella rete.
 
Per via della mancanza di sicurezza, è pericoloso usare TFTP su internet[[Internet]]; perciò è usato generalmente solo nelle [[rete locale|reti locali private]].
 
La negoziazione delle opzioni fu aggiunta nel protocollo successivamente (con la [[RFC]] 2347), e le opzioni così negoziate possono modificare il protocollo (in particolare usare blocchi di dimensione maggiore), pur non trasformandolo sostanzialmente.
 
=== Dettagli sulla sessione TFTP ===
 
* L'[[host]] A invia un [[pacchetto (reti)|pacchetto]] RRQ (''read request'') o WRQ (''write request'') all'host B, contenente il nome del file e la modalità di trasferimento.
* B risponde con un [[ACK]] (''acknowledgement'') packet, che serve anche a dire ad A quale porta sull'host B dovrà usare per i restanti pacchetti.
* L'host di origine invia dei pacchetti DATA numerati all'host di destinazione, tutti tranne l'ultimo contenenti un blocco di [[dati]] completo. L'host di destinazione risponde con un pacchetto ACK numerato per ogni pacchetto DATA.
* Il pacchetto DATA finale deve contenere un blocco di dati non pieno ad indicare che si tratta dell'ultimo. Se la dimensione del file trasferito è un multiplo esatto della dimensione dei blocchi, la sorgente invia un ultimo pacchetto di dati contenente 0 byte di dati.