FTP
protocollo o programma di trasferimento file (File Transfer Protocol o File Transfer Program)

Un insieme di regole per abilitare il colloquio bidirezionale tra due computer durante il trasferimento di un file. Il nome si riferisce sia al protocollo di trasmissione sia al programma che ne fa uso. Il protocollo viene usato quando si scarica un file sul proprio computer prelevandolo da un sito Internet e racchiude in sè i comandi TCP/IP (Transmission Control Protocol/Internet Protocol) per eseguire il login sulla rete, visualizzare l'elenco dei file esistenti e copiarli sulla stazione locale. In molti casi il computer da cui si vogliono prelevare dati accetta login anonimi, questo significa che alla richiesta di qualificarsi l'utente risponde "anonymous" e alla richiesta della password fornisce il proprio indirizzo di posta elettronica su Internet. In questo caso si parla di FTP anonimo. L'area di Internet composta da siti di questo tipo prende il nome di "spazio FTP" e costituisce una componente esterna e periferica rispetto allo spazio World Wide Web che invece usa il protocollo HTTP (HyperText Transfer Protocol). È possibile accedere a un server FTP dall'interno di un browser Web, ma le informazioni visualizzate saranno quelle tipiche di un server FTP (si vedrà solo il nome dei file e delle directory disponibili più un eventuale file README che ne spiega i contenuti). L'indirizzo da digitare in questo caso avrà un formato di questo tipo: ftp://ftp.earn.net. A differenza di quanto avviene nello spazio Web, non è possibile memorizzare le pagine sulla cache locale (una porzione di disco riservata allo scopo) e quindi vanno ricaricate dalla rete ogni volta che ci si torna sopra. Il protocollo è lo stesso anche quando si vuole spedire un proprio file a un altro computer collegato a Internet.Molti dei siti contenenti file audio, video e grafici sono accessibili solo attraverso FTP e l'impiego di questo protocollo è un modo semplice per rendere disponibili documenti su Internet senza creare un vero e proprio server Web. Per questo motivo capita di usare spesso l'FTP durante le attività di navigazione, specie quando da una pagina HTML si chiede lo scaricamento di un file sulla macchina locale. Il protocollo esegue anche una traduzione da ASCII (American Standard Code for Information Interchange) ed EBCDIC (Extended Binary Coded Decimal Interchange Code). FTP, a differenza di altre applicazioni per Internet, usa due connessioni TCP per unire client e server. La prima rimane attiva per tutta la durata della sessione al fine di trasferire informazioni di controllo, la seconda viene creata e interrotta ogni volta che bisogna trasmettere qualcosa. Le specifiche più recenti del protocollo sono contenute nell'RFC 959 dell'ottobre 1985 che rimpiazza la precedente RFC 765. Le medesime specifiche sono riportate nella STD 9.La storia dell'FTP comincia il 16 aprile del 1971 quando Abhay Bhushan del
MIT (Massachussets Institute of Technology) propone la RFC 114 in cui si
descrive un protocollo da utilizzare con gli host disponibili nell'MIT. Il
29 aprile di quello stesso anno Eric Harslem e John Heafner commentano e
descrivono questo nuovo protocollo nella RFC 141. Immediatamente dopo, il
23 giungo del 1971 Abhay propone una versione del protocollo adatta per
funzionare a livello di utente finale e consentire lo scambio di file tra
due computer. Seguono altre RFC di affinamento e con la RFC 354 sempre di
Bushan, l'FTP diventa il protocollo ufficiale per scambiare file su ARPAnet
. Il suo scopo è quello di trasferire file in modo efficace e affidabile,
così da condividere lo spazio disponibile sul disco di una macchina
remota. Il 27 novembre 1972 da Greg Hicks dell'Università dello Utah
(l'RFC 412) per fornire agli utenti le istruzioni su come funzionava il
nuovo protocollo. Infine la RFC 454 scritta il 16 febbraio 1973 da Alex
McKenzie della BBN (Bolt, Beranek and Newmann) sancisce l'ufficialità del
protocollo. Il 12 luglio del 1973 il protocollo viene modificato
profondamente con la pubblicazione di un nuovo standard nell'RFC 542
scritta da Nancy Neigus della BBN. Parecchie macchine contineuranno
tuttavia a usare ancora la vecchia versione fino al 10 maggio 1975 quando
Brian Harvey della SU-AI scrive la RFC 686 per illustrare le differenze
tra le precedenti versioni di FTP e quella più recente, così da
incoraggiare le persone al cambiamento. Fin qui FTP funzionava su NCP
(Network Control Protocol) il primo dei protocolli impiegati su ARPAnet.
Bisognerà attendere fino al giugno 1980 quando la RFC 765 ne fornirà le
specifiche di funzionamento sui nuovi protocolli TCP/IP. La RFC 959
contiene alcuni aggiornamenti minori e costituisce l'ultima versione di
tali specifiche.

File Transfer Protocol in dettaglio
Come definito dalla Request For Comments 959, scritta nell'ottobre 1985
da Jon Postel e Joyce Reynolds dell'ISI (Information Sciences Institute),
che standardizza l'uso di questo protocollo, l'FTP assolve al
quadruplice scopo di favorire la condivisione di file (contenenti
programmi oppure dati) tra due computer, incoraggiare l'uso esplicito
oppure implicito (mediato dal programma applicativo) di computer remoti,
trasferire i dati in modo affidabile ed efficiente, schermare l'utente da
qualsiasi variazione di sistema di memorizzazione su disco (storage) da un
host all'altro. Questo significa che non solo il file system può essere
diverso da una macchina all'altra, ma che può cambiare anche sistema
operativo (DOS, Unix, Windows, OS/2, Mac OS, eccetera) e insieme di
caratteri (ASCII a 7 bit, binario, EBCDIC quando entrambi i sistemi lo
supportano). Si tratta di un protocollo che, benchè utilizzabile
direttamente attraverso l'omonima utility, serve principalmente come
appendice di programmi che lavorano su dati distribuiti sulla rete.
FTP si basa su due protocolli che sono stati sviluppati prima di esso in
ambiente ARPAnet: il TCP/IP (Transmission Control Protocol/Internet
Protocol) e il Telnet protocol, rispettivamente codificati nella RFC 793
pubblicata dalla DARPA (Defense Advanced Research Projects Agency) nel
settembre del 1981 e nella RFC 854 pubblicata sempre da Jon Postel e Joyce
Reynolds dell'ISI nel maggio del 1983.
Per anni ha rappresentato l'unico sistema per scaricare software e
documenti da Internet e ancora oggi, benchè tenda a essere rimpiazzato o
schermato da strumenti più moderni, rimane ancora lo strumento primario
usato nella maggior parte dei siti di archiviazione. È importante comunque
ricordare che questo protocollo serve unicamente al trasferimento di file
e non per accedere a distanza su file depositati su un sistema remoto, la
qual cosa è resa possibile da altre applicazioni specifiche come l'NSF
(Network File System) sviluppato da Sun.

Le definizioni peculiari di questo ambiente
Prima di vedere il semplice meccanismo che regola in funzionamento
dell'FTP come protocollo è necessario definire i termini usati in questo
particolare ambito. Si tratta, in alcuni casi, di parole comuni nel mondo
dell'informatica, che però qui assumono un significato più circoscritto
che perciò va comunque chiarito. Li riportiamo esattamente come compaiono
nella RFC 959 e nei testi disponibili in commercio.

ASCII: un insieme di caratteri standard che comprende tutte le lettere
dell'alfabeto, i numeri e vari caratteri di controllo. In FTP, si usa
solo la metà inferiore dei caratteri che compongono il codice ASCII perciò
invece di usare 8 bit a cui corrispondono 256 combinazioni e altrettanti
caratteri, si usano 7 bit equivalenti a 128 caratteri, il che comprende
tutti i segni, i caratteri speciali di controllo e le lettere
dell'alfabeto, con eccezione delle vocali accentate tipiche
dell'italiano e di altre lingue diverse dall'inglese.

ASCII type: uno dei quattro tipi di rappresentazione (type) usato per
difetto dal protocollo FTP quando trasferisce un file o una porzione di
questo. Si usa per il trasferimento di documenti di testo. I caratteri
vengono presi dalla macchina server, trasformati nel formato ASCII
previsto dall'NVT di Telnet, trasferiti all'altra macchina che li
riconverte nel proprio formato ASCII prima di memorizzarli su disco.
L'uso dell'ASCII secondo le specifiche definite per il protocollo Telnet
significa inviare caratteri da 7 bit in un campo da 8 bit. La fine di
ciascuna riga di testo viene segnalata dalla successione di due caratteri
di controllo: Carriage Return e Line Feed. Questo implica che il ricevente
deve esaminare ogni singolo byte in arrivo per identificare la presenza di
uno di questi due caratteri di controllo. In fase di trasferimento è anche
possibile specificare il tipo di trattamento che il file di testo dovrà
ricevere all'estremo ricevente, vale a dire specificare se dovrà essere
stampato, se dovrà essere memorizzato su disco oppure se dovrà essere
elaborato in locale. Per ciascuna di queste tre modalità può essere perciò
indicato un parametro di controllo del formato, il cui default si chiama
NON PRINT e si riferisce alla versione di file che va memorizzata su disco
esattamente come viene ricevuta oppure elaborata nella sua forma
originale. Nel caso lo si debba stampare bisognerà aggiungere il
riconoscimento di speciali caratteri che comandano il movimento della
testina e che sono sempre codificati dal protocollo Telnet.

access controls (controlli di accesso): definiscono i privilegi di accesso
di cui l'utente gode nell'uso di un particolare computer e dei file che
vi sono memorizzati. È necessario impostarli al fine di prevenire l'uso
non autorizzato o accidentale dei file. È prerogativa del processo server
del protocollo FTP invocarli.

block mode (modalità a blocchi): il file viene trasferito in una serie di
blocchi, ciascuno preceduto da uno o più byte d'intestazione. Questa
intestazione contiene la lunghezza complessiva del blocco espressa in
byte, così da permetterci d'identificare dove inizierà il prossimo
blocco, e un codice di descrizione che ci dice se questo è l'ultimo
blocco del file, l'ultimo blocco del record, oppure se il blocco
contiene dati che potrebbero essere stati alterati e che quindi non vanno
considerati attendibili. Quest'ultima indicazione non serve tanto da
meccanismo di correzione dell'errore all'interno del protocollo quanto
come indicazione alla fonte nel caso in cui le informazioni vengano lette
da supporti magnetici soggetti a usura (come i nastri) e si voglia co
munque trasferirle a qualsiasi richiedente anche nel caso in cui non fosse
possibile leggerne una parte.

byte size (dimensione del byte): esistono due possibili dimensioni del
byte in ambito FTP: quella usata per determinare la dimensione logica del
file e quella impiegata per il trasferimento. La seconda viene sempre
espressa in byte da 8 bit, ma non necessariamente coincide con la
dimensione di byte che verrà usata nel memorizzare il file sul disco
rigido del sistema oppure con la dimensione di byte che servirà da metro
di riferimento per interpretare la struttura dei dati contenuti
all'interno del file medesimo (fine del file, suddivisione di questo in
record e via dicendo).

