Università della Tuscia

FTP
File Transfer Protocol
   
Introduzione

Si stima che attualmente, sparpagliati nelle memorie degli host computer connessi a Internet, ci siano diversi milioni di file di 'pubblico dominio'. Si tratta di un enorme serbatoio di programmi, immagini digitali, suoni, ecc. . Altri file, in quantità superiore, non sono disponibili a chiunque abbia la possibilità di usare un collegamento telematico adeguato, ma solamente a chi possa identificarsi quale utente riconosciuto dal sistema ospite e che abbia i diritti di accesso richiesti. Il sistema che ci consente di trasferire questi file sul nostro computer, si chiama File Transfer Protocol (FTP).
Il termine Protocol sta ad indicare che si tratta di un insieme di specifiche di comunicazioni tra elaboratori connessi da una rete che devono essere rispettate per realizzare il processo di 'trasferimento'.
Questo protocollo, a sua volta, si basa sulle specifiche del protocollo di rete TCP/IP cioè quello che comunemente viene identificato con 'Internet'.
Quando due elaboratori connessi a due reti distinte che usano protocolli diversi si connettono per una scambio di file usando l'FTP, ciascuno dei due processi si adegua al proprio protocollo di rete e comunicherà con l'altro sempre seguendo le specifiche stabilite; in pratica entrambi dovranno usare sempre lo stesso linguaggio comune, a prescindere dalle diverse implementazioni locali.
Come in molti altri casi di processi che devono offrire funzionalità di rete, anche per l'FTP si distinguono due ruoli in ogni sessione di collegamento che devono essere assunti dai due elaboratori: il Server e il Client. Distinguerli è facile perché, come si desume dai termini stessi, chi si connette per richiedere un accesso ad un'altro elaboratore ed essere quindi temporaneamente ospitato per operare degli scambi di file, questo sarà il Client, mentre chi offre l'accesso sull'elaboratore al quale appartiene sarà il Server. Ovviamente la differenza dei ruoli impone anche una serie di differenze sostanziali in termini di funzioni che ciascuno di questi deve offrire all'utente e di capacità di gestione delle risorse dell'elaboratore cui appartiene (accessi contemporanei, rispetto dei diritti di accesso, integrità del file system ecc.).
Chiunque voglia mettere a disposizione un file lasciando agli interessati di richiedere una sessione come Client, dovrà attivare un processo di FTP Server opportunamente predisposto; chiunque voglia connettersi con un altro elaboratore per prelevare o depositare un file deve attivare un processo di FTP Client (ed avere eventualmente le autorizzazioni richieste dal Server).
 


Concetti di base

Diamo ora un'occhiata a come funziona il protocollo che ci consentirà di trasferire un file sul nostro computer, dando per scontato che già ne conosciamo la localizzazione.

Indipendentemente dal tipo di applicazione utilizzata per attivare una sessione FTP, ci sono due modalità di collegamento ad una macchina remota: FTP anonimo, e FTP con account.

Il trasferimento di file tramite FTP anonimo è quello tradizionalmente utilizzato per il prelievo di file presso università, enti, società. Consiste in un login, ovvero nell'ingresso in un computer remoto, effettuato senza disporre presso di esso di un proprio identificativo di utente e di una propria password, quindi anonimamente. In questa modalità non avremo, per ovvi motivi di sicurezza, pieno accesso al computer remoto; potremo quindi entrare solo in determinate directory — tipicamente nella directory chiamata 'pub' (ovvero public) e nelle sue sottodirectory — e potremo solo leggere alcuni file, ma non cancellarli, spostarli o modificarli.

L'utilizzazione di FTP con account, invece, dà pieno accesso ad una determinata directory del sistema remoto, nella quale potremo inserire, modificare e cancellare file, proprio come se fosse una directory del vostro hard disk. Di norma è riservata ai dipendenti dell'università, dell'ente o della società che ospita il server FTP, oppure ai loro collaboratori, oppure ancora ai loro clienti. Se, ad esempio, decidete di pubblicare su Internet alcune pagine Web, acquistando lo spazio presso un 'Internet provider', quest'ultimo con ogni probabilità vi concederà un account FTP e una password personale, con l'ovvio scopo di permettervi di modificare quanto vorrete pubblicare, sollevando se stesso da questo onere ma garantendosi da eventuali disattenzioni dell'utente.

