Peer to peer sítě od A do Z: Gnutella a Ares

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

Sdílet

Autor: 29
Peer-to-peer neboli P2P je dnes synonymem pro sdílení autorsky chráněného obsahu, výměnné sítě toho však umí víc. V novém seriálu si popíšeme, jak tyto služby vznikly a fungují a podrobněji se zaměříme na dvě z nich.

Malý úvod: jak to celé funguje

Přenos dat v počítačové síti probíhá na čtvrté vrstvě síťového modelu ISO / OSI. Znalost této architektury je základním předpokladem pro pochopení funkce počítačových sítí, přenosu dat a návazných technologií.

Nejčastěji se setkáme s modelem který používá Internet, tzv. model TCP/IP, druhý je model ISO / OSI, který je referenčním modelem a slouží pouze pro vymezení vrstev a specifikaci daných úkolů. Rodina protokolů TCP/IP využívá čtyři vrstvy a protokoly ISO/OSI dokonce vrstev sedm. Soustavy se od sebe liší a jsou vzájemně neporovnatelné, ale na síťové a transportní vrstvě jsou si velmi blízké.

tcp-ip-iso-os

V referenčním modelu ISO/OSI probíhá přenos dat na transportní vrstvě. V modelu TCP/IP transportní vrstvě odpovídají protokoly TCP a UDP. Protokoly TCP a UDP nám zajišťují spojení mezi aplikacemi běžících na vzdálených počítačích.

Protokol TCP k přenosu dat používá pakety. Je oproti protokolu IP protokolem vyšší vrstvy. TCP tedy využívá služby protokolu IP. IP protokol dopravuje data mezi libovolnými počítači v Internetu (síti), protokol TCP dopravuje data mezi dvěma konkrétními aplikacemi běžícími na těchto počítačích. TCP mezi dvěma aplikacemi naváže spojení – vytvoří na dobu spojení virtuální okruh. Okruh je plně duplexní (data se přenášejí současně na sobě nezávisle oběma směry). Ztracená nebo poškozená data jsou znovu vyžádána. Data jsou ověřena kontrolním součtem. TCP tedy ošetřuje ztrátu či poškození dat z důvodu poškození technických prostředků. Neklade si za cíl chránit data proti útočníkům, o to se v rodině TCP/IP starají například protokoly SSL, S/MIMe.

Konce spojení jsou označeny tzv. číslem k portu. Toto číslo je dvoubajtové, nabývá hodnot 0 – 65535. To, že se jedná o porty protokolu TCP, se zpravidla označuje tím, že se za číslo portu napíše lomítko typ protokoly např. tcp/53. Port tcp/53 nemá nic společného s portem udp/53. Cílová aplikace je tedy v síti (Internetu) je jednoznačně určena IP adresou, číslem portu a použitým protokolem. V praxi to lze přirovnat k poštovním schránkám v paneláku. IP adresa je adresa paneláku a číslo portu je číslo schránky.

Protokol UDP je jednoduchou alternativou k protokolu TCP. K přenosu dat používá tzv. datagramy, což je vlastně pouze jiný název pro pakety. Protokol UDP je nespojová služba (na rozdíl od TCP), tj. nenavazuje spojení. Odesílatel odešle UDP datagram příjemci a už se nestará o to, zda se datagram neztratil. Protože UDP nemá žádné mechanismy pro dorozumívání se obou komunikujících stran, je přenos rychlejší než v případě TCP, ne však spolehlivý. Je využívám zejména u služeb, kde ztráta paketu (datagramu) příliš nevadí, kupříkladu služba WWW.

P2P sítě přichází na scénu

