FAQ eD2k-Kademlia-it
English | Deutsch | Español | Français | Italiano | Nederlands | Polish | Russian
Contents
- 1 Che cos'è ED2K?
- 2 Che cosè Kademlia?
- 3 Kademlia è come Overnet?
- 4 Che cos'è un chunk?
- 5 Che cos'è un hash?
- 6 Perchè dopo una ricerca, certi file che sono gli stessi appaiono come file differenti tra i risultati, sebbene abbiano lo stesso nome?
- 7 Che cosè il Basso e Alto ID?
- 8 Perché Kademlia dice ancora che è "firewalled"?
- 9 Che cosa fa esattamente ogni porta?
- 10 C'è qualche limitazione nella rete ED2K?
- 11 Nella finestra ricerca, che filtro si usa per ogni tipo di file?
- 12 Che cosè una fonte?
- 13 Che cosè tutta quella roba sui crediti, velocità e punteggio?
- 14 Che cosè uno slot?
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?
Se hai capito "Che cos'e' un hash" lo capirai facilmente. Quando si inizia una ricerca, il server comunica al cliente ED2K il nome del file trovato e l'hash di ogni file che corrisponde alla ricerca. Se i due file, anche se sono lo stesso, hanno differenze di contenuto - non importa se piccole o grandi - l'hash risulta diverso e sono considerati due file diversi. Questa e' anche la ragione per cui due file con nome diverso appaiono come lo stesso file: sulla rete ED2K non importa il nome del file ma l'hash.
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?
Tieni a mente che i filtri nella finestra di ricerca non dipendono dal tipo di file ma dalle estensioni dei nomi, come segue:
* Archivio: .ace .arj .rar .tar.bz2 .tar.gz .zip .Z * Audio: .aac .ape .au .mp2 .mp3 .mp4 .mpc .ogg .wav .wma * CDImage: .bin .ccd .cue .img .iso .nrg .sub * Immagine: .bmp .gif .jpeg .jpg .png .tif * Programma: .com .exe * Video: .avi .divx .mov .mpeg .mpg .ogg .ram .rm .vivo .vob
Quindi un filmato che ha il nome "Compleanno.zip" apparirà nel filtro Archivio ma non in quello Video.
Che cosè una fonte?
E' un cliente che condivide alcuni spezzoni (chunk) che hai nella coda di scaricamento e che non hai ancora completato. Ovviamente, piu' fonti riesci ad ottenere per il file e piu' possibilita' hai di scaricarlo e di scaricarlo velocemente. Tieni presente che c'e' differenza tra "fonti" e "fonti disponibili" se hai un LowID, perche' "fonti" significa in generale clienti che hanno pezzi di file che devi scaricare, mentre "fonti disponibili" sono i clienti che hanno file che stai cercando di scaricare e da cui puoi effettivamente scaricare (cioe' che hanno ID alto).
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.