Categories: Internet

Il Protocollo FTP per il Trasferimento dei File

Questo protocollo è uno dei più antichi, avendo fatto la sua comparsa negli anni settanta, in quella rete che oggi è Internet. FTP è l’acronimo di File Transfer Protocol che come è intuibile, serve per il trasferimento di file da un server ad un client. Quando si stabilisce una connessione tra server e client per il trasferimento dei file in realtà, vengono stabilite due connessioni: la prima di controllo, che serve al client per dare dei comandi al server e per questi messaggi di solito viene utilizzata la porta 21, la seconda per i dati ed avviene appena è possibile avviare il trasferimento del file. Una connessione FTP può avvenire in due modi: con il client che si mette in ascolto su di una porta e la comunica al server, quindi è quest’ultimo che effettua la connessione, oppure con il server che si mette in ascolto su di una porta ed il client riceve la notifica sulla porta da utilizzare. Quest’ultima modalità è detta passiva ed è particolarmente utile nel caso in cui il client sia dietro un firewall. In questo caso il client non può accettare connessioni in ingresso e per questo sarà il server a mettersi in ascolto ed il client vi si connetterà.
Il protocollo FTP è stato pensato per trasferire file anche di grandi dimensioni tra un sistema e l’altro e si è cercato di fare questo nel modo più indolore possibile. Ci sono due modalità di trasferimento dei dati: ASCII e binario, il primo per i file di testo ed il secondo per i dati generici, che oggi è quello che si utilizza nella maggioranza dei casi, perché con i byte è possibile trasferire anche testi.
Una sessione FTP è possibile suddividerla in tre fasi: autenticazione del client, trasferimento del file e chiusura della connessione. Analizzeremo ognuna di queste fasi tramite telnet puntato sulla porta 21 di un server FTP, i comandi si riferiscono al protocollo standard. Per connettersi con telnet basta dare questo comando: telnet ftp.server.it 21, quindi possiamo continuare nelle seguenti fasi:

  • Autenticazione – Molti server permettono l’accesso anonimo, mentre altri vogliono nome utente e password, il primo comando è USER <nome>, il secondo PASS <password>.
  • Navigazione – Per spostarsi tra le directory si utilizza il comando CWD ( Change Working Directory ), CDUP per spostarsi nella directory superiore, mentre per sapere dove si è PWD ( Print Working Directory ).
  • Cambiare Modalità – Per passare in modalità passiva occorre utilizzare il comando PASV.
  • Ottenere Lista File – Per ottenere la lista dei file si usa il comando LIST o NLST per una lista più compatta.
  • Trasferimento – Occorre dare il comando RETR, impostando il tipo di trasferimento con TYPE I per quello binario e TYPE A per quello ASCII.
  • Chiusura – Per chiudere la connessione basta dare il comando QUIT.

Due sessioni telnet su Linux Ubuntu 10.04

Vediamo allora i comandi per fare la lista dei file su un server e quindi trasferire un file dal server al client utilizzando telnet:

telnet mioserver 21
user test@mioserver
pass miapassword

Una volta connessi vediamo la lista dei file nella root del server, per fare questo entriamo in modalità passiva:

pasv

il server risponderà con un messaggio tipo: entering passive mode (192,168,1,100,24,130), le prime quattro cifre sono il numero IP del server a cui connettersi con l’altra sessione telnet per il trasferimento dei dati ed i rimanenti due rappresentano la scomposizione della porta per ricevere i dati, in particolare basta moltiplicare il primo numero per 256 e sommare l’ultimo, quindi nel nostro esempio la porta a cui dobbiamo connetterci è la 24 * 256 + 130 = 6274. Quindi occorre aprire un’altra connessione dati con questo comando:

telnet 192.168.1.100 6274

il server a questo punto è pronto per fornire i dati sulla seconda sessione telnet. Se inseriamo il comando

list

nella prima sessione, nell’altra apparirà la lista dei file e directory. Ritornando in modalità passiva

pasv

avremo un’altra porta offertaci dal server per la sessione dati, quindi se impostiamo il tipo di trasferimento al valore binario

type i
retr miofile.dat

potremmo trasferire il file. Questo esercizio è molto utile per capire i fondamenti del protocollo, da questo punto in poi, una volta capiti i concetti basilari, è possibile fare quello che vogliamo, cercando e studiando gli altri comandi del protocollo FTP.

Share
Giampaolo Rossi

Sviluppatore di software gestionale da oltre 28 anni.

Published by
Giampaolo Rossi

Recent Posts

Introduzione alla Standard Template Library (STL)

La Standard Template Library (STL) è una delle componenti più potenti del C++. Fornisce una…

3 settimane ago

Un Abbonamento per Tutti i Software

Sono arrivato alla convinzione che un abbonamento per tutti i miei software gestionali sia il…

2 anni ago

Software di Magazzino Gratuito

MerciGest è un software per la gestione del magazzino completamente gratuito. Continua a leggere→

2 anni ago

Mettere il PC in Lock Screen

In ufficio può capitare di doversi allontanare dal proprio posto di lavoro, ecco che allora…

3 anni ago

Fare il reset togliendo la corrente

In questo articolo vedremo quando è più o meno utile togliere la corrente ad un…

3 anni ago

Prossimi Aggiornamenti Software

Dopo la pausa invernale dovuta al lavoro che devo fare per sostentarmi, eccomi di nuovo…

4 anni ago