FAQ eD2k-Kademlia-it

From AMule Project FAQ
Revision as of 16:49, 28 April 2007 by 87.14.231.86 (Talk)

Jump to: navigation, search

F.A.Q. di eD2k-Kademlia

(Tradotto da SNeo & floyte)

English | Español | Italiano | Deutsche | Français | Nederlands | Polish | Russian

Che cosè ED2K?

ED2K è un protocollo originariamente usato dal client P2P (Peer-to-Peer) eDonkey2000, da dove viene il nome. E' un protocollo basato sul sistema client-server, con l'abilità di scambiare fonti tra i client.

La rete ED2K si basa sui server non come reti quali Kazaa, significa che la prima cosa da fare quando avvii aMule è collegarsi a un server (manualmente o automaticamente).

Una volta connesso su un server, il client può ricercare, o localmente (al server in cui si è connesso) o globalmente (a tutti i server), qualsiasi file,e i server a cui è stata inviata la richiesta forniranno al client una lista con tutti i file che corrispondono ai criteri di ricerca.

Se un utente comincia un download, il client chiederà al server le fonti, che saranno fornite dal server sotto forma di indirizzi IP dei client che hanno comunicato al server di avere il file specificato.

Che cosè Kademlia?

Traduzione e binari per amule-cvs presenti su questo sito

Kademlia è come Overnet?

Che cosè un chunk?

