P2P Tehnoloogiad MTAT (2 AP) Omadused ja P2P Mudelid Ilja Livenson 1

Seotud dokumendid
P2P süsteemid

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Peer-to-peer süsteemid Peer-to-peer süsteemide liigitus Liigitus Ründed Anonüümsus Puuräsi DHT Näide: Kazaa Näide: Kadem

Microsoft Word - Referaat.docx

Microsoft Word - EVS_ISO_IEC_27001;2014_et_esilehed.doc

PowerPoint Presentation

EESTI STANDARD EVS-EN 1790:1999 This document is a preview generated by EVS Teemärgistusmaterjalid. Kasutusvalmid teekattemärgised Road marking materi

SQL

SQL

EESTI STANDARD EVS-EN :2000 This document is a preview generated by EVS Terastraat ja traattooted piirete valmistamiseks. Osa 4: Terastraadist

Avatud ja läbipaistev e-riik: Ees6 kui rajaleidja Andrus Kaarelson RIA peadirektori asetäitja riigi infosüsteemi alal 10. oktoober 2017

Pealkiri

Võrguinverterite valik ja kasutusala päikeseelektrijaamades Robert Mägi insener

Print\A4\QualifyReduced.pmt

Loeng05

Sidekursus 2002

Juhend nutiterminali seadistamiseks ja kaardimaksete vastuvõtmiseks Ingenico Link/2500 ja icmp

DNS teenus teoorias ja praktikas Autor Siim Adamson ITK Autor: Siim Adamson ITK

REQUEST FOR AN ASSIGNMENT OF LEI (fond) LEI KOODI MÄÄRAMISE TAOTLUS (fond) 1. FUND DATA / FONDI ANDMED: Legal Name / Ametlik nimi: Other Fund Names /

Operatsioonisüsteemi ülesanded

BIM360 ja RealityCapture

Skriptimiskeeli, mida ei käsitletud Perl Python Visual Basic Script Edition (VBScript) MS DOS/cmd skriptid Windows PowerShell midagi eksootilisemat: G

Microsoft Word - Loppukilpailu2015_16_tehtavat_viro_1

Print\A4\QualifyReduced.pmt

Süsteemide modelleerimine: praktikum Klassiskeemid Oleg Mürk

(Microsoft PowerPoint - seminar_6_n\365uded-ainemudel tagasiside.ppt [Compatibility Mode])

Ettevalmistavad tööd 3D masinjuhtimise kasutamisel teedeehituses ning erinevate masinjuhtimise võimaluste kasutamine

Monitooring

Ppt [Read-Only]

Print\A4\QualifyReduced.pmt

Loeng07

Erasmus+: Euroopa Noored eraldatud toetused 2015 KA1 NOORTE JA NOORSOOTÖÖTAJATE ÕPIRÄNNE NOORTEVAHETUSED R1 1. taotlusvoor Taotleja Taotluse pealkiri

Microsoft PowerPoint - BPP_MLHvaade_juuni2012 (2)

(Tõrked ja töökindlus \(2\))

Slide 1

Funktsionaalne Programmeerimine

Document number:

EE-macbook-retina-12-early2015-qs.indd

Microsoft Word - ref - Romet Piho - Tutorial D.doc

Print\A4\QualifyReduced.pmt

