Upload
elon
View
41
Download
0
Embed Size (px)
DESCRIPTION
TazUP – P2P sharing protocol. TazUP [tez ap] Peter Csiba Martin Šrámek Jakub Vaňo 2. inf, 2010/2011, FMFI UK. Obsah projektu. Návrh nového peer-to-peer protokolu na zdieľanie súborov Implementácia jeho prvotnej verzie Oficiálny klient protokolu. Klient. Aplikácia v jazyku JAVA - PowerPoint PPT Presentation
Citation preview
TazUP – P2P sharing protocol
TazUP [tez ap]
Peter Csiba Martin Šrámek Jakub Vaňo
2. inf, 2010/2011, FMFI UK
Obsah projektu
Návrh nového peer-to-peer protokolu na zdieľanie súborov
Implementácia jeho prvotnej verzie Oficiálny klient protokolu
Klient
Aplikácia v jazyku JAVA Testovaná pod OS Linux Užívateľské rozhranie – grafické aj konzolové
Terminal user interface
Konzolové rozhranie používa knižnicu jcurses
Graphical user interface
Grafické rozhranie používa knižnicu Swing
Protokol
P2P protokol => žiadne centrálne servery Protokol na aplikačnej vrstve Na transportnej vrstve využíva TCP aj UDP
TCP na prenos súborov UDP na keep-alive pingy a vyhľadávanie
Na sieťovej vrstve náš oficiálny klient podporuje iba IPv4. Implicitne používame port 4747.
Pripojenie do siete
Klient si zvolí port, na ktorom bude komunikovať – implicitne je to 4747
Neexistujú centrálne servery, preto treba poznať nejakých iných peerov a pridať ich adresu a port do zoznamu, tzv. peerlistu
Ak nikoho nepoznáme, na účel zoznamovania sa s inými užívateľmi protokolu môžu slúžiť napr. špecializované webstránky
Na lokálnej sieti funguje peer discovery
Peer ID
Každý peer si vygeneruje náhodný 32-bitový identifikátor, pod ktorým bude vystupovať v sieti
Existuje šanca kolízie, je však taká malá, že sa nám viac oplatí ju riskovať, než sa dohodnúť na ID s ostatnými peermi, čo by bola „zbytočná byrokracia naviac“
Ak by ku kolízii predsa len došlo, možno klienta jednoducho reštartovať a zvolí sa nové ID
Peer management
Každý klient posiela peerom zo svojho peerlistu pravidelné keep-alive správy („pingy“)
Pingom sa peerovia informujú o svojej aktivite aj svojom Peer ID
Ak peer dostane ľubovoľnú správu, pridá si odosielateľa do peerlistu
Preto pri nadväzovaní komunikácie stačí „jednostranná známosť“
Broadcast ping – local peer discovery
Vyhľadávanie
Súbory sa vyhľadávajú na základe kľúčových slov
Vyhľadávacia požiadavka sa posiela všetkým aktívnym peerom z peerlistu
Šíri sa rekurzívne do určitej hĺbky (TTL)
Vyhľadávanie
Aby sa vyhlo zahlteniu siete, ak je jej topológiou hustý graf, peer neodpovie na dve rovnaké vyhľadávacie požiadavky s rovnakým ID odosielateľa v krátkom čase za sebou
Ak peer, ktorý dostane požiadavku, zistí, že má požadovaný súbor (matchujúci vyhľadávané kľúčové slovo), musí to oznámiť odosielateľovi
Vyhľadávanie - odpoveď
Ako informuje zdieľajúci peer vyhľadávajúceho? Odpoveď možno poslať rekurzívne naspäť Problém - ak chcú zdieľajúci a vyhľadávajúci
peer nadviazať TCP spojenie na stiahnutie súboru, nemali by do toho zahŕňať aj ostatných „medzi nimi“
V skutočnosti sa musia sa informovať o svojich adresách
Vyhľadávanie - odpoveď
Implementované riešenie: Vyhľadávajúci peer do požiadavky „pribalí“
svoju IP adresu a port Problém – klient nevidí vlastnú adresu (nevie,
na ktorom rozhraní s kým komunikuje). Adresu tam v skutočnosti pribalí až prvý peer, ku ktorému sa požiadavka dostane
Zdieľajúci peer nadviaže TCP spojenie na túto adresu
Vyhľadávanie - odpoveď
Nevýhody tohto riešenia: porušuje OSI model Pribalená IP adresa nemusí dávať zmysel pri
komunikácii medzi rôznymi rozhraniami, napr. lokálna sieť a internet
Problémy s NAT-om Podstatná výhoda tohto riešenia
Sťahovanie cez „prostredníkov“ by bolo pomalé a výrazne by zahlcovalo sieť
Sťahovanie súborov
Používa sa protokol TCP Možno sťahovať niekoľko súborov naraz Dáta sa neposielajú ako súvislý prúd, ale po
častiach Toto umožňuje pamätať si, aká časť súboru sa
preniesla, ak by sa náhle prerušilo spojenie Sťahovanie sa potom dá obnoviť, netreba
začínať odznova
Sťahovanie súborov
Ak peer usúdi, že od neho sťahuje súbory veľa iných peerov a nemá kapacitu na ďalšie prenosy, môže odmietnuť poskytnutie súboru
• Vtedy klient posiela požiadavku ďalším peerom, o ktorých vie, že majú ten istý súbor
• Súbor je jednoznačne identifikovaný názvom, veľkosťou a kontrolným súčtom SHA-1
Budúcnosť protokolu
• Zavedenie metriky na peeroch podľa ID
• Vyhľadávať sa bude po vrstvách podľa vzdialeností peerov
• Redšia topológia siete
• Menej duplikátnych požiadaviek – efektívnejšie vyhľadávanie
Budúcnosť protokolu
• Lepší peer management
– Udržiavanie malého peerlistu pre efektívnejšiu komunikáciu
– Väčšina peerlistu by mala byť tvorená užívateľmi, ktorí sú často aktívni, alebo boli nedávno aktívni
– Prijmeme aj niekoľko neaktívnych peerov, aby sme dali šancu novým používateľom
• Podpora IPv6
Download
http://tazup.csip.sk/http://people.ksp.sk/~imp/projects/tazup/
http://www.st.fmph.uniba.sk/~vano4/projects.php
TazUP
Ďakujeme za pozornosť!