Esercizio Si vuole implementare un protocollo di ricerca di file mp3
Transcript
Esercizio Si vuole implementare un protocollo di ricerca di file mp3
Esame di Reti di Calcolatori - Data: 8 aprile 2010 - Durata della prova: 2 ore Traccia A Cognome e Nome Corso Matricola Esercizio Si vuole implementare un protocollo di ricerca di file mp3 in una rete LAN basato sul paradigma peer-to-peer. Ogni peer possiede l’elenco degli indirizzi IP dei propri vicini memorizzato in un file. Se tale file non è presente, l’elenco può essere recuperato contattando un apposito server denominato DataCenter inviando la stringa “vicini”. Il DataCenter invierà la lista dei vicini crittografata con la propria chiave privata per certificarne la provenienza. Quindi, il peer come prima operazione dovrà recuperare la chiave pubblica dal DataCenter inviando ad esso la stringa “key”. Ogni peer pubblica (cioè mette a disposizione degli altri peer) un insieme di file mp3. Tali file sono identificati tramite un codice numerico univoco su tutta la rete. Realizzare le seguanti classi: - La classe Peer che, installata su una macchina, permette di effettuare le seguenti operazioni: 1) Su richiesta dell’utente il peer invia, sulla porta UDP 2222 di tutti i peer vicini, un messaggio di search costituito da una stringa così formata: “search<codice><richiedente>” in cui <codice> è il codice della risorsa cercata e <richiedente> è il proprio indirizzo IP. 2) Quando riceve una query il peer verifica se possiede la risorsa cercata, ed effettua le seguenti operazioni: 1. se non possiede la risorsa inoltra la query a tutti i peer vicini, escluso il peer da cui ha ricevuto la query. 2. se possiede la risorsa il peer invia al peer che ha effettuato la search la seguente stringa (messaggio di reply): “reply<codice><possessore>”, in cui <possessore> è l’indirizzo IP del peer che risponde. La reply è inviata al peer che ha generato la ricerca sulla porta UDP 3333. Dopo aver inviato il messaggio di reply il peer si mette in ascolto sulla porta TCP 1111 per aspettare il contatto del per richiedente e fornirgli il file richiesto come un unico oggetto. 3) Quando riceve una reply, il peer contatta il proprietario del file sulla porta TCP 1111 e ricevuto il file come un unico oggetto stampa a video ”File ricevuto”. - La classe DataCenter che attende all’indirizzo IP: 130.130.130.130 TCP port 5555 il contatto da parte di un peer e restituisce l’elenco dei vicini del peer che ha eseguito il contatto, nel caso in cui la stringa inviata sia “vicini”, altrimenti la chiave pubblica generata se la stringa inviata è “key”.