mercoledì 25 settembre 2013

File Transfer Protocol

La prima specifica del MIT risale al 1971 (RFC-114), la più recente al 1985 (RFC-959).
Gli obiettivi con cui è stato creato tale protocollo sono:
  • ·         Promuovere lo scambio di file;
  • ·         Incoraggiare l'uso delle reti;
  • ·         Risolvere in modo trasparente le incompatibilità, relative ai formati file, tra i vari sistemi operativi;
  • ·         Trasferire i dati in modo affidabile ed efficiente.



Il colloquio si ha tra:
  • un sistema server, sempre in ascolto in TCP/IP (di default sulla porta 21), 
  • un sistema client, che viene attivato in caso di necessità.

A differenza di altri protocolli di file transfer vengono utilizzati due canali; uno per lo scambio dei comandi ed uno per lo scambio di dati.

A secondo di come vengono gestiti tali canali sono possibili due modalità:
  • Attiva: il client apre una porta solitamente casuale, tramite il canale comandi rende noto il numero di tale porta al server e attende che si connetta. Una volta che il server ha attivato la connessione dati al client FTP, quest'ultimo effettua il binding (collegamento) della porta sorgente alla porta 20 del server FTP.
  • Passiva: il server apre una porta solitamente casuale (superiore alla 1023), tramite il canale comandi rende noto il numero di tale porta al client e attende che si connetta.

Un server FTP offre differenti interazioni con il suo File System
  • Scambio file nelle due direzioni (comandi APPE, REST, RETR, STOR, STOU, GET, PUT)
  • Cancellatura file (comando DELE)
  • Rinomina file (comandi RNFR, RNTO)
  • Navigazione nelle directory (comandi CDUP, CWD,LIST,NLST,PWD)
  • Creazione e cancellazione di directory(comandi MKD, RMD)

L’utilizzo di FTP, come in tutti i casi ha i suoi pro ed i suoi contro:
  • PRO:
    • E’ un protocollo facile e stabile. Quasi tutti i sistemi operativi di tipo server lo gestiscono in maniera nativa, idem per i sistemi operativi destinati alle workstation.
    • E’ spesso implementato in maniera nativa all'interno dei Web Browser con un interfaccia grafica e  la modalità di utilizzo drag and drop (clicca, trascina e rilascia).
    • Gestendo delle profilature degli utenti è possibile circoscrivere i permessi degli stessi all’interno di alberature di directory, in modalità gerarchica.
    • I trasferimenti possono essere effettuati dal client con degli script.
  • CONTRO:
    • In maniera nativa non supporta alcun tipo di crittografia sia a livello di scambio dati che a livello di scambio comandi.
    • Il restart delle trasmissioni spesso non è disponibile.
    • Non supporta alcun tipo di compressione dei dati trasferiti.
Al momento attuale è molto utilizzato all'interno di rete aziendali chiuse (sfruttandone le potenzialità degli script all'interno di procedure e risolvendo i problemi di sicurezza dei dati in quanto la rete è già da considerarsi sicura) e su internet per spostare file il cui contenuto sia pubblico.