4. FILE TRANSFER (Trasferimento file)
Questa sezione discute due protocolli di trasferimento file: il File Transfer Protocol (FTP) e il Trivial File Transfer Protocol (TFTP).
4.1 FILE TRANSFER PROTOCOL -- FTP (Protocollo di trasferimento file)
4.1.1 Introduction (Introduzione)
Il File Transfer Protocol (FTP) è un protocollo per il trasferimento di file tra host. FTP utilizza due connessioni TCP parallele: una connessione di controllo per comandi e risposte, e una connessione dati per il trasferimento di file.
Ogni host Internet che supporta il trasferimento di file DEVE implementare FTP (MUST). Tuttavia, la capacità client FTP PUÒ essere implementata (MAY) negli host che non richiedono servizi generali di trasferimento file.
4.1.2 Protocol Walk-Through (Percorso del protocollo)
Connessione di controllo (Control Connection)
La connessione di controllo FTP è una connessione Telnet utilizzata per inviare comandi FTP dal client (USER-PI) al server (SERVER-PI) e per restituire risposte dal server al client.
I comandi FTP includono:
- USER: Nome utente
- PASS: Password
- ACCT: Account
- CWD: Cambia directory di lavoro
- CDUP: Cambia alla directory genitore
- SMNT: Montaggio struttura
- QUIT: Disconnetti
- RETR: Recupera file
- STOR: Memorizza file
- STOU: Memorizza unico
- APPE: Aggiungi
- ALLO: Alloca
- REST: Riavvia
- RNFR: Rinomina da
- RNTO: Rinomina a
- ABOR: Abbandona
- DELE: Elimina
- RMD: Rimuovi directory
- MKD: Crea directory
- PWD: Mostra directory di lavoro
- LIST: Elenca file
- NLST: Elenco nomi
- SITE: Parametri sito
- SYST: Sistema
- STAT: Stato
- HELP: Aiuto
- NOOP: Nessuna operazione
Connessione dati (Data Connection)
La connessione dati FTP viene utilizzata per il trasferimento di file e gli elenchi di directory. FTP supporta modalità attiva (PORT) e passiva (PASV) per stabilire connessioni dati.
4.1.3 Specific Issues (Problemi specifici)
4.1.3.1 FTP Restart Mechanism (Meccanismo di riavvio FTP)
Il comando FTP REST consente di riavviare il trasferimento di file a un punto di controllo specificato. Un server FTP DOVREBBE implementare il comando REST per RETR (SHOULD).
4.1.3.2 FTP TYPE Command (Comando TYPE FTP)
Il comando TYPE specifica il tipo di rappresentazione (ASCII, EBCDIC, Image/Binario, Local). Un'implementazione FTP DEVE supportare almeno i seguenti comandi TYPE (MUST):
- ASCII Non-print (TYPE A N)
- Image (TYPE I)
4.1.3.3 FTP PASV Command (Comando PASV FTP)
Il comando PASV richiede al server di ascoltare su una porta dati e attendere una connessione. Un server FTP DOVREBBE implementare PASV (SHOULD).
4.1.3.4 FTP PORT Command (Comando PORT FTP)
Il comando PORT specifica la porta dati a cui il server dovrebbe connettersi. Un server FTP DEVE implementare PORT (MUST).
4.1.4 FTP Requirements Summary (Riepilogo requisiti FTP)
| Funzionalità | Sezione | MUST | SHOULD | MAY | Nota |
|---|---|---|---|---|---|
| Implementare FTP | 4.1.1 | ✓ | |||
| Supportare TYPE A N | 4.1.3.2 | ✓ | |||
| Supportare TYPE I | 4.1.3.2 | ✓ | |||
| Implementare PORT | 4.1.3.4 | ✓ | |||
| Implementare PASV | 4.1.3.3 | ✓ | |||
| Implementare REST per RETR | 4.1.3.1 | ✓ |
4.2 TRIVIAL FILE TRANSFER PROTOCOL -- TFTP (Protocollo di trasferimento file banale)
4.2.1 Introduction (Introduzione)
Il Trivial File Transfer Protocol (TFTP) è un semplice protocollo di trasferimento file costruito su UDP. TFTP è progettato per applicazioni che non richiedono la sofisticazione di FTP.
Un host Internet per uso generale DOVREBBE implementare la capacità client TFTP (SHOULD). Un host Internet per uso generale PUÒ implementare la capacità server TFTP (MAY).
4.2.2 Protocol Walk-Through (Percorso del protocollo)
TFTP utilizza cinque tipi di pacchetti:
- Read Request (RRQ): Richiesta di lettura di un file
- Write Request (WRQ): Richiesta di scrittura di un file
- Data (DATA): Pacchetto dati del file
- Acknowledgment (ACK): Conferma di ricezione dei dati
- Error (ERROR): Condizione di errore
4.2.3 Specific Issues (Problemi specifici)
4.2.3.1 TFTP Timeout (Timeout TFTP)
TFTP utilizza un semplice protocollo stop-and-wait con timeout e ritrasmissione. Un'implementazione TFTP DEVE utilizzare un timeout adattivo (MUST).
4.2.3.2 TFTP Options (Opzioni TFTP)
TFTP supporta estensioni opzionali inclusa la negoziazione della dimensione del blocco e la negoziazione del timeout. Queste opzioni POSSONO essere implementate (MAY).
4.2.4 TFTP Requirements Summary (Riepilogo requisiti TFTP)
| Funzionalità | Sezione | MUST | SHOULD | MAY | Nota |
|---|---|---|---|---|---|
| Implementare client TFTP | 4.2.1 | ✓ | |||
| Implementare server TFTP | 4.2.1 | ✓ | |||
| Utilizzare timeout adattivo | 4.2.3.1 | ✓ | |||
| Supportare opzioni TFTP | 4.2.3.2 | ✓ |