Una raccomandazione a tutti gli utenti dell'Ateneo: usate il protocollo FTP per la trasmissione o la ricezione di file di dimensione consistente (>500 Kbyte) in alternativa alla tecnica di 'attach' ai messaggi di e-mail, eviterete così possibili intasamenti dei mailer di transito su Internet, non incorrerete nella possibilità di violare limiti di spazio o di tempo imposti sui computer di transito, non occuperete risorse sul mail-server dell'Ateneo e eviterete possibili problemi di conversione di formato operati dai client di e-mail usati.
 

 
 
Esempi pratici dell'uso di FTP

Come di consueto, i programmi (client) per fare FTP si dividono in due categorie: quelli che dispongono di una interfaccia a caratteri, e quelli con una interfaccia grafica.
Negli esempi che vengono proposti ogni volta che si indica un indirizzo IP numerico, del tipo xxx.yyy.zzz.kkk, per identificare un elaboratore connesso alla rete internet, è possibile sostituirlo con l'identificativo della sua registrazione in un particolare dominio.
Senza entrare nei particolari delle funzioni di risoluzione degli indirizzi, consideriamo l'elaboratore che fa da server di posta elettronica del nostro Ateneo: il suo numero IP, unico in tutta la rete Internet, è 193.205.144.2; esso è anche stato registrato col nome di 'tus001' nel dominio 'unitus.it' in una base dati di indirizzi globale e per questo è anche universalmente specificato col nome di 'tus001.unitus.it'.
 

Programmi con interfaccia a caratteri

I client FTP con interfaccia a caratteri possono sembrare un po' ostici, ma sono molto efficienti e versatili. Nella figura che segue è visibile, a titolo di esempio, il client FTP fornito di serie con Windows 95.
 


Il client FTP a caratteri di Windows 95
 

Per vedere quali sono i comandi di cui si dispone in una sessione FTP, effettuiamo un collegamento di prova con un elaboratore del Centro di Calcolo, da tempo predisposto come deposito di software di utilità comune per tutti gli utenti della rete di Ateneo.

