In eMule il sistema di download è gestito da code.
Ogni eMule crea in automatico una lista di attesa (coda) in cui inserisce tutte le richieste di upload degli altri clients; ciò significa che ogni client che vi chiede un file sarà messo in una lista d'attesa stilata in base ad un punteggio attribuito dal vostro eMule (Punteggio Coda = Valutazione x Tempo di Attesa : 100 - Valutazione = 100 x Moltiplicatore dei Crediti x Moltiplicatore di priorità x Moltiplicatore dei Clients bannati - 100 é la valutazione di partenza che varierà in base ai diversi moltiplicatori).
Nel vostro eMule c'è un'unica coda di upload per tutti gli utenti che vogliono scaricare da voi.Quando scaricate un file siete voi invece ad entrare in coda dagli altri (il famoso QR - Queue Ranking) indica in che posto siete nella coda di upload dei vari cliets).
Quando iniziate a scaricare da qualcuno significa che siete alla posizione zero della sua coda (QR: 0).
In poche parole avete 5 mesi per "riscuotere" i vostri crediti prima che lui si dimentichi di voi (ovviamente avete da riscuotere solo se gli avete passato più roba di quanta ne avete scaricata, altrimenti è lui ad essere favorito).
Ad ogni avvio vengono cancellati gli utenti scaduti (viene utilizzato per memorizzare le informazioni il file clients.met dentro la cartella /config di eMule).
Se siete curiosi proseguite nella lettura, altrimenti saltate a fine pagina per il riassunto :)
Come funziona la CODA di eMule?
Se stanno scaricando da voi 6 utenti e uno di essi completa il suo blocco di 9MB, eMule prende l'utente con il punteggio più alto fra tutti quelli che stanno aspettando da voi.
Ogni client in coda ha infatti un punteggio, e quello col punteggio più alto
sta in cima alla coda ed è il primo ad essere servito.
Se volete sapere quanto è alto il vostro punteggio dovreste relazionarlo con tutti gli altri punteggi della lista di attesa che state considerando.
Se per una certa lista per l'utente X avete un punteggio Y e siete i primi nella lista, lo stesso punteggio potrebbe essere equipollente alla posizione numero 100 di un' altra lista (utente Z) perché in quella lista magari ci sono persone con un punteggio più alto del vostro. Conoscere il vostro punteggio infatti non porta a nessuna informazione utile perché dovreste relazionarlo ai vostri concorrenti caso per caso, sapere invece il vostro posto di attesa (QR) dà un'informazione molto più immediata ed utile (anche se puramente indicativa).
Il punteggio viene così calcolato (lo vedete nella colonna Punteggio Coda se guardate la lista dei clients in coda) :
punteggio = tempo attesa in coda x priorità file condiviso x crediti
Il tempo attesa in coda è il numero di secondi che quell'utente sta aspettando di scaricare. Ogni secondo è un punto e quindi 5 minuti (300 secondi) sono 300 punti.
Il moltiplicatore della priorità del file condiviso varia a seconda del file richiesto:
• Release 1.8
• Alta 0.9
• Normale 0.7
• Bassa 0.6
• Molto bassa 0.2
Se come suggerito avete lasciato la modalità automatica di gestione delle priorità di upload (la scelta migliore), eMule utilizzerà solo i valori Alta[+], Media[=] e Bassa[-]. Molto bassa e release sono solo assegnabili manualmente.
Il moltiplicatore dei
Crediti varia da 1 a 10 ed è stabilito dal rapporto tra dati inviati e dati ricevuti da un singolo client in base alla regola che gestisce il sistema dei crediti.
Il moltiplicatore dei clients bannati assegna 0 ai client che identifica come BAD
(client con Mod, ovvero versioni modificicate di eMule aggressive).
Il moltiplicatore di versione obsoleta assegna un "moltiplicatore aggiuntivo di o,5" se il client usa una versione eMule inferiore alla 0.20a.
Oltre al valore del Punteggio potrete leggere:
(ID basso) questo vi segnala che quel chient ha ID basso,
**** il client ha ID basso ed è il prossimo che riceverà uno slot di upload
Fa eccezione a tutte queste regole il client a cui avete assegnato lo "slot amico" in questo casa la sua valutazione sarà immediatamente 268435455 e gli permetterà di essere in testa a tutta la coda.
Ora facciamo un esempio di un utente che sta in coda da noi 10 minuti, senza
crediti, e che ha richiesto un file in priorità Alta:
600 x 0.9 x 1 = 540 punti
Prendiamo invece un client che sta in coda da 30 minuti, sempre senza crediti, ma che richiede un file in priorità bassa: 1800 x 0.6 x 1 = 1080 punti
I tanto famosi CREDITI
ll valore dei crediti varia da 1 a 10 ed eMule usa 2
formule per calcolarlo.
Questo valore viene calcolato dal VOSTRO computer per favorire o penalizzare gli ALTRI utenti che vogliono scaricare da voi. Allo stesso modo ogni utente a cui siete in coda per scaricare un file effettuerà il calcolo per decidere quando sarà il vostro turno.
FORMULA1
crediti = (bytes ricevuti x 2) / bytes inviati
Ad esempio se da un client avete ricevuto in passato 10MB e ne avete inviati 1:
crediti = (10 x 2) / 1 = 20 (cioè 10 dato che il massimo è 10)
FORMULA2
crediti = radice quadrata dei (Megabyte ricevuti + 2)
Ad esempio se in passato abbiamo ricevuto da lui 10MB, il risultato è:
radice quadrata di (10 + 2) = circa 3.5
eMule sceglie il valore più basso fra i due calcolati.
Nel nostro caso il valore crediti è 3.5, in quanto la formula 2 ha
riportato un valore più basso di quanto ha riportato la formula 1.
Ci sono anche altri vincoli nel calcolo, come ad esempio il fatto che se abbiamo scaricato meno di 1MB da quell'utente, gli diamo comunque crediti=1.
Per capire meglio come funziona il sistema ecco come si presenta un grafico 3D dei crediti calcolato per 9 diversi valori dei megabyte scaricati in passato da quell'utente:
Per valutare l'algoritmo utilizziamo sull'asse X come valore l'upload ratio cioè Upload/Download per quell'utente.
Un valore <1.0 significa che siete stati "cattivi" con lui, perchè la somma di tutto quello che avete dato a lui in passato è inferiore a quello che vi ha dato lui, mentre un valore >1.0 significa che siete stati "buoni" con lui, perchè gli avete dato più di quanto ricevuto. L'asse X ha i valori di upload ratio da 0 a 2.0 con passi di 0.1 mentre gli ultimi 3 valori sono 3,4 e 5 per dimostrarvi che il risultato non cambia.
Sull'asse Y ci sono invece i MB che quell'utente vi ha fatto scaricare da lui (poichè nella formula2 sono richiesti).
I valori scelti vanno da 0.1 (cioè 100KB) a 1000 MB, ma dopo 98 MB si raggiunge già la stabilità perchè
radice quadrata di (98+2)=
10. Poichè si prende il minimo fra le 2 formule e 10 è il massimo consentito, il valore di MB scaricati non influisce più sul risultato.
Dall'analisi del grafico, del codice sorgente di eMule e della tabella creata per calcolare i valori (di cui un riassunto avete qui sotto) si deduce che:
- Se non avete mai incontrato un utente gli date crediti=1, questo valore è "neutro" perchè non modifica il punteggio.
- Se il ratio ≥ 2 cioè avete dato almeno il doppio di ciò che avete scaricato, assegnate crediti =1 cioè siete imparziali nei suoi confronti.
- Se il ratio è compreso fra 1 e 2 (cioè siete stati moderatamente buoni con lui) i crediti vanno da 2 a 1 quindi lo favorite un po' rispetto a tutti gli altri.
- Se il ratio < 1 cioè siete stati cattivi perchè lui vi ha dato più di quanto ricevuto, i crediti vanno da 2 a 10. Il valore 10 è "sbloccato" solo se lui vi ha dato almeno 98MB, altrimenti il ratio assume un peso minore.
- Se voi fate scaricare il doppio di quello che avete ricevuto (ratio= 2) gli assegnate crediti=1 e lui vi riconoscerà crediti=4 o poco meno (perchè verso di voi ha ratio=0.5), quindi vi favorirà notevolmente.
- Il sistema favorisce un po' gli scambi fra coloro che si conoscono già, infatti se entrambi hanno ratio=1 assegna crediti=2, mentre ad uno sconosciuto assegna crediti=1
- Il sistema favorisce molto coloro che vi hanno fatto scaricare almeno 1MB e a cui non avete mai dato nulla, infatti assegna a loro crediti=10 (non appena gli date qualcosa interviene il sistema di calcolo normale)
- Se ad un utente date lo slot amico gli assegnate punteggio = 268435455
(praticamente crediti infiniti) perciò scaricherà continuamente da voi finchè non disabilitate lo slot o riavviate eMule. Poi avrà sempre crediti 1 (quindi sarà penalizzato) finchè non vi dà almeno la metà di quello che gli avete fatto scaricare in passato.
Upload Ratio con quell'utente (Up/Down) |
0-0,99 | 1 | 2 | 5 | 10 | 15 | 30 | 60 | 98+ |
---|---|---|---|---|---|---|---|---|---|
0 | 1,0 | 10,0 | 10,0 | 10,0 | 10,0 | 10,0 | 10,0 | 10,0 | 10,0 |
0,20 | 1,0 | 1,7 | 2,0 | 2,6 | 3,5 | 4,1 | 5,7 | 7,9 | 10,0 |
0,40 | 1,0 | 1,7 | 2,0 | 2,6 | 3,5 | 4,1 | 5,0 | 5,0 | 5,0 |
0,60 | 1,0 | 1,7 | 2,0 | 2,6 | 3,3 | 3,3 | 3,3 | 3,3 | 3,3 |
0,80 | 1,0 | 1,7 | 2,0 | 2,5 | 2,5 | 2,5 | 2,5 | 2,5 | 2,5 |
1,00 | 1,0 | 1,7 | 2,0 | 2,0 | 2,0 | 2,0 | 2,0 | 2,0 | 2,0 |
1,20 | 1,0 | 1,7 | 1,7 | 1,7 | 1,7 | 1,7 | 1,7 | 1,7 | 1,7 |
1,40 | 1,0 | 1,4 | 1,4 | 1,4 | 1,4 | 1,4 | 1,4 | 1,4 | 1,4 |
1,60 | 1,0 | 1,3 | 1,3 | 1,3 | 1,3 | 1,3 | 1,3 | 1,3 | 1,3 |
1,80 | 1,0 | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 | 1,1 |
2,00+ | 1,0 | 1,0 | 1,0 | 1,0 | 1,0 | 1,0 | 1,0 | 1,0 | 1,0 |
Che differenza c'è fra crediti=1 e crediti=10 è E' tanto o poco?
Poichè il valore dei crediti viene moltiplicato per ottenere il punteggio di quell'utente, avere un punteggio dieci volte maggiore significa che lui scala la vostra coda di upload più in fretta del normale, scarica 9MB, torna in fondo e la risale velocemente, quindi nel complesso scarica più spesso e quindi più mega nello stesso tempo.
Esempio:
Consideriamo "priorità file condiviso" = 1 e ingresso in coda di utenti simultaneo, quindi tutti con tempo attesa=1:
Tempo attesa (s) | Punteggio con crediti = 1 |
Punteggio con crediti = 2 |
Punteggio con crediti = 10 |
---|---|---|---|
1 | 1 | 2 | 10 |
2 | 2 | 4 | 20 |
5 | 5 | 10 | 50 |
60 | 60 | 120 | 600 |
(= 10 min) 600 | 600 | 1200 | 6000 |
(= 1 ora) 3600 | 3600 | 7200 | (=10 ore) 36000 |
Come si vede di fatto i crediti "simulano" un tempo di attesa più lungo in coda, e quindi favoriscono lo scaricamento: 1 ora di attesa per l'utente con crediti=10 equivale a 10 ore per un utente con crediti=1.
Esempio:
• stiamo uppando a 25KB/s con 6 slot, quindi circa 4KB/slot
• 100 utenti con crediti=1 entrano in coda da noi nello stesso momento insieme ad un utente con crediti=10
• non ci sono altri utenti in coda
• abbiamo una media di 7MB trasferiti per sessione (è difficile arrivare a 9)
Con queste ipotesi sono necessarie circa 8 ore per dare 7MB ad ogni utente ma nello stesso tempo quello che aveva crediti=10 ha scaricato 10 volte più degli altri, cioè 70 MB perchè ha sorpassato per 10 volte tutti gli altri che aspettavano.
COSE DA RICORDARE
- E' FONDAMENTALE METTERE IL LIMITE UPLOAD AL MASSIMO CONSENTITO (ovviamente in base alla vostra banda upstream effettiva, per verificarla effettuate un test con tutte le applicazioni che utilizzano la banda CHIUSE, eMule compreso): gli altri utenti vi riconosceranno più crediti perchè avrete fatto loro scaricare di più, e quindi scalerete prima le loro code di upload, scavalcherete un sacco di gente che aspetta da molto più tempo e scaricherete più spesso (fino a quando ovviamente non avrete esaurito il vostro credito, cioè avrete ricevuto il doppio di quello che avete dato ad ognuno).
- NON E' POSSIBILE SAPERE I VOSTRI CREDITI perchè il valore è diverso per ogni utente con cui siete in contatto ed inoltre è completamente inutile poichè l'unica cosa che conta è avere il punteggio più alto quando si libera un posto per scaricare. Il punteggio considera il tempo di attesa, i crediti e la priorità con cui viene condiviso il file che volete scaricare e varia molto rapidamente.
Il punteggio calcolato dagli altri determina direttamente il vostro posto nella loro coda (QR) perciò per curiosità potete controllare il valore del QR (Queue Rank): dopo aver fatto doppio click su un file in trasferimento si espanderà la lista fonti e sarà visibile nella colonna "Priorità". Il suo valore viene aggiornato ogni 30 minuti.
Quando il QR è zero inizierete a scaricare, ma ricordate che potrete essere scavalcati o scavalcare altri utenti in attesa grazie ai "crediti" e alla "priorità del file condiviso" quindi è normale vedere dei salti anche di 50-100 posizioni sia in positivo che in negativo.
- Le differenze fra le priorità dei file condivisi sono importanti, perciò NON MODIFICATELE e lasciate che eMule le
gestisca in automatico.
La priorità release (o la powershare di alcune mod) sono da evitare, rischiate di favorire inutilmente files condivisi da migliaia di persone e di impedire lo scaricamento di files rarissimi che magari siete tra i pochi fortunati a possedere e ad aver conservato, se non siete voi il releaser del file lasciate che le priorità le gestisca eMule in base alla diffusione (assegnando priorita AUTOMATICA).