FTP,
a differenza di altri protocolli
come ad esempio
HTTP,
utilizza due connessioni separate
per gestire comandi e dati.
Un server FTP rimane tipicamente in ascolto
sulla porta 21 TCP
a cui si connette il client.
La connessione da parte del client
determinerà l'inizializzazione del canale comandi
attraverso il quale
client e server
si scambieranno
comandi e risposte.
Lo scambio effettivo di dati
(come ad esempio file)
richiederà l'apertura del canale dati
il quale può essere di due tipi.
In un canale dati
di tipo attivo
il client apre una porta
tipicamente random,
tramite il canale comandi
rende noto il numero di
tale porta al server
e attende che esso si connetta.
Una volta che il
server ha attivato la connessione dati
al client FTP,
quest'ultimo
effettua il
binding della porta sorgente
alla porta 20 del server FTP.
A
tale scopo
possono venire impiegati i comandi
PORT o
EPRT,
a seconda del protocollo di rete utilizzato
(tipicamente IPv4 o IPv6).
Sia il canale comandi
sia il canale dati
sono delle connessioni
TCP;
FTP crea un nuovo canale dati
per ogni file trasferito all'interno della
sessione utente,
mentre il canale comandi
rimane aperto per l'intera
durata della sessione utente,
in altre parole
il canale comandi
è
persistente
mentre il canale dati
è non persistente.
Un server FTP
offre svariate funzioni
che permettono al client
di interagire
con il suo filesystem
e i file
che lo popolano,
tra cui:
Download/upload di file.
Resume di trasferimenti interrotti.
Rimozione e rinomina di file.
Creazione di directory.
Navigazione tra directory.
FTP
fornisce inoltre
un sistema di autenticazione
(N.B. in chiaro)
degli accessi.
Il client
che si connette
potrebbe dover fornire delle credenziali
a seconda delle quali
gli saranno assegnati determinati privilegi
per poter operare sul filesystem.
L'autenticazione cosiddetta "anonima"
prevede che il client
non specifichi nessuna password di accesso
e che lo stesso
abbia privilegi
che sono tipicamente di "sola lettura".
Nessun commento:
Posta un commento