Nel protocollo ED2K, per evitare di condividere file rovinati, ogni file viene diviso in varie parti chiamate chunks; in seguito ad ogni chunk viene dato un hash (leggi sotto cos'è un hash). Ogni chunk è di 9,28 MB, quindi un file di 15MB verrà diviso in due chunk (9,28 MB + 5,72 MB), un file di 315 KB sarà in un solo chunk e un file di 100 MB sarà diviso in 11 chunk (10x9,28 MB + 7,2 MB)


Che cosè un hash?

Dividendo ogni file in chunk (vedi sopra) si evita il problema di scaricare un intero file rovinato, in quanto solo il chunk rovinato dovrà essere scaricato di nuovo. C'è bisogno però di un metodo per identificare i chunk rovinati. Questo viene fatto con gli hash MD4.

Un hash MD4 è un numero unico che viene dato ad ogni chunk ed è il risultato di una operazione matematica su ogni singolo bit del chunk. Questo significa che modificando un solo bit nel chunk si ottiene un hash totalmente diverso. Il client deve verificare l'integrità di ogni parte del file mentre lo scarica.

Ogni chunk viene dotato di un hash, ma in più per avere un hash per il file, tutti gli hash dei chunk vengono concatenati uno dopo l'altro nell'ordine del file (hash_chunk1 + hash_chunk2 + hash_chunk3 + ...) e sulla stringa risultante viene calcolato l'hash. In questo modo, ogni file nella rete ED2K ha un identificativo univoco. L'hash del file non viene calcolato sul file, ma sugli hash dei suoi pezzi.

In realtà si deve conoscere sia l'hash del file che la sua dimensione. Queste informazioni sono contenute negli URL di ED2K che si trovano in molti posti.

Ecco un esempio:

ed2k://|file|eMule0.42f-Sources.zip|2407949|CC8C3B104AD58678F69858F1F9B736E9|/

Le parti che interessano sono la quinta, "2407949", che è la dimensione del file in byte, e l'ultima,"CC8C3B104AD58678F69858F1F9B736E9", che è l'hash memorizzato come numero esadecimale di 32 caratteri.

Il nome del file è irrilevante nel processo di identificazione del file.

Perchè dopo una ricerca, certi file che sono gli stessi appaiono come file differenti tra i risultati, sebbene abbiano lo stesso nome?

Che cosè il Basso e Alto ID?

== Quali porte devo configurare in un firewall o in un router per avviare aMule? ==

Si deve distinguere tra connessioni in entrata e in uscita. Normalmente, tutte le porte di un router sono aperte per l'invio di dati (connessione in uscita).

Quindi in questo caso normale, devi solo configurare le porte per le connessioni in ingresso:

aMule funziona anche senza porte specificamente aperte, ma non otterresti un ID alto in questo caso. Come detto sopra, per ottenere un ID alto la porta 4662 TCP (oppure quella impostata nelle preferenze) deve essere in ascolto (cioè aperta nel firewall e inoltrata dal router).

A parte quella porta, per avere un uso ottimale di ED2K, altre due porte dovrebbero essere in ascolto: le porte UDP 4672 e 4665 (cioè portaTCP +3). Entrambe possono essere cambiate nelle preferenze a qualsiasi altro valore.

Perché Kademlia dice ancora che è "firewalled"?

Se stai usando Kad e il tuo router fa il NAT (Traslazione Indirizzi di Rete) dovresti evitare che il router trasferisca la porta in uscita UDP numero 4672. Questo dovrebbe funzionare se hai già un ID alto ma lo stato di Kad è "firewalled".

Che cosa fa esattamente ogni porta?

Siccome quasi tutte le porte possono essere configurate a qualsiasi altro numero, faremo l'elenco delle impostazioni di default. La direzione del traffico è dal punto di vista del cliente (tu):

   * 4661 TCP (uscita): porta su cui ascolta il server (definita dal server)
   * 4662 TCP (uscita e ingresso): trasferimenti diretti tra clienti
   * 4665 UDP (uscita e ingresso): usata per le ricerche globali sui server e per le interrogazioni globali sulle fonti. E' sempre uguale a PORTA_TCP+3
   * 4672 UDP (uscita e ingresso): protocollo eMule esteso, punteggi di coda, File Reask Ping, Kad. Kad sarà 'firewalled' se il NAT (Network Address Translation) sposta questo numero di porta.
   * 4711 TCP: porta WebServer in ascolto.
   * 4712 TCP: porta connessione esterna. Usata per far comunicare aMule con altre applicazioni come WebServer aMule o con aMuleCMD.

C'è qualche limitazione nella rete ED2K?

Traduzione e binari per amule-cvs presenti su questo sito

Nella finestra ricerca, che filtro si usa per ogni tipo di file?

Che cosè una fonte?

Che cosè tutta quella roba sui crediti, velocità e punteggio?

Tutti e tre i concetti hanno a che fare col modo in cui la rete ED2K stabilisce le preferenze sulle code di invio.

Il punteggio è il valore più importante: il client con il punteggio più alto sarà il prossimo a cui verrà dato uno slot di invio. Il valore del punteggio è assegnato così: punteggio = velocità x tempo_di_attesa_secondi / 100. Così per capire il calcolo dobbiamo vedere cos'è la velocità.

La velocità la possiamo pensare come una preferenza obbiettiva. Cioè la preferenza che viene data ad un client senza preoccuparsi di quanto tempo ha aspettato. Quando un client viene aggiunto alla coda di invio, gli viene data una velocità di 100. Questo valore si modifica in questo modo:

A seconda dei crediti, la velocità viene moltiplicata da 1 a 10. A seconda della priorità del file, viene moltiplicata da 0,2 a 1,8 (Release 1,8 Alto 0,9 Normale 0,7 Basso 0,6 Bassissimo 0,2). Gli utenti con un software molto vecchio che sovraccaricano il traffico di rete vengono penalizzati moltiplicando per 0,5

I clienti banditi ottengono immediatamente zero (cioè la loro velocità viene moltiplicata per 0).

Questi tassi di moltiplicazione si chiamano "modificatori". I clienti con un valore di modificazione appena superiore a uno saranno segnati col giallo nell'icona.

Ci rimangono solo i crediti. I crediti sono il prezzo da pagare per scaricare file da uno specifico utente. I crediti si scambiano tra i due clienti, non sono globali, quindi non si possono vedere anche se puoi sapere quanti crediti gli altri clienti hanno su di te (cioè quanti crediti gli devi). Siccome i crediti sono gestiti da chi invia, potrebbe capitare di inviare file a un cliente che non gestisce i crediti per cui tu non guadagni nessun credito su di lui, anche se lui guadagna crediti su di te dato che il tuo software gestisce i crediti. I crediti sono memorizzati nel file clients.met

Il modificatore dei crediti usato dalla velocità è il minore di questi due: (totale_inviato x 2) / totale_ricevuto oppure radiceq(totale_inviato+2) I totali sono misurati in MB.

Se il risultato è minore di 1, viene impostato a 1 e se è maggiore di 10 è impostato a 10. In più, se il totale spedito è meno di 1MB, il modificatore è impostato a 1 e se il totale scaricato è zero il modificatore è impostato a 10.


Che cosè uno slot?

Quando si invia un file, la banda di invio (che può variare in dipendenza dal limite di invio o del limite naturale di banda della connessione) sarà suddivisa in slot. Ogni slot è una quantità di Kbps che verrà assegnata ad ogni cliente che cerca di scaricare da te.