Google
 
Web emule-italia.it
 
 
eMule | Mods | Download
 
 » Guide
 »
FAQ
 »
Configurazioni
 » Curiosità
 »
Download
 »
Forum
 » Contatti
 
 
 

Guida al funzionamento delle code

 

eMule è un'applicazione p2p famosa per come gestisce le code dei client in attesa del download, in maniera automatica e senza che l'utente possa intervenirci direttamente.
 

Supponiamo che un utente A abbia un file divx che interessa a 5 altri utenti ( B, C, D, E, F ). Ognuno di questi chiede ad A di poterne scaricare un pezzettino ( chunk ). Ovviamente le richieste arrivano ad A in tempi diversi diversi ed A le esaminerà in tempi diversi. Supponiamo che A sia un client che non ama fare preferenze allora attribuisce uno stesso valore alle richieste dei diversi client ed inserisce i client in coda in posizioni successive in base all'ordine di arrivo delle richieste. La richiesta del file C, per un motivo casuale, è arrivata prima delle altre. Per cui C capiterà in coda più avanti rispetto agli altri. Supponiamo che l'ordine di arrivo delle richieste e quindi la topologia di questa semplice coda sia quella descritta in figura.

coda avanzamento lineare

 

Stando così le cose in una coda ad avanzamento lineare, ovvero una coda in cui non ci sono scavalcamenti tra client e gestita secondo la politica 'chi prima arriva prima scarica' C dovrebbe riuscire a scaricare il suo pezzettino di files da A prima di F, B scaricherebbe prima di E etc...

Fortunatamente  però in eMule le code evolvono in modo non lineare per cui potrebbe accadere che B arrivi a scaricare prima di F e che avvengano scavalcamenti di posizione.

 

Sono due i motivi per cui nella coda di A ci possono essere scavalcamenti e ci si discosta dalla condizione di coda ad avanzamento lineare discussa sopra.

 

1. A attribuisce un valore diverso alle richieste di accodamento, ovvero ai rispettivi client. Può accadere ad esempio che A dia più importanza al client B rispetto al client F per cui anche se la richiesta di accodamento di quest'ultimo giunge prima di quella di B a B viene assegnata una posizione più privilegiata in coda perché come dicevo A assegna alle richieste di B un valore maggiore.

 

B scavalca F

 

2. La velocità con cui i vari client risalgono la coda di A non è uguale per tutti. Alcuni client sono più veloci a risalire la coda di altri.

 

B più veloce di F

 

Considerando insieme questi due contributi, che come vedremo non sono indipendenti ( cioé se un client ha + valore di un altro nella coda di A allora potrebbe essere anche più veloce ) si ottiene il meccanismo completo di funzionamento delle code di eMule.

 

Resta quindi da capire:

  1. in base a quale criterio A attribuisce più valore ad un client rispetto ad un altro, si dice anche che A assegna un Voto più alto ad alcuni client rispetto ad altri.
  2. cos'è la velocità di avanzamento in coda e da cosa è influenzata

Valore e Punteggio

La lista 'In Coda' mostra i clients che attendono pazienti in coda di poter scaricare un pezzettino del file che desiderano (solitamente si dice che aspettano che si renda disponibile uno slot di upload). Questa lista viene mostrata cliccando il pulsante Uploads nella finestra Trasferimenti.
Delle varie colonne a noi ne interessano due: la colonna Voto Voto ( in alcune versioni e mod di eMule viene etichettata anche come colonna Valore ) e la colonna Punteggio.

 

