200 likes | 301 Views
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
E N D
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ť!