Lezione 4 Napster e P 2 P Sistemi

  • Slides: 9
Download presentation
Lezione 4 – Napster e P 2 P Sistemi di elaborazione dell’informazione Modulo 3

Lezione 4 – Napster e P 2 P Sistemi di elaborazione dell’informazione Modulo 3 - Protocolli applicativi Unità didattica 2 - Telnet, FTP e altri Ernesto Damiani

Applicazioni “peer to peer” • Facilitano la condivisione di dati tra utenti distribuiti. •

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 1998 -99. • Nel

Napster • Inventato da Shawn Fanning alla Northeastern University nel 1998 -99. • 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 1999. • Attualmente non attivo; interessante dal punto di vista didattico.

Protocollo Napster (1) • Vi sono tre entità fondamentali in Napster. 1. Client: utente

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><tipo><dati>. §

Protocollo Napster (2) • I messaggi vengono trasmessi tra entità. – Forma: <lunghezza><tipo><dati>. § 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

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, 8888. – I metaserver girano sulla porta 8875.

Protocollo Napster (4) • Ci si connette a un metaserver noto con un login.

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. •

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

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