La prima cosa da fare, ovviamente, è attivare il client FTP. La procedura cambia secondo il programma utilizzato, del sistema operativo adottato, ecc., ma è quasi sempre una operazione molto semplice. Vediamo ad esempio come si procede con Windows 95: stabilito che l'host computer scelto ha per 'indirizzo' internet (IP address) numerico 193.205.144.7, è sufficiente scrivere dalla shell di comando (fare click su 'Avvio' e poi su 'Esegui...'):

  • ftp 193.205.144.7
  • A questo punto il computer contattato chiede il nominativo per l'accesso. Poiché non disponiamo di account specifico su di esso e desideriamo semplicemente avere accesso alla directory 'pubblica' (e alle sue sottodirectory), forniamo come risposta 'anonymous' (senza virgolette). A video compare quanto segue:

    Connesso a 193.205.144.7.
    220 tus001bdc Microsoft FTP Service (Version 4.0).
    Utente (193.205.144.7:(none)): anonymous
    331 Anonymous access allowed, send identity (e-mail name) as password.
    Password:
    mia_mail@mio.fornitore
    230-Benvenuti al sito FTP dell'Università della TUSCIA
    230 Anonymous user logged in.
    ftp>

    Siamo entrati. Da notare che, come ci ha suggerito lo stesso server, abbiamo fornito il nostro indirizzo di posta elettronica in luogo della password. Il server presume che un indirizzo di e-mail vi sia stato assegnato dal momento che state attivando una sessione FTP da un altro elaboratore sul quale siete accreditati con un account.
    Da questo momento in poi abbiamo a disposizione alcuni comandi, come 'dir' o 'cd', del tutto simili a quelli del nostro personal; la differenza è che in questo caso operano sui dischi fissi del computer remoto. Attenzione: non è il nostro personal computer a eseguirli, non variano perciò da sistema operativo a sistema operativo, ma vengono eseguiti dal computer al quale ci siamo collegati (nel nostro esempio, un server del Centro di Calcolo) e del quale ora il nostro PC è diventato a tutti gli effetti una sorta di terminale. Il Sistema che ci ospita in questo caso è un Windows NT, ma avrebbe potuto essere uno Unix o un Vms: la situazione offerta all'utente sarebbe comunque la medesima.
    Conosciamo già la struttura delle directory disponibili e perciò decidiamo subito di entrare nella directory chiamata 'antivirus', che si trova direttamente nella directory principale. Per farlo utilizziamo il comando 'cd':

    ftp> cd antivirus

    Da ricordare che il carattere usato per separare le sottodirectory nella indicazione di un percorso è la barra inclinata a destra (/), secondo la sintassi Unix, piuttosto che la barra inclinata a sinistra, propria dell'MS-DOS. Benché molti dei server FTP giri su Unix, o comunque ne rispetti la sintassi e sia quindi opportuno abituarsi a questo specifico e ad altri adeguamenti, in questo caso trattandosi di un sistema Windows NT tale attenzione sarebbe irrilevante; d'altra parte gli stessi comandi 'dir' o 'cd' possono essere interpretati correttamente da un sistema Unix se inviati dalla shell di comando del nostro client.
    Da notare inoltre che, siccome molti sistemi operativi distinguono le maiuscole dalle minuscole ed altri lo fanno solo in determinate circostanze (es. per verifica password), i nomi delle directory o dei file indicati nelle linee dei comandi in questo caso specifico sono accettati indifferentemente scritti in maiuscolo o in minuscolo, ma in altri casi (es. sistemi ospiti Unix) viene richiesta la digitazione esatta per tutti i nomi usati.

    La struttura dei siti FTP 'pubblici' è quasi sempre la stessa, basta conoscerne una per potersi muovere con facilità in moltissime altre. Nel nostro caso per visualizzare il contenuto della directory sul computer remoto si utilizzare il comando 'dir' ottenendo a video:

    ftp> dir
    200 PORT command successful.
    150 Opening ASCII mode data connection for /bin/ls.
    11-23-00 04:07PM 5129940 1117x86.exe
    10-05-00 09:18AM 3356480 IPESetup.exe
    11-24-00 10:03AM 7820277 nnti402e.zip
    11-23-00 04:04PM 25701484 Norton_AntiVirus_200_7.0_76.exe
    11-23-00 04:39PM 4682127 sdat4107.exe
    11-23-00 04:04PM 14668876 TucowsVirusScan512Fixed.exe
    226 Transfer complete.
    ftp: 351 bytes received in 0,01secondi 35,10Kbyte/sec)
    ftp>

    Nella parte sinistra dell'elenco vediamo informazioni sulla data di creazione del file. Sulla destra invece individuiamo i dati relativi alla lunghezza e al nome del file.

    Il semplice nome può non dirci molto sul tipo di programma. In questi casi può essere opportuno per prima cosa prelevare un indice più dettagliato. Lo troviamo spesso, ma non in questo caso, come file con un nome simile a '00-Index' (lo 00 iniziale serve solo a farlo comparire per primo nell'elenco).

    Supponiamo, dopo aver deciso che il file che ci interessa sia il nnti402e.zip, di volerlo prelevare.
    Prima di tutto dovremo comunicare al computer remoto che si tratta di un file binario e non di testo, cosa che viene fatta usando il comando 'bin' (questa operazione non è sempre necessaria, dato che molti host capiscono da soli quando impostare il trasferimento in modalità binaria; tuttavia non è male usarlo comunque) come segue

    ftp> bin
    200 Type set to I.
    ftp>

    Ora possiamo prelevare il file. Per farlo si deve usare il comando 'get <nome_del_file>':

    ftp> get nnti402e.zip
    200 PORT command successful.
    150 Opening BINARY mode data connection for nnti402e.zip(7820277 bytes).
    226 Transfer complete.
    ftp: 7820277 bytes received in 8,50secondi 919,82Kbyte/sec)
    ftp>

    Fatto. Il 'get' ha copiato il file nnti402e.zip' dal server FTP del Centro di Calcolo al nostro disco. A questo punto possiamo chiudere la connessione con il computer remoto.
    Il file appena trasferito si troverà nella directory predisposta dalla configurazione del FTP che si sta usando. Con il comando 'lcd' si può visualizzare quella corrente o modificarla.

    Il comando 'get' offre anche altre piccole potenzialità. Ad esempio ci consente di prelevare un programma e di riceverlo con un nome diverso dall'originale. 'Get' utilizzato in questo modo preleva il file chiamato 'pippo.zip' e ce lo fa arrivare con nome 'paperino.zip'. È una comodità soprattutto per chi usa MS-DOS e si imbatte in file con nomi lunghi o non gestibili (perché magari contengono più di un punto al loro interno).

    Una piccola variante rispetto a 'get' è 'mget'. Con 'mget' si possono prelevare più programmi contemporaneamente. Ad esempio 'mget SCN*.zip' preleva tutti i file che iniziano con 'SCN' e finiscono con '.zip'. Il comando 'mget *.*' spedisce (teoricamente) tutti i file presenti nella directory dell'host system cui si è collegati. La maggior parte dei computer, tuttavia, disabilita questa funzione perché può scatenare un traffico di dati enorme; si pensi che ci sono dischi con molti gigabyte liberamente duplicabili (e anche con modem veloci ci vorrebbero giorni prima di smaltire tanto traffico).

    FTP in modalità carattere mette a disposizione una serie di altri comandi. Il seguente elenco ne spiega la funzionalità:
     
    Comando
    Descrizione
    Ascii è il comando complementare a 'bin'. Imposta la trasmissione in modalità testo
    Bin imposta la trasmissione in modalità binaria, ovvero la modalità adatta a programmi, immagini digitali, ecc. Alcuni server FTP commutano automaticamente in 'binary mode' quando si preleva uno di questi file
    cd nome_directory cambia directory. Da notare che quando si vogliono indicare anche le sottodirectory, vanno separate con la barra inclinata a destra, secondo la consuetudine Unix. Ad esempio: 'cd utility/virus' (e non 'cd utility\virus')
    Cdup (oppure cd . oppure ancora cd ..) sale di una directory. Ad esempio porta alla directory 'utility' se ci si trova in 'utility/virus'. Se il server risponde che il comando non esiste, provare con 'cd .' (cd, spazio, punto), oppure con 'cd ..' (cd, spazio, punto, punto)
    delete nome_file cancella un file (il comando funziona solo durante sessioni con account; per evidenti motivi di sicurezza)
    dir visualizza il contenuto di una directory
    dir abbreviazione* se si vogliono visualizzare, ad esempio, solo i file il cui nome inizia con 'f', si può scrivere 'dir f*'
    get nome_file  preleva un file. Se il file non è un semplice testo, è buona norma far precedere questo comando dal comando 'bin'
    get nome_file - simile al comando 'type' di MS-DOS: stampa a video un file di testo (notare il trattino dopo il nome del file)
    hash durante un download, fa sì che venga visualizzato un carattere '#' ogni Kbyte arrivato (oppure ogni due, o più, dipende da come è configurato il server). Utile per meglio monitorare i trasferimenti
    help fornisce l'elenco dei comandi disponibili
    help nome_comando fornisce una breve spiegazione sul comando indicato
    lcd nome_directory cambia la directory locale (quella del proprio PC), ovvero la directory nella quale il client memorizzerà il file che si sta prelevando. Dato da solo, indica qual è la directory selezionata
    put nome_file  questo comando consente di trasferire un file dal proprio computer al server FTP cui si è connessi. Solitamente è utilizzabile solo in sessioni FTP con account e password, in quanto via FTP anonimo non si è abilitati in scrittura. A tale ultimo proposito, tuttavia, vale la pena aggiungere che alcuni server FTP, anche quando ci si collega in modalità anonima, mettono a disposizione una directory aperta in scrittura, quasi sempre chiamata 'incoming'. Anche il 'put', se il file da spedire non è un semplice testo, è buona norma farlo precedere dal comando 'bin'
    pwd visualizza il nome (e il percorso o 'path') della directory nella quale ci si trova
    quit chiude una sessione FTP. Se non funziona provare con 'bye', 'close', 'logout', ecc.
     
    Può succedere che il server al quale ci si collega non metta a disposizione alcuni di questi comandi, o ne metta a disposizione altri. I fondamentali, comunque, come 'dir', 'get', 'bin' e 'cd' sono sempre disponibili.

    Può essere utile, infine, ricordare che nella quasi totalità dei casi i file che possiamo trovare sui siti FTP sono sottoposti a compressione. Questo processo serve a risparmiare spazio, tempo e risorse per i trasferimenti e a raccogliere in un unico archivio più file. Esistono diversi programmi di compressione, spesso legati ai diversi sistemi operativi. Ognuno di essi produce dei file caratterizzati da particolari estensioni. Nel seguente elenco sono indicate quelle con cui avrete occasione di imbattervi più spesso, con i relativi programmi.
     
    Estensione
    Tipo file
    .gz file compresso con GNU Gzip
    .hqx file compresso Macintosh (BinHex)
    .lzh file compresso (in genere per MS-DOS, ma il formato è molto diffuso anche tra i computer Amiga)
    .sit file compresso Macintosh (StuffitExpander)
    .tar file compattato con il programma Unix tar
    .tar.gz file compattato e poi compresso con tar e gzip
    .Z file compresso con il programma Unix compress
    .zip file compresso con PkZip o Info-Zip.
     

    Si noti che i file compressi, di qualsiasi tipo (zip, lzh, gzip.), dopo essere stati trasferiti sul proprio disco, debbono essere espansi al loro formato originale, utilizzando i relativi programmi di decompressione. Il programma di compressione più diffuso in assoluto, nato in ambiente MS-DOS e Windows, è PkZIP. In alcuni casi si possono trovare file compressi con estensione .exe che sta ad indicare come siano degli eseguibili autoscompattanti, cioè basta mandarli in esecuzione e questi esploderanno automaticamente nella forma originaria; al costo di una leggera maggiorazione nelle dimensioni del file, si evita così che chi ottiene il file debba pure possedere il programma di decompressione.
     
     
     

    Programmi con interfaccia grafica

    Le interfacce grafiche hanno definitivamente avuto la meglio nel mondo delle telecomunicazioni, così anche per il prelievo di file sono ormai disponibili programmi a base di icone e mouse. Ce ne sono diversi, per tutti i sistemi operativi; qui di seguito illustriamo il client FTP inserito in Netscape (il suo funzionamento è identico sia che si possieda un PC con Windows, sia che si utilizzi un Macintosh, o un sistema Unix con ambiente X-Window), ricordando tra quelli disponibili di 'pubblico dominio' per Windows il WS_FTP.
    L'integrazione fra il programma di gestione risorse e la navigazione in rete fa anche di Internet Explorer un potente strumento di FTP grafico.
     

    Netscape e l'FTP anonimo

    Il client FTP di Netscape è fortemente integrato con le altre funzionalità del programma. Per collegarsi con un sito FTP tramite Netscape è sufficiente inserire la URL del sito che vogliamo raggiungere (se il sito è ad esempio 'XXX.unitus.it', la relativa URL sarà 'ftp://XXX.unitus.it') dopo aver fatto click con il mouse sul bottone 'Open Page' presente all'interno della barra degli strumenti, così come illustrato nella figura che segue:

     

    L'apertura di una sessione FTP con Netscape
     

    Notare che è possibile inserire la URL completa di path ('ftp://XXX.unitus.it/directory/subdirectory'), così da saltare direttamente alla subdirectory che ci interessa. Con Netscape la procedura iniziale di login, durante la quale solitamente si inserisce 'anonymous' alla voce utente, e il proprio recapito e-mail in luogo della password, si salta: provvede il programma a spedire automaticamente queste informazioni. Nella figura seguente, riportiamo una schermata tipo di una sessione FTP di Netscape.

     

    Il client FTP di Netscape
     

    La sua interpretazione è molto semplice. I 'foglietti bianchi' e quelli con eventuale scritta '010' sono file generici, i 'foglietti con delle righe di scrittura' sono file di testo (per leggerli è sufficiente farci click sopra con il mouse, il che equivale al 'get nome_file -' dell'FTP con interfaccia a caratteri), le 'cartelle', infine, sono le directory.

    Per entrare in una directory, o per prelevare un file, basta un click del mouse. In quest'ultimo caso, dopo qualche secondo, compare un box simile a quello della figura che segue:

     

    Il box di Netscape che compare dopo aver cliccato su un file in una sessione FTP
     

    Per trasferire il file sul proprio hard disk, a questo punto, non si deve fare altro che un click su 'Save File...' e attendere che il trasferimento sia completo (possono essere necessari alcuni secondi o molti minuti: dipende dalla dimensione del file, e dalla velocità del proprio collegamento).

     

    Netscape e FTP con account

    Il funzionamento di Netscape in una sessione FTP con account è identico a quello di una sessione anonima. Aggiungiamo solo un paio di note su come si forniscono al sistema remoto il proprio codice e la propria password e su come si invia un file (ovvero su come si effettua l'equivalente di un PUT). Non si tratta, al momento, di un metodo propriamente amichevole — è probabile che le versioni future di Netscape finiscano per adottare un modulo FTP più vicino a quello disponibile in client specifici.

    A partire dalla versione 2.0 di Netscape, l'inserimento del codice e della password avviene a livello di indirizzo; quando si indica a Netscape l'indirizzo del computer al quale ci vogliamo collegare, dobbiamo aggiungere il codice e la password secondo questa sintassi:

  • ftp://codice:password@sito
  • Ovvero: 'ftp://' + il proprio codice + ':' + la propria password + '@' + l'indirizzo del server FTP vero e proprio. Ad esempio, se vogliamo collegarci all'elaboratore 193.205.144.7 dei nostri esempi, con un account 'pippo', con password 'abcd1234', dobbiamo scrivere:
  • ftp://pippo:abcd1234@193.205.144.7
  • Da notare che la password non deve contenere né il carattere ':' (due punti) né il carattere '@'. Nel caso ci fosse uno di questi due caratteri, le uniche alternative sono quelle di modificare la password, o di adottare un altro client FTP.

    Un altro limite di questo sistema è che nel digitare la password, questa rimane in chiaro sul video, aumentando il rischio che qualcuno la veda. Perciò: prudenza!

    L'invio di un file (put) con il client FTP di Netscape (possibile solo a partire dalla versione 2.0 del programma) si effettua semplicemente con un click sul comando 'Upload file...' che troviamo sotto il menu 'File' una volta posizionatici nella directory di destinazione.
     
     
     
    Dove trovare un Server FTP

    Di Server FTP, la cui installazione si rende necessaria se si vuole offrire accesso controllato ad altri per la trasmissione di file propri, ne esistono anche di pubblico dominio e per vari sistemi operativi.
    Il Centro di Calcolo all' indirizzo IP
    193.205.144.7, che già conosciamo, ha messo a disposizione un server per Windows nella directory
    '/ftp/server' e di nome WSFTPD.zip .
    Una volta preso, con un Client FTP o con una connessione in rete Microsoft NT (tipo 'sfoglia la rete'), si dovrà creare una directory sul prorpio disco fisso in cui scompattare il file zip. Questa sarà automaticamente anche la directory di installazione del vostro Server FTP.
    Per la configurazione particolareggiata esiste una guida in linea piuttosto semplice, in cui viene descritto tutto il procedimento da seguire per il servizio di file-transfer che si vuole definire.
    Il programma, una volta fatto partire, crea un 'demone' cioè un processo in background che si mette in attesa di richieste di connessione fatte secondo un protocollo FTP. Questo processo può essere configurato secondo le proprie esigenze per mezzo di un menu grafico che è stato predisposto anche per varie funzioni di controllo.

    Se non si è soddisfatti di questo server o si sta usando un sistema operativo non compatibile, se ne possono ottenere altri visitando vari siti noti che operano come depositi di software pubblico o repliche locali di altri più noti, oppure si possono effettuare delle ricerche sulla Rete usando appositi motori di siti quali www.altavista.digital.com, www.excite.com, webcrawler.com, ragno.ats.it ecc. .
     

    Il C.d.C.
     

    Intranet - indice Home Ateneo