I link ed2k sono un metodo per identificare in modo univoco i file condivisi della rete peer-to-peer eDonkey. Il nome ed2k è un'abbreviazione di eDonkey2000, il nome del primo client sviluppato per reti eDonkey. I link non indicano in modo esplicito un indirizzo dal quale poter prelevare il file, ma contengono tutte le informazioni necessarie per poter eseguire una ricerca del file nella rete condivisa e poter così individuare i client che hanno a disposizione quel file.
Data la natura dinamica delle reti peer-to-peer (P2P), un metodo per identificare risorse per questo tipo di reti deve necessariamente essere indipendente da informazioni contingenti, come gli indirizzi IP dei client della rete.
D'altro canto per identificare un file in una rete P2P, non è sufficiente usare il nome del file, perché file diversi potrebbero avere lo stesso nome e file con medesimo contenuto potrebbero avere nomi diversi. Per questa ragione un link ed2k contiene anche informazioni sul contenuto del file, come la sua dimensione e una sequenza di caratteri alfanumerici, chiamata checksum, calcolata tramite la funzione di hash MD4 il cui valore dipende dal contenuto del file.
I link ed2k permettono di trattare i file della rete eDonkey come i comuni file disponibili in Internet tramite protocolli più tradizionali come FTP o HTTP. Essi possono ad esempio essere inseriti in una pagina web, e quando un utente clicca sul link, un client eDonkey, come ad esempio eMule, ricerca il file nella rete eDonkey e, se trovato, inizia il download automatico del file. Esiste una versione più generica dei link ed2k, chiamata link magnet, che permette di utilizzare anche altre funzioni hash, come SHA o MD5.
Un esempio di link ed2k è il seguente:
ed2k://|file|ubuntu-5.10-install-i386.iso|647129088|901E6AA2A6ACDC43A83AE3FC211120B0|/
Il link inizia sempre con ed2k://, segue poi una sequenza di campi informativi separati da una barra verticale (|).
Il primo campo indica il tipo di risorsa descritta dal link, file o server; il secondo contiene il nome del file; il terzo la sua dimensione in byte; e il quarto campo è un valore hash calcolato tramite la funzione MD4. Se il file supera i 9.28 MB di dimensione il calcolo viene eseguito dividendo il file in sottoparti da 9.28 MB; di ognuna di queste sottoparti se ne calcola il valore hash; tutti i valori hash così ottenuti vengono usati per calcolare il valore hash dell'intero file. Si ottiene così una sequenza di 32 cifre esadecimali, rappresentanti un numero a 128 bit, che identifica il file. Considerato che con un numero a 128 bit si possono rappresentare più di 3 × 1038 diversi file, la probabilità di una collisione, ovvero che due file abbiano lo stesso hash, è estremamente bassa.
Il link ed2k può anche includere un riferimento all'indirizzo IP di uno specifico client che ha a disposizione il file. Gli indirizzi dei client sono aggiunti alla fine della parte del link, ad esempio, riprendendo l'esempio precedente:
ed2k://|file|ubuntu-5.10-install-i386.iso|647129088|901E6AA2A6ACDC43A83AE3FC211120B0|/|sources,202.89.123.6:4662|/
Tuttavia l'utilizzo di questo tipo di link è sconsigliato in quanto un client può risultare disconnesso dalla rete eDonkey o, anche se connesso, potrebbe aver cambiato il suo indirizzo IP.
eMule, il client più utilizzato per connettersi alla rete eDonkey, dalla versione 0.44b supporta una estensione del formato ed2k che permette di aggiungere un codice di controllo per la gestione degli errori di trasmissione. Con questo codice, chiamato hash AICH (Advanced Intelligent Corruption Handling), è possibile realizzare un sistema che minimizza la quantità di dati da dover riscaricare quando i dati ricevuti risultano corrotti, ovvero diversi dai dati originari. Un esempio di link di questo tipo è il seguente:
ed2k://|file|ubuntu-5.10-install-i386.iso|647129088|901E6AA2A6ACDC43A83AE3FC211120B0|h=3BX7GGEHOYSPPV4RMGQUAEKUMQ8HOMDE|/
Aggiungere l'hash AICH al link non è necessario per usufruire di questo sistema avanzato di recupero degli errori. Esso infatti, se non presente nel link, verrà scaricato automaticamente da altri client della rete. I client che non supportano questa estensione ignoreranno la relativa parte nel link.
Alcuni client eDonkey, come eDonkey2000 ed eMule (dalla versione 0.43), possono scaricare i file anche utilizzando il protocollo HTTP. Per permettere ai client di usufruire di questa possibilità è necessario aggiungere al link ed2k l'indirizzo HTTP del file. Un esempio di link di questo tipo è il seguente:
ed2k://|file|nomefile.txt|31|a4463dc6d0fcece3b4a7cf6e9766ddf4|s=http://www.sito.org/nomefile.txt|/
Il file sul sito web non deve necessariamente avere lo stesso nome indicato nel link ed2k. Il client eDonkey2000 può anche supportare indirizzi di tipo FTP.
Un link ed2k può anche essere usato per identificare un server della rete eDonkey, quest'ultimo può così essere aggiunto nella lista dei server a disposizione di un client. Un esempio di link a un server è il seguente:
ed2k://|server|207.44.222.51|4242|/
Un file ed2k è un tipo di file che funge da contenitore per i link ed2k, utilizzato per indicare la posizione delle sorgenti di un particolare file sui sistemi remoti collegati alla rete eDonkey. Si tratta di file di testo, che si possono cioè realizzare e modificare con un comune editor, contraddistinti dall'estensione .ed2k.
I file ed2k possono essere collocati nel file system di un sito web, dove indicano ai client peer-to-peer eDonkey2000 e compatibili la posizione di un determinato file da scaricare. Sui sistemi su cui è installato eDonkey2000 o un altro client analogo, i file ed2k possono essere rilevati e interpretati dal browser, che avvia il download tramite eDonkey anziché, per esempio, tramite FTP, quando l'utente attiva determinati collegamenti presenti nelle pagine HTML del sito stesso. L'uso di questo meccanismo consente al gestore del server web un certo risparmio di larghezza di banda. Il riconoscimento e l'interpretazione dei file ed2k erano supportati nativamente dal solo Internet Explorer, mentre in Mozilla Firefox la funzionalità poteva essere aggiunta tramite un'apposita estensione.[senza fonte]
I file ed2k devono essere collocati nella stessa directory dei file corrispondenti messi a disposizione per il download, ovvero dei file il cui link ed2k è contenuto nel file ed2k in questione.
Si supponga per esempio di avere un file un_file.ext che si desidera mettere a disposizione degli altri client della rete. Con un normale editor di testo occorre creare, nella stessa directory, un file di nome un_file.ext.ed2k, in cui inserire il link ed2k alla posizione originale del file; occorre poi predisporre un normale collegamento ipertestuale al file un_file.ext nelle pagine di un sito web. Se l'utente che attiva quest'ultimo collegamento ha eDonkey2000 installato, il download del file ha inizio immediatamente.