Sistemi di elaborazione dell’informazione Modulo 3 -Protocolli applicativi Unità didattica 2 -Telnet, FTP e altri Ernesto Damiani Lezione 4 – Napster e P2P
Applicazioni “peer to peer” Facilitano la condivisione di dati tra utenti distribuiti. Le nuove “applicazioni killer” su Internet. Modello Napster. – Sorgente centrale di metadati. Modello Gnutella. – Sorgente distribuita di metadati.
Napster Inventato da Shawn Fanning alla Northeastern University nel Nel Maggio 1999 è stata fondata la società omonima. Elenca milioni di canzoni su milioni di sistemi sparsi in tutto il mondo. – Server famosi in Abovenet e Globalcenter. Citato in giudizio dalla Recording Industry Association of America (RIAA) nel Dicembre Attualmente non attivo; interessante dal punto di vista didattico.
Protocollo Napster (1) Vi sono tre entità fondamentali in Napster. 1.Client: utente che ricerca e richiede i file. 2.Server: sistema host finale che condivide e invia i file. 3.Metaserver/Redirector: repository dell’indice dei file. È un protocollo “proprietario”. –Per descriverlo è stata usata la tecnica del reverse engineering.
Protocollo Napster (2) I messaggi vengono trasmessi tra entità. –Forma:. Lunghezza e tipo sono due byte. La lunghezza specifica il numero di byte di dati. I dati sono stringhe ASCII tra virgolette. Molti sono i messaggi del protocollo. –Informazioni: errori, versioni, stato. –Controllo: login, aggiornamenti, aggiunta/eliminazione di account. –Operazioni: ricerca, elenchi, richieste di download ecc.
Protocollo Napster (3) Il software “ufficiale” gira su Windows. –Molti altri client sono disponibili, per esempio Gnapster. –Tutto ciò che serve per accedere a Napster è un client. Il protocollo si basa su TCP. –I server tipicamente usano porte 7777, –I metaserver girano sulla porta 8875.
Protocollo Napster (4) Ci si connette a un metaserver noto con un login. –Ci si può unire a una sessione di chat o cercare un file. I client inviano una richiesta “search query” che dà come risultato le posizioni dei file corrispondenti. Il download dei file avviene direttamente tra host. –Il metaserver non viene coinvolto. I trasferimenti dei file possono avvenire in quattro modi: –upload; –download; –firewall upload; –download. Nelle slide successive si pala di download senza e con firewall: verificare con questo elenco
Download senza firewall Il client invia richiesta di download (203) al metaserver. Il metaserver risponde con l’ACK di download (204) che contiene utente, indirizzo IP, porta, ecc. del file richiesto. Il client esegue la connessione TCP al server. –Il server risponde immediatamente con “1” ASCII. Il client invia GET in un pacchetto, poi il nome utente e il nome file. –Include anche l’offset byte per riprendere il trasferimento interrotto. Il client remoto restituisce la dimensione dei file seguita dal flusso di dati. Il client avvisa il metaserver che il trasferimento è iniziato (218) e terminato (219).
Download attraverso firewall Se l’ACK 204 del metaserver indica un numero di porta 0 significa che il server è dietro a un firewall. Il client invia la richiesta di download attraverso firewall (500) al metaserver che richiede che il server trasferisca (upload) il file al client. –Il client poi aspetta che il server trasferisca il file richiesto. Il metaserver contatta il server che richiede il trasferimento al client. –Eseguito tramite tunneling HTTP: l’invio del messaggio è molto simile alla richiesta HTTP. L’upload continua proprio come il download. –Si tiene traccia di ogni upload. FINE