45
SEMINARIO Funzionamento di Emule P2P di Emule

SEMINARIO Funzionamento di Emule P2P di Emule

  • Upload
    duyen

  • View
    55

  • Download
    0

Embed Size (px)

DESCRIPTION

SEMINARIO Funzionamento di Emule P2P di Emule. PERCORSO. Storia - eMule oggi Utenti di eMule Code e sistema dei crediti File Le reti di eMule Kad eD2k Scambio Fonti Le porte ID Funzione Web – Server Interfaccia Grafica. Un po di storia…. - PowerPoint PPT Presentation

Citation preview

Page 1: SEMINARIO Funzionamento  di Emule P2P di Emule

SEMINARIOFunzionamento

di Emule

P2P di Emule

Page 2: SEMINARIO Funzionamento  di Emule P2P di Emule

Storia - eMule oggiUtenti di eMuleCode e sistema dei creditiFileLe reti di eMuleKad eD2kScambio FontiLe porteIDFunzione Web – ServerInterfaccia Grafica

PERCORSO

Page 3: SEMINARIO Funzionamento  di Emule P2P di Emule

Un po di storia…

• eMule è un progetto nato nel 2002, portato avanti da un epuipe di programmatori con a capo un tedesco noto come “Merkur”.

• l nome "eMule" proviene da un animale chiamato Mulo (Mule) che è simile all'asino (Donkey)

• Nasce come il successore di Edonkey

Page 4: SEMINARIO Funzionamento  di Emule P2P di Emule

Cos’è Emule oggi?

• È uno dei client di file sharing utile al peer to peer più avanzati e affidabili.

• È un software open-source esistono diverse versioni.• Ogni giorno è utilizzato in media

da 3 milioni di utenti e sono condivisi circa 500 milioni di file.

Page 5: SEMINARIO Funzionamento  di Emule P2P di Emule

UTENTI DI EMULE

IDENTIFICAZIONE

Ogni utente di eMule viene identificato una volta e per sempre da un proprio USERHASH di 16 bytes salvato nel file preferences.dat.

L’userhash serve per il sistema dei crediti nelle code

Page 6: SEMINARIO Funzionamento  di Emule P2P di Emule

IL SISTEMA DI CODA La coda in eMule si basa sul tempo di attesa trascorso da

un utente in coda.

MECCANISMO DEI CREDITIFornisce un modificatore importante per questo tempo di

attesa, questo avviene tenendo conto del download e dell'upload avvenuto tra i due client in considerazione. Più un utente invia dati a un client e più velocemente avanzerà quando sarà in coda da quello specifico client.I modificatori vengono calcolati in base alla quantità di dati trasferiti tra i due client.

Viene usato per retribuire gli utenti che contribuiscono in rete, per esempio effettuando upload verso altri client.

Code e sistema dei crediti

REGOLA GENERALE: più condividi più scarichi.

Page 7: SEMINARIO Funzionamento  di Emule P2P di Emule

1. Tutti i client che scaricano da te vengono ricompensati dal meccanismo dei crediti.

2. Client privi del supporto per i crediti non ti forniranno nessun credito quando tu effettui degli upload verso di loro.

3. I crediti NON sono globali. Sono scambiati esclusivamente tra coppie di client.

4. I crediti sono memorizzati nel file clients.met.

5. I crediti di tua proprietà sono salvati dal client che ti concede il credito. Questo previene manomissioni ai crediti.

6. I tuoi crediti non sono visualizzabili.

Code e sistema dei creditiREGOLE E CARATTERISTICHE

Page 8: SEMINARIO Funzionamento  di Emule P2P di Emule

Ci sono due diversi modificatori di credito che vengono calcolati:

Modificatore1 = Totale Uppato x 2 / Totale Scaricato Modificatore2 = Totale Uppato + 2Dal confronto dei due valori, viene mantenuto il minore dei due e viene

usato come modificatore.

Altre condizioni esistenti:- Totale Uppato < 1 MB Modificatore = 1 - Totale Scaticato = 0 Modificatore = 10 

Code e sistema dei creditiCALCOLO DEI MODIFICATORI

NB: Il modificatore non potrà mai essere minore di 1 o maggiore di 10.

Page 9: SEMINARIO Funzionamento  di Emule P2P di Emule

Code e sistema dei crediti

Page 10: SEMINARIO Funzionamento  di Emule P2P di Emule

FILE

IDENTIFICAZIONE