Tiia Salm 2011 Online kirjastus CALAMÉO Calameo kujutab endast on-line kirjastust, mis võimaldab oma dokumente avaldada e-raamatuna tasuta. Failid (Pd

Side loeng 21

Hoia oma arvuti turvaline ja kiire 1.Leia start nupust alustades Juhtpaneel 2.Juhtpaneeli aadressiribalt leia Kõik juhtpaneeli üksused 3.Avanenud tööa

Neurovõrgud. Praktikum aprill a. 1 Stohhastilised võrgud Selles praktikumis vaatleme põhilisi stohhastilisi võrke ning nende rakendust k

Sissejuhatus GRADE metoodikasse

SAF 7 demo paigaldus. 1.Eeldused SAF 7 demo vajab 32- või 64-bitist Windows 7, Window 8, Windows 10, Windows Server 2008 R2, Windows Server 2012, Wind

rp_ IS_3

Pintsli otsade juurde tegemine Esiteks Looge pilt suurusega 64x64 ja tema taustaks olgu läbipaistev kiht (Transparent). Teiseks Minge kihtide (Layers)

Microsoft Word - polkaudio 2010 hinnakiri

Kommunikatsiooniteenuste arendus (IRT0080) loeng 8/2014 Võrkude haldus Avo 1

Microsoft Word - essee_CVE ___KASVANDIK_MARKKO.docx

loeng2

Pangalingi spetsifikatsioon Pocopay pangalingilt makse algatamiseks tuleb kasutada teenust Kaupmees teeb päringu Pocopayle aadressile

Kehtiv alates Vormi TSD lisa 3 Applicable from Annex 3 of Form 3 Unofficial translation Maksu- ja Tolliamet Estonian Tax and Cus

HAJUSSÜSTEEMID HAJUSSÜSTEEMID Kaugprotseduurid IDL kompileerimine ONCIDLnäide CORBAIDLnäide MIDLnäide DCERPCmuidomadusi XML-RPC JSON-RPC REST document

Müük (Microsoft Dynamics AX (Axapta) tarkvara) Paigaldusjuhend bifree.ee qlik.com

EESTI STANDARD EVS-ISO/IEC :2005 This document is a preview generated by EVS INFOTEHNOLOOGIA Avatud süsteemide vastastikune ühendamine Tehingut

Pealkiri

DHL GLOBAL FORWARDING SISSEOSTETAVATE TEENUSTE MÕÕTMINE, HINNAMONITOORING, TEENINDUSTASEMED

Loeng12

Õppematerjalide esitamine Moodle is (alustajatele) seminar sarjas Lõunatund e-õppega 12. septembril 2017 õppedisainerid Ly Sõõrd (LT valdkond) ja Dian

Andmeturve

Print\A4\QualifyReduced.pmt

Microsoft Word - i08_605.etw

Mining Meaningful Patterns

Paroolide murdmine vastavate tabelitega (rainbow table). „Sool“ paroolide krüpteerimisel. Protokoll IPSec, võtmevahetus IKE protokolliga.

Operatsioonisüsteemid Intelligentne arvutikasutus IFI6070 Tanel Toova

PowerPointi esitlus

Loeng03

EST_QIG_TEW-424UB(V3.1.1).cdr

Print\A4\QualifyReduced.pmt

Microsoft Word - E-portfoolio-googlesites.docx

SIDE (IRT 3930) Loeng 2/2012 Sidevõrgud ja süsteemid Teema - signaalid Signaalid Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika ins

SIDE (IRT 3930) Loeng 9/2012 Infotransport Teema - sõnumid Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst. Sõn

EESTI STANDARD EVS-ISO/IEC 27000:2015 This document is a preview generated by EVS INFOTEHNOLOOGIA Turbemeetodid Infoturbe halduse süsteemid Ülevaade j

SIDE (IRT 3930) Loeng 10/2011 Võrguteenused Teema - teenused Avo Ots telekommunikatsiooni õppetool, TTÜ raadio- ja sidetehnika inst. T

Programmi AnimatorDV Simple+ lühike kasutajajuhend

Microsoft PowerPoint _04_20_Teadusest_ATI_tudengitele.pptx

Andmeturve

Häälestusutiliit Kasutusjuhend

Andmebaasid, MTAT Andmebaasikeeled 11.loeng

Print\A4\QualifyReduced.pmt

Väljavõte:

P2P Tehnoloogiad MTAT.08.002 (2 AP) Omadused ja P2P Mudelid Ilja Livenson ilja@nicpb.ee 1

Eelmine kord Esimene tähtaeg 02.10.2006 (aga mida varem, seda parem!) Servent olem, mis saab nii teha päringut, kui ka vastata sellele Puhas vs hübriid P2P süsteem Communication > Group Management -> Robustness -> Class-specific -> Application specific tasemed 2

Seekord P2P omadused P2P mudelid Centralized Directory Model Flooded Requests Model Document Routing Model Chord, CAN, Tapestry, Pastry Projektid (mida varem hakkad, seda kergem on sess!) 3

Decentralization Decentralization 4

Decentralization Pros: Price, scalability, perfomance Cons: Security, Joining the system 5

Scalability Scalability Synchronization of central services Maintance of states Programming model of computation Decentralization 6

Anonymity Anonymity Scalability Decentralization 7

Anonymity forms Author - dokumendi autorit ei saa määrata Publisher - dokumendi avaldajat ei saa määrata Reader - kasutajat, kes tõmbab dokumendi, ei saa määrata Server - dokumendi põhjal ei saa määrata servereid, kus ta asub Document serverid ei tea, mis faile nad hoiavad Query server ei tea, mis dokumenti ta kasutab, kui vastab päringule 8

Tehnikad 9

Self-organization OceanStore routing Pastry failide replikad Scalability FastTrack, Skype supernodes Anonymity Self-organization Decentralization 10

Cost of Ownership Anonymity Scalability Cost of ownership Self-organization Väga väike võrreldes klient-server rakendustega Decentralization 11

Ad-hoc Connectivity Anonymity Scalability Cost of ownership Self-organization Ad-hoc connectivity Decentralization 12

Ad-hoc Connectivity Ressursside pool P2P süsteemis on ebastabiilne Ligipääs failidele on ebastabiilne SLA puhul osa teenuspakkujast võib olla maas Koostöö süsteemid Mobiilsed seadised Läbipaistev suhtlemine offline süsteemidega (proxies, sender relays,...) 13

Perfomance Anonymity Scalability Cost of ownership Self-organization Ad-hoc connectivity Perfomance Decentralization 14

Perfomance Processing Storage Networking 15

Perfomance Keskselt koordineeritud süsteemid DNS Hajutatud süsteemid Message forwarding Võrgutraffic läheb suuremaks 16

Perfomance Replication Luuakse koopiad otsijale lähemale Uuendusi on vaja propageerida (consistency) Caching FreeNet'is kui fail on leitud ning tagastatud soovijale, iga vahesõlm puhverdab tagastatud andmeid 17

Perfomance Intelligent routing On vaja aru saada kuidas sõlmed omavahel suhtlevad (sotsioloogia vaatenurgast) Small-world phenomenon (Milgram 1967) Sõlmed, millel on sarnased huvid, võiksid olla seotud otseselt Võrgukulud langevad, otsingu kiirus kasvab 18

Security Anonymity Scalability Cost of ownership Self-organization Ad-hoc connectivity Perfomance Security Decentralization 19

Security Multi-key encryption Public key, multiple private keys Sandboxing Koodi käivitamine sõlmes on ebaturvaline On vaja tagada, et kood ei tee midagi halba Virtuaalmasinad, proof-carrying code, certifying compilers 20

Security Digital Rights Management On vaja tagada, et autorit saaks alati määrata Watermarking (steganogrpahy): faili lisatakse signatuur Reputation and Accountability On vaja määrata, kui hea sõlm on Jagad palju muusikat -> oled hea Freeloader -> oled halb 21

Security Firewalls P2P vajab otseühendust sõlmede vahel (duh) Inbound TCP on väga tihti blokeeritud NAT Kui mõlemad sõlmed on peidetud NATi/firewalli taha, võib kasutada kolmanda sõlme 22

Transparency Anonymity Scalability Cost of ownership Self-organization Ad-hoc connectivity Perfomance Security Decentralization Transparency 23

Fault Resilience Fault-resilience Anonymity Scalability Cost of ownership Self-organization Ad-hoc connectivity Perfomance Security Decentralization Transparency 24

Fault-Resilience Central design point Vältida central point of failure! Erisõlmed relays Groove Sõnumite järjekord 25

Interoperability Fault-resilience Interoperability Anonymity Scalability Cost of ownership Self-organization Ad-hoc connectivity Perfomance Security Decentralization Transparency 26

Interoperability Peer-to-Peer Working Group (Internet2) Not too active JXTA Katse teha de facto standardit Järgmise loengu teema Hea baas projekti tegemiseks (olemas ka C/C++ realisatsioon)! 27

P2P Omadused Fault-resilience Interoperability Anonymity Scalability Cost of ownership Self-organization :) Ad-hoc connectivity Perfomance Security Decentralization Transparency 28

