Come
funzionano i normali
programmi P2P.
Si ipotizzi di avere un file composto da tre
blocchi, si ipotizzi ancora che il file abbia una dimensione totale di
30MB (nella realtà un file di tre blocchi ha una dimensione totale di
9.28*3=27.84MB, l'ipotesi che si sta facendo serve per semplificare
ulteriormente il ragionamento). Se il file è richiesto da 3 utenti, con i
p2p tradizionali, si invierà a tutti il primo pezzo di file. Se alla
fine della sessione si è riusciti ad inviare una sola parte per client,
questi si ritroverranno ad avere tutti la stessa parte di file e
dovranno aspettare il successivo collegamento della fonte completa per
riprendere il down del file.
Utilizzando eMule invece verranno inviati ad ogni utente un
chunk diverso, ad esempio: al primo utente si invia la parte numero
1, al secondo la parte numero 2, al terzo la parte numero 3. Se,
come ipotizzato prima, dopo aver inviato un chunk per client, la fonte
completa si scollega, nel network ci sarà comunque tutto il file in
condivisione, e i client che prima hanno dialogato con la fonte
completa, adesso possono scambiarsi fra di loro le relative parti
mancanti. Il vantaggio è evidente: maggiore
possibilità di diffusione dei file, maggiore probabilità di terminare
un download. |
Questa cosa ha ovviamente un costo, ed il costo è che eMule, a
seconda della parte ricevuta del file, potrà creare file temporanei
molto più lunghi di quanto si è effettivamente trasferito. E' così
possibile avere ricevuto solo 2MB di un file di oltre 700MB, e avere un
file temporaneo di 700MB. Questo appunto perchè non si riceverà il file
dall'inizio alla fine in modo lineare, ma i chunk saranno scaricati in
base alla disponibilità istantanea, in ordine irregolare.
Ogni client sceglie i pezzi più rari da chiedere, per
bilanciare e velocizzare la diffusione globale. Prima si controlla se un
pezzo è rarissimo, se non ci sono pezzi molto rari si cerca di
completare i blocchi da 9 mega già iniziati per poterli diffondere. Con
questo sistema si tenta di minimizzare la possibilità di avere file
incompleti in condivisione.
Infine, una nota. eMule automaticamente rende disponibile alla
condivisione i files che avete in download, anche se non sono
completati. Questo per permettere una diffusione dei files più veloce.
Per potere condividere un file che avete in download però dovete aver
ricevuto almeno un chunk completo dello stesso.
|