05:57, 12 October 2006
Transkript
05:57, 12 October 2006
VŠB - Technická univerzita Ostrava Fakulta elektrotechniky a informatiky Katedra informatiky Protokoly na sdı́lenı́ dat prostřednictvı́m internetu Bakalářská práce 2006 Jindřich Šonka Prohlašuji, že jsem tuto diplomovou práci vypracoval samostatně. Uvedl jsem všechny literárnı́ prameny a publikace, ze kterých jsem čerpal. V Ostravě 10. května 2006 ............................. Rád bych na tomto mı́stě poděkoval všem, kteřı́ mi s touto bakalářskou pracı́ pomohli, protože bez nich by tato práce nevznikla. Abstrakt Cı́lem této bakalářské práce bylo popsat nejběžnějšı́ protokoly pro sdı́lenı́ dat prostřednictvı́m internetu, zjistit a zmapovat jejich vlastnosti, výhody, nevýhody a popsat všeobecnou problematiku sdı́lenı́ dat. V práci jsou popsány jednotlivé programy využı́vajı́cı́ tyto protokoly. V druhé části této práce byl naimplementován program Bander, řešı́cı́ výměnu dat mezi uživateli a některé problémy, se kterými se potýkajı́ jiné p2p programy. Klı́čová slova: Bander, Klient, Server, Návrhový vzor, Stanice, Port, OSI model, IP adresa Abstract The purpose of this Bachelor‘s Thesis was describe the most common protocols for sharing files across the Internet, discover and map their properties, advantages and disadvantages. Next point of this thesis was describe problems and dilemmas which are adherent to sharing files. In the text are described the most common programs that use this protocols. The second half of this thesis was implements program Bander, which is solving the exchange of files between users and some other problems, that other p2p programs suffers from. Keywords: Bander, Client, Server, Pattern, Workstation, Port, OSI model, IP address Seznam použitých zkratek a symbolů Bander – Stanice – Client – Server – Návrhový vzor – Port – OSI model – IP adresa – p2p RIAA – – MPAA – DMCA – Program určen ke sdı́lenı́ dat. Je to projekt této bakalářské práce. Myšleno jako lokálnı́ stanice, pokud nenı́ uvedeno jinak. Jedná se o váš počı́tač na kterém máte spuštěn program. Část programu která běžı́ u vás, na vašı́ stanici. Zde vyvoláváte svou činnostı́ jednotlivé přı́kazy, které client odesı́lá jako požadavky na serverovou část. V češtině označován jako Klient. Část programu běžı́cı́ na vzdálené stanici v počı́tačové sı́ti. Přijı́má požadavky od clienta a odesı́lá požadované odpovědi zpět. Při řešenı́ aplikacı́ v oblasti IT se ukázalo, že mnoho z nich majı́ společné problémy, a tedy i společná řešenı́. Jednotlivé návrhové vzory jsou vytvořeny pro co nejlepšı́ jednotlivá řešenı́ takovýchto problémů. Port je koncovým bodem komunikace na rozhranı́ mezi transportnı́ a aplikačnı́ vrstvou OSI modelu. Open Systems Interconnection Reference Model - Také uváděn v literatuře jako OSI Reference model nebo jen OSI model. Je to model který rozděluje přenos dat po sı́ti do 7 vrstev. Adresa počı́tače v sı́ti. Pomocı́ těchto adres probı́há sı́t’ová komunikace. Peer to peer - Jedná se o rovnocenné propojenı́ dvou stanic. The Recording Industry Association of America - Organizace na ochranu autorských práv vydavatelů hudebnı́ch nahrávek. Společnost byla založena v roce 1952. Movie Picture Association of America - Společnost založena sedmi největšı́mi filmovými studii v Americe. Organizace chránı́ autorská prává vydavatelů filmových nahrávek. Obdoba společnosti RIAA. The Digital Millennium Copyright Act - Zákon na autorská práva vydán ve Spojených státech amerických 28.10.1998. Zákon popisuje postih nelegálnı́ produkce a šı́řenı́ souborů s autorským právem přes Internet. Vztahuje se pouze pro Spojené státy americké. 0 ISP leech – – fake – Internet Service Provider - Poskytovatel připojenı́ k internetu. Uživatel, který chce jen stahovat a nic přitom nesdı́let. V českém ekvivalentu pijavice Falešný soubor. Uživatel, většinou leech, si vytvořı́ nesmyslný soubor velké velikosti, aby jej mohl dát do sdı́lenı́ a zı́skat tak přı́stup do výměnné sı́tě. OBSAH 1 Obsah 1 Úvod 4 2 Legislativa 2.1 Problémy s autorskými právy . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2 Očekávaný postup společnostı́ pro ochranu autorských práv . . . . . . . . 2.3 Očekávaný vývoj výměnných sı́tı́ . . . . . . . . . . . . . . . . . . . . . . . . 5 5 6 7 3 Jednotlivé protokoly 3.1 Napster . . . . . . . . . . . . . . . . . . . . . . . . . 3.2 Audiogalaxy Satellite . . . . . . . . . . . . . . . . . 3.3 Kazaa . . . . . . . . . . . . . . . . . . . . . . . . . . 3.4 Direct Connect . . . . . . . . . . . . . . . . . . . . . 3.5 eDonkey 2000 a eMule . . . . . . . . . . . . . . . . 3.6 BitTorrent . . . . . . . . . . . . . . . . . . . . . . . 3.7 Gnutella . . . . . . . . . . . . . . . . . . . . . . . . 3.8 Přehled nejpoužı́vanějšı́ch klientů výměnných sı́tı́ . . . . . . . . 9 9 10 11 12 14 16 18 18 4 Bander 4.1 Návrh . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4.2 Popis třı́d . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20 20 21 5 Programátorské řešenı́ aplikace Bander 5.1 Programátorské řešenı́ Klient - Server části . . . . . . . . . . . . . . . . . . 23 23 6 Dokumentace 6.1 Programátorská dokumentace . . . . . . . . . . . . . . . . . . . . . . . . . . 6.2 Uživatelská dokumentace . . . . . . . . . . . . . . . . . . . . . . . . . . . . 25 25 25 7 Použı́vánı́ aplikace Bander 26 8 Závěr 32 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . SEZNAM OBRÁZKŮ 2 Seznam obrázků 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Screenshot p2p klienta Napster . . . . . . . . . . . . . . . . . . . Screenshot p2p klienta sı́tě Audiogalaxy - Audiogalasy Satellite Screenshot p2p klienta sı́tě FastTrack - Kazaa . . . . . . . . . . . Screenshot p2p klienta sı́tě DirectConnect - strongDC++ . . . . Screenshot p2p klienta sı́tě eDonkey 2000 - eMule . . . . . . . . Screenshot p2p klienta sı́tě bitTorrent - bitTorrent . . . . . . . . . Screenshot p2p klienta sı́tě Gnutella - BearShare . . . . . . . . . Ukázkový diagram návrhového vzoru Command . . . . . . . . Třı́dnı́ diagram aplikace Bander . . . . . . . . . . . . . . . . . . . Třı́dnı́ diagram aplikace Bander . . . . . . . . . . . . . . . . . . . Základnı́ obrazovka aplikace Bander . . . . . . . . . . . . . . . . Nastavenı́ Banderu . . . . . . . . . . . . . . . . . . . . . . . . . . Ukončenı́ vytvářenı́ seznamu sdı́lených souborů . . . . . . . . . Ukázka stáhnutı́ seznamu souborů . . . . . . . . . . . . . . . . . Ukázka výběru seznamu souborů . . . . . . . . . . . . . . . . . . Ukázka stáhnutı́ konkrétnı́ položky . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9 10 11 13 15 17 18 20 21 24 26 27 28 29 30 31 SEZNAM TABULEK 3 Seznam tabulek 1 2 Nejpoužı́vanějšı́ p2p klienti . . . . . . . . . . . . . . . . . . . . . . . . . . . Rozdělenı́ portů . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19 24 1 1 ÚVOD 4 Úvod Počı́tačové sı́tě, at’ už lokálnı́ nebo internet, jsou bezesporu obrovským zdrojem dat. A právě proto může být problémem najı́t přesně (ten) daný soubor, který potřebujeme. S rostoucı́mi možnostmi a prostory počı́tačových sı́tı́ a internetu se také rozrůstá počet uživatelů využı́vajı́cı́ch tyto sı́tě. Již nestačı́ různé vyhledávacı́ servery a data umı́stěná na webových stránkách. Výměnné sı́tě byly určeny převážně pro sdı́lenı́ potřebných dokumentů ve firemnı́ch sı́tı́ch. Už nestačilo nasdı́let adresář, protože při většı́m počtu uživatelů začaly být sdı́lené adresáře plné různých dokumentů, určených ke sdı́lenı́ a začalo být problémem to základnı́ - najı́t ten správný dokument. Proto se začalo pracovat na výměnných sı́tı́ch a protokolech pro ně určených. Klientům těchto výměnných sı́tı́ se řı́ká p2p programy. Zkratka p2p znamená peer to peer neboli rovný s rovným. Jde o rovnocenné sı́t’ové propojenı́ mezi jednotlivými uživateli, kteřı́ si navzájem sdı́lejı́ své soubory. S vývojem programů, využı́vajı́cı́ch protokoly na sdı́lenı́ dat se však začaly objevovat i jiné problémy, a sice v podobě autorských práv. Vývoj nelze zastavit z velmi jednoduchého důvodu. Digitálnı́ formáty pro hudbu a film, tj. soubory“, které jsou běžně přenositelné, snadno ukládatelné a všude přehrávatelné, představujı́ o mnoho lepšı́ a jednoduššı́ technologii před jinými médii, že nenı́ možné, aby si nenašly cestu k uživatelům. A pokud jim to průmysl neumožnı́ legálně, najdou si cestu nelegálně. Je jasné, že si hudebnı́ a filmovı́ vydavatelé musı́ bránit svou práci, a proto z tohoto pohledu je jejich boj proti internetovým pirátům zcela pochopitelný. Přesto je již nynı́ jasné, že bude třeba, aby nabı́dli jistou alternativu, napřı́klad koupi hudebnı́ch alb přı́mo ve formátu mp3, což je pro uživatele přı́jemnějšı́ než nosit s sebou plastiková CD. Vı́ce o problematice sdı́lenı́ a autorských práv bude uvedeno v přı́štı́ kapitole. 2 2 LEGISLATIVA 5 Legislativa V této kapitole jsou popsány problémy týkajı́cı́ se výměnných sı́tı́ s autorskými právy. Dále bude uvedeno, co můžeme čekat ve vývoji výměnných sı́tı́ a v boji proti jejich nelegálnı́mu použı́vánı́. 2.1 Problémy s autorskými právy V roce 2003 byla definitivně prohlášena za legálnı́, přičemž to lze vztáhnout i na dalšı́ sı́tě a RIAA nemůže zı́skávat osobnı́ údaje o jednotlivých uživatelı́ch výměnných sı́tı́. Nejvyššı́ soud Holandska definitivně rozhodl ve prospěch Kazaa, když prohlásil, že autoři nejsou odpovědnı́ za to, co nabı́zı́ uživatelé na jejı́ sı́ti. Právě kvůli tomuto soudu se ostatně Kazaa přesunula do firmy Sharman Networks se sı́dlem na malém tichomořském ostrůvku. Soud nevypadal přı́liš optimisticky a Kazaa nechtěla riskovat. Přesto soudnı́ mašinérie přes různá odvolánı́ dospěla až k nejvyššı́mu soudu, který definitivně rozhodl ve prospěch sdı́lenı́. Pro výměnné sı́tě to znamená předevšı́m velmi solidnı́ právnı́ jistotu, a tak současně prostor pro přesvědčovánı́ investorů o bezpečných investicı́ch. I kdyby toto rozhodnutı́ nemělo vliv na celou Evropskou unii, přispěje to minimálně ke stahovánı́ všech firem poskytujı́cı́ch výměnné sı́tě do Holandska. Trochu sporný vliv je na sı́tě typu eDonkey (Emule) nebo Direct Connect, kde je sice sı́t’ distribuovaná, ale tvořı́ ji velké servery. Ty lze, a již se tak několikrát stalo, cı́leně soudnı́m rozhodnutı́m vypnout. Na jejich mı́sto sice vždy nastoupı́ řada dalšı́ch, ale přesto je to oblast, kde je jistá spoluzodpovědnost provozovatele takového serveru v podobném smyslu, jako měl centrálně spravovaný Napster. ”Přes prsty” rovněž dostala RIAA, když se poskytovatel připojenı́ Verizon postavil proti žádosti o vydánı́ identifikace svých uživatelů sdı́lejı́cı́ch skladby. RIAA pro tyto žádosti, které bývajı́ následovány žalobami jednotlivých osob, využı́vá zákona DMCA, který dovoluje vlastnı́ku copyrightu podobné informace zı́skávat. Verizon protestoval, že RIAA překrucuje DMCA, protože to poskytuje pouze možnost trestat ISP, na jehož serverech se neoprávněně nacházı́ copyrightem chráněný obsah, nikoli trestat uživatele takového ISP. DMCA totiž vznikl v roce 1998, kdy výměnné sı́tě nebyly rozšı́řené, a tak zákon na podobné přı́pady nepamatoval. Soudce dal za pravdu Verizonu, že skutečně RIAA nemá právo se jakkoli dožadovat informacı́ o jednotlivých uživatelı́ch, byt’ mu nejsou snahy RIAA o ochranu autorských práv nesympatické. V podstatě ale současná podoba DMCA toto neumožňuje a bude nutné přepracovánı́ tohoto kontroverznı́ho zákona. Přesto RIAA prohlásila, že se svého boje vzdát nehodlá a nadále půjde po těch, co chráněné soubory nabı́zı́. 2 LEGISLATIVA 6 Ačkoli podobné půtky ohledně amerického práva nám mohou připadat směšně z pohledu jiné země, i Evropská unie připravuje podobné zákony pro účinnějšı́ ochranu autorských práv a již dnes jsou poskytovatelé zavaleni žádostmi o identifikaci uživatelů. V přı́padě většı́ch firem pak nenı́ problémem i bez podobných žádostı́ snadno dohledat identifikačnı́ údaje o takové firmě. A pochopitelně ještě nesmı́me zapomı́nat, že když soud uzná, že provozovatel výměnné sı́tě neodpovı́dá za obsah, ještě to automaticky neznamená legalizaci jednotlivých uživatelů. Je sice možné stahovat z internetu téměř co chcete, ale nabı́zenı́ copyrightem chráněných souborů trestné je, přestože bez nabı́zenı́ souborů by výměnné sı́tě ztratily smysl. Podobná soudnı́ rozhodnutı́ spı́še dávajı́ prostor firmám pro vylepšovánı́ funkcı́ jejich programů a pro snadnějšı́ sdı́lenı́ souborů v jejich sı́tı́ch. 2.2 Očekávaný postup společnostı́ pro ochranu autorských práv Co můžeme tedy s největšı́ pravděpodobnostı́ očekávat od společnostı́ pro ochranu autorských práv v nejbližšı́ch letech? • Zpřı́sněnı́ ochran Zejména filmový, ale i hudebnı́ průmysl zpřı́snı́ ochrany na nosičı́ch. Možná budou cracknuty, možná ne, každopádně se tı́m kopı́rovánı́ médiı́ pro běžné uživatele zkomplikuje, protože ne každý uživatel má, umı́ si stáhnout a umı́ použı́vat klonovacı́ programy. • Bude pokračovat legálnı́ válka Určitě by uživatelé sdı́lejı́cı́ data neměli počı́tat s tı́m, že se společnosti jako americká asociace nahrávacı́ho průmyslu RIAA a za nı́ také americká filmová asociace MPAA snadno vzdá. Obě organizace budou hledat dalšı́ legálnı́ cesty, jak předevšı́m zabránit nebo uživatelům alespoň znechutit sdı́lenı́ souborů. • Rozšiřovánı́ prodejen digitálnı́ hudby Určitě se bude dál rozšiřovat využitı́ internetové služby Apple iTunes, přes kterou prodává Apple Computers hudbu. Podobně ambicióznı́ prodejnu“ chce vytvořit i Microsoft, možná v partnerstvı́ s dalšı́mi firmami, pro platformu Windows. Na rozdı́l od Apple bude platná i v dalšı́ch zemı́ch a kontinentech, možná dokonce dorazı́ i k nám. • Dalšı́ využı́vánı́ p2p programů Stále se budou použı́vat nynějšı́ a nejspı́š i vyvı́jet nové p2p programy umožňujı́cı́ výměnu dat mezi uživateli. Jednotlivé programy jsou popsány dále v této práci. 2 LEGISLATIVA 7 Přesto všechno bude nelegálnı́ šı́řenı́ hudby i videa nadále pokračovat. Prognózy jsou takové, že velké výměnné systémy budou kvůli RIAA a MPAA stagnovat, ale budou vznikat nové metody, předevšı́m v úzkých kroužcı́ch osob – napřı́klad výměnné minicentrály v lokálnı́ch Wi-Fi sı́tı́ch, LAN sı́tı́ch, školnı́ch a business sı́tı́ch. 2.3 Očekávaný vývoj výměnných sı́tı́ Co tedy můžeme na druhou stranu očekávat ve vývoji výměnných sı́tı́? • Dalšı́ decentralizace Decentralizace způsobı́ tvorbu lokálnı́ch komunit, které fungujı́ lépe než sı́t’ s několika milóny lidı́. Nelze totiž jednoznačně řı́ct, zda tak velký počet uživatelů a tı́m i velký počet kopiı́ souborů něco kladného přinášı́. Např. u Kazaa je jedno, jestli se daný soubor vyskytuje 3x nebo tisı́ckrát vı́c. Stačı́ málo kopiı́, pokud budou bezpečně a rychle ke staženı́. Oproti tomu u klientů se segmentovým stahovánı́m, jako je např. StrongDC++ je určitě většı́ počet kopiı́ výhodou. • Dalšı́ anonymizace Anonymita a anonymizace je samozřejmě silnou zbranı́ uživatelů sı́tı́ proti možnému odhalenı́, problémům a trestnı́mu stı́hánı́. • Vytěsňovánı́ pijavic ”leech” a falešných souborů ”fake” Vytěsňovánı́ pijavic se docı́lı́ povinným sdı́lenı́m kvalitnı́ch“ souborů, např. monitorovánı́m podle tzv. TTH. TTH - (Tiger tree hash) je vlastně kontrolnı́ součet souboru. Je to digitálnı́ otisk ověřeného souboru. Použı́vajı́ se proto, že vyhledánı́m souboru se stejným TTH umožňuje uživateli v přı́padě potřeby stahovat stejný soubor od vı́ce lidı́. Velmi to uživatel ocenı́ zejména v přı́padech, kdy se odpojı́ člověk, od kterého soubor stahoval. V dřı́vějšı́ch dobách fungovalo hledánı́ náhradnı́ch zdrojů podle názvu a velikosti souboru. Často se ale jednalo o lehce pozměněný soubor se stejnou velikostı́. To mohlo způsobit např. při přehrávánı́ zvukového souboru různé praskánı́, přeskakovánı́ apod. Dnes jsou na hubech preferováni klienti podporujı́cı́ TTH údaj. 2 LEGISLATIVA 8 S pojmem TTH je potřeba uvést ještě pojem, který se v této souvislosti uvádı́, a to sice magnety neboli magnetlinky. Magnety nebo-li magnetlinky jsou vlastně TTH ”ověřených a kvalitnı́ch” souborů, které jsou uveřejněny na webových stránkách. Po kliknutı́ na odkaz magnetlinku se automaticky spustı́ klient, který tuto funkci podporuje a spustı́ hledánı́ daného souboru. Závěrem se tak dá řı́ci, že dokud bude fungovat internet, nenı́ cesta, jak zabránit fungovánı́ výměnných systémů. I kdyby je začali aktivně potlačovat ISP ucpávánı́m portů, pak v tom přı́padě pojedou výměnı́ky na portu 80, kde běžı́ web a ten samozřejmě zakázat nelze. Je možné, že pokud budou represe značné, budou výměnné sı́tě maličko zahnány do podzemı́. Jejich použı́vánı́ bude zkomplikováno např. nutnostı́ osobnı́ho firewallu, použı́vánı́m obtı́žnějšı́ch aplikacı́ jako např. BitTorrent, použı́vánı́m PeerGuardianu před skenovánı́m ze strany orgánů atd. Rozhodně už nebude využı́vánı́ výměnných sı́tı́ tak masové. 3 3 JEDNOTLIVÉ PROTOKOLY 9 Jednotlivé protokoly V této části uvádı́m nejrozšı́řenějšı́ p2p programy pro sdı́lenı́ dat a protokoly, na kterých jsou tyto programy založeny. 3.1 Napster Za praotce současných výměnných sı́tı́ je obecně považován mediálně známý Napster. Napster výměnu souborů začal a nebýt jeho úspěšnosti, těžko by dnes existovalo tolik p2p programů a tolik uživatelů využı́vajı́cı́ch sdı́lenı́ souborů. Když byl program na špici, tak neměl mezi výměnnými sı́těmi konkurenci. Jeho jedinou nevýhodou oproti dnešnı́m programům bylo to, že se nedaly sdı́let jiné soubory než s přı́ponou mp3. Možná i to je hlavnı́ důvod všech soudnı́ch sporů, které se kolem tohoto programu točily. Princip tohoto systému spočı́val v tom, že po spuštěnı́ se Napster připojil k některému z domácı́ch serverů, ve kterých byly uloženy databáze všech sdı́lených souborů. Pak už záleželo pouze na uživateli, jakou MP3ku si našel a stáhnul. Tato činnost se nelı́bila společnosti RIAA, a tak napadla Napster a podala trestnı́ oznámenı́ k soudu na porušovánı́ autorských práv tı́m, že skrze tuto službu bylo možno zı́skat ilegálně MP3 skladby. Napster musel proto skončit svoji činnost. Obrázek 1: Screenshot p2p klienta Napster 3 3.2 JEDNOTLIVÉ PROTOKOLY 10 Audiogalaxy Satellite Audiogalaxy Satellite umožňoval stahovánı́ přes webové rozhranı́, což bylo pro uživatele velmi přı́jemné právě svou jednoduchostı́. Mezi českými uživateli byl velmi rozšı́řen, protože se zde dalo stáhnout mnoho české hudby. Audiogalaxy Satellite je dalšı́m programem, jehož činnost musela být kvůli RIAA ukončena. Autoři programu se domluvili s RIAA na mimosoudnı́m vyrovnánı́ a okamžitém zastavenı́. Obrázek 2: Screenshot p2p klienta sı́tě Audiogalaxy - Audiogalasy Satellite 3 3.3 JEDNOTLIVÉ PROTOKOLY 11 Kazaa Po pádu Napsteru se největšı́ oblibě těšila KaZaA, využı́vajı́cı́ protokolu FastTrack. Trnem v oku se asociaci RIAA u Napsteru stala předevšı́m technika shromažd’ovánı́ všech sdı́lených hudebnı́ch nahrávek na jednom centrálnı́m serveru, čehož se tvůrci sı́tě KaZaA vyvarovali. Originálnı́ verze klienta KaZaA Media Desktop je však plná spywaru a reklamnı́ch oken. Tuto nevýhodu částečně řešı́ jejı́ odlehčená verze KaZaA Lite. Při sdı́lenı́ dat v této sı́ti plnı́ počı́tače funkci tzv. uzlů nebo superuzlů. Uzly jsou ve skutečnosti počı́tače, které nabı́zejı́ vlastnı́ data (hudbu, filmy apod.). Naproti tomu superuzly plnı́ funkci jakési spojky mezi jednotlivými počı́tači, protože udržujı́ a zveřejňujı́ seznamy všech sdı́lených dat. Pro úspěšné provozovánı́ odlehčené verze K-Lite je nutné nainstalovat si originálnı́ KaZaA Media Desktop, proti spywaru a adwaru však uživatele chránı́ modul nazvaný KShield. Při vyhledávánı́ multimediálnı́ch souborů systém umožňuje blı́že specifikovat některé detailnı́ parametry, jako napřı́klad jeho kvalitu (bitrate) nebo žánr. Užitečné jsou také integrované prohlı́žeče videa, hudby a obrázků, které dovolujı́ spustit část souboru již během jeho stahovánı́. Uživatel se tak snadno může přesvědčit, zda se opravdu jedná o soubor, který chtěl. Klient Kazaa se připojı́ k výměnné sı́ti automaticky hned při spuštěnı́. Nemusı́te vybı́rat žádné servery, někde něco nastavovat, program se spustı́ automaticky. Na jedné straně je to velmi jednoduché, automaticky se vybere jeden z vhodných přı́pojných serverů, ale na druhé straně nemáte moc možnostı́ něco ovlivnit. Obrázek 3: Screenshot p2p klienta sı́tě FastTrack - Kazaa 3 3.4 JEDNOTLIVÉ PROTOKOLY 12 Direct Connect Autorem programu Direct Connect je firma NeoModus, která jej vydala na internetový trh již v roce 2001. Direct Connect (DC) je ovšem plný reklam. Proto byla po nějakém čase vytvořena i alternativa DC, která je stejně funkčnı́, ale bez reklam. Jmenuje se Direct Connect++ (DC++). I v tuto chvı́li je DC++ neustále zlepšován a dále vyvı́jen, což mu zajišt’uje velkou popularitu a program se tak řadı́ mezi nejpoužı́vanějšı́ software pro výměnu souborů. Na rozdı́l od programů Kazaa nebo Gnutella je DC postaven na odlišné koncepci. Uživatelé se v tomto přı́padě nepřipojujı́ na jeden centrálnı́ server jako u jiných výměnných sı́tı́, ale obslužných serverů jsou tisı́ce. Těmto serverům se řı́ká huby. Huby jsou počı́tače, na kterých běžı́ speciálnı́ aplikace (např. PtokaX). Hub a s nı́m spojenou komunitu lidı́ si tak může vybudovat kdokoli s rychlým připojenı́m k internetu. Hlavnı́ úkol hubu je udržovat aktuálnı́ seznam připojených uživatelů a vyhledávat jimi požadovaná data.Po připojenı́ probı́há vyhledávánı́ souborů u všech uživatelů, kteřı́ jsou k danému hubu připojeni. Toto řešenı́ přinášı́ několik výhod i nevýhod. Na jednu stranu je takto postavená sı́t’hůře postižitelná různými zákazy, protože hub lze provozovat prakticky na jakémkoliv počı́tači s alespoň trochu rychlou linkou. Přes hub probı́hajı́ pouze řı́dı́cı́ data, samotná výměna dat mezi dvěma uživateli již probı́há přı́mo mezi nimi (v tomto nenı́ rozdı́l oproti Kazee). Na rozdı́l od sı́tě Kazaa, kde jsou v jednu chvı́li připojeny miliony uživatelů, je k jednomu hubu připojeno maximálně několik tisı́c počı́tačů. Proto je objem dat uživatelů připojených k jednomu hubu řádově menšı́, ale to je často vynahrazeno ”lokálnı́mi” lahůdkami v podobě domácı́ hudby, či filmů, které jsou na českých hubech běžně k dispozici, zatı́mco v celosvětové sı́ti Kazaa by je uživatel hledal dlouho a dost možná i marně. Každý hub má svého správce či hned několik správců, kteřı́ se starajı́ o pořádek na hubu. Na většinu hubů jste vpuštěni pouze v přı́padě, že sami máte co nabı́dnout a váš sdı́lený adresář obsahuje určité množstvı́ dat - napřı́klad 5 GB dat a vı́ce. Pokud máte méně dat, na hub nejste vpuštěni. Správci si také hlı́dajı́, co za soubory sdı́lı́te. Na většině hubů nenı́ povolena tvrdá či dětská erotika a sdı́lené soubory samozřejmě musı́ mı́t smysl. Sdı́let 500MB soubor plný nesmyslných znaků se nevyplácı́. Takovýmto falešným souborům se řı́ká fake“. Po objevenı́ něčeho takového je dotyčnému uživateli zpravidla zakázán přı́stup na určitou dobu. Tento zákaz přı́stupu se nazývá ban. Každý hub má svá vlastnı́ pravidla, která je dobrá znát, aby se uživatel svým jednánı́m zbytečně nepřipravil o možnost přı́stupu na daný hub. Většinou je specifikována řeč, 3 JEDNOTLIVÉ PROTOKOLY 13 kterou je možné na daném hubu komunikovat a zpravidla je omezen i počet hubů, ke kterým může být uživatel v jednu chvı́li připojen. Určitě jako velikou výhodu ocenı́ uživatelé DC++ to, že si mohou v kritériı́ch pro hledánı́ nastavit hledánı́ požadovaných souborů pouze u uživatelů, kteřı́ majı́ volné pozice pro stahovánı́ souborů. Těmto pozicı́m se řı́ká sloty. Tolik kolik má uživatel otevřeno slotů, tolik souborů lze od něj najednou stahovat. Mezi nevýhody DC++ patřilo to, že nedokázal rozpoznat, zda uživatel, od kterého se data stahovala, posı́lal data na 10% kapacity vašı́ linky nebo na 90%. V praxi to vypadalo tak, že jste vyhledali požadovaný soubor, nalezli jeho kopie u dalšı́ch uživatelů a čekali, kdy se u některého z nich uvolnı́ slot. Ve chvı́li, kdy se tak stalo, se soubor začal stahovat. Pokud byla rychlost na maximu, bylo to v pořádku. Pokud ne, museli jste uživatele vyřadit ze seznamu a čekat, až bude mı́t volný slot někdo jiný s rychlejšı́m připojenı́m. V současnosti jsou již k dispozici dalšı́ klienti novějšı́ generace, kteřı́ tento problém dokážı́ obejı́t a nabı́zı́ řadu dalšı́ch vlastnostı́, které DC++ nemá. Např. segmentové stahovánı́. K těmto klientům patřı́ např. CZDC++, StrongDC++ nebo DC:PRO. Obrázek 4: Screenshot p2p klienta sı́tě DirectConnect - strongDC++ 3 3.5 JEDNOTLIVÉ PROTOKOLY 14 eDonkey 2000 a eMule Výměnná sı́t’eDonkey 2000 využı́vá ke sdı́lenı́ několika většı́ch serverů, ke kterým se připojujı́ jednotlivı́ uživatelé. Úkolem těchto serverů je hlavně shromažd’ovánı́ a údržba informacı́ o dostupných souborech a zajištěnı́ jejich vyhledávánı́. To je tedy podobný princip jako napřı́klad princip hubů u Direct Connect, ovšem s tı́m podstatným rozdı́lem, že servery eDonkey 2000 si vyměňujı́ informace mezi sebou, takže pokud je uživatel připojen byt’jen k jedinému z nich, zı́skává automaticky údaje o souborech dosažitelných z ostatnı́ch serverů, což u DC nenı́. Oficiálnı́m klientem sı́tě eDonkey 2000 (eD2k) je stejnojmenný program eDonkey 2000, který je plný reklam a nenabı́zı́ takové široké možnosti jako jinı́ klienti této výměnné sı́tě. Mnohem použı́vanějšı́m klientem pro tuto sı́t’je p2p program jménem eMule. eMule se v současnosti těšı́ stále většı́ oblibě uživatelů a pomalu se stává jednı́m z nejoblı́benějšı́ch p2p klientů vůbec. Je navı́c oproti klientu eDonkey 2000 vytvářena jako Open Source. Je tedy zcela volně a legálně k dispozici, je zdarma a na rozdı́l od eD2k neobsahuje žádnou reklamu. Nabı́zı́ velmi pokročilé možnosti zı́skávánı́ a sdı́lenı́ souborů. eMule obsahuje vestavěného IRC klienta, který usnadňuje a zrychluje přı́padnou komunikaci s ostatnı́mi uživateli. Při vyhledávánı́ souborů nabı́zı́ čtyři základnı́ techniky: Server, Global, Kad Network a FileDonkey. Pomocı́ varianty Server lze prohledávat pouze server, ke kterému je uživatel právě přihlášený. Při použitı́ možnosti Global tento klient zajistı́, že budou prohledány všechny dostupné servery. Kad Network prohledá sı́t’ Kademlia, přičemž servery eDonkey 2000 budou ignorovány, a konečně volba FileDonkey zahájı́ hledánı́ skrze webové rozhranı́. V rámci celého projektu eMule běžı́ také vývoj zcela nového typu aplikace, který nemá mezi p2p klienty obdoby. Jmenuje se MobileMule a jedná se o program pro mobilnı́ telefony s podporou jazyka Java, který dovoluje vzdáleně ovládat běžı́cı́ho eMule klienta. V praxi celá věc vypadá přibližně tak, že si doma na svém počı́tači nechá uživatel běžet eMule a pomocı́ mobilnı́ho telefonu vybaveného MobileMule pak má možnost odkudkoli sledovat aktuálnı́ rychlost stahovánı́, vyhledávat nové soubory apod. Na telefon si stačı́ nainstalovat zhruba 50kB soubor ze stránek mobil.emule-project.net. Program eMule pak musı́ jet v aktivnı́m režimu a mı́t otevřený port 80. Na počı́tači nemůže běžet jiný webový server na tomto portu. V možnostech u webového rozhranı́ je pak potřeba povolit mobilMule. I z mobilnı́ho telefonu pak po zadánı́ přihlašovacı́ch údajů může uživatel vidět, jak rychle zrovna stahuje, může mazat soubory z fronty pro stahovánı́, vyhledávat soubory a přidávat je do stahovánı́, nebo přı́padně může vypnout celý počı́tač přes mobilnı́ telefon. eMule dále nabı́zı́ podrobné statistiky stahovánı́ s grafy, IRC klienta, předávánı́ zpráv apod. 3 JEDNOTLIVÉ PROTOKOLY 15 Výhodou eMule je stahovánı́ částı́ jednoho souboru od velkého množstvı́ uživatelů současně, běžně od desı́tek až stovek uživatelů. Tito uživatelé přitom nemusı́ mı́t soubor celý, stačı́ když majı́ tu část, kterou ještě nemáte vy. Úplně stejně to platı́ i opačným směrem. I od vás uživatelé stahujı́ soubory, a to i ty, které ještě nemáte celé. Čı́m vı́c lidé stahujı́ od vás, tı́m vy máte lepšı́ pozici ve frontách na jednotlivé části souboru. Kdo tedy nabı́zı́ hodně, stahuje rychleji. Na rozdı́l tedy od Kazaa, kde velká většina uživatelů vůbec nic nenabı́zı́ a jen stahuje, je eMule založena na vzájemné reciprocitě. Na sı́ti eDonkey 2000 se dá najı́t téměř všechno a u aktuálnı́ch věcı́, které nabı́zı́ vı́ce uživatelů, můžete stahovat i velmi rychle. Raritnı́ věci sice chvı́li trvajı́, ale po delšı́m připojenı́, kdy si uživatel vystojı́ frontu, se na něj řada dostane. eMule dává uživatelům lepšı́ pozici ve frontách při delšı́m připojenı́, proto je tento klient vhodný zejména na pevná připojenı́. Rovněž vzhledem k téměř trvalému odchozı́mu provozu je nutné u připojenı́ k internetu s omezenı́m na přenesená data (FUP) trochu hlı́dat přenesené objemy. To se týká zejména připojenı́ pomocı́ technologie ADSL. Nová verze eMule podporuje vedle eDonkey také zcela novou sı́t’Kademlia (zkráceně Kad), která nevyžaduje žádné centrálnı́ servery a všichni uživatelé vzájemně vytvářejı́ velký autonomnı́ systém. Nádhernou vlastnostı́ eMuly je mimo mobileMule I vzdálená správa. Můžete zapnout na svém počı́tači webový server eMuly a vzdáleně se tak odkudkoli připojit ke svému domácı́mu počı́tači a sledovat, jak se stahujı́ soubory, vyhledávat soubory a přidávat je do stahovánı́. Obrázek 5: Screenshot p2p klienta sı́tě eDonkey 2000 - eMule 3 3.6 JEDNOTLIVÉ PROTOKOLY 16 BitTorrent BitTorrent funguje oproti předem zmı́něným p2p klientům úplně jinak. Pro každé stahovánı́ se vytvořı́ vlastnı́ sı́t’, jejı́mž jediným úkolem je co nejrychleji distribuovat požadovaný soubor. Jakmile je soubor stažen, sı́t’zase zanikne. Stažené části souboru se ihned poskytujı́ dalšı́m uživatelům. Základem každé takto vytvořené torrentové sı́tě je koordinačnı́ program nazvaný tracker. Ten inicializuje sı́t’a funguje jako informačnı́ server pro všechny počı́tače, které se k němu připojı́. Aby se mohl počı́tač připojit do sı́tě, musı́ nejdřı́ve navázat spojenı́ s trackerem. K tomu sloužı́ soubor s koncovkou torrent. Ten obsahuje URL trackeru, informace o délce souboru a kontrolnı́m součtu. Dále poskytuje informace o tom, na kolik bloků je soubor rozdělen a jak velké tyto bloky jsou(zejména od 256 kb do 2 MB). Při posı́lánı́ souboru jsou tyto bloky ještě dále děleny a posı́lajı́ se jednotlivě jako pakety o velikosti 16 kB. Při spojenı́ počı́tače s trackerem se z počı́tače stane účastnı́k, neboli peer, náhodně vytvořené výměnné sı́tě. Vygeneruje si vlastnı́ identifikačnı́ čı́slo. Toto identifikačnı́ čı́slo se značı́ peer ID a má délku 20 bytů. Vygenerované peer ID se odešle trackeru a sloužı́ k jendoznačnému určenı́ počı́tače v sı́ti. Peer se od trackeru dozvı́, kolik dalšı́ch peerů je v sı́ti, kolik z nich nabı́zı́ kompletnı́ soubory ke staženı́(tzv. ”seedery”) a kolik z nich má jenom část souboru ke staženı́(tzv. ”leechery”). Tracker poskytuje peeru ještě seznam dalšı́ch 50 ID peerů, se kterými je možné navázat spojenı́. Nynı́ již nenı́ tracker potřeba, jeho úkol sestavenı́ sı́tě je splněn. Na posı́lánı́ bloků dat se již domlouvajı́ peery mezi sebou. Nový peer v sı́ti oslovı́ dalšı́ peery a požádá je o stáhnutı́ dat. Tento požadavek se nazývá handshake a neobsahuje žádná konkrétnı́ data. Poté si peery vyměnı́ tzv. bitové pole, což jsou informace o tom, které datové bloky se již stáhly. Pomocı́ bitového pole si peer postupně dělá obrázek o tom, které bloky dat jsou v sı́ti snadno ke staženı́ a které ne. Jakmile tyto informace vyhodnotı́, tak začne stahovat méně dostupné bloky, čı́mž se zabraňuje přetěžovánı́ sı́tě. I ve výměnném systému BitTorrent platı́, že čı́m vı́c a výhodněji uživatel nabı́zı́ data ke staženı́, tı́m má lepšı́ možnost on sám ke stáhnutı́ požadovaných souborů. Uživatel totiž může dávat přednost peerům s rychlým připojenı́m a ty pomalejšı́ blokovat, což je v jistém slova smyslu sobectvı́. Aby se tomuto jevu zabránilo, platı́, že pokud nabı́zı́ uživatel malý upload, nemůže stahovat od ostatnı́ch. Blokovánı́ peerů se nazývá choking. Aby se ze stahovánı́ nestalo neustále povolovánı́ a blokovánı́, je možné přijmout nový peer a zablokovat starý pouze každých 10 vteřin. Pro upload má každý uživatel v základnı́m nastavenı́ 4 neblokované peery. 3 JEDNOTLIVÉ PROTOKOLY 17 Tı́m, že se začnou stahavat požadovaná data, ovšem celý proces zdaleka nekončı́. Peer neustále hledá dalšı́ a hlavně rychlejšı́ peery. K tomu použı́vá funkci ”optimistic unchoking”. Peer naváže každých 30 sekund spojenı́ s novým peerem. Pokud je rychlost uploadu i downloadu dostatečná, zůstane spojenı́ navázané. Pokud ne, pokračuje peer při stahovánı́ v hledánı́ dalšı́ch peerů. Pokud uživatel během 1 minuty nepřijme od jiného peeru žádné bloky dat, automaticky předpokládá, že ho ten druhý peer zablokoval. V tomto přı́padě provede funkci ”antisnubbing”, pomocı́ které tento peer vyřadı́ ze sı́tě a na jeho mı́sto provede samostatný optimistic unchoking. Problémem je staženı́ poslednı́ch bloků dat. Rychlost stahovánı́ rapidně klesne, protože peer potřebuje ty bloky, které se nedajı́ snadno sehnat. Peer přejde do režimu ”endgame”. V tomto režimu pošle všem známým peerům dotaz na pakety chybějı́cı́ch bloků. V této fázi se poté pakety jednoho bloku stahujı́ i od několika různých peerů. Obrázek 6: Screenshot p2p klienta sı́tě bitTorrent - bitTorrent 3 3.7 JEDNOTLIVÉ PROTOKOLY 18 Gnutella Tato sı́t’je dostupná již dost dlouho a zezačátku zdaleka nedosahovala kvalit sı́tě FastTrack. Oficiálnı́m p2p klientem této sı́tě byl stejnojmenný program Gnutella. Ten ale nestačil, a tak vznikl program s podobným názvem - Gnotella. Ten patřil ve své době mezi nejpoužı́vanějšı́, proto byla sı́t’velmi bohatá na množstvı́ sdı́lených souborů. Vedle tohoto programu vzniklo plno dalšı́ch klientů (např. BearShare, Gnucleus, File Navigator, LimeWire, Swapper, Phex). Jelikož firma, která vytvořila program Gnotella zanikla, přestala i distribuce tohoto programu. Jak funguje Gnutella nynı́? Do sı́tě byly přidány tzv. ultrapeers, což jsou vyhrazené přı́pojné body do systému (např. Morpheus má několik takových vlastnı́ch uzlů). Dále je vylepšeno optimalizované vyhledávánı́ a program nově zvládá i tzv. MetaData. Běžně se s MetaDaty uživatel setká v podobě ID3 tagů u digitálně zpracovaných hudebnı́ch skladeb mp3. MetaData tedy umožňujı́ vložit do souboru informace o interpretovi, názvu skladby, albu, roku vydánı́, žánru a mnoho dalšı́ch zajı́mavých informacı́, jako např. kdo soubor vytvořil a kdo vlastnı́ copyright. Gnutella dı́ky tomu umı́ vyhledávat multimediálnı́ soubory podle stejných kritériı́ jako např. sı́t’FastTrack. Obrázek 7: Screenshot p2p klienta sı́tě Gnutella - BearShare 3.8 Přehled nejpoužı́vanějšı́ch klientů výměnných sı́tı́ 3 JEDNOTLIVÉ PROTOKOLY Klient Napster Kazaa Kazaa Lite Direct Connect DC++ CZDC++ StrongDC++ eDonkey 2000 eMule MobileMule bitTorrent bitComet Shareaza 1.8 BearShare 4.0.0 Popis Klienti výměnné sı́tě Napster Jediný a oficiálnı́ klient této sı́tě. Dı́ky němu bylo možné stahovat po připojenı́ k serverům soubory mp3. Program byl nucen ukončit svou činnost. Klienti výměnné sı́tě Kazaa Oficiálnı́ klient této sı́tě. Vydala jej společnost Sharman Network. Je zdarma, obsahuje reklamu a spyware. K dispozici je i placená verze bez reklamy, ta se jmenuje KaZaA Plus. Oblı́bený klient této sı́tě. Neobsahuje reklamu a spyware. Poskytován je zdarma. Klienti výměnné sı́tě Direct Connect Klient vydaný firmou NeoModus. Obsahuje reklamu. Open source projekt. Poskytuje velké množnosti nastavenı́ a neobsahuje reklamu. U nás dle hlasovánı́ jeden z nejoblı́benějšı́ch Direct Connect klientů. Nabı́zı́ mimo jiné i možnost nastavenı́ rychlosti stahovánı́ a nahrávánı́. Jedna z mutacı́ programu DC++. Poskytuje bezpečné segmentové stahovánı́ jednoho souboru od vı́ce uživatelů najednou. Klienti výměnné sı́tě eDonkey 2000 Oficiálnı́ klient této sı́tě. Obsahuje reklamu. Open Source projekt. Je zdarma a neobsahuje žádnou reklamu. Funkčně velmi dobře vybaven, stává se jednı́m z nejoblı́benějšı́ch p2p klientů výměnných sı́tı́ vůbec. Projekt umožňujı́cı́ ovládánı́ klienta přes mobilnı́ telefon. Klienti výměnné sı́tě bitTorrent Je to oficiálnı́ klient této sı́tě. Je složitějšı́ na ovládánı́. Oproti bitTorrentu je jednoduššı́ na ovládánı́. Má v sobě obsaženou vrstvu DHT. S touto vrstvou se již blı́žı́ decentralizované sı́ti. Klienti výměnné sı́tě Gnutella Klient postaven na základě názorů uživatelů. Je zdarma, neobsahuje žádný spyware ani reklamy. Obsahuje několik obdobných funkcı́ jako má např.KaZaA - skiny. Je považován za nejlepšı́ho klienta této výměnné sı́tě. Uživatelsky velmi přı́jemný klient této sı́tě. Stává se stále populárnějšı́m. Tabulka 1: Nejpoužı́vanějšı́ p2p klienti 19 4 4 4.1 BANDER 20 Bander Návrh Jako druhým požadavkem bylo u této bakalářské práce navrhnout a poté implementovat řešenı́ p2p programu řešı́cı́ho výměnu souborů mezi uživateli. U implementace byl dán požadavek na zabezpečenı́ dat. Před vlastnı́ implementacı́ programu Bander bylo potřeba vhodně navrhnout řešenı́ aplikace. Při zvažovánı́ několika různých možnostı́ jsem objevil návrhový vzor Command, který se mi podařilo zakomponovat do návrhu a pozdějšı́ho řešenı́ aplikace. Účelem tohoto návrhového vzoru je zapouzdřit jednotlivé požadavky a přı́kazy do objektů, které se pak ukládajı́ a předávajı́ dál. Rozhodl jsem se pro něj z toho důvodu, že umožnuje naimplementovat jednotlivé přı́kazy zvlášt’ ve třı́dách, a poté se tlačı́tkům a položkám menu pouze přidá objekt reprezentujı́cı́ tuto třı́du. Kód potřebných metod je tak tedy oddělen od kódu reprezentujı́cı́ho uživatelské rozhranı́. Tam jsou pouze naimplementovaná potřebná vstupnı́ data pro tyto objekty. Obrázek 8: Ukázkový diagram návrhového vzoru Command 4 BANDER 21 Při návrhu jednotlivých třı́d jsem musel vzı́t v úvahu i dalšı́ aspekty. Většina p2p programů je založena na architektuře Client - Server. Obě dvě tyto části má každý uživatel na své lokálnı́ stanici. Důvod je prostý: Vy stahujete od vzdáleného uživatele(v tuto chvı́li jste klientem vy a server je onen uživatel), ale zároveň od vás může stahovat někdo jiný(v tuto chvı́li jste serverem). Jednı́m z nejdůležitějšı́ch aspektů bylo tedy vhodně navrhnout třı́dy řešı́cı́ činnost serveru a klienta. Spojenı́m navrhovaných třı́d reprezentujı́cı́ch jednotlivé přı́kazy a třı́d potřebných pro funkci klientské a serverové části vznikl třı́dnı́ diagram aplikace Bander. Obrázek 9: Třı́dnı́ diagram aplikace Bander 4.2 Popis třı́d Zde je uveden stručný popis jednotlivých třı́d • Gui Třı́da Gui má na starost zobrazenı́ hlavnı́ho okna aplikace. V tomto okně jsou dostupné prvky které při aktivaci vytvořı́ objekty jiných třı́d. 4 BANDER 22 • GuiNastaveni Tato třı́da vyvolá okno s možnostmi nastavenı́ aplikace. Při spuštěnı́ instance této třı́dy se také vyvolá metoda která kontroluje zda již nenı́ aplikace nastavena. • Server Tato třı́da se stará o poslouchánı́ na daném portu. V přı́padě že na tomto portu zachytı́ požadavek, vytvořı́ instanci třı́dy ServerPrenosu, a dál poslouchá na daném portu. • ServerPrenosu Třı́da ServerPrenosu vytvářı́ svou instanci s parametrem čı́sla portu na kterém bude nadále komunikovat. Tento port jı́ určı́ a předá při zřı́zenı́ třı́da Server. • Client Instance třı́dy Client má na starost vyslánı́ konkrétnı́ho požadavku na na instanci třı́dy ServerPrenosu. Tyto dva objekty spolu komunikujı́ tak dlouho dokud je potřeba. • VytvorSeznam Objekt této třı́dy má za úkol vytvořit podle nastavených hodnot seznam souborů které uživatel sdı́lı́. • ZobrazSeznam Objekt této třı́dy zobrazı́ vybraný seznam souborů. • Hledej Instance této třı́dy hladá zadanou položku v daném souboru. Hledaná položka a jméno souboru ve kterém má tuto položku hledat jsou této instanci předány jako argumenty při jejı́m vytvořenı́. • SeznamUzivatelu Objekt této třı́dy vyvolá nové okno, kde uživatel vidı́ všechny přidané uživatele. Navı́c je možné zde přidat dalšı́ho uživatele, či některého smazat. 5 5 PROGRAMÁTORSKÉ ŘEŠENÍ APLIKACE BANDER 23 Programátorské řešenı́ aplikace Bander Bander je naprogramován v jazyce Java. Je možné jej použı́t nezávisle na platformě. Program Bander byl vytvořen pro použitı́ na menšı́ch, lokálnı́ch počı́tačových sı́tı́. Přistupuje k serverům přes IP adresy, což znamená že nenı́ možné aby byl program za firewallem či překladem sı́t’ových adres NAT. Cı́lem Banderu je poskytnout uživatelům co možná nejpohodlnějšı́ výměnu potřebných souborů. Bander je založen na velmi jednoduchém principu. Stačı́ uživateli znát IP adresy uživatelů ke kterým se chce připojit a přidat si je do lokálnı́ databáze. Od této chvı́le může přistupovat přes seznam jejich sdı́lených souborů k těmto datům a stahovat vše co potřebuje. Sám přitom nemusı́ nic sdı́let, což je prvnı́ podstatný rozdı́l oproti protokolům zmı́něným v prvnı́ části této práce. Druhým rozdı́lem je to, že Bander nemá žádná omezenı́. Nejsou zde žádné sloty na které by musel uživatel čekat, ani žádné omezenı́ rychlosti. 5.1 Programátorské řešenı́ Klient - Server části Klient - Server část je troufám si řı́ci klı́čovou částı́ každé aplikace řešı́cı́ sdı́lenı́ dat po sı́ti. S touto architekturou také úzce souvisı́ pojem port a hlavně jednotlivá přiřazené čı́sla portů, protože ne všechny porty je možné použı́t. Část Klient - Server je vytvořena tak, že serverová část se spustı́ ihned na začátku aplikace a skončı́ při ukončenı́ aplikace. Úkolem serveru je poslouchat na portu č. 50000. Ve chvı́li kdy server rozpozná přı́chozı́ požadavek od klienta, pouze zvolı́ dalšı́ volný port a tento port předá jako parametr instanci třı́dy ServerPrenosu, která se již s klientem na daném portu domluvı́ podle protokolu. Server tak tedy zůstává zase volný a poslouchá. Port si můžete představit jako ”bránu do sı́tě”. Na jednom portu může v jednu chvı́li běžet pouze jeden proces. Následujı́cı́ tabulka ukazuje rozdělenı́ portů. Následujı́cı́ interakčnı́ diagram znázorňuje jakým způsobem probı́há komunikace mezi klientem a serverem při přenosu dat. 5 PROGRAMÁTORSKÉ ŘEŠENÍ APLIKACE BANDER Rozsah portů 1-255 255-1023 1024-65535 1-1023 1024-49151 49152-65535 Popis Rozdělenı́ podle rozsahu portů Porty určené pro veřejnost, tzv. public ports. Porty určené pro komerčnı́ sféru, společnosti apod. Porty neregulované, volné pro libovolné aplikace. Rozdělenı́ portů podle kategoriı́ Well-known ports. Registrované porty. Porty privátnı́ a dynamické. Tabulka 2: Rozdělenı́ portů Obrázek 10: Třı́dnı́ diagram aplikace Bander 24 6 DOKUMENTACE 6 25 Dokumentace Dokumentace aplikace Bander je rozdělena na dvě části: • Programároská dokumentace • Uživatelská dokumentace 6.1 Programátorská dokumentace Programovacı́ jazyk java má k vytvářenı́ dokumentace přı́mo dané komentáře, ze kterých se poté pomocı́ programu javadoc vytvořı́ dokumentace v podobě internetových stránek. Jsou v nı́ popsány jednotlivé třı́dy a metody. Bander byl vytvořen ve vývojovém prostředı́ NetBeans IDE 5.0. Toto vývojové prostředı́ umožnuje také vytvořenı́ programátorské dokumentace ve formě javadocu, čehož bylo využito u dokumentace Banderu. Programátorská dokumentace je přiložena na CD ve složce Dokumentace/programatorska. 6.2 Uživatelská dokumentace Uživatelská dokumentace je v souboru formátu pdf. Je zde popsáno jak s programem pracovat. Grafické znázorněnı́ je v podobě screenshotů aplikace. Uživatelská dokumentace je přiložena na CD ve složce Dokumentace/uzivatelska. 7 7 POUŽÍVÁNÍ APLIKACE BANDER 26 Použı́vánı́ aplikace Bander K použı́vánı́ aplikace Bander je zapotřebı́ mı́t nainstalován java-runtime-environment verze 1.5 a vyššı́. Na CD je přiložen instalačnı́ soubor pro OS windows ve složce potrebneKeSpusteni/jre-1-5-0-windows-i586.exe. Jak již bylo zmı́něno výše, program Bander Vás nenutı́ sdı́let jakákoliv data k tomu, abyste mohli stahovat. Přesto je určen ke sdı́lenı́ souborů převážně v menšı́ch počı́tačových sı́tı́, např. ve firmách, kde se počı́tá s tı́m že i ostatnı́ uživatelé si budou muset něco stáhnout od Vás. Bander se spouštı́ souborem Bander.jar, který je umı́stěn v domovském adresáři aplikace Bander. Obrázek 11: Základnı́ obrazovka aplikace Bander 7 POUŽÍVÁNÍ APLIKACE BANDER 27 Úvodnı́ obrazovka obsahuje nahoře menu, kde je možné volat některé funkce. V menu Soubory - Nastavenı́ se otevře nové okno s nastavenı́m. Tam stačı́ pomocı́ tlačı́tka ”vybrat” zvolit adresář který si přejete nasdı́let. Dále je třeba nastavit svou IP adresu a uložit nastavenı́. Hodnotu portu nedoporučuji měnit. Obrázek 12: Nastavenı́ Banderu 7 POUŽÍVÁNÍ APLIKACE BANDER 28 Poté je třeba vytvořit seznam sdı́lených souborů. Ten se vytvořı́ stisknutı́m volby z menu Nástroje - Vytvoř seznam sdı́lených souborů. Po stisknutı́ této volby vypı́še Bander informačnı́ okno o vytvářenı́ souborů. Po odklepnutı́ začne samotné vytvářenı́ seznamu, o jehož ukončenı́ je uživatel opět informován v podobě informačnı́ho okna. Obrázek 13: Ukončenı́ vytvářenı́ seznamu sdı́lených souborů 7 POUŽÍVÁNÍ APLIKACE BANDER 29 Stáhnout seznam sdı́lených souborů od jiného uživatele je možné tak, že si přes menu Správa uživatelů - Správa uživatele otevřete okno se všemi uloženými kontakty. Poté stačı́ kliknout na označený kontakt pravým tlačı́tkem myši a dát možnost Stáhnout seznam souborů. Obrázek 14: Ukázka stáhnutı́ seznamu souborů 7 POUŽÍVÁNÍ APLIKACE BANDER 30 Pro stáhnutı́ konkrétnı́ho souboru je potřeba zobrazit seznam souborů přes volbu Nástroje - Zobraz seznam sdı́lených souborů. Otevře se dialogové okno pro výběr souboru. Obrázek 15: Ukázka výběru seznamu souborů 7 POUŽÍVÁNÍ APLIKACE BANDER 31 Ve chvı́li kdy je seznam otevřen, stačı́ kliknout na označenou položku pravým tlačı́tkem myši a dát volbu stáhnout. Obrázek 16: Ukázka stáhnutı́ konkrétnı́ položky 8 8 ZÁVĚR 32 Závěr Závěrem této práce je zhodnotit výslednou aplikaci. Podařilo se vytvořit jednoduchou aplikaci Bander, která umožňuje sdı́let a vyhledávat soubory mezi jednotlivými uživateli na lokálnı́ sı́ti. Aplikace funguje na principu Client - Server, což umožňuje oboustrannou komunikaci mezi uživateli. Při testech se ukázalo, že aplikace dosahuje při přenášenı́ souborů velmi dobrých výsledků. Jednotlivé přenosy probı́hajı́ na různých portech, což umožňuje přenášet vı́ce souborů najednou. Při vývoji aplikace nastaly potı́že které se bohužel z časových důvodů nepodařilo vyřešit až do konce. Jedná se o implementaci přenosu souborů přes zabezpečenou vrstvu Secure Socket Layer. I přes dobré výsledky aplikace by bylo do budoucna dobré rozšı́řit implementaci o podporu segmentového stahovánı́.