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