EDonkey2000 (web)

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 29 martie 2021; verificarea necesită 31 de modificări .

eDonkey2000 , eDonkey , eD2k  este o rețea de partajare a fișierelor construită pe principiul P2P bazat pe protocolul de rețea de nivel de aplicație MFTP . Nume informale comune în Runet : „măgar”, „măgar” [1] utilizatori de rețea - „măgari”.

Rețeaua constă dintr-un număr care variază în timp de programe client care rulează pe computerele utilizatorilor rețelei și un număr relativ mic (câteva zeci) de servere care interacționează între ele în funcție de schema client-server, client-client etc. .

Transferul fișierelor în rețea se realizează direct de la client la client, în părți, adică un client de rețea nu trebuie să aibă un fișier complet pentru a-l distribui altor clienți. Serverele nu sunt implicate în partajarea fișierelor.

Clienții pot fie să descarce părți din fișierele disponibile pentru descărcare de la alți clienți, fie să ofere altor clienți părțile pe care le au disponibile pentru distribuție.

Serverele, pe lângă unele sarcini auxiliare, îndeplinesc funcția de căutare a părților de fișiere publicate (adică, disponibile pentru descărcare de către alți clienți) de către clienți.

Există multe programe care sunt clienți ai rețelei eDonkey. Cele mai cunoscute dintre acestea sunt eDonkey2000 (client original, care nu mai este suportat, dar încă popular în zilele noastre), eMule și Shareaza (ultimele două programe suportă alte protocoale împreună cu eDonkey, dar doar eDonkey le este comun).

Identificarea fișierului

Fișierele din rețeaua eDonkey sunt identificate folosind hash-ul rădăcină MD4 al sumei sumelor MD4 ale părților fișierului. Acest lucru face posibilă tratarea fișierelor cu nume diferite, dar cu același conținut ca același, și să se facă distincția între fișierele cu conținut diferit, dar cu același nume.

Caută

Căutarea fișierelor în rețeaua eDonkey se realizează prin cuvinte cheie incluse în numele fișierelor și unele caracteristici suplimentare, cum ar fi dimensiunea fișierului, extensia, rata de biți etc. Rezultatul căutării returnate de server este o listă de nume de fișiere cu o rădăcină MD4 corespunzătoare fiecărui nume, suma fișierului găsit, adresa IP și portul clientului care are cel puțin o parte din acest fișier disponibil pentru descărcare.

Fiecare client este conectat la unul dintre serverele de rețea. Clientul spune serverului ce fișiere partajează (aceste fișiere includ atât fișiere partajate explicit de utilizator prin interfața programului client, cât și fișiere pe care clientul însuși le descarcă sau le-a descărcat deja de la alți clienți, dar nu utilizatorul șters din lista de descărcare a programului client). programul client.Fiecare fișier descărcat de client este partajat automat de îndată ce este primită cel puțin o parte din acesta). Fiecare server menține o listă cu toate fișierele partajate ale clienților conectați la el. Când un client caută ceva, acesta trimite o cerere de căutare către serverul său principal. Ca răspuns, serverul verifică toate fișierele pe care le cunoaște și returnează clientului o listă de fișiere care corespund cererii sale.

Puteți căuta simultan pe mai multe servere. Astfel de solicitări și rezultatele acestora sunt transmise prin protocolul UDP pentru a reduce încărcarea canalului și numărul de conexiuni la servere. Această caracteristică este utilă în special dacă o căutare pe serverul la care clientul este conectat în prezent returnează un rezultat scăzut.

Pentru a facilita găsirea fișierelor, unele site-uri web publică sume MD4 de fișiere ca link ED2K . Unele dintre aceste site-uri conțin și liste de servere active pentru ca utilizatorii să actualizeze liste.

Se încarcă

Descărcarea fișierului se bazează pe principiile protocolului de rețea al stratului de aplicație MFTP și are loc fără participarea unui server. Un client care dorește să descarce un fișier obține informații despre disponibilitatea unor părți din acest fișier în domeniul public de la alți clienți folosind rezultatele unei căutări pe server și se conectează direct la astfel de clienți folosind adresa IP și portul primit. Suma hash rădăcină MD4 a fișierului, conținută și în rezultatele căutării, este utilizată pentru a identifica fișierul solicitat. În plus față de suma hash, cererea de descărcare include offset-ul de început și de sfârșit al părții necesare a fișierului. Clientul trimite solicitări de descărcare a părților din fișierul care lipsesc din el către alți clienți care au aceste părți, până când asamblează un fișier complet din aceste părți. Accesarea altor clienți în mod independent, astfel încât diferite părți ale unui fișier să poată fi descărcate de la diferiți clienți în același timp, accelerând descărcările fișierelor. La primirea inițială a oricărei porțiuni a unui fișier, clientul de descărcare informează serverul de căutare că fișierul este parțial disponibil pentru descărcare de către alți clienți. Această proprietate a protocolului este unul dintre principiile fundamentale ale rețelelor descentralizate „descărcare – distribuire” și servește scopului creșterii numărului de surse de fișiere disponibile pentru alți clienți. Când un fișier este eliminat din lista de fișiere descărcabile, părți din acel fișier nu mai sunt disponibile pentru descărcare de către alți clienți.

Conexiuni de la server la server

Periodic, serverele comunică între ele pentru o perioadă scurtă de timp. În timpul acestei sesiuni, serverul, anunțându-și existența, trimite o listă cu toate celelalte servere cunoscute de el. Astfel, serverele mențin o listă cu alte servere active. Când un client se conectează la un server, acesta îi poate oferi o listă de servere cunoscute.

Algoritmul hash ed2k

Algoritmul hash utilizat pentru a calcula ID-ul (suma rădăcină MD4) al unui fișier:

  1. Fișierele sunt împărțite în bucăți egale de 9.728.000 de octeți (9500 KB) și restul.
  2. Pentru fiecare piesă, se calculează o sumă hash MD4 de 128 de biți.
  3. Dacă dimensiunea fișierului este un multiplu de 9.728.000 de octeți, adică dimensiunea restului este 0, suma pentru acest rest gol este încă calculată.
  4. Apoi toate sumele calculate sunt combinate într-o singură matrice (listă hash) și se calculează suma hash MD4 a întregii matrice. Această sumă este suma rădăcină MD4 a fișierului - și un identificator în rețeaua eDonkey.
  5. Dacă dimensiunea fișierului este mai mică de 9.728.000 de octeți, atunci lista hash nu este compilată, iar suma hash MD4 a întregului fișier servește ca identificator de fișier.

Există o a doua versiune a algoritmului sumei de verificare a fișierelor care dă un rezultat diferit pentru fișierele care sunt un multiplu al dimensiunii secțiunii, adică 9.728.000 de octeți, 19.456.000 de octeți etc. Algoritmul original (utilizat în eDonkey2000 înainte de v0.5.0) ) conține o eroare (funcție) din cauza căreia, pentru fișierele cu dimensiuni care sunt multipli de 9.728.000 de octeți, se adaugă o sumă de verificare a secțiunii goale. Nu toate programele iau în calcul această caracteristică (de exemplu, eMule o ia în calcul, dar Shareaza  nu). În eDonkey2000 de la v0.5.0 la v1.4.3, această „funcție” este fixă.

Diferențele față de algoritmul original sunt următoarele:

  1. Dacă dimensiunea fișierului este mai mică sau egală cu 9.728.000 de octeți, atunci suma MD4 a întregului fișier este utilizată ca identificator.
  2. Dacă dimensiunea fișierului este un multiplu de 9.728.000 de octeți, atunci nu se adaugă nicio sumă de control „blank” .

Diferențele dintre algoritmi sunt atât de minime (și apar doar la sfârșitul calculului sumei), ceea ce face posibilă calcularea ambelor sume în același timp - aproape fără pierderi de performanță. A doua versiune a sumei pentru astfel de fișiere „speciale” poate fi specificată, de exemplu, în comentarii (asta face programul avdump ).

Aici, de exemplu, sunt sume de control pentru fișierele care constau numai din coduri zero pentru diferite „variante” ale algoritmului. Le puteți obține (fișiere), de exemplu, cu următoarea comandă bash pentru sistemele Unix:

pentru i în 1 2 3;do dd if=/dev/zero of=zero$i bs=9728000 count=$i;done
Dimensiunea fișierului (octeți) Algoritmul „original” ed2k Algoritmul ed2k „Corectat”. Suma MD5
9 728 000 fc21d9af828f92a8df64beac3357425d d7def262a127cd79096a108e7a9fc138 0a62f20c78368021785dbb79b826d26c
19 456 000 114b21c63a74b6ca922291a11177dd5c 194ee9e4fa79b2ee9f8829284c466051 d01f6501678711bdaf6ef11237117c95
29 184 000 1932517fb346b94b5fbdcab55bf92169 9a68abb94d13f1e6ea13e968279652d7 fc0548e86e6106b68ffc248d871b8c2a

Link ED2K

Folosit pentru partajarea fișierelor și publicarea pe portaluri.

Exemplu [2] :

ed2k://|fișier|[Numele fișierului]|[Dimensiunea fișierului]|[ hash fișier ed2k ] | h= [ hash fișier AICH ]| p= [ Md4 hash prima parte ]:[ Md4 hash a doua parte ]:... | s= [ link URL către fișier]|/| surse ,[ adresa IP sursă ]:[ port sursă ]|/

Cea mai comună este forma scurtă.

ed2k://|fișier|[Numele fișierului]|[Dimensiunea fișierului]|[ hash fișier ed2k ]|/

h - AICH (Advanced Intelligent Corruption Handler)

Hash suplimentar pentru linkul ed2k. Folosește părți mai mici pentru a obține un hash. Acest lucru vă permite să examinați fișierul mai detaliat pentru a găsi și a remedia erorile și reduce cantitatea de date necesară pentru a restaura fișierul.

Este recomandat să îl publicați împreună cu un link, apoi devine imediat un hash de încredere și poate fi folosit imediat pentru a restaura fișierul. Dacă nu este publicat împreună cu linkul, atunci clientul va trebui să obțină același hash AICH din mai multe surse înainte ca acest hash să fie recunoscut ca fiind de încredere.

Calcul hash AICH

Pentru a obține un hash, un bloc standard ed2k (9.728.000 de octeți) este împărțit în 53 de părți (52 cu 180 KB și 1 cu 140 KB). Fiecare parte este ulterior procesată de algoritmul sha1 . În continuare, perechile de hash sunt trecute din nou prin algoritmul sha1 până când se obține un singur hash.

p este un set de hash -uri MD4

Acest câmp listează hashurile MD4 ale blocurilor ed2k separate prin două puncte „:”. Vă permite să verificați părțile pentru o potrivire, chiar dacă nu există nicio modalitate de a obține un set de hasheuri într-un alt mod, de exemplu, dacă singura sursă a fișierului este un link URL .

s - link URL

Permite, în absența surselor ed2k, să descărcați un fișier dintr-un link URL . Serverele sunt de obicei disponibile tot timpul, spre deosebire de sursele ed2k, care sunt în mare parte computere personale conectate la Internet. Din acest motiv, descărcarea inițială are loc de pe server, iar distribuția ulterioară are loc deja în rețeaua ed2k, care descarcă serverul și crește disponibilitatea fișierului.

Link-ul trebuie să fie codificat URI înainte de lipire.

surse - surse

Vă permite să specificați sursele ed2k care pot fi consultate pentru descărcarea fișierului. Acest lucru face posibilă începerea descărcarii unui fișier fără a vă conecta la serverul ed2k, pur și simplu prin conectarea directă la sursele listate.

Acest câmp are sens numai dacă sursa are o adresă IP fixă.

Colecții

Link-urile pot fi grupate în colecții pentru publicare pe portaluri .

Server Lugdunum

  • Serverul Lugdunum  este software -ul server al rețelei eDonkey2000. Majoritatea serverelor din rețeaua ed2k sunt alimentate de Lugdunum . Este mai scalabil și mai eficient decât serverul metaMachine eDonkey original.

Vezi și

Link -uri

Note

  1. Numele informale „măgar”, „măgar” și „măgar IE” se pot referi și la browserul Microsoft Internet Explorer .
  2. link împărțit în rânduri pentru lizibilitate