P2P Mudelid Centralized Directory Model Flooded Requests Model Document Routing Model 29

Centralized Directory Sõlmed avalikustavad infot enda kohta tsentraalses serveris Kui tuleb päring, server valib hulgast parima peer'i Mõned skaleeruvuse probleemid Samas Napster'i näide näitab, et see ei ole eriti suur probleem 30

Flooded Requests Gnutella mudel Võrgukoormus on väga suur Super-peer'id võivad aidata 31

Document Routing FreeNet'i lähenemine Iga peer saab ID P Iga peer teab teatud hulk teisi peer'i Dokumendi publitseerimisel saab dokument samuti ID D = h(sisu, nimi) Dokument on siis saadetud edasi kuni ta jõuab peer'ini, mille ID P on ID D 'ga kõige sarnasem 32

Document Routing 33

Document Routing Otsimine Päring läheb peer'ile kõige sarnasema ID'ga kuni dokument on leitud Dokument on transatud tagasi, iga transaktsioonis osalev peer salvestab oma koopiat Problems On vaja teada ID enne otsimist Islanding problem (segmenteerimine) 34

Document Routing Chord, CAN, Tapestry ja Pastry Põhisiht vähendada hop'ide arvu otsimisel Need algoritmid kas garanteerivad või väidavad, et suure tõenäosusega otsing on O(log) keerukusega Järgmised slaidid on võetud siit: http://www.cs.bgu.ac.il/~ccsh032/ 35

CAN CAN is Content-Addressable Network Interface insert(key, value) Value = retrieve(key) Properties Scalable Operationally simple Good perfomance 36

CAN: basic idea

CAN: basic idea insert (K 1,V 1 )

CAN: basic idea insert (K 1,V 1 )

CAN: basic idea (K 1,V 1 )

CAN: basic idea retrieve (K 1 )

CAN: solution virtual Cartesian coordinate space entire space is partitioned amongst all the nodes every node owns a zone in the overall space abstraction can store data at points in the space can route from one point to another point = node that owns the enclosing zone

CAN: simple example 1

CAN: simple example 1 2

CAN: simple example 1 3 2

CAN: simple example 1 3 2 4

CAN: simple example

CAN: simple example I

CAN: simple example node I::insert(K,V) I

CAN: simple example node I::insert(K,V) (1) a = h x (K) I x = a

CAN: simple example node I::insert(K,V) (1) a = h x (K) b = h y (K) I y = b x = a

CAN: simple example node I::insert(K,V) (1) a = h x (K) b = h y (K) I (2) route(k,v) -> (a,b) Following the straight line path from the source to the destinantion

CAN: simple example node I::insert(K,V) (1) a = h x (K) b = h y (K) I (2) route(k,v) -> (a,b) (K,V) (3) (a,b) stores (K,V)

CAN: simple example node J::retrieve(K) (1) a = h x (K) b = h y (K) (2) route retrieve(k) to (a,b) (K,V) J

CAN Data stored in the CAN is addressed by name (i.e. key), not location (i.e. IP address)

2d neighbors CAN: routing table

CAN: routing (a,b) (x,y)?

CAN: routing A node only maintains state for its immediate neighboring nodes

CAN: node insertion Bootstrap node new node 1) Discover some node I already in CAN

CAN: node insertion I new node 1) discover some node I already in CAN

CAN: node insertion (p,q) 2) pick random point in space I new node

CAN: node insertion I (p,q) J new node 3) I routes to (p,q), discovers node J

CAN: node insertion Periodic updates: send zone id to its neighbors New node obtains routing from J J new 4) split J s zone in half new owns one half

CAN: node failures Need to repair the space Explicit hand over recover database soft-state updates use replication, rebuild database from replicas repair routing takeover algorithm

CAN: takeover algorithm Simple failures know your neighbor s neighbors when a node fails, one of its neighbors takes over its zone Periodic update include: zone id + neighbors Absense: singals failure TAKEOVER message to all failed node neighbors and sets a takeover timer Receipt of TAKEOVER: compare volume and either cancel or reissue TAKEOVER message

CAN: takeover algorithm More complex failure modes simultaneous failure of multiple adjacent nodes scoped flooding to discover neighbors hopefully, a rare event

CAN: node failures Only the failed node s immediate neighbors are required for recovery

Design recap Basic CAN completely distributed self-organizing nodes only maintain state for their immediate neighbors Additional design features multiple, independent spaces (realities) background load balancing algorithm simple heuristics to improve performance

Multi-Demensioned Spaces Increase the number of dimensions Result: reduce path length A node NOW has more neighbors

Realities Multiple coordinate space A node is assigned r coordinate zones Content is replicated to all zones Result: can route to (x,y,z) on any reality and at each hop, can use different reality Each value is kept at r nodes and each node has r neighbor sets

Outline Introduction Design Evalution Ongoing Work

Evaluation Scalability Low-latency Load balancing Robustness

CAN: scalability For a uniformly partitioned space with n nodes and d dimensions per node, number of neighbors is 2d average routing path is (dn 1/d )/4 hops simulations show that the above results hold in practice Can scale the network without increasing per-node state Chord/Plaxton/Tapestry/Buzz log(n) nbrs with log(n) hops

CAN: low-latency Problem latency stretch = (CAN routing delay) (IP routing delay) application-level routing may lead to high stretch Solution increase dimensions heuristics RTT-weighted routing multiple nodes per zone (peer nodes) deterministically replicate entries

Overloading Zones Multiple nodes per zone up to MAXPEERS Split zone: only if over MAXPEERS Each peer in zone knows all others in zone, but still keep one neighbor per zone. Periodically: requst list of peers from neighbor and select a new neighbor with best RTT Content: divided or replicated

CAN: load balancing Two pieces Dealing with hot-spots popular (key,value) pairs nodes cache recently requested entries overloaded node replicates popular entries at neighbors Uniform coordinate space partitioning uniformly spread (key,value) entries uniformly spread out routing load

Uniform Partitioning Added check at join time, pick a zone check neighboring zones pick the largest zone and split that one

Uniform Partitioning 100 65,000 nodes, 3 dimensions Percentage of nodes 80 60 40 w/o check w/ check V = total volume n 20 0 V 16 V 8 V 4 V 2 Volume V 2V 4V 8V

CAN: Robustness Completely distributed no single point of failure Not exploring database recovery Resilience of routing can route around trouble

Routing resilience destination source

Routing resilience

Routing resilience destination

Routing resilience

Routing resilience Node X::route(D) If (X cannot make progress to D) check if any neighbor of X can make progress if yes, forward message to one such nbr

Routing resilience

CAN: node insertion Inserting a new node affects only a single other node and its immediate neighbors or O(d) neighbors

Lõpp? Järgmine kord JXTA 87