O protocolo FTP (File Transfer Protocol) Das FTP Protokoll (File Transfer Protocol) Le protocole FTP (File Transfer Protocol) Protocolo FTP (Protocolo de transferencia de archivos) FTP protocol (File Transfer Protocol)

Introduzione al protocollo FTP

Il protocollo FTp ( File Transfer Protocol), è, come indicato dal suo nome, un protocollo di trasferimento di file.

La creazione del protocollo FTP data 1971, anno nel quale un meccanismo di trasferimento di file (descritti nel RFC 141) tra i terminali de MIT (Massachussetts Institute of Technology) era stato messo a punto. Numerosi RFC hanno apportato in seguito dei miglioramenti al protocollo di base, ma le più grandi innovazioni sono del luglio del 1973.

Il protocollo FTP è attualmente definito dall' RFC 959 (File Transfer Protocol (FTP) - Specifications).

Il ruolo del protocollo FTP

Il protocollo FTP definisce il modo in cui i dati devono essere trasferiti su una rete TC/IP.

Il protocollo FTP a come obiettivo di :

  • permettere una condivisione di file tra terminali remoti
  • permettere un'indipendenza ai sistemi di file dei terminali client e server
  • permettere di trasferire dei dati in modo efficace

Il modello FTP

Il protocollo FTP si iscrive in un modello client-server, cioè un terminale invia degli ordini (il client) e un altro aspetta delle richieste per effettuare delle azioni (i server).

Durante una connessione FTP, si aprono due canali di trasmissione :

  • Un canale per i comandi (canale di controllo)
  • Un canale per i dati

Le modèle FTP

Così, sia il client che il server possiedono due processori che permettono di gestire questi due tipi di informazione :

  • il DTP (Data Transfer Process) è il processo incaricato di stabilire la connessione e di gestire il canale di dati. Il DTP lato server è detto SERVER-DTP, il DTP lato client è detto USER-DTP
  • il PI (Protocol Interpreter) è l'inter prestatore di protocollo che permette di comandare il DTP attraverso degli ordini ricevuti sul canale di controllo. Esso è diverso sul client e sul server :
    • Il SERVER-PI è incaricato di ascoltare gli ordini provenienti da uno USER-PI sul canale di controllo su una data porta, di stabilire la connessione per il canale di controllo, di ricevere su quest'ultimo gli ordini dell'USER-PI, di rispondervi e di pilotare il SERVER-DTP
    • Lo USER-PI è incaricato di stabilire la connessione con il server FTP, d'inviare gli ordini FTP, di ricevere le risposte del SERVER-PI e di controllare lo USER-DTP se necessario

Durante la connessione di un client FTP ad un server FTP, lo USER-PI inizia la connessione al server secondo il protocollo Telnet. Il client invia degli ordini FTP al server, quest'ultimo li interpreta, pilota il suo DTP, poi rinvia una risposta standard. Una volta che la connessione è stabilita, il server-PI da la porta sulla quale i dati saranno inviati al client DTP. Il client DTP ascolta allora sulla porta specifica i dati provenienti dal server.
E' importante notare che, visto che le porte di controllo e di dati sono su canali separati, è possibile inviare gli ordini partendo da un terminale e di ricevere i dati su un altro. Così, ad esempio, è possibile trasferire i dati tra due server FTP passando da un client per inviare le istruzioni di controllo e trasferendo le informazioni tra due processi di server connessi alla porta corretta.

Transfert de données par FTP entre deux serveurs

In questa configurazione, il protocollo impone che i canali di controllo restino aperti durante tutto il trasferimento dei dati. Così un server può bloccare una trasmissione se il canale di controllo è interrotto durante la trasmissione.

I comandi FTP

Tutte le comunicazioni effettuate sul canale di controllo seguono le raccomandazioni del protocollo Telnet. Così i comandi FTP sono delle stringhe di caratteri Telnet (in codice NVT.-ASCII) terminati dal codice finale di linea Telnet (cioè la sequenza <CR>+<LF>, Carriage Return (ritorno a capo) seguito dal carattere Line Feed, sigla lt;CRLF>).
Se il comando FTP ammette un parametro, questo è separato dal comando da uno spazio (<SP>).

I comandi FTP permettono di precisare :

  • La porta utilizzata
  • Il modo d trasferimento dei dati
  • La struttura dei dati
  • La natura dell'azione da effettuare (Retrieve, List, Store, ...)

Si distinguono tre tipi di comandi FTP :

  • I comandi da controllo di accesso
  • I comandi da para metraggio di trasferimento
  • I comandi di servizio FTP