comandi FTP: un insieme di comandi che comprendono anche l'informazione
di controllo che fluisce dal processo FTP dell'utente al processo FTP del
server.

compressed mode (modalità compressa): i dati vengono spediti in modalità
compressa, separando i dati di tipo generico, inviati nella forma usuale
di una stringa di testo, i dati compressi, dove tutte le ripetizioni
vengono rappresentate con una coppia di byte (in cui è contenuto il
singolo byte che si ripete più il numero delle ripetizioni), e le
informazioni di controllo.

control connection (connessione di controllo): il percorso di
comunicazione tra la USER-PI e la SERVER-PI che viene usato per scambiare
comandi e risposte a tali comandi. Questa connessione segue le regole
definite dal protocollo Telnet.

data connection (connessione di trasferimento dati): una connessione full
duplex (ricezione e trasmissione contemporanee) sulla quale vengono
trasferiti dati di un tipo specificato e secondo una modalità specifica. I
dati trasferiti possono costituire la porzione di un file, un file intero
oppure diversi file. Il percorso può unire un server-DTP e un user-DTP
oppure due server-DTP.

data port (porta di trasferimento dati): il processo (modulo di programma)
passivo ¤ascolta" quel che avviene sulla porta di trasferimento dati
nell'attesa che il processo di trasferimento attivo gli comunichi di
aprire una connessione di trasferimento dati.

