Microchip MiWi P2P Wireless Protocol - Microchip Technology Inc
TazUP – P2P sharing protocol
description
Transcript of TazUP – P2P sharing protocol
![Page 1: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/1.jpg)
TazUP – P2P sharing protocol
TazUP [tez ap]
Peter Csiba Martin Šrámek Jakub Vaňo
2. inf, 2010/2011, FMFI UK
![Page 2: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/2.jpg)
Obsah projektu
Návrh nového peer-to-peer protokolu na zdieľanie súborov
Implementácia jeho prvotnej verzie Oficiálny klient protokolu
![Page 3: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/3.jpg)
Klient
Aplikácia v jazyku JAVA Testovaná pod OS Linux Užívateľské rozhranie – grafické aj konzolové
![Page 4: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/4.jpg)
Terminal user interface
Konzolové rozhranie používa knižnicu jcurses
![Page 5: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/5.jpg)
Graphical user interface
Grafické rozhranie používa knižnicu Swing
![Page 6: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/6.jpg)
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.
![Page 7: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/7.jpg)
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
![Page 8: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/8.jpg)
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
![Page 9: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/9.jpg)
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
![Page 10: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/10.jpg)
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)
![Page 11: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/11.jpg)
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
![Page 12: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/12.jpg)
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
![Page 13: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/13.jpg)
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
![Page 14: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/14.jpg)
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ť
![Page 15: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/15.jpg)
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
![Page 16: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/16.jpg)
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
![Page 17: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/17.jpg)
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
![Page 18: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/18.jpg)
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
![Page 19: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/19.jpg)
Download
http://tazup.csip.sk/http://people.ksp.sk/~imp/projects/tazup/
http://www.st.fmph.uniba.sk/~vano4/projects.php
![Page 20: TazUP – P2P sharing protocol](https://reader035.fdocuments.net/reader035/viewer/2022062217/56815097550346895dbe9232/html5/thumbnails/20.jpg)
TazUP
Ďakujeme za pozornosť!