Hlavní navigace

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

 Autor: 29
Jáchym Krasek 8. 8. 2008

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

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.

Anketa

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

Našli jste v článku chybu?

8. 8. 2008 16:14

Jáchym Krasek (neregistrovaný)
Server s síti Soulseek hledání pokud vím koordinuje a sehrává u něho důležitou roli.

Pokud to tak podle vás není, můžete mi říci z čeho tak čerpáte a jak tedy dané hledání funguje?

8. 8. 2008 9:25

kotrcka (neregistrovaný)
soulseek je jedinym OFICIALNYM klientom. samozrejme existuje neoficialny (pre linux/bsd/...) s nazvom nicotine+. a dokonca aj funguje :-)
Měšec.cz: Kdy vám stát dá na stěhování 50 000 Kč?

Kdy vám stát dá na stěhování 50 000 Kč?

Vitalia.cz: Znáte „černý detox“? Ani to nezkoušejte

Znáte „černý detox“? Ani to nezkoušejte

Vitalia.cz: Analýza letáků: Na co lákají do prodejen?

Analýza letáků: Na co lákají do prodejen?

Podnikatel.cz: Přehledná titulka, průvodci, responzivita

Přehledná titulka, průvodci, responzivita

DigiZone.cz: Česká televize mění schéma ČT :D

Česká televize mění schéma ČT :D

Vitalia.cz: Tesco: Chudá rodina si koupí levné polské kuře

Tesco: Chudá rodina si koupí levné polské kuře

120na80.cz: 5 poporodních problémů a jejich řešení

5 poporodních problémů a jejich řešení

Podnikatel.cz: Zavře krám u #EET Malá pokladna a Teeta?

Zavře krám u #EET Malá pokladna a Teeta?

DigiZone.cz: Digi CZ výrazně zlevnila balíček HBO

Digi CZ výrazně zlevnila balíček HBO

Podnikatel.cz: Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

Přivýdělek u Airbnb nebo Uberu? Čekejte kontrolu

Lupa.cz: Babiš: E-shopů se EET možná nebude týkat

Babiš: E-shopů se EET možná nebude týkat

Podnikatel.cz: Prodává přes internet. Kdy platí zdravotko?

Prodává přes internet. Kdy platí zdravotko?

120na80.cz: Rakovina oka. Jak ji poznáte?

Rakovina oka. Jak ji poznáte?

Podnikatel.cz: K EET. Štamgast už peníze na stole nenechá

K EET. Štamgast už peníze na stole nenechá

Měšec.cz: Air Bank zruší TOP3 garanci a zdražuje kurzy

Air Bank zruší TOP3 garanci a zdražuje kurzy

Vitalia.cz: To není kašel! Správná diagnóza zachrání život

To není kašel! Správná diagnóza zachrání život

DigiZone.cz: Recenze Westworld: zavraždit a...

Recenze Westworld: zavraždit a...

Lupa.cz: Google měl výpadek, nejel Gmail ani YouTube

Google měl výpadek, nejel Gmail ani YouTube

Měšec.cz: U levneELEKTRO.cz už reklamaci nevyřídíte

U levneELEKTRO.cz už reklamaci nevyřídíte

Root.cz: Vypadl Google a rozbilo se toho hodně

Vypadl Google a rozbilo se toho hodně