data structure (struttura dei dati): in aggiunta a definire il tipo di
rappresentazione da usare per i dati (type) il protocollo FTP consente
anche d'impostarne la struttura scegliendo da tre possibili alternative:
file structure, record structure e page-structure.

DTP (Data Transfer Process - processo di trasferimento dati): un processo
(modulo di programma) che attiva e gestisce la connessione di
trasferimento dati. Il DTP può essere passivo oppure attivo.

EBCDIC type: uno dei quattro tipi di rappresentazione (type) usato per
difetto dal protocollo FTP quando trasferisce un file o una porzione di
questo. Si usa in tutti quegli ambienti dove entrambe le macchine (host)
usano il codice Extended Binary Coded Decimal Interchange Code. Il suo
impiego è limitato soprattutto al mondo dei mainframe IBM. È
sostanzialmente identico al tipo ASCII, dal quale si differenzia solo per
la codifica dei caratteri.

End-of-Line (fine della riga): una sequenza di caratteri che segna la
separazione tra una riga e l'altra nell'invio di un documento alla
stampante. La sequenza è un Carriage Return (codice ASCII 13 - ritorno a
capo) seguito da un Line Feed (codice ASCII 10 - avanzamento riga) il che
corrisponde alle due azioni che si compiono manualmente quando si ritorna
a capo con una macchina per scrivere: si riporta il carrello all'inizio
della corsa e si fa avanzare il foglio alla riga successiva.