Historie P2P sítí se datuje až k roku 1999. Dříve se nejvíce pro přenos dat používaly anonymní FTP servery. Okolo roku 1997 se hlavním prostředkem pro sdílení dat staly instantní messengery, jako je ICQ. Mezi služby messengerů již tehdy patřilo posílání dat. V roce 1999 se hlavním prostředkem pro sdílení dat stala služba Napster, která byla vlastně první P2P sítí. Společnost Napster tehdy změnila vše od základů. Po nainstalování aplikace člověk mohl sdílet data s kýmkoli, kdo měl tuto aplikaci také nainstalovanou, přesněji to bylo okolo 25 miliónů uživatelů na světě. To byl na tehdejší dobu obrovský počet uživatelů a Napster nezůstal nepovšimnut ze stran protipirátských organizací, respektive nahrávacích studií, neboť se po této síti šířily zejména hudební nahrávky. Navíc byl závislý na jednom centrálním serveru, takže k zániku sítě stačilo zrušit pouze tento jeden server. A tak se taky stalo, Napster v červenci roku 2001 zaplatil obrovskou pokutu a zanikl. Dal však základ pro budoucnost P2P sítí. Před nedávnem Napster znovu ožil, tentokrát jako největší prodejce hudby na světě, chlubí se počtem až 6,5 milionu nahrávek.

uživatelé napster

zdroj: wiki

Napster položil nejen základy P2P sítí, ale také základy sporů mezi autory děl a piráty. Vše vlastně začalo roku 2000, kdy populární heavy metalová skupina Metallica objevila demo svého songu „I Disappear“ na síti Napster. A to dříve, než byl tento song vůbec oficiálně vydán. To navíc vedlo i k tomu, že některá americká rádia začala tento song hrát. Kapela tak odpověděla Napsteru žalobou. O měsíc později podal raper Dr.Dre podobnou žalobu a dožadoval se stažení svých děl z této sítě. Jak Metallica, tak Dr.Dre nakonec obdrželi tisíce jmen uživatelů, kteří byli podezřelí z nelegálního šíření jejich děl. V stejném roce podala na Napster žalobu Madonna a také několik dalších nahrávacích studií. Hudební průmysl tedy nakonec obžaloval Napster za pomoc při nepřímém porušení autorského práva. Napster spor prohrál, mohl však fungovat dál, musel ale zabránit šíření nelegálního obsahu. Toho nebyl schopen, a tak byl nakonec v červenci roku 2001 vypnut. Začaly však vznikat nové P2P sítě, které se snaží o to, aby byly co nejméně závislé na centrálním serveru a tím i méně napadnutelné ze stran různých organizací. Na světlo přišly nové technologie a nové způsoby, jak toho dosáhnout, a základy pro novodobé P2P sítě tak byly na světě.

napster

zdroj: wiki

Postupem času začaly vznikat i zákony, které zamezují šíření autorsky chráněných děl. Toto se nevyhnulo ani České republice a v současné době platí, že jakékoli sdílení, rozmnožování, půjčování a tvoření kopií děl chráněných autorským zákonem je trestné. I masové stahování filmů je již trestné. Na druhou stranu občasné stažení filmu, který u nás není běžně v distribuci, je zatím v pořádku a stahování hudby je zatím také zcela v souladu se zákony.

P2P (peer to peer) v překladu znamená „rovný s rovným“. V této síťové architektuře spolu komunikují přímo klienti (uživatelé). Čistá P2P architektura ani pojem server nezná, všechny uzly sítě jsou si rovnocenné (a působí současně jako klienti i servery pro jiné klienty). V praxi se však často pro zjednodušení návrhu v protokolu objevují specializované servery, které ovšem slouží pouze pro počáteční navázání komunikace, „seznámení“ klientů navzájem, popř. jako proxy server v případě, že spolu z nějakého důvodu nemohou koncové uzly komunikovat přímo. Opakem této architektury je architektura client-server.
p2p

zdroj: wiki

Nyní se již blíže podíváme na vybrané P2P sítě. Nejdříve se podíváme na síť Gnutella, která dala základy mnoha dalším sítím, proto je dobré povědět si o ní jako první. Další sítě již budou seřazeny tak, jak určuje titulek článku, tedy podle abecedy.

Gnutella

Gnutella byla v roce 2005 hned po eDonkey 2000 a FastTracku třetí nejoblíbenější P2P sítí na světě. Gnutellu používalo okolo 2,2 miliónu uživatelů, přičemž okolo 750 tisíc až jednoho milionu bylo připojeno současně. První klient pro tuto síť byl napsán v roce 2000, stála za ním firma Nulsoft, přesněji Justin Frankel a Tom Pepper. Chvíli poté byl uveřejněn i zdrojový kód tohoto klienta pod licencí GPL. Následně tak vzniklo nespočet modifikovaných klientů pro tuto síť. Mezi známé klienty patří například BearShare a Shareaza. Z této sítě také vychází několik dalších P2P sítí.

