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.