EOF (End Of File - fine del file): una particolare condizione che
definisce il termine del file che si sta trasferendo.

EOR (End Of Record - fine del record): una particolare condizione che
definisce il termine del record che si sta trasferendo.

error recovery (correzione o recupero dell'errore) una procedura che
consente di rimediare al verificarsi di una certa condizione di errore,
come il blocco di uno dei due sistemi coinvolti nel trasferimento oppure
l'interruzione prematura del trasferimento medesimo. In ambito FTP il
recupero dell'errore può voler dire riprendere il trasferimento a partire
da un check point (punto di verifica intermedio) precedentemente definito
dai due sistemi.

file: un insieme ordinato di dati in formato riconoscibile da un computer
(il che include anche file di programma), di lunghezza arbitraria,
identificato in modo univoco da un percorso di memorizzazione su disco
(pathname).

file-structure (struttura in formato file): il file viene visto come
un'entità singola senza divisioni interne, vale a dire una sequenza
continua e ininterrotta di byte. Si tratta della struttura assunta per
difetto dal protocollo FTP.

image type (tipo immagine): uno dei quattro tipi di rappresentazione
(type) usato per difetto dal protocollo FTP quando trasferisce un file o
una porzione di questo. I dati vengono trasferiti come sequenza di bit
contigui, suddivisi in byte da 8 bit. La macchina ricevente deve
memorizzare i bit contigui nell'esatta sequenza con cui gli arrivano,
aggiungendo eventuali bit di riempimento (tutti 0) se richiesto dal
particolare file system in uso (dove la dimensione dei file di solito è il
multiplo di qualche valore costante e non può essere determinata con la
precisione del singolo bit). Tale riempimento deve, poi, essere eliminato
in fase di recupero del file dal disco. Questo tipo viene usato per
trasferire programmi e file binari in generale, tra cui anche le immagini
(da cui il nome).

local type (tipo locale): uno dei quattro tipi di rappresentazione (type)
usato per difetto dal protocollo FTP quando trasferisce un file o una
porzione di questo. I dati vengono trasferiti in byte logici che hanno la
dimensione uguale a quella specificata da un secondo parametro
obbligatorio, chiamato byte size. Tale valore deve essere un numero intero
decimale e non esiste nessun valore assunto per difetto. La dimensione
logica del byte non coincide necessariamente con la dimensione di byte
usata nel trasferimento. Se esistessero differenze tra i due valori, la
macchina ricevente dovrebbe memorizzare tutti i byte ricevuti uno contiguo
all'altro, senza tener conto della separazione arbitraria introdotta in
fase di trasferimento, e dovrebbe anche aggiungere eventuali bit di
riempimento alla fine del file (vedi image type).
Il formato di memorizzazione finale dipenderà dalle caratteristiche del
file system usato sulla macchina locale, anche se dovrà sempre essere
possibile eseguire l'operazione inversa e recuperare il dato nel formato
originario. Ad esempio se un numero a 36 bit viene trasferito a una
macchina che memorizza le informazioni in word da 32 bit (la word è
l'unità di memorizzazione interna usata da un particolare computer)
bisognerebbe trasferire i dati come local type attribuendo una dimensione
di byte logico di 36 bit. Sulla macchina ricevente questo dato verrebbe
registrato su due word da 32 bit occupando 64 bit.

mode (modo): la modalità in cui i dati vengono trasferiti attraverso la
connessione di trasferimento dati. Il modo specifica anche il formato di
trasferimento il che comprende anche come indicare le condizioni di EOR e
di EOF. I modi di trasmissione previsti da FTP sono: stream mode, block
mode, compressed mode.

NVT (Network Virtual Terminal -- terminale virtuale di rete): un tipo
particolare di terminale definito dal protocollo Telnet. Si tratta di un
dispositivo immaginario (emulato via software) che fornisce la
rappresentazione standard di un terminale canonico collegato in rete. In
questo modo si evita di dover registrare sul server e sulla macchina
dell'utente le caratteristiche fisiche di ogni singolo terminale
impiegato. Tutti i server e tutte le macchine utenti (host in entrambi i
casi) mappano le proprie caratteristiche fisiche su quelle standard
dell'NTV e assumono che anche la macchina all'altro estremo stia facendo
altrettanto. Tra i vincoli imposti dall'NTV abbiamo l'impiego di una
codifica ASCII a 7 bit (senza lettere accentate).

NVFS (Network Virtual File System - file system virtuale di rete): un
concetto che definisce un file system standard per l'intera rete, il che
si estende alla standardizzazione dei comandi e della convenzione per i
percorsi di registrazione (pathname).

page (pagina): un file può essere strutturato in un insieme di parti
indipendenti, chiamate pagine. FTP consente la trasmissione di un file
nella forma discontinua e frammentata di pagine indicizzate indipendenti.

page-structure (struttura a pagine): il file è suddiviso in pagine
indicizzate singolarmente. Viene usato per accedere a file cosiddetti
discontinui ai quali si vuole accedere in modo casuale (cioè non
cominciando necessariamente dall'inizio). È utile quando si vuole andare
a leggere solo una sezione del file oppure quando si vuole prelevare una
descrizione o qualche altra informazione che è collegata al file. Ogni
pagina contiene una propria intestazione che la identifica in sequenza e
che indica anche la quantità di byte contenuti in quella particolare
pagina, dichiarando tra l'altro se si tratta di una pagina singola,
dell'ultima pagina, di una descrizione oppure di una pagina il cui
accesso è regolato da privilegi.

pathname (percorso di memorizzazione): il pathname è quella sequenza di
caratteri che deve essere fornita dall'utente al file system per poter
identificare un particolare file. Il pathname contiene di solito nomi di
dispositivi (il disco oppure la macchina nel caso in cui la ricerca si
estenda alla rete) oppure di directory, oltre che l'indicazione del nome
specifico di un particolare file. FTP non specifica alcuno standard per la
convenzione da adottare nello specificare un pathname, l'utente deve
perciò seguire le convenzioni definite dal particolare sistema operativo
coinvolto nel trasferimento file. Un esempio di pathname è C:\DOS\FILE.DOC
un altro esempio è /bin/ftp-list.

PI (Protocol Interpreter - interprete di protocollo): il lato client e il
lato server del protocollo svolgono ruoli differenti attraverso l'impiego
rispettivamente di uno user-PI e un server-PI.

record: un file sequenziale può essere strutturato nella forma di diverse
parti contigue chiamate record. FTP può gestire file strutturati in
record, ma non richiede che lo siano obbligatoriamente.

record-structure (struttura a record): il file di testo è suddiviso in una
sequenza di record.

reply (risposta): la reply è una conferma di ricezione (acknowledgement)
positiva oppure negativa inviata dal server all'utente per mezzo della
control connection in risposta a un comando FTP. La forma generica di
questa risposta è un codice di completamento (che include anche la
segnalazione di eventuali errori) seguito da una stringa di testo (un
insieme sequenziale di caratteri). I codici servono da indicazione ai
programmi che usano l'FTP in modo automatico mentre il testo serve da
spiegazione per gli utenti che trasferiscono file con procedura manuale.

server-DTP (server-Data Transfer Process - processo di trasferimento dati
del server): questo processo, se posto nella condizione di ¤attivo",
crea la connessione con la porta di trasferimento dati che si trova in
¤ascolto" (L Port) e predispone i parametri per avviare il trasferimento
e per la registrazione del file, dopodichè attiva il trasferimento vero e
proprio su comando del proprio PI. Se posto nella condizione di
¤passivo", questo processo attende e ¤ascolta" in attesa che qualcuno
dall'esterno chieda una connessione sulla porta di trasferimento dati.

server-FTP process (processo FTP del server): un processo oppure un
insieme di processi che eseguono il trasferimento di dati in cooperazione
con uno user-FTP process oppure in abbinamento a un altro server. La
funzione comprende un PI (interprete di protocollo) e un processo per il
trasferimento dati vero e proprio (DTP).

server-PI (server-Protocol Interpreter - interprete di protocollo del
server): l'interprete di protocollo del server ¤ascolta" quel che
succede sulla porta L (L Port, alias listening port o porta di ascolto)
per determinare se è stata attivata una connessione da qualche user-PI,
dopo di che attiva una control communication connection. Riceve comandi
FTP standard dalla user-PI, invia le risposte e governa il funzionamento
del server-DTP.

stream mode (modalità a flusso continuo): si tratta della modalità assunta
per difetto dal protocollo FTP. Il file viene trasferito nella forma di un
flusso continuo di byte e la fine del file viene segnalata semplicemente
dal server che chiude la connessione di trasferimento dati (data
connection). Può capitare che la connessione venga chiusa prematuramente e
che il vostro browser segnali come completa la ricezione di un documento
che è stato scaricato solo parzialmente.

type (tipo): il tipo di rappresentazione usato per il trasferimento dei
dati e per la loro registrazione su disco. La definizione di tipo implica
alcune trasformazioni tra il formato ricevuto durante la trasmissione e il
formato che verrà effettivamente trasferito su disco. I tipi previsti da
FTP sono: ASCII, EBCDIC, image (binario), local (dipendente dal tipo di
macchina - host - che riceve).

user (utente): una persona o un processo che funziona per conto di una
persona che desideri attivare un trasferimento di file. L'utente umano
può interagire direttamente con un processo server-FTP, tuttavia è
preferibile ricorrere a un processo user-FTP poichè questo filtra le
complessità d'interazione e perchè l'FTP è stato concepito in favore
dell'automazione.

user-DTP (user-Data Transfer Process - processo di trasferimento dati
dell'utente): questo processo ¤ascolta" la porta di trasferimento dati
per sentire se è in arrivo una connessione dal processo server. Se il
trasferimento interessa due server, allora lo user-DTP rimane inattivo.

user-FTP process (processo FTP dell'utente): un insieme di funzioni, tra
cui anche un interprete di protocollo, un processo di trasferimento dati e
un'interfaccia utente, che insieme svolgono l'operazione di trasferire
un file in collaborazione con uno o più processi FTP sul server.
L'interfaccia utente consente di usare il linguaggio locale nel dialogo
con l'utente e nella visualizzazione delle risposte provenienti dal
server.

user-PI (user-Protocol Interpreter - interprete di protocollo
dell'utente): l'interprete di protocollo dell'utente inizia la control
connection dalla porta U (U Port, alias user port, porta dell'utente)
verso il processo FTP sul server, dà avvio ai FTP e governa lo user-DTP
nel caso in cui quest'ultimo processo partecipi al trasferimento del file.

Come funziona
Tra i vari protocolli usati su Internet, FTP ha la peculiarità di
mantenere attive nello stesso tempo due connessioni logiche tra le due
macchine interessate al trasferimento. La prima di queste connessioni
serve a instaurare una connessione di controllo (quella che regola
l'andamento delle operazioni) mediante il protocollo Telnet. E' in questa
fase che avviene il logon iniziale (in cui il server chiede il nome e la
password dell'utente entrante, oppure attende l'arrivo della parola
anonymous seguita dall'indirizzo di posta elettronica dell'utente al
posto della password nel caso in cui si stia usando FTP in modo anonimo).
Sulla control connection viaggiano tutti i comandi FTP e perciò la
connessione va mantenuta attiva per tutta la durata della trasmissione e
va chiusa su istruzione dell'utente solo quando la sessione di
collegamento giunge al termine. Spetta all'utente avviare la connessione
di controllo rivolgendosi al proprio interprete di protocollo (user-PI);
questo resterà attivo per tutta la durata della sessione e fungerà da
intermediario tra la rete e il disco della macchina locale, pilotato
direttamente dallo user-DTP, oltre che da referente per il server-PI
all'altro estremo con il quale scambierà i comandi impostati dall'utente
(oppure dal programma che questi sta utilizzando) e le risposte del
server. Dopo aver creato la connessione, bisogna selezionare la directory
remota in cui si trova il file che si vuole prelevare e la directory
locale in cui questo dovrà essere registrato (usando il comando cd [nome]
e altri se necessario). Fatto questo, s'impostano gli eventuali parametri
della trasmissione (tipo e struttura del file e modalità di trasferimento
che nelle varie combinazioni ci danno 72 modi possibili) e infine si
attiva il trasferimento vero e proprio con i comandi get o retr [nomefile]
per prelevare e put o stor [nomefile] per inviare (i comandi viaggiano
sulla connessione di controllo secondo il formato NVT di Telnet). Se
l'operazione viene eseguita dall'interno di un browser Web, tutte queste
operazioni saranno schermate e il prelievo verrà attivato attraverso un
collegamento ipertestuale che segnala il nome del file all'interno di una
pagina HTLM oppure mediante una finestra che mostra il contenuto della
directory del server. Usando un'utility o un programma specifici per FTP
oppure i comandi diretti, si ha il vantaggio di usare i caratteri jolly
(*) e di attivare in questo modo il prelievo contemporaneo di diversi
file, anzichè doverli prendere uno alla volta. È possibile interrompere il
trasferimento in qualsiasi momento mediante il comando quit che chiude
definitivamente la connessione oppure close che interrompe l'invio
mantenendo la connessione attiva (oppure attraverso la funzione di
sospensione prevista dal programma in uso). Nel rapporto tra utente e
server, una volta inviati i comandi che specificano la modalità di
trasferimento e che chiedono l'attivazione di quest'ultimo, la user-DTP
rimane in ascolto sulla propria porta (U Port) in attesa che il server
inizi la data connection e il trasferimento dati vero e proprio. La porta
utente potrebbe anche trovarsi su una macchina diversa da quella che ha
attivato la control connection, in tal caso, però, bisogna assicurarsi che
la macchina di destinazione sia pronta a ricevere. Trattandosi di una
connessione full duplex, la data connection può essere usata per ricevere
e trasmettere contemporaneamente. Nel caso in cui si volesse attivare
dalla propria stazione utente il trasferimento a distanza tra due server,
basta creare la data connection tra le due macchine interessate,
mantenendo attiva sulla propria macchina la connessione di controllo.
Durante la connessione il programma FTP utilizza una well known port che
corrisponde ai numeri 20 e 21.






Glossario dei termini dell'informatica a cura di Roberto Mazzoni
Tutti i diritti riservati