Internet Info, s.r.o. Lupa Root Měšec Podnikatel DigiZone Slunečnice Vitalia new Bomba Navrcholu Weblogy Jagg Woko Dobrý web Computer.cz SK: MojeLinky


Lupa.cz » Rubriky » Technologie » Peer to peer sítě od A do Z: Bittorrent a eDonkey

Peer to peer sítě od A do Z: Bittorrent a eDonkey

Jáchym Krasek – 25. 7. 2008 6:30

V prvním díle malého seriálu o peer-to-peer sítích jsme se v krátkosti podívali na přenos dat v sítích a představili jsme si první dvě výměnné sítě. V dnešním díle si představíme další dva známé zástupce těchto služeb: Bittorrent a eDonkey.

Nálepky
  1. Výměnné sítě (P2P)
První díl seriálu s úvodem do problematiky výměnných sítí vyšel na Lupě před týdnem.

Bittorrent

V současné době je pravděpodobně nejpoužívanější P2P sítí bittorent, přičemž tento název nesou celkem tři prvky. Za prvé jde o název distribučního protokolu, za druhé pro originální klientskou aplikaci pro tento protokol a za třetí se jedná o název typu souboru. Bittorrent byl vlastně přímo vytvořen k distribuci objemných dat, bez toho aby distributor musel k šíření vynaložit velké finance. Protokol vymyslel programátor Bram Cohen v dubnu roku 2001. O tři měsíce později, přesněji 2. července 2001, byla vydána první verze Bittorrentu. Originální BitTorrent klient byl napsán v Pythonu a zdrojový kód byl vydán pod BitTorrent Open Source Licencí. Pro tuto síť nakonec vzniklo mnoho klientů napsaných v různých programovacích jazycích a fungujících na různých platformách. Mezi ty nejznámější patří dnes velice populární μTorrent a také Azureus.

Síť bittorrent se od ostatních liší především v tom, že neobsahuje žádný způsob vyhledávání. Tím je celkově zjednodušena a šetří svou přenosovou kapacitou. Pro účel hledání souborů existují speciální www servery, které obsahují množství malých binárních souborů, zvaných (bit)torrenty. Tyto soubory v sobě nesou takzvaná metadata, většinou se jedná o jméno, velikost, datum vytvoření souboru, dále pak adresu trackeru, velikost bloku (části souboru) a binárně uložené SHA1 kontrolní součty jednotlivých bloků. Soubor s těmito metadaty má obvykle kolem 50 až 100 kB, navíc využívá formátu zvaného „bencoding“ pro zakódování dat. Tento formát je také využíván při komunikaci uživatelů s trackery a například zpráva „něco“ je zakódována jako „4:něco“ tedy {délka řetězce}:{řetězec}. Čísla se u tohoto formátu kódují jako „i{číslo}e“ takže číslo -7 máme zakódováno jako „i-7e.“

Tracker je speciální server, který pouze spojuje klienty stahující stejný soubor a snaží udržovat jejich aktuální seznam, přičemž na trackeru nejsou uložena žádné části těchto souborů. Tracker je pro správné fungovaní bittorentu nutností, bez něho stahování většinou nelze zahájit, pouze dokončit (když jsou již klienti spojeni). Využívá architektury klient-server a s klienty komunikuje pomocí protokol HTTP, obvykle na portu číslo 6969. Tracker také hlídá ratio (poměr download:upload) a většinou i nabízí různé doplňkové služby, jako jsou statistiky s chat.
bittorrent
zdroj: wiki

Ve chvíli, kdy klient obdrží metadata o souboru, snaží se připojit na tracker, ze kterého dostane seznam uzlů, které mají o daný soubor také zájem. Uzly jsou v síti bittorrent rozděleny do dvou typů: seeds, které mají daný soubor kompletní a již pouze odesílají, a peers, které daný soubor stahují a zároveň již také odesílají stažené části. Klienti se mimo jiné musí pravidelně ohlašovat trackeru, hlásí mu přenesená data, počet zbývajících dat a v neposlední řadě i svou IP adresu a číslo portu (tzv. peer_id). Poslední dvě zmíněné informace poté tracker předává ostatním uzlům, které stahují stejný soubor, viz začátek odstavce.

Klient již tedy obdržel od trackeru informace,kde se daný soubor v sítí nalézá a může se tedy připojit k ostatním peerům. Každý soubor je mimo jiné rozdělen na bloky, ty mívají obvykle kolem 250 KB. Po připojení si tyto uzly mezi sebou vymění seznamy svých bloků a klient si tedy může vybrat, o který blok požádá. V praxi se dnes používají dvě metody. Buď si klient požádá o náhodný blok nebo o blok nejméně se vyskytující. Krom toho si každý seed i každý peer může vybrat, komu svá data pošle. Nejčastěji je to uzel, který na oplátku posílá svá data. Každý blok je po stažení zkontrolován kontrolním SHA1 součtem uvedeným mezi metadaty v (bit)torrent souboru. Při dosažení 100 % souboru se peer okamžitě stává seedem, který nic nevyžaduje, pouze rozdává bloky. Je důležité, aby existoval vždy alespoň jeden seed s kompletním souborem, jinak není stažení kompletního souboru nikterak zaručeno.