A questo punto dovremmo aver compreso che la colonna Voto mostra i Voti/Valori che il nostro eMule assegna agli altri client quando questi entrano in coda e tali valori dipendono da : eventuali crediti guadagnati da quel client e dallo stato del client ( ad esempio stato di  utenti bannati o per i quali è fallita l'identificazione sicura. In tal caso il Voto è 0 )

 

La colonna Punteggio contiene un altro numero, detto appunto punteggio del client,  che si ricava tenendo conto del tempo che quel client ha speso in coda e del valore della priorità di upload attribuita al file per il quale quell'utente si è accodato.

E' il punteggio a determinare la posizione in coda.  I client con il punteggio più alto , quelli che sono identificati con le stelline *** saranno i prossimi a scaricare non appena si libero uno slot.  Il punteggio dipende dal tempo di conseguenza aumenta per tutti con il passare dei secondi tuttavia aumenta con velocità diverse. E' appunto la velocità con cui aumenta il punteggio a determinare la velocità di avanzamento di un client in coda ( ad esempio con riferimento all'esempio della figura sopra se la velocità di B è maggiore di quella di A vuol dire che l'aumento del punteggio di B è più veloce dell'aumento del punteggio di A)

 

Occorre a questo punto solamente comprendere quali sono le relazioni con vui vengono assegnati i Voti e calcolati i Punteggi e magari fare qualche esempio.

Valore ( Voto )

eMule è un client tendenzialmente 'buono'. E' portato ad assegnare a tutti i client che entrano nella sua coda un Voto/Valore alto che è uguale a 100. Ma eMule è un client anche 'giusto' e nell'assegnare un voto ai vari client terrà conto di alcuni parametri tra cui appunto i crediti accumulati, lo stato ( bannaggio, identificazione sicura avvenuta o meno ) e in misura minima anche della versione usata da eMule ( client eMule precedenti alla versione 0.20a vengono sfavoriti ).

Tiene in conto queste cose moltiplicando il valore 100 che attribuirebbe di default ( ovvero in condizioni di assenza di credito, stato normale e versione superiore alla 0.20a ) per dei numeri positivi che chiameremo Moltiplicatori.

 

Vediamo quali sono i principali Moltiplicatori:

  • Moltiplicatore di stato : x0  ( attribuito ad utenti bannati o per altri motivi )
  • Moltiplicatore di credito : da x1 a x10 ( il sistema dei crediti calcola il modificatore in base al rapporto upload/download )
  • Moltiplicatore di priorità:
    1. Priorità Release - x1.8
    2. Priorità Alta - x0.9
    3. Priorità Normale - x0.7
    4. Priorità Bassa - x0.6
  • Moltiplicatore versione obsoleta: x0.5 ( se si possiede una versione di eMule inferiore alla 0.20a )

( Se usate una versione di eMule più vecchia della .27a i valori dei moltiplicatori sono leggermente diversi. Non li riporto per non creare confusione e perché credo che ormai siano pochi ad usarla. Se siete comunque interessati li trovate in questa pagina del sito ufficiale )

 

Nota - Nel documento ufficiale in cui si spiega il funzionamento della coda ed il calcolo del Voto e del Punteggio il Moltiplicatore di priorità viene utilizzato nel calcolo del Voto insieme agli altri moltiplicatori. In questa guida io lo userò per il calcolo del Punteggio. E' chiaro che, come vedremo fra poco, poiché il Punteggio è direttamente proporzionale al Voto dall'associatività della moltiplicazione il risultato non cambia. Il motivo di questa mia scelta è che rintengo che questa spiegazione generi meno confusione in quanto nell'interfaccia grafica di eMule ufficiale il Voto non tiene effettivamente conto del moltiplicatore di priorità, ovvero il voto sembra non tenere in conto della priorità di upload attribuita ai file in condivisione...mentre il Punteggio ne tiente conto. Ora ritengo del tutto irrilevante conoscere precisamente dove avviene tale moltiplicazione se sul Voto o sul Punteggio ma nonostante questo ho deciso di seguire questa linea come dicevo per maggiore chiarezza e coerenza con quanto si può effettivamente leggere sull'interfaccia grafica di eMule. A dimostrazione di quanto detto ci sono i seguenti esempi di calcolo del Voto e del Punteggio.

A questo punto possiamo dare la formula per il calcolo del voto:

Voto = 100 * Moltiplic. di stato * Moltiplic. di Credito * Moltiplic. versione obsoleta

Esempio calcolo Voto

Consideriamo il caso dell'utente del seguente esempio preso dalla mia coda di upload ( nota che alcuni campi sono stati nascosti per rispetto della privacy ).

 

emule calcolo voto

 

 

Come si vede a questo utente è stato attribuito ( punto 2 ) il Voto 944.0 ( ricordo ancora che i termini Voto, Valore e in questo caso Punteggio Totale sono da considerarsi sinonimi ).

Come si è arrivati dal valore di default al valore 944.0? Mediante le regole che abbiamo spiegato prima. Da osservare che in questo caso l'utente usa la versione v0.43b per cui non occorre usare il moltiplicatore di versione obsoleta. Anche il moltiplicatore di stato può essere trascurato ( o equivalentemente posto uguale ad 1 ) perché l'utente non è bannato e l'identificazione sicura è avvenuta correttamente. Il moltiplicatore di credito ( qui chiamato  Modificatore UP/Down, punto 1 ) è uguale a 9.44.

Quindi

Voto = 100 * 9.44 = 944.0

Punteggio

Il Punteggio è direttamente proporzionale al Voto ma come detto tiene conto del tempo di attesa di ciascon client in coda.

Quando si libera un posto di upload eMule sceglie di inviare i files al client in coda col punteggio + alto.

Se diamo uno sguardo alla colonna Punteggio possiamo verificare che col trascorrere dei secondi il punteggio dei vari client aumenta con velocità diverse in dipendenza quindi da tra cose :

  1. Tempo
  2. Voto ( ribadisco Voto, Valore e Punteggio totale sono da considerarsi sinonimi )
  3. Modificatore di priorità

Cliccando sull'intestazione della colonna Punteggio si può ordinare la coda dei client per valori decrescenti di punteggio. Come si vede accanto al punteggio più elevato  ci sono degli asterischi

Punteggio e asterischi

La formula per calcolare il punteggio è :

Punteggio = ( Voto * [ tempo di attesa in coda in secondi ] * Moltiplic. di priorità ) / 100

I clients con un moltiplicatore complessivo ( dato dal prodotto di tutti i moltiplicatori ) maggiore di 1 saranno rappresentati da una icona di client gialla/luminosa eMule incona di stato gialla
 

Esempio calcolo Punteggio

Consideriamo l'utente mostrato nella figura in basso ( alcuni campi sono stati nascosti per salvaguardia della privacy )

 

Esempio calcolo punteggio

 

E' nella mia coda da 40 minuti e 44 secondi. Si è accodato per un file in priorità normale quindi il moltiplicatore di priorità sarà 0.7 (vedi sopra). Ha un Voto di 199 ( in realtà è un valore approssimato. Ho eseguito il calcolo manualmente e risulta 199.6 )

Il tempo di attesa in coda in secondi è : 40 * 60 + 44 = 2444.

Abbiamo tutti i dati per poter calcolare il Punteggio.

Punteggio = ( 199.6 * 2444 * 0.7 ) / 100 = 3414.75 che eMule approssima a 3415 come volevasi dimostrare.

Considerazioni finali

Riassumendo abbiamo visto come le code di eMule non evolvono in maniera lineare come in molti altri software p2p. Spesso si entra in coda in posizioni bassissime ( 1000 esimo posto ad esempio ) ma si comincia a scaricare dopo appena un trentina di minuti o poco più. Questo perché le velocità di avanzamento dei vari client possono essere diverse e si spiegano ricorrendo ai concetti di Voto ricevuto dal client all'ingresso in una coda e velocità di avanzamento nella coda stessa che corrisponde al rate di incremento del Punteggio In particolare abbiamo visto che i parametri che influenzano la velocità di avanzamento sono i moltiplicatori.

E' bene osservare però che non tutti i moltiplicatori hanno la stessa importanza.

 

Se il Moltiplicatore di stato di un client è uguale a 0 si  ha Voto = 0 e Punteggio = 0 ovvero il client non arriverà a scaricare mai nulla restando immobilie nella coda. E' bene quindi conservare un buono stato non usando versioni di eMule leechers per le quali spesso l'identificazione sicura fallisce. E' chiaro però che nella maggior parte dei casi sarà tutto in regola e quindi tale moltiplicatore verrà trascurato.

 

Allo stesso modo il moltiplicatore di versione obsoleta entrerà in gioco pochissime volte perché ormai sono pochissimi coloro che usano una versione di eMule inferiore alla 0.20a.

 

Il moltiplicatore di priorità assume un importanza sicuramente maggiore rispetto ai primi due. Se un client si accoda per un file che è stato impostato su priorità release il moltiplicatore sarà x1.8 che è un valore di un certo peso che attraverso il Voto agirà direttamente sul Punteggio e quindi sulla velocità nel risalire la coda.  Questo produrrà in ultima analisi una diffusione più celere dei files in Release rispetto agli altri files in condivisione.

 

Il moltiplicatore di credito come visto prima può arrivare ad assumere valori altissimi fino a x10 di conseguenza risulta essere il moltiplicatore più importante anche perché è in qualche modo controllabile dalla nostra condotta. Più siamo generosi verso gli altri in termini di banda di upload più il sistema dei crediti di eMule ci ricompenserà attravero appunto alti valori del moltiplicatore di credito che incrementerà molto il nostro Punteggio nelle code dei client che in passato hanno scaricato qualcosa da noi. Più condividiamo, diversifichiamo e curiamo i nostri files in condivisione più ampio e più vario sarà lo spetto degli utenti presso i quali guadagneremo crediti e questo migliorerà i nostri download.

 

Buon divertimento e buon download con eMule!

Top

 

 
 

© 2005 - 2006
Emule-Italia, Powered by P2PForum.it

Contenuti Pubblicati con Licenza Creative Commons