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ı́.