Comando di controllo d'accesso
Comando Descrizione
USER Stringa di caratteri che permette di identificare l'utente. L'identificazione dell'utente è necessaria per stabilire una comunicazione sul canale dei dati.
PASS Stringa di caratteri che specifica la password dell'utente. Questo comando deve essere immediatamente preceduto dal comando USER. Al client conviene mascherare la visualizzazione di questo comando per ragioni di sicurezza
ACCT Stringa di caratteri che rappresenta l'account dell'utente. Questo comando non è generalmente necessario. Al momento della risposta all'accettazione della password, se la risposta è 230 questa fase non è necessaria, si la risposta è 332, allora lo è.
CWD Change Working Directory : questo comando permette di cambiare la cartella corrente. Esso necessita del percorso di accesso alla cartella da raggiungere come argomento
CDUP Change to Parent Directory : questo comando permette di risalire alla cartella parente. E' stato introdotto per rimediare ai problemi di denominazione di cartelle parenti secondo il sistema (generalmente "..")
SMNT Structure Mount :
REIN Reinitialize :
QUIT Comando che permette di terminare la sessione in corso. Il server aspetta di finire il trasferimento in corso e, se questo avviene, di fornire una risposta prima di chiudere la connessione.

Comando dei parametri di trasferimento
Comando Descrizione
PORT Stringa di caratteri che permette di precisare il numero di porta da usare
PASV Comando che permette di indicare al server DTP di aspettare una connessione du una porta specifica scelta casualmente fra quelle disponibili. La risposta a questo comando è l'indirizzo IP del terminale e la porta.
TYPE Questo comando permette di precisare il tipo di formato in cui i dati saranno inviati
STRU Carattere Telnet che precisa la struttura del file (F per File, R per Record, P per Page)
MODE Carattere Telnet che precisa il modo di trasferimento dei dati (S per Stream, B per Block, C per Compressed)

Comando di servizio FTP
Comando Descrizione
RETR Questo comando (RETRIEVE) chiede al server DTP una copia del file il cui percorso di accesso è passato in parametri.
STOR Questo comando (store) chiede al server DTP di accettare i dati inviati sul canale di dati e di stoccarli nel file che porta il nome passato nei parametri. Se il file non esiste, il server lo crea, altrimenti lo sopprime
STOU Questo comando è identico al precedente, se non per il fatto che chiede al server di creare un file il cui nome è unico. Il nome del file è incluso nella risposta
APPE Grazie a questo comando (append) i dati inviati sono concatenati nel file che ha il nome passato in parametro se già esistente, in caso contrario esso viene creato
ALLO Questo comando (allocate) chiede al server di prevedere uno spazio di stoccaggio sufficiente per contenere il file il cui nome è passato in argomento.
REST Questo comando (restart) permette di riprendere un trasferimento al punto dove si era interrotto. Per fare questo il comando invia in parametro evidenziato che rappresenta la posizione nel file alla quale il trasferimento era stato interrotto. Questo comando deve essere immediatamente seguito da un comando di trasferimento.
RNFR Questo comando (rename from) permette di rinominare un file. Esso indica in parametri il nome del file da rinominare e deve essere immediatamente seguito dal comando RNTO
RNTO Questo comando (rename to) permette di rinominare un file. Esso indica in parametri il nome del file da rinominare e deve essere immediatamente preceduto dal comando RNFR
ABOR Questo comando (abort) indica al server DTP di abbandonare tutti i trasferimenti associati al comando precedente. Si nessuna connessione di dati è aperta, il server DTP non fa niente, altrimenti la chiude. Il canale di controllo resta invece aperto.
DELE Questo comando (delete) permette di sopprimere il file il cui nome è passato in parametri. Questo comando è irrimediabile, può essere fatta una conferma solo a livello del client.
RMD Questo comando (remove directory) permette di sopprimere una cartella. Esso indica in parametri in nome della cartella da sopprimere
MKD Questo comando (make directory) permette di creare una cartella. Esso indica in parametri il nome della cartella da creare
PWD Questa cartella (print working directory) permette di rinviare il percorso completo della cartella corrente
LIST Questo comando permette di rinviare l'elenco dei file e cartelle presenti nella cartella corrente. Questo elenco è inviato sul DTP passivo. E' possibile passare in parametri di questo comando un nome di cartella, il server DTP invierà la lista dei file nella cartella passata in parametri.
NLST Questo comando (name liste) permette di inviare l'elenco dei file e cartelle nella cartella corrente
SITE Questo comando (site parameters) permette al server di proporre dei servizi specifici, non definiti nel protocollo FTP
SYST Questo comando (system) permette di inviare delle informazioni sul server remoto
STAT Questo comando (status) permette di emettere lo stato del server, ad esempio per conoscere la progressione di un trasferimento in corso. Questo comando accetta come argomento un percorso d'accesso, esso rinvia allora le stesse informazioni di LIST ma sul canale di controllo.
HELP Questo comando permette di conoscere l'insieme dei comandi compresi dal server. Le informazioni sono rinviate sul canale di controllo
NOOP Questo comando (no operations) serve unicamente ad ottenere un comando OK dal server. Esso può servire unicamente per non essere disconnessi dopo un tempo di inattività troppo lungo

Le risposte FTP

Le risposte FTP permettono di assicurare la sincronizzazione tra client e server FTP. Così ad ogni comando inviato dal client, il server effettuerà eventualmente un'azione e rinvierà sistematicamente una risposta.

Le risposte sono costituite da un codice a 3 cifre indicante il modo in cui il comando inviato dal client è stato trattato. Tuttavia, essendo questo codice a 3 cifre difficilmente leggibile da un essere umano, è accompagnato da un testo (stringa di caratteri Telnet separata dal codice numerico da uno spazio).

I codici di risposta sono costituiti da 3 cifre di cui trovate qui di seguito i significati :

  • La prima cifra indica lo stato della risposta (successo o fallimento)
  • La seconda cifra indica a cosa la risposta si riferisce
  • La terza cifra da un significato più specifico (relativo ad ogni seconda cifra)

Prima cifra
Cifra Significato Descrizione
1yz Risposta preliminare positiva Mentre l'azione richiesta è in corso di realizzazione, prima di inviare un secondo comando deve essere ottenuta una seconda risposta
2yz Risposta positiva di realizzazione Una volta che l'azione richiesta è stata realizzata, si può inviare un nuovo comando
3yz Risposta intermedia positiva L'azione richiesta è temporaneamente sospesa. Si attendono delle informazioni supplementari dal client
4yz Risposta negativa di realizzazione L'azione richiesta non si è verificata dato che il comando non è stato temporaneamente accettato. Il client è pregato di riprovare più tardi
5yz Risposta negativa permanente L'azione richiesta non si è verificata dato che il comando non è stato accettato. Il client è pregato di formulare una richiesta differente

Seconda cifra
Cifra Significato Descrizione
x0z Sintassi L'azione presenta un errore di sintassi, oppure si tratta di un comando non capito dal server
x1z Informazione Si tratta di una risposta che rinvia delle informazioni (ad esempio per una risposta ad un comando STAT)
x2z Connessioni La risposta riguarda il canale di dati
x3z Autentificazione e account La risposta riguarda il login (USER/PASS) o la domanda di cambiamento di account (CPT)
x4z Non usato dal protocollo FTP  
x5z Sistema di file La risposta riguarda il sistema di file remoto

Ulteriori informazioni

Per saperne di più sul protocollo FTP, non esitate a consultare i seguenti documenti :



Ultime modificazione ilvenerdì 6 febbraio 2009 alle 16:51:56.Questo documento intitolato «  » da Kioskea (it.kioskea.net) è reso disponibile sotto la licenza Creative Commons. È possibile copiare, modificare le copie di questa pagina, alle condizioni previste dalla licenza, come questa nota appare chiaramente.
Migliori risposte per « Il protocollo FTP (File Transfer Protocol) » in :
Uso del comando ftp Vedi Il protocollo FTP FTP (File Transfer Protocol) è un protocollo, cioè un linguaggio standard di comunicazione tra due terminali, che permette a dei terminali di tipo differente (o con sistemi operativi diversi) di trasferire dei file su una rete che...
I comandi FTP Vedi ll protocollo FTP FTP (File Transfer Protocol) è un protocollo, cioè un linguaggio standard di comunicazione tra due terminali, che permette a dei terminali di tipo diverso (o con sistemi operativi differenti) di trasferire dei file su una rete...
I comandi FTP Vedi Il protocollo FTP FTP (File Transfer Protocol) è un protocollo, cioè un linguaggio standard di comunicazione fra due terminali, che permette a dei terminali di tipo diverso (o con sistema operativo differente) di trasferire dei file su una rete...
Installare un server FTP su Windows VediVersione rapida Versione un po' meno rapida (ma più pulita) Versione server pulita Link Per andare più in la : accedere al vostro server FTP da ovunque vogliate Nota Versione rapida PRESTO, VOGLIO ISTALLARE UN SERVER FTP ADESSO! 1)...
[PHP] Upload file VediIl linguaggio PHP permette di gestire dei file inviati grazie a un modello HTML. Modulo per l'invio di file Configurazione di PHP per permettere l'upload Recuperare un file con PHP Modulo per l'invio di file La prima cosa da fare...
Aprire un file RAR VediIl formato RAR è un formato di compressione molto diffuso. Ci sono diversi software gratuiti per decomprimere un file RAR. Ecco un elenco non esaustivo: ALZip 7zip ZipGenius jZip ____________________________ Nota: L'articolo originale...
Download SoftPerfect File Recovery VediSoftPerfect File Recovery (solo 253 kb) è usato per recuperare file cancellati accidentalmente, anche dopo lo svuotamento del cestino. Attenzione : È importante che non hai scritto sul disco, nel frattempo. Sostiene i file system FAT12, FAT16,...
Il protocollo HTTP VediIntroduzione al protocollo HTTP Il protocollo HTTP (HyperText Transfer Protocol) è il protocollo più usato su internet dal 1990. La versione 0.9 era destinata solo ai trasferimenti di dati su internet (in particolare delle pagine web scritte in...
Webmastering - I linguaggi del web VediIntroduzione al web Il termine « web » designa il servizio internet che permette di navigare attraverso le pagine web. Il protocollo usato per questo tipo di comunicazione e il protocollo HTTP (HyperText Transfer Protocol), il che spiega perché...
Il protocollo UDP VediLe caratteristiche del protocollo UDP Il protocollo UDP (User Datagram Protocol) è un protocollo non orientato connessione del livello trasporto del modello TCP/IP. Questo protocollo è molto semplice dato che non fornisce nessun controllo degli...