eMule identifica i file nel network in modo univoco tramite un FILEHASH che il client stesso assegna al file non appena viene messo in condivisione.

Il FILEHASH non identifica il nome del file bensì la sua dimensione ed il suo contenuto

Page 11: SEMINARIO Funzionamento  di Emule P2P di Emule

FILE

STRUTTURA

Ogni file condiviso nella rete di eMule viene scomposto in Parti da 9,28 MB a loro volta divise in blocchetti chiamati Chunk da 180 KB.

PARTECHUNK

FILE INTERO

• Ad ogni parte del file viene assegnato un valore di hash parziale • Gli hash parziali sono la prima cosa che eMule scarica di un file

Page 12: SEMINARIO Funzionamento  di Emule P2P di Emule

FILE

FILE TEMPORANEI

Per ogni file in download, eMule crea nella cartella eMule/temp tre file temporanei:

xxx.Part = contiene i dati scaricati

xxx.part.met = file di controllo per il download (hash, nome, stato, etc)

xxx.part.met.bak = backup del file (utilizzabile in caso di corruzione)

Page 13: SEMINARIO Funzionamento  di Emule P2P di Emule

FILE - ICH

PROBLEMAPuò capitare che una di queste parti sia corrotta, quindi

inutilizzabile.

SOLUZIONEICH – Intelligent Corruption Handling: controlla se

ogni singolo Chunk di una parte di un file è integro, se risulta corrotto un blocco, viene riscaricata tutta la parte da 9,28 MB

Chunk corrottoChunk corretto

ICH CHECK

ICH ACTION

Parte completata

Page 14: SEMINARIO Funzionamento  di Emule P2P di Emule

FILE - AICH

PROBLEMAQuando l’errore è localizzato alla fine di una parte di file,

ad esempio a 8,9 MB è sconveniente con l’ICH riscaricare tutti i chunk della parte.

SOLUZIONEAICH – Advanced Intelligent Corruption Handling: Sistema più recente dell’ICH (introdotto dalla versione

0.44). Utilizza una diversa logica. Conserva tutti i Chunk antecedentemente scaricati in caso di check error positivo, è solo l’ultimo ad essere riscaricato (gli altri chunk vengono ripristinati dal file xxx.part.met.bak).

Page 15: SEMINARIO Funzionamento  di Emule P2P di Emule

Le reti di Emule

eD2k

Funzioni comuni con implementazione diversa:

• Identificazione degli altri client • Scaricare file

Kademlia

Scambio Fonti

Page 16: SEMINARIO Funzionamento  di Emule P2P di Emule

Kademlia, rete decentralizzata

Kademlia è un protocollo P2P ideato da Petar Maymounkov e David Mazières per un network di computer decentralizzato. I nodi sfruttano il protocollo di trasporto UDP. Ogni nodo di questa rete è identificato con un # ID che serve a:

• Identificazione del nodo• Calcolo distanza tra 2 nodi (non geografica, ma di rete) in uno

spazio di ID calcolata mediante l’or esclusivo dei 2 nodi.

Non ci sono server che tengono traccia dei client e dei file che condividono, ciò viene fatto da ogni client presente in rete. Ogni client è anche un piccolo server.

Page 17: SEMINARIO Funzionamento  di Emule P2P di Emule

Kademlia

Aggregazione di un client nella rete

Bootstrap server

Richiesta aggregazione

Assegnazione stato open

Rete sovrapposta

Page 18: SEMINARIO Funzionamento  di Emule P2P di Emule

Kademlia

Le ricerche in Kademlia

Poiché ogni client è identificato da un valore di hash univoco, l'idea di Kademlia è di associare una certa RESPONSABILITA’ impostata su questo hash.

Ogni client nella rete Kademlia agisce come server per certe parole o fonti. L'hash del client determina la parola o le fonti specifiche.

Obiettivo ricerca: trovare quei client che hanno la responsabilità relativa all'argomento della ricerca in corso.

Page 19: SEMINARIO Funzionamento  di Emule P2P di Emule

Kademlia

Vantaggi• Progettazione semplificata• E’ più resistente alle perdite della rete su vasta scala

Query Flooding

Svantaggi• Poca scalabilità• Ogni nodo nella rete è bombardato dall’inoltrazione dei messagi

Problema in parte risolto da un limite di propagazione dei messaggi

Page 20: SEMINARIO Funzionamento  di Emule P2P di Emule

Ed2k, rete basata su server

La chiave per questa rete sono i server eD2k.

