20
TazUP – P2P sharing protocol TazUP [tez ap] Peter Csiba Martin Šrámek Jakub Vaňo 2. inf, 2010/2011, FMFI UK

TazUP – P2P sharing protocol

  • 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

Page 1: TazUP – P2P sharing protocol

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

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

Klient

Aplikácia v jazyku JAVA Testovaná pod OS Linux Užívateľské rozhranie – grafické aj konzolové

Page 4: TazUP – P2P sharing protocol

Terminal user interface

Konzolové rozhranie používa knižnicu jcurses

Page 5: TazUP – P2P sharing protocol

Graphical user interface

Grafické rozhranie používa knižnicu Swing

Page 6: TazUP – P2P sharing protocol

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

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

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

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

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

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

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

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

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

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

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

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

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

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

TazUP

Ďakujeme za pozornosť!