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).
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.
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.
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.
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 utilizat pentru a calcula ID-ul (suma rădăcină MD4) al unui 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:
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;doneDimensiunea 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 |
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 ]|/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 AICHPentru 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.
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 .
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.
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ă.
Link-urile pot fi grupate în colecții pentru publicare pe portaluri .
Rețele anonime | |
---|---|
Distribuire a unui fisier |
|
Navigarea pe web | |
Remaileri |
|
Mesageri |
|
Darknet | |
Motoare de căutare | |
Rețele fără fir | |
Criptomonedă | |
VPN |
|
Sisteme de operare |
URI | scheme|
---|---|
Oficial | |
neoficial |
Funcții hash | |
---|---|
scop general | |
Criptografic | |
Funcții de generare a cheilor | |
Numărul de verificare ( comparație ) | |
Hashes |
|