Ogni client deve essere connesso a un server per entrare in rete.

Quando il tuo client cerca di connettersi ad un server, il server verifica se altri client sono liberi di connettersi al tuo client. Se è così, il server ti assegna quello che è chiamato ID Alto. Se la comunicazione risulta interdetta, il server assegna al tuo client un ID Basso.Dopo l'assegnazione dell'ID, eMule invia al server una lista di tutti i file da te condivisi. Il server aggiunge i nomi dei file e gli hash che hai spedito al suo database.

Page 21: SEMINARIO Funzionamento  di Emule P2P di Emule

Ed2k, rete basata su serverTIPI DI RICERCA

Una volta connesso alla rete, il client può ricercare i file tramite porzioni dei loro nomi. Una ricerca può essere:

LOCALE GLOBALE

Effettuata solo sul server al quale si è connessi, le ricerche sono più rapide, ma avranno un numero inferiore di risultati.

Effettuata su tutti i server della rete, impiegherà un maggior tempo ma restituirà più risultati. Ogni server verifica le parole chiave ricercate nel suo database e restituisce i nomi dei file (e i valori dell'hash) che corrispondono a quanto cercato.

Page 22: SEMINARIO Funzionamento  di Emule P2P di Emule

Ed2k, rete basata su serverRICERCA LOCALE

S4

SERVER1

S2

S3

Host 1

richiesta FILE

CONTROLLO NEL DATABASE

FILE TROVATO

Restituisce l’hashdel file e dei client che lo possiedono

lista fontiScelta fonte

Host 122 P2P connection

Page 23: SEMINARIO Funzionamento  di Emule P2P di Emule

Ed2k, rete basata su serverRICERCA GLOBALE

SERVER1

Host 1

richiesta FILE

FILE TROVATO

Restituisce l’hashdel file e dei client che lo possiedono

lista fontiScelta fonte Host 242

P2P connection

S4

CONTROLLO NEL DATABASE

Server 4

CONTROLLO NEL DATABASE

Server 1

S3CONTROLLO NEL DATABASE

Server 3

S2

CONTROLLO NEL DATABASE

Server 2

Page 24: SEMINARIO Funzionamento  di Emule P2P di Emule

Ed2k, rete basata su serverLA RICERCA DEI FILE

I download possono essere aggiunti tramite la funzione di ricerca di eMule o da uno speciale formato di link eD2k offerto da qualche sito web.

Una volta nella lista dei Download, eMule prima interroga il server locale (quello a cui è connesso) quindi tutti gli altri server della rete alla ricerca di fonti per quel file specifico. Il server cerca il valore dell'hash del file nel suo database e restituisce i client che sa essere in possesso del file cercato. Le fonti sono altri client che hanno scaricato almeno una parte completa (9,28 MB) del file che corrisponde all'hash dato.

Page 25: SEMINARIO Funzionamento  di Emule P2P di Emule

Scambio Fonti

Vantaggi• Fonti trovate prossime al 100% nel network• Maggiore velocità di contatto • Minor affaticamento del lavoro dei server – più prestazioni del sitema

Altra modalità di contatto delle fonti:Ogni volta che si mette in download un file eMule ricerca le fonti tramite i server (prima a quello a cui si è collegati e poi agli altri). Non appena viene contattata una fonte il programma chiederà un lista degli utenti a cui questo è collegato per scaricare il file stesso.

Page 26: SEMINARIO Funzionamento  di Emule P2P di Emule

Le 7 porte di eMule

Porta locale Porta remota Protocollo Direzione Funzioni

1 4662 qualsiasi TCP IngressoPorta del client / Connessioni da altri client, e scambio fonti tra client

2 qualsiasi 4662 TCP UscitaPorta del Client / Connessioni verso altri client, scambio fonti tra client

3 4672 qualsiasi UDP Ingressoprotoccolo esteso di eMule, valutazione nelle code, ping per le richieste successive dei file

4 qualsiasi 4672 UDP Uscitaprotocollo esteso di eMule, Valutazione nelle code, ping per le richieste successive dei file

5 qualsiasi 4661 TCP Uscita Connessione al server

6 qualsiasi 4665 UDP Uscita  Richiesta delle fonti dal server

7 4711 Qualsiasi TCP ingresso Interfaccia del Web-Server

NB: Affinchè un client eMule abbia un ID alto è necessario che tutte le porte siano aperte. Se c’è un firewall è necessario aprirle manualmente.

Page 27: SEMINARIO Funzionamento  di Emule P2P di Emule

ID alto – ID bassoPerché si usano gli ID

A LIVELLO CLIENT• Identificazione del client nella rete eMule attraverso l’inidizizzo IP• Per il posizionamento del nodo nella rete

A LIVELLO SERVER• Per limitare il numero massimo degli accessi degli utenti al server in modo da garantire un banda efficiente

Page 28: SEMINARIO Funzionamento  di Emule P2P di Emule

ID alto – ID bassoSituazione 1

il client B con ID alto deve contattare il client A

B non conosce l’Ip di A, l’indirizzo IP di A viene determinato grazie all’ID di A comunicato a B grazie dal server a cui è connesso A

2 possibilità

B A

IP 151.134.33.2IP 82.144.122.12

Page 29: SEMINARIO Funzionamento  di Emule P2P di Emule

ID alto – ID bassoPrima possibilità

A con l’ID alto, B tenta direttamente la connessione ad A tramite TCP

B ATCP

ID altoID alto

SITUAZIONE OTTIMALE DEL NETWORK

Page 30: SEMINARIO Funzionamento  di Emule P2P di Emule

ID alto – ID bassoSeconda possibilità

A con l’ID basso, l’indizzo IP di A non può essere calcolato, B non può raggiungere A direttamente

BA

ID basso

ID alto

SERVER di A

UDP

Richiesta connessione ad A

Richie

sta

di B

con

indi

cazio

ne

dell’I

P e la

por

ta

di B

TCP

P2P connection

TCP

ATTENZIONE!La richiesta di B

potrebbe perdersi se il server di A è

molto trafficato

IP 82.144.122.12

IP 151.134.33.2

IP 82.144.122.12

Page 31: SEMINARIO Funzionamento  di Emule P2P di Emule

ID alto – ID bassoSituazione 2

il client B con ID basso deve contattare il client A con ID basso

B A

IP 151.134.33.2IP 82.144.122.12

ID bassoID basso

Connessione non possibile

IP non calcolabile

!

Page 32: SEMINARIO Funzionamento  di Emule P2P di Emule

Funzione Web Server

Si può controllare il client eMule in funzione sulla nostra macchina anche da un computer remoto. Una volta attivata tale funzione, da qualsiasi altro Pc collegato ad internet si può possono effettuare: ricerche, mettere in download, annullare download e se previsto espressamente nelle impostazioni anche spegnere il Pc o riavviarlo!

IP pubblico 151.23.4.2Computer casaHTTP://151.23.4.2

internetPostazione remota

Page 33: SEMINARIO Funzionamento  di Emule P2P di Emule

Funzione Web ServerPer attivarlo spostarsi su Opzioni->Web Server

Page 34: SEMINARIO Funzionamento  di Emule P2P di Emule

Funzione Web Server

Una volta attivato si potrà accedere al web server tramite internet digitando nella barra dell’Url del nostro Browser l’indirizzo del web server indicato nella sezione Server del client

Nota: Ad ogni connessione ad internet il client assume un indirizzo ip diverso, quindi è necessario annotare l’indirizzo ip della macchina poiché esso costituirà l’url del web server di eMule. È possibile utilizzare un Dns dinamico per risolvere questo problema, avendo così a disposizione un nome di dominio che punta sempre alla nostra macchina (vedere www.no-ip.com).

Page 35: SEMINARIO Funzionamento  di Emule P2P di Emule

Funzione Web Server

Page 36: SEMINARIO Funzionamento  di Emule P2P di Emule

Interfaccia di eMule

Le sezioni del client

• KAD• SERVER• TRASFERIMENTI • RICERCHE• FILE CONDIVISI• MESSAGGI• IRC• STASTICHE• PREFERENZE• TOOLS• HELP

Page 37: SEMINARIO Funzionamento  di Emule P2P di Emule
Page 38: SEMINARIO Funzionamento  di Emule P2P di Emule
Page 39: SEMINARIO Funzionamento  di Emule P2P di Emule
Page 40: SEMINARIO Funzionamento  di Emule P2P di Emule
Page 41: SEMINARIO Funzionamento  di Emule P2P di Emule
Page 42: SEMINARIO Funzionamento  di Emule P2P di Emule
Page 43: SEMINARIO Funzionamento  di Emule P2P di Emule
Page 44: SEMINARIO Funzionamento  di Emule P2P di Emule
Page 45: SEMINARIO Funzionamento  di Emule P2P di Emule

Funzionamento di Emule

FINE