mercoledì, ottobre 20, 2010

Velocizzare Emule e la mamma dei cretini

Tutti conoscono il programma di file sharing Emule.
Ma pochi hanno idea di come funzioni e quindi si affidano ai suggerimenti degli amici o alle fantomatiche "guide" che trovano online.

Andiamo a sfatare i miti:
1. Velocizzare Emule.
Non si può, in nessun modo. Motivo semplice, la "velocità" di Emule dipende dagli altri, non da noi. Nel senso che quando vogliamo scaricare un file dobbiamo mandare una richiesta alle "fonti", cioè agli altri Emule che possiedono un segmento di 9 mega e rotti. Questi ci assegnano un numerino e ci mettono in coda, poi quando arriva il nostro turno, decidono con che "velocità" farcelo scaricare in base alla loro configurazione. La somma di questi trasferimenti uno-a-uno costituisce la "velocità".

2. I crediti.
Costituiscono secondo me l'errore più grave di chi ha progettato Emule, sempre se qualcuno l'ha progettato. Infatti hanno dato il via ad una serie di errori e leggende, andiamo ad esaminarle:

2.a. I crediti premiano chi condivide file o chi fa scaricare gli altri.
Falso. Il sistema dei crediti non è centralizzato, semplicemente un client che scarica qualcosa da te in cambio ti dà una spinta nella sua stessa coda. Quindi i crediti vengono in maggior parte "spesi" quando ci si scambiano i segmenti di uno stesso file che stiamo scaricando con altri che stanno scaricando il medesimo file. I crediti che non si possono "spendere" immediatamente vengono memorizzati dal client che ha scaricato un segmento da noi nel caso prima o poi gli chiediamo qualcosa ma se non succede entro 5 mesi vengono cancellati.

2.b. Io condivido file, la gente li scarica, io accumulo crediti e quindi "velocizzo" il mio Emule.
Falso. Per quanto detto sopra, l'unico modo per utilizzare i crediti consiste nel mandare una richiesta allo stesso client che ha prima scaricato qualcosa da noi. Esistono milioni di client, facendoli scaricare da noi a caso la probabilità di richiedere qualcosa a uno che ha memorizzato dei crediti verso di noi è minima.

2.c. Senza crediti Emule scarica più lentamente o non scarica.
Falso. Emule nasce per utilizzare un network pre-esistente, quello di Edonkey. Siccome Edonkey non ha mai avuto crediti, ne consegue che tra un client che ha crediti e uno che non ne ha non esiste differenza sensibile. Il sistema dei crediti di Emule non solo è opzionale, cioè si può disabilitare nelle opzioni, ma è volutamente limitato per consentire a qualsiasi client di utilizzare il network, con o senza crediti.

E veniamo quindi alla mamma dei cretini:
Il cretino vero prende un file qualsiasi, preferibilmente un film porno e lo rinomina col nome di qualcosa che secondo lui è interessante, per esempio "AUTOCAD v.xyz install ITA.exe". L'idea sarebbe che la gente cerca "autocad", trova questo file e lo scarica, il nostro cretino "accumula crediti" e cosi facendo "velocizza Emule". In realtà, per quanto detto sopra sul meccanismo dei crediti, l'unico effetto concreto che il cretino ottiene è di sprecare banda, la sua e quella degli altri, senza alcun guadagno.
Qualcuno ha avanzato l'ipotesi che esistano cretini che rinominano i file per nascondere i film porno alla mamma. Direi che non regge perché se devo scegliere un nome per nascondere un file porno lo chiamo una cosa qualsiasi tipo "BootstrapIPs.dat" e non certo "AUTOCAD v.xyz install ITA.exe". Inoltre, se devo nascondere dei file e rinominarli, non sarebbe meglio toglierli dalla condivisione?

