il trasferimento di file g.di battista e m.patrignani nota di copyright questo insieme di slides è protetto dalle leggi sul copyright il titolo ed il copyright relativi alle slides (inclusi, ma non limitatamente, immagini, foto, animazioni, video, audio, musica e testo) sono di proprietà degli autori indicati sulla prima pagina le slides possono essere riprodotte ed utilizzate liberamente, non a fini di lucro, da università e scuole pubbliche e da istituti pubblici di ricerca ogni altro uso o riproduzione è vietata, se non esplicitamente autorizzata per iscritto, a priori, da parte degli autori l'informazione contenuta in queste slides è fornita per sco didattici e non può essere usata in progetti di reti, imanti, prodotti, ecc. gli autori non si assumono nessuna responsabilità per il contenuto delle slides, che sono comunque soggette a cambiamento questa nota di copyright non deve essere mai rimossa e deve essere riportata anche in casi di uso parziale 1
trasferimento di file obiettivi promuovere la distribuizione di informazioni incoraggiare l uso di computer remoti rendere i dati indipendenti dai sistemi operativi consentire un backup efficiente dei dati protocollo di riferimento file transfer protocol descritto nell rfc 959 caratteristiche generali architettura client- a due livelli tecnica usata due tipologie di connessioni, una per i e una per i dati, entrambe su tcp terminologia -, - (protocol interpreter) -, - (data transfer process) 2
architettura connessione file system connessione dati file system rapporto tra sessione e connessioni tempo sessione ftp (perceta dall ) conn. dati connessione ftp conn. dati conn. dati 3
ruolo della connessione sulla connessione transitano le richieste ftp dell e i riscontri ftp del i ftp specificano i parametri per le connessioni dati: data port transfer mode representation type structure la natura delle operazioni: store retrieve append delete instaurazione della connessione lo - instaura una connessione con il - (si comporta come client tcp del -) il è in ascolto sulla porta 21 porta 21 porta qualunque es: 1133 connessione 4
instaurazione della connessione dati il - instaura una connessione con lo - (si comporta come client dello -) la porta utilizzata dal client è comunicata al con il comando PORT su questa porta lo - è in ascolto porta 21 porta 20 porta qualunque es: 1133 connessione porta qualunque es: 1134 connessione dati instaurazione della connessione dati il client ftp richiede una porta dinamica al s.o. per la comunicazione con ftp lo - si mette in ascolto sulla porta specificata il client-ip comunica al -ip la copa <indirizzo ip, numero porta> tramite il comando PORT per esemo il comando PORT 193,204,161,133,20,4 corrisponde alla copa <193.204.161.133, 5124> perché 20 256 + 4 = 5124. il - si connette al client- 5
chiusura della connessione dati quando il trasferimento di un file è terminato, chi chiude per primo la connessione dati? se il file si sposta dallo - al - allora chiude la connessione lo - nel caso opposto chiude la connessione il - chiudere la connessione dati equivale a dichiarare che il file è terminato nessun comando o segnale viaggia sulla connessione dati viene instaurata una nuova connessione dati per ciascun trasferimento di file e per ciascuna lista di file ( ls o dir dell ) active mode il trasferimento che abbiamo visto è chiamato in active mode, perché lo - si comporta come un tcp per la connessione dati porte del solamente la porta 21 deve essere raggiunta dall esterno il usa la porta 20 come client porte del client una porta dinamica come client per la connessione almeno una porta dinamica come per il trasferimento dati 6
active mode: problematiche per quale motivo si richiede al client di comportarsi da sulla connessione dati? in questo modo le porte coinvolte del sono solamente due (21 e 20) se il client si connettesse alla porta 20 con la connessione dati il non saprebbe identificarlo due client sulla stessa macchina potrebbero connettersi sulla porta 20 per due trasferimenti diversi per utilizzare l active mode il client deve essere raggiungibile dall esterno spesso ciò non è possibile per motivi di sicurezza passive mode nei trasferimenti passive mode è sempre il che è in ascolto, anche sulla connessione dati lo - richiede al - una connessione tramite il comando PASV il - richiede una porta dinamica al s.o. il - si mette in ascolto sulla porta dinamica il - comunica la copa <indirizzo-ip, porta> al clienti- il client- si connette al - - e - sono tcp su due porte porta 21 e almeno una porta dinamica client- e client- sono client tcp su due porte entrambe dinamiche 7
triangolazioni in passive mode la trasmissione avviene tra due ftp sotto il controllo del client 227 Entering Passive Mode (A,B,C,D,E,F) PASV - PORT (A,B,C,D,E,F) sever- connessione connessione sever- sever- connessione dati sever- rappresentazione dei dati ftp effettua le traduzioni di formato necessarie per standard di rappresentazione diversi su diversi host l applicazione svolge funzioni proprie del livello di presentazione sono supportati: ascii, ebcdic, file strutturati in record, binario 8
alcuni fondamentali: controllo degli accessi, parametri trasferimento name () identificazione dell' password (pass) password dell' change working directory (cwd) modifica della directory corrente structure mount (smnt) mount di un file system diverso da quello corrente logout (quit) chiusura data port (port) port da usare nella connessione dati; nell argomento sia indirizzo ip che port passive (pasv) chiede al di ascoltare una data port aspettando una connessione representation type (type) tipo di dati da trasferire codici di risposta ogni codice ha tre cifre: la prima dice se la risposta è positiva, negativa o incompleta; la seconda indica la tipologia 1yz 2yz 3yz 4yz 5yz x3z risposta preliminare positiva risposta positiva completamento dell azione prevista dal comando possibilità di inviare una nuova richiesta risposta intermedia positiva necessità di ulteriori informazioni risposta negativa transitoria risposta negativa permanente risposta a di autenticazione 9
è possibile evitare il comando data port? il potrebbe connettersi sulla porta che il client sta usando per la connessione usando la porta 20 21 non ci sarebbe equivoco tra le due connessioni 21 1133 connessione 20 connessione dati è possibile evitare il comando data port? cosa accadrebbe se l eseguisse il comando ls due volte a breve distanza di tempo? 21 1133 connessione 20 connessione dati 10
è possibile evitare il comando data port? al termine della prima connessione il chiude (il suo tcp si comporta come un client in chiusura) il tcp lato entra quindi in stato di attesa per 2*msl (circa 4 minuti) msl = maximum segment lifetime la copa di porte 20-1133 non sarebbe usabile per 240 sec. 21 1133 connessione 20 connessione dati 11