Hlavní navigace

Peer to peer sítě od A do Z: Overnet, Manolito a Soulseek

8. 8. 2008
Doba čtení: 7 minut

Sdílet

Autor: 29
V letním seriálu o výměnných sítích jsme si představili již sedm z nich. Dnes se podíváme na sítě založené na algoritmech Kademlia nazvané Overnet a také na dva nástupce sítě Napster, jimiž jsou Manolito a Soulseek.

Předchozí díl seriálu s popisem sítí eXeem, Fastrack a Kademila vyšel na Lupě před týdnem.

Overnet

Síť Overnet vytvořil v roce 2005 programátor Jed McCaleb, tvůrce dříve tolik populární sítě eDonkey. Vše probíhalo opět pod záštitou týmu MetaMachine. Jedná se vlastně o „potomka“ sítě eDonkey, takže obsahuje některé prvky z této sítě. Zároveň je to ale síť zcela decentralizovaná, založena na algoritmech Kademlia (více o tomto protokolu a stejnojmenné síti najdete v článku Peer to peer sítě od A do Z: eXeem, FastTrack a Kademlia). V době svého vrcholu, v červnu roku 2006, bylo k síti připojeno i 600 tisíc uživatelů naráz. A stejně jako eDonkey, byla i síť Overnet napadena ze strany organizace RIAA a ještě roku 2006 nahrazena její webová stránka hláškou o ilegalitě kopírování. Pro síť bylo možné dříve využít klienta eDonkey2000, dnes je kvalitním klientem multifunkční MLdonkey.

Protokol Overnet lze rozdělit na dvě části: na lokalizační (vyhledávací) a přenosovou. Lokalizační část využívá protokolu UDP a je velice podobná Kademlii. Přenosová část pak využívá TCP a je vlastně podobná tomu, co lze nalézt v síti eDonkey. Tedy s jednou malou výjimkou. Zprávy Connection/Con­nection Reply jsou díky absenci serveru o 6 bitů kratší.

Overnet je tedy stejně jako Kademlia založen na systému DHT (distributed hash table). Vysvětlování těchto principů jsme si popsali v minulém díle našeho seriálu. Ještě bych podotknul, že Overnet má na rozdíl od Kademlie uzavřený kód, takže přesné detaily protokolu jsou jen velice těžko dostupné. Naštěstí existují i klienti třetích stran (např. MLdonkey), díky kterým lze některé podrobnosti zjistit.

Overnet je tedy založen na Kademlii, používá stejné metody pro hledání uzlů a vypočtení vzdálenosti mezi nimi (XOR), používá také stejné RPC zprávy. Tyto dva protokoly se liší pouze v několika málo detailech – tak například Kademlia přiřazuje svým uzlům 160bitové, Overnet pouze 128bitové ID.

Overnet se snaží co nejvíce omezit režijní náklady na provoz sítě. Ty jsou v jeho případě pouze 100 až 180 bytů za sekundu. Porovnáme-li tento parametr se sítí Gnutella, zjistíme, že Ultrapeer v Gnutelle má tyto náklady až 10× vyšší (přesněji jsou mezi 800 a 1400 byty za sekundu). Samozřejmě tyto náklady určuje mnoho faktorů, např. počet sousedních uzlů, délka intervalů pro ohlašování se ostatním uzlům, velikost těchto zpráv a podobně, tudíž objektivně srovnávat tyto sítě příliš nejde. Když jsme srovnali množství těchto režijních dat, je nutné si také ukázat rozdíly v těchto sítích, ze kterých právě množství dat plyne. Gnutella má menší intervaly pro ohlašování se ostatním uzlům (10 sekund) a počet sousedních uzlů je u Ultrapeera omezen pouze na 13. Oproti tomu v Overnetu je tento interval rovných 1800 sekund a každý uzel může mít až 300 sousedů.

Stěžejním prvkem každé P2P sítě je dozajista hledání souborů. To můžeme rozdělit do dvou hlavních skupin. Hledání podle klíčových slov a hledání přímo daného souboru (např. dle hashe). Druhý typ hledání poté ještě můžeme rozdělit na hledání často se vyskytujících souborů a hledání raritních souborů. Síť Overnet porovnáme s Gnutellou, jako zdroj informací nám poslouží výzkum z roku 2005, který byl proveden na Severozápadní univerzitě v Chicagu.

Jak funguje hledání v Gnutelle i Overnetu (Kademlii), jsme probírali již v minulých dílech seriálu. Při hledání pomocí klíčových slov Gnutella dokáže najít 50 % všech výsledků v rozmezí 100–400 sekund. V Overnetu je stejného výsledku dosaženo během 2,5–7 sekund. Budeme-li srovnávat hledání raritních objektů, tak i zde je na tom lépe Overnet. Ve více než polovině případů dokáže Overnet vyhledat raritní objekt během pouhých 20 sekund, v 80 % případů toto dokáže během 65 sekund. Naproti tomu Gnutella dosáhla opravdu velice špatných výsledků, kdy průměrná úspěšnost nalezení raritních objektů byla pouze 1,5 %.

Často se tak stává že v Gnutelle není ani daný objekt nalezen. Při hledání populárních (často se vyskytujících) objektů byla Gnutella o něco úspěšnější, když polovinu celkových výsledků najde již za 47 sekund. Overnet však to samé zvládá za 17 sekund. Ve chvíli, kdy má Overnet vyhledáno již 97 % všech možných výsledků, Gnutella jich stihne nalézt pouze 53 %.

Jako poslední si porovnáme množství dat, souvisejících s hledáním (tj. odpovídání, přesměrování ostatních uzlů apod.). Ultrapeer v Gnutelle potřebuje pro odesílaní těchto zpráv většinou 5–10 KB/s, pro příjem mu pak stačí 2–6 KB/s. Overnet se v tomto ohledu opět stává vítězem, protože pro příchozí zprávy o hledání mu stačí 200 bytů/s a pro jejich odesílání a odpovídání vystačí se 700–900 byty/s.

Overnet

Grafické srovnání množství dat souvisejících s hledáním, vlevo Gnutella, vpravo Overnet

Jak vidno, zastaralá Gnutella se nemůže měřit s novými strukturovanými sítěmi. Tyto sítě, využívající DHT, vynikají jak svojí decentralizací, tak rychlostí a šetřením kapacity linky. Overnet je vlastně jednou z užití volně šířitelného protokolu Kademlia v praxi, proto jsme se ani nezabývali tím jak funguje (až na malé detaily funguje stejně jako Kademlia, ale spíše jsme si ukázali v čem tkví jeho síla. Tedy především v rychlosti a kvalitě hledání.

Manolito

Manolito (MP2P) je síť zaměřena především na sdílení hudebních nahrávek. Vytvořil ji španělský programátor Pablo Soto v roce 2001. Síť se celkem plynule rozvíjela, v jednu chvíli dosahovala počtu až 200 tisíc uživatelů. Pak se ovšem Pablo Soto a firma Opisoft, vyvíjející tehdy jediného klienta Blubster, dostali do finančních potíží a síť se dostala až na pokraj krachu. Soto se ale nevzdal a napsal vlastního klienta s názvem Piolet. A konečně v roce 2006 Pablo Soto přišel zatím s posledním klientem pro tuto síť, nazvaném jednoduše Manolito. Soto dnes pracuje na novém projektu nazvaném Omemo, jenž je takovým „mezinárodním“ harddiskem založeným na P2P technologiích.

Pro hledání souborů používá Manolito protokol UDP na portu 41170. Celý systém hledání je pak založen na síti Gnutella, tedy na řízeném floodu, což není nic nového. Pro přenos dat pak používá vlastní patentovaný protokol využívající TCP. Každý klient je po připojení do sítě kontaktován pomocí výchozí HTTP brány a obdrží seznam přibližně 100 dalších účastníků sítě. Ty mohou být přidány i manuálně. Ultrapeers (neboli servents, spojení slov server a client) mohou komunikovat pouze s pevně daným počtem uzlů (to záleží na kvalitě připojení).

Manolito

Ukázka z oficiálního klienta Manolito, v dolním řádku je vidět právě připojený počet uživatelů – 232107. Zdroj: softpedia.com

Manolito je bohužel uzavřený protokol pouze s oficiálními klienty, avšak existuje i projekt OpenLITO, který se snaží vytvořit klienta s otevřeným kódem. Zatím se to bohužel nepodařilo. Posledním oříškem k rozlousknutí je cracknutí 16bitového kontrolního součtu, do té doby se bohužel klienta s otevřeným kódem pro síť Manolito nepodaří vytvořit.

Manolito má za sebou již dlouhou historii a určitě i nějakou budoucnost. Jako zápory sítě bych zdůraznil hledání na bázi Gnutelly, uzavřený kód a zaměření pouze na hudební nahrávky. Poslední jmenovaný zápor je však úmyslem, autoři chtěli kráčet ve stopách Napsteru. Za klady této sítě se dá považovat to, že se snaží dbát na anonymitu svých uživatelů a také minimalizovat výskyt falešných souborů.

Soulseek

Soulseek je P2P síť určena především pro sdílení hudby stejně jako Manolito. Nebrání se však ani jiným druhům dat. Vytvořil ji v roce 2003 Nir Arbel, bývalý programátor Napsteru. Soulseek dříve využívali především undergroundoví „umělci“ pro veřejné publikování své, především elektronické, hudby. V roce 2004 bylo na síti registrováno kolem milionu uživatelů, reálný počet byl však podstatně nižší. Jediným klientem pro tuto síť zůstává oficiální Soulseek, jehož nejnovější verze vyšla 17. července tohoto roku. Soulseek je bohužel neveřejný, a tak technické informace o něm jsou pouze velice strohé.

Soulseek není decentralizovanou sítí, je závislý na jednom serveru, který umožňuje hledání a chatování. Co se stahování týče, Soulseek nepodporuje stahování z více zdrojů (tj. rozdělení dat na segmenty), a tak musí být celý soubor stažen vždy pouze od jediného uživatele. Klienti využívají náhodně vybraného portu z rozmezí 2234–2239. V síti existují také zmíněné chatovací místnosti, ty jsou obvykle rozděleny buď podle hudebních žánrů, nebo geograficky. Z uživatelů si také můžete dělat přátelé a přidávat si je. Pokud si pak od vás chtějí něco stáhnout, mohou přeskočit celou frontu ostatních uživatelů a začít ihned stahovat. To samé platí i o uživatelích, kteří dobrovolně sponzorují provoz serveru.

Soulseek

Jednoduše provedený Soulseek klient. Zdroj: musicdownload­secrets.com

KL24

A proč je Soulseek uzavřený? To má vcelku jednoduché vysvětlení. Díky tomu, že celá síť je založena na jediném serveru, který je silně vytěžován hledáním, má přísná pravidla pro své fungování. Klient třetí strany nedodržující pravidla by pak mohl narušit celý systém sítě. Nejinak tomu bylo například u podvodného programu Kazaa Lite. Autoři Soulseeku jsou naštěstí rozumní a nevkládají do svého klienta žádný adware ani spyware, a tak síť celkem bez problémů funguje.

Dnes jsme si představili poslední vybrané peer-to-peer sítě, vyjma jedné. Tou je síť Direct Connect, které se budeme věnovat příště. Neochudíme vás ani o vybrané I2P sítě, ty budou samozřejmě také následovat.

Používáte některou z jmenovaných výměnných sítí?

Byl pro vás článek přínosný?

Autor článku

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ě.
Upozorníme vás na články, které by vám neměly uniknout (maximálně 2x týdně).