Secondo tipo di cretino, questo però più sveglio del precedente, diciamo un cretinetti. Notare che questo fa il ragionamento contrario al precedente.
Per il meccanismo descritto sopra dei crediti risulta evidente che condividere dei file completi non fornisce nessuna "spinta", dato che di solito chi scarica i nostri file completi non ha niente da darci in cambio. Per massimizzare l'effetto dei crediti mi conviene concentrare tutta il mio upload verso quei client che effettivamente hanno qualcosa che mi interessa e quindi solo i file incompleti, quelli che sto scaricando. Effetto pratico: togliere dalla condivisione un file appena si completa.
Questo ragionamento è tecnicamente corretto, sfrutta un effetto noto come "credit shaping". Peccato che cosi facendo si tolga ad Emule la sua ragione d'essere, cioè la ricchezza dei contenuti condivisi.

3. Abbassare il limite di upload "velocizza" il download.
Chiaramente insensato perché le due cose sono indipendenti. L'unica cosa da evitare è settare un limite troppo vicino o addirittura superiore alla capacità della linea, cioè alla banda effettivamente disponibile. Settare un limite di upload troppo basso non ha altro effetto che diminuire l'efficienza del network, dato che ognuno dipende dall'upload degli altri per il proprio download. Facciamo un esempio, se abbiamo una linea ADSL Base da 7Mega, la nostra capacità per lo upload sara' intorno ai 380Kb che significa un limite di circa 36-37KB (75%). Impostarlo a 11 o a 16KB come vedo in giro non serve a nulla se non a rallentare Emule.

4. IPFilter, Peerguardian, Peerblock, eccetera.
La leggenda vuole che queste funzioni, tramite l'uso di opportune blacklist, aumentino la "sicurezza" di Emule. A parte che il termine "sicurezza" in informatica ha un altro significato e qui invece sta per "anonimato", il fatto è che la leggenda è ancora una volta falsa. Infatti le blacklist bloccano miliardi di indirizzi IP senza nessun motivo e diminuiscono l'efficienza del network ma non possono bloccare gli IP delle eventuali "entità ostili" che ovviamente usano IP address anonimi e/o dinamici, cioè assegnati dal provider a caso. Quindi, non solo non otteniamo nessun vantaggio dal bloccare questi miliardi di indirizzi ma addirittura il contrario.
Nota:
L'unico caso un cui effettivamente IPFilter è utile si verifica quando esistono entità note che hanno un IP address statico, cioè i server. Filtrare i server però aveva senso quando si utilizzava l'aggiornamento automatico della lista server. Oggi che tutti usano liste di server "verificati" in sostanza anche questa funzione risulta superflua. In ogni caso per filtrare i server basterebbe una blacklist molto ma molto più piccola di quelle comunemente utilizzate.

4 commenti:

  1. io più che della lentezza del mulo sono rimasto scocciato da fatto che scaricando film, il 70% erano pornazzoni che nulla avevano a che vedere col titolo. Ho pertanto installato uTorrent, che ha altri difetti ma di pornazzi neanche l'ombra a meno che non li richiedi espressamente.

    RispondiElimina
  2. Ti ho spiegato sopra il motivo.

    Esiste un modo per aggirare l'inconveniente, metti un file in download, attendi di contattare un pò di fonti e poi vai nei dettagli/informazioni del file e verifichi con quanti e quali nomi il file è condiviso.

    UTorrent è un client del protocollo Bittorrent. Va bene per certe cose e meno bene per altre, in particolare se cerchi qualcosa di non proprio recente è difficile trovarlo.

    RispondiElimina
  3. è da un po' che non scarico più niente da emule ... la lentezza è uno dei motivi... il secondo, forse più importante, è che non riuscivo mai a scaricare quello che volevo.... forse è colpa delle mie pretese.... o forse non lo so usare O_O
    buona domenica ^____________^

    RispondiElimina
  4. Un punto fondamentale da capire è che Emule non serve a "scaricare".
    Emule serve per condividere con altre persone il contenuto del proprio disco.
    Questo implica una grande varietà di contenuti ma allo stesso tempo, dovendo disperdere la banda complessivamente disponibile per muovere tutti questi contenuti avanti e indietro, la banda che rimane disponibile per ognuno è poca, da cui la "lentezza".

    Per trovare quello che si vuole bisogna penare un po' ma non dipende da Emule, dipende dalla grande massa di cretini che lo usa.

    RispondiElimina