Passa al contenuto principale

2.3 Il modello FTP (THE FTP MODEL)

Con le definizioni sopra in mente, il seguente modello (illustrato nella figura 1) può essere diagrammato per un servizio FTP.

                                            -------------
|/---------\|
|| Utente || --------
||Interface|<--->|Utente |
|\---------/| --------
---------- | User-PI |
|/------\| Comandi FTP | User-DTP |
||Server|<---------------->| |
|| PI || Risposte FTP -------------
|\------/|
|/------\|
||Server||
|| DTP ||
|\------/|
----------

Server-FTP User-FTP

Figura 1 Modello per l'uso FTP

In questo modello, un interprete di protocollo utente (User-PI) avvia la connessione di controllo. La connessione di controllo segue il protocollo Telnet e, su iniziativa dell'utente, viene inviato un set standard di comandi e risposte tra l'user-PI e il server-PI. Questa connessione viene utilizzata per la trasmissione di comandi che descrivono le funzioni da eseguire e le risposte a tali comandi. Questi comandi possono indicare che deve essere stabilita una seconda connessione, una connessione dati, per eseguire la funzione di trasferimento dati. Il processo di trasferimento dati utente (User-DTP) deve "ascoltare" (listen) sulla porta dati specificata, e questo deve essere fatto PRIMA di inviare il comando di richiesta di trasferimento. Il server avvia la connessione dati dal suo processo di trasferimento dati (Server-DTP) e si connette alla porta dati in ascolto. La direzione dello stabilimento della connessione è importante. In una situazione alternativa, l'utente potrebbe avviare la connessione dati al server-DTP. Questa classe di connessione è definita come passiva (Passive).

La connessione dati viene aperta per il trasferimento e chiusa quando il trasferimento è completato. I dati trasferiti tramite la connessione dati includono i dati da memorizzare sull'host server, o i dati recuperati dall'host server, o i dati da utilizzare nell'esecuzione di una funzione lato server. Nel terzo caso, le informazioni trasmesse sulla connessione dati possono essere destinate all'uso da parte di un programma applicativo sul sito del server, piuttosto che essere effettivamente memorizzate come file. Questi usi generali per una connessione dati esistono per il recupero, l'archiviazione e l'esecuzione sul sito del server.

Comunicazione (COMMUNICATION)

L'user-PI e il server-PI eseguono il protocollo utente scambiando il set standard di comandi FTP. Il trasferimento dati viene effettuato trasferendo dati su una connessione dati separata. Questa procedura consente al controllo e al trasferimento dati di avvenire su percorsi indipendenti.

L'user-PI avvia tutti i comandi e il server-PI risponde con risposte FTP. L'user-PI può inviare più di un comando FTP senza attendere una risposta. Il server-PI risponderà a ogni comando FTP inviato nell'ordine in cui i comandi sono stati ricevuti. Le risposte possono essere ritardate se il server-PI sta eseguendo un'operazione lunga a seguito di un comando precedente. Se ciò accade, il server-PI può inviare una risposta preliminare (Preliminary Reply) che indica che il comando è stato ricevuto ma che l'elaborazione non è ancora completata. Quando l'operazione è completata, il server-PI invierà la risposta di completamento (Completion Reply).

Le risposte FTP sono progettate per garantire la sincronizzazione delle richieste e delle azioni nel processo di trasferimento file e per garantire che il processo utente conosca sempre lo stato del server. Ogni comando deve generare almeno una risposta, sebbene possano essercene più di una. In quest'ultimo caso, le risposte multiple devono essere facilmente distinguibili. Inoltre, alcuni comandi si verificano in gruppi sequenziali, come USER, PASS e ACCT, o RNFR e RNTO. Le risposte mostrano l'esistenza di uno stato intermedio se tutti i comandi precedenti hanno avuto successo. Un fallimento in qualsiasi punto della sequenza richiede la ripetizione dell'intera sequenza dall'inizio.

Connessioni dati (DATA CONNECTIONS)

La meccanica del trasferimento dati consiste nello stabilire la connessione dati alle porte appropriate e nella scelta dei parametri di trasferimento. Entrambe le parti devono essere d'accordo sui parametri per la connessione dati prima che il trasferimento possa avvenire. Questi parametri consistono in: la porta dati, il tipo di rappresentazione, la struttura e la modalità di trasmissione.

Il tipo di rappresentazione definisce il modo in cui i dati del file sono rappresentati. Ciò include il tipo di dati (ASCII, EBCDIC o Image) e il controllo del formato. La struttura definisce il modo in cui il file è strutturato. Sono supportate tre strutture: struttura file, struttura record e struttura pagina. La modalità di trasmissione definisce come verranno trasmessi i dati. Sono definite tre modalità di trasmissione: modalità stream, modalità block e modalità compressed.

La selezione di questi parametri viene negoziata mediante lo scambio di comandi FTP e risposte tra l'user-PI e il server-PI. I valori predefiniti per questi parametri sono definiti nel protocollo. Se l'utente non specifica parametri, vengono assunti i valori predefiniti.