Gnutella funguje na bázi jakýchsi uzlů. Každý uzel (tj. každý uživatel) si kolem sebe musí najít alespoň jeden další uzel, na který se připojí. K tomu se používají různé metody, například seznam zaručeně fungujících uzlů. Pokud chce uživatel vyhledat nějaký soubor, jeho požadavek se odešle na všechny aktivně připojené uzly (maximálně 5). Tyto uzly pak odesílají jeho požadavek tam, kde jsou oni aktivně připojeni. Pokud bylo hledání úspěšné, uzel s daným souborem kontaktuje pomocí protokolu UDP přímo onoho hledajícího. Tyto odpovědi s sebou nesou přímo IP adresu a číslo portu uzlu se souborem. Následně se pak zahájí přenos dat.

gnutella

V praxi byl však tento způsob vcelku nepraktický. Uzly byly klasické počítače, které se neustále odpojovaly a připojovaly, síť tak nikdy nebyla moc stabilní. K řešení těchto problémů použili vývojáři systém takzvaných „ultrapeers“ a „leavers.“ Místo toho aby byly všechny uzly považovány za rovné, stávají se ze stabilních uzlů „ultrapeers,“ kteří jsou zodpovědní za směrování, a z nestabilních se stávají „leavers, které tuto odpovědnost nenesou. Dále bylo do Gnutelly implentováno mnoho dalších nových technik pro snížení provozních režií a zefektivnění vyhledávání, například QRP (Query Routing Protocol) a DQ (dynamické dotazování). Gnutella dnes nepatří mezi nejlepší ani nejpoužívanější sítě, byla však jednou z prvních P2P sítí a někteří uživatelé se jí stále pevně drží.

Ares

Ares byl nejdříve tvořen pouze jako další klient pro Gnutellu, autoři se ale počátkem roku 2003 rozhodli, že si vytvoří vlastní síť. A taky se tak stalo, vznikla tak tedy stejnojmenná síť Ares, mezi jejíž populární klienty patří programy Ares Galaxy a Warez P2P.

Vývoj sítě Ares se tedy datuje od roku 2003, kdy na základě Gnutelly vznikla vlastní P2P síť zahrnující „superuzly“ (ultrapeers) a „leavers“. Protokol této sítě je těžší identifikovat, než je tomu u většiny ostatních, a tak je Ares často jedinou sítí fungující v různých soukromých sítích, například ve školách. Blokace sítě Ares přesto není nemožná, jen vyžaduje více práce.

Od verze klienta 1.9.0 síť umožňuje přenos dat i mezi dvěma uživateli za firewallem (NATem). Tento přenos je však možný pouze v případě, že jsou oba firewally podvedeny a „myslí si,“ že klienti již zahájili přenos. V tu chvíli také do hry vstupuje třetí klient, který daný přenos koordinuje. Nová verze klienta Ares také obsahuje funkci zvanou NAT punching (prorážení), která ke spojení dvou klientů používá nespojový protokol UDP. Ten je použit právě tehdy, když klasické přímé spojení pomocí protokolu TCP nemůže uspět. Tento systém měl prozatím dobré výsledky, a proto byl do Aresu implementován.

V jednu chvíli byla síť Ares téměř očištěna od falešných souborů, na rozdíl například od FastTracku. Čím více nabírala na popularitě, tím více si jí začal všímat různé protipirátské organizace. Roku 2006 začaly tyto organizace, včetně MediaDefender a BayTSP pracující pro organizaci RIAA, umísťovat na síť falešné mp3 nahrávky. Ty se bohužel brzy dostaly na přední místa ve výsledcích vyhledávání a mnoho uživatelů tak bylo nespokojeno. Dnes je však Ares pohodlně fungující P2P sítí, která se potýká pouze s nepříliš vysokým počtem uživatelů.

V příštím díle našeho malého seriálu o P2P sítích se podíváme na některé další vybrané sítě. Již teď se můžete těšit na informace o sítích Bittorrent a eDonkey.

Využíváte peer-to-peer sítí?

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ě).