Tato síť je tedy celkově na dobré technické úrovni a vše se stále vylepšuje. Noví klienti pro tuto síť například od roku 2007 umí pracovat s více trackery najednou, když jeden přestane fungovat, nahradí ho druhý. Dříve by v takovém případě bylo stahování onoho souboru skončeno. Jednoduchost šíření objemných dat nezůstala bez povšimnutí, a tak některé společnosti využívají bittorrent pro šíření svých děl. Za všechny lze jmenovat populární hru World of Warcraft, která bittorrent využívá pro šíření svých updatů. Většina linuxových distribucí je také šířena skrze torrenty.

Bittorrent samozřejmě nemohl zůstat nepovšimnut ze stran protipirátských organizací. Ty se mu věnují již téměř od jeho počátku a v poslední době to vypadá na skutečnou válku. V Malajsii nedávno vláda přikázala zrušit všechny hostované bittorrent trackery. Hostovala jich tam převážná většina a na chvíli byla síť částečně ochromena. Pozadu nezůstává ani švédská vláda, která hodlá podporovat monitoring webů s torrenty. Svítá na horší časy …

eDonkey

Jinak také nazývána eDonkey2000 či zkráceně eD2k. Síť vytvořil tým programátorů společnosti MetaMachine. Poučili se z chyb sítě Napster a podařilo se jim vytvořit velice oblíbenou síť. Jak to tak ale chodí, protipirátské organizace zasáhly a společnost MetaMachine dala od sítě ruce pryč. Síť však nyní funguje díky silné komunitě na mnoha neoficiálních serverech. Mezi populární programy patří eDonkey2000 a eMule.

emule

eDonkey je síť částečně závislá na centrálních serverech, které poskytují hledání, chat a obdobné věci. Serverů je dnes mnoho, je však ale téměř jedno, na který se připojíte. Servery, na rozdíl třeba od DirectConnect, spolu totiž komunikují a vyměňují si informace o svých uživatelích. V současné době existují tři typy serverového softwaru. První, originální software od firmy MetaMachine, je napsaný v C++. Má uzavřený kód a již delší dobu není podporován. Druhý je nazvaný jednoduše eserver, jehož autorem je programátor s přezdívkou Lugdunum. Má sice také uzavřený kód, ale je nadále vyvíjen a podporován. Většina dnešních eDonkey serverů běží právě na eserveru. Třetím je software nazvaný satan-edonkey-server. Ten byl vydán až v roce 2007, pár dní po zavření několika důležitých serverů. Vzbudil tedy podezření, že by se mohlo jednat o podvodný software, který by odesílal data o uživatelích třetí straně. Toto podezření se však nikdy nepotvrdilo.

Servery na síti eDonkey podporují nejen vyhledávání podle názvu, ale i vyhledávání dle velikosti souboru, bitrate a podobně. Nově jsou podporovány operátory AND, OR a NOT. Některé servery jsou umístěny přímo v USA, ostatní jsou roztroušeny po zbytku světa. A právě servery umístěné v USA vykazují ohromné množství uživatelů, až 1,5 milionu, což celkově dělá kolem 10-13 milionů uživatelů sítě eDonkey. Přesná čísla samozřejmě nelze zjistit. Původní eDonkey protokol byl pro lepší funkčnost rozšířen o některé nové prvky, stejně jako eserver a eMule. Ani základní verze, ani rozšířená verze protokolu však zatím není nikterak formálně zdokumentována.

p2country

Všechny soubory v sítí eDonkey jsou snadno identifikovatelné pomocí MD4 hashe. To pomáhá identifikovat stejná data s různými názvy a rozlišovat různá data se stejnými názvy. Jinak by totiž v síti vznikal obrovský chaos. Je také možné, že dvě odlišné části souboru mají stejný hash a tváří se tedy stejně, ale šance, že toto nastane, je malá a v praxi se tedy tento hash považuje za jedinečný identifikátor. Každý soubor je navíc rozdělen na bloky o velikosti přibližně 9 MB a každý z nich je kontrolován 128bitovým MD4 kontrolním součtem. Pokud by u kontrolního součtu došlo k chybě, musel by klient stahovat znovu celý 9MB blok. eDonkey však využívá metodu ICH (intelligent corruption handling), kdy 9MB blok rozdělí na 53 menších bloků o velikosti 180 KB, ty klient postupně stahuje a ověřuje, zda kontrolní součet již sedí. Kompletní stažené bloky jsou také ihned odesílány jiným uživatelům.

eDonkey má ale i řadu nevýhod. Tou zásadní je především dlouhá čekací doba na stahování. Tomu se lze ale částečně vyhnout, protože stejně jako u některých jiných sítí jsou upřednostňováni uživatelé, kteří nějaká data odesílají. Čím víc klient odesílá dat, tím více dostane bodů, které ho pak mohou vynést až na začátek fronty. Tyto body klient dostává od ostatních uzlů, je zde tedy poměrně malá možnost zneužití. Pokud tedy nic nenabídnete, moc toho také nestáhnete. A když stáhnete, často se jedná o fake soubory, kterými je síť doslova prosycena. Bohužel.

Tímto jsme zakončili dnešní díl našeho malého seriálu,v třetím pokračování se podíváme na nepříliš známou síť eXeem, populární FastTrack (Kazaa) a na zcela decentralizovanou síť Kademlia. V abecedním pořadníku jsme zatím vynechali síť Direct Connet, která přijde jako poslední a bude jí věnován celý článek.

Jáchym Krasek

Autor je studentem univerzity Pardubice a zaměřuje se předevšim na informační technologie. Občas píše také do magazínu Slunečnice, a na svůj blog, kde se věnuje většinou hudbě.

Školení: Základy programovacího jazyka Java

Akademie Root
  • formát zápisu algoritmů zapsaných v programovacím jazyku Java
  • překlad a spuštění aplikací
  • základy objektově orientovaného programování
  • třídy a objekty v Javě

Detailní informace o kurzu...

Anketa

Budou podle vás p2p sítě jednou využívány zejména k šíření legálního obsahu?

58%
22%
12%
1%
6%
Odpovědělo 298 čtenářů.

Názory

Sledování názorů

Registrovaným uživatelům nabízíme upozornění na nové názory e-mailem. Prosím, přihlaste se nebo se zaregistrujte.

Přehled názorů

Nastavení kvality: Vlastní Vše 2 3 4 5 6 7 8 9
binarni torrenty? anonymní uživatel 25. 7. 2008 8:30 Nový
   Re: binarni torrenty? Jen tak 26. 7. 2008 11:48 Nový
Fajn článek. Jaromír Adámek 25. 7. 2008 9:29 Nový
utorrent Ripper 25. 7. 2008 10:01 Nový
   Re: utorrent Jáchym Krasek 25. 7. 2008 10:07 Nový
   Re: utorrent Jara 25. 7. 2008 10:40 Nový
   Re: utorrent anonymní uživatel 25. 7. 2008 12:44 Nový
   Re: utorrent anonymní uživatel 25. 7. 2008 13:32 Nový
   Re: utorrent -_- 25. 7. 2008 13:52 Nový
   Re: utorrent anonymní uživatel 25. 7. 2008 18:29 Nový
   Re: utorrent stoural 25. 7. 2008 12:18 Nový
   Re: utorrent anonymní uživatel 27. 7. 2008 20:48 Nový
   Re: utorrent pepak 28. 7. 2008 19:39 Nový
   Re: utorrent anonymní uživatel 25. 7. 2008 12:53 Nový
   Re: utorrent SackX 26. 7. 2008 2:52 Nový
Trackery Sojkovec 25. 7. 2008 10:20 Nový
   Re: Trackery TNT 25. 7. 2008 13:20 Nový
   Re: Trackery Sojkovec 26. 7. 2008 10:38 Nový
I2P, šifrované sítě =Alex= 25. 7. 2008 15:36 Nový
   Re: I2P, šifrované sítě Jáchym Krasek 25. 7. 2008 20:39 Nový
RE: Peer to peer sítě od A do Z: Bittorrent a eDonkey anonymní uživatel 25. 7. 2008 17:28 Nový
RE: Peer to peer sítě od A do Z: Bittorrent a eDonkey hnedka 25. 7. 2008 20:44 Nový
   RE: Peer to peer sítě od A do Z: Bittorrent a eDonkey Jáchym Krasek 26. 7. 2008 0:34 Nový
Zobrazit kvalitníZobrazit všePřidat

Další články v rubrice Technologie

Vodafone_CZ na Twitter

Vodafone_CZ: @Milan_Dasek Dobrý den, pro nás je důležité, jak jsme na tom ve srovnání s našimi tuzemskými... více: http://cli.gs/zbmpg
18. 3. 11:50

Vodafone_CZ: @Kasp1k Dobrý den. V současnosti probíhají jednání mezi Vodafone a Google na globální úrovni. Jakmile... více: http://cli.gs/UeLAH
18. 3. 11:41

Vodafone_CZ: @adamkopp Dobrý den, Optimalizace prostřednictvím služby Bez obav funguje v podstatě jako dodatečná... více: http://cli.gs/gmJVD
18. 3. 11:38