peer-to-peer (p2p) hálózatok

27
Peer-to-Peer (P2P) hálózatok BMEVITT9176 Választható tárgy 2006 március 6

Upload: zhen

Post on 06-Jan-2016

57 views

Category:

Documents


0 download

DESCRIPTION

Peer-to-Peer (P2P) hálózatok. BMEVITT9176 Választható tárgy 2006 március 6. Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications. Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan - MIT. Teljesítmény elemzés. Gyors keresés nagy rendszerekben - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Peer-to-Peer (P2P) hálózatok

Peer-to-Peer (P2P) hálózatok

BMEVITT9176

Választható tárgy

2006 március 6

Page 2: Peer-to-Peer (P2P) hálózatok

Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications

Ion Stoica, Robert Morris, David Karger,M. Frans Kaashoek, Hari Balakrishnan - MIT

Page 3: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 3

Teljesítmény elemzés

Gyors keresés nagy rendszerekben Alacsony szórással a keresési időben Robosztus, még gyakori csomóponti hibák

esetén is

Page 4: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 4

Chord implementáció

3000 soros C++ kód Library amely tetszőleges alkalmazáshoz

linkelhető Kis Internet teszthálón kipróbálva Funkciók:

lookup(key): azon csomópont IP címe amely a kulcsért felelős

kulcs-felelősség változások terjesztése

Page 5: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 5

Alkalmazás: Chord-DNS

DNS keresési szolgálat host name IP cím

Chord-based DNS: nincsenek root serverek nincs manuális routing information menedzsment nincs naming structure

Page 6: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 6

Irodalom

I. Stoica, R. Morris, D. Karger, F. Kaashoek, H. Balakrishnan, "Chord: A Scalable Peer-To-Peer Lookup Service for Internet Applications," AC Sigcomm2001, http://www.acm.org/sigcomm/sigcomm2001/p12.html

The Chord Projecthttp://www.pdos.lcs.mit.edu/chord/

Page 7: Peer-to-Peer (P2P) hálózatok

Tapestry: A Resilient Global-scale Overlay for Service Deployment

Ben Y. Zhao, Ling Huang, Jeremy Stribling, Sean C. Rhea, Anthony D. Joseph, and John Kubiatowicz

IEEE Journal on Selected Areas in Communications, January 2004, Vol. 22, No. 1.

Page 8: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 8

Tapestry

Egy elosztott, hibatűrő, adaptív lokalizáló és útválasztó infrastruktúra

Utótag (suffix) alapú hypercube útválasztás A Plaxton algoritmus ötletére alapoz

C.G. Plaxton, R. Rajaraman and A.W. Richa,

Accessing Nearby Copies of Replicated Objects in a Distributed Environment.,

9th Annual ACM Symposium on Parallel Algorithms and Architectures (SPAA '97), pp 311-320, Newport, RI, USA, 1997http://citeseer.ist.psu.edu/plaxton97accessing.html

Page 9: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 9

Plaxton/Tapestry címzés

Bármely csomópont lehet: Szerver – állományokat tárol Router – csomagokat továbbít Kliens – kéréseket kezdeményez

Név (cím-) tartomány Csomópontok és állományok egyaránt Megfelelően nagy az ütközések elkerüléséhez

160 bit, 40 hexa számjegy, 1640=2160 cím

~ Kiegyensúlyozott eloszlás a tartományon belül Hash algoritmus

Page 10: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 10

Neighbour Map

Legyen N egy csomópont (IP cím, ID) utótag(N, k) = az utolsó k számjegy az ID-ből

Minden csomópontban szomszédossági térkép (neighbour map) Annyi szint, ahány számjegy az ID-ben Minden szinten annyi bejegyzés, ahányas számrendszerben

címzünk A j szint (j-1) hosszúságú utótagoknak felel meg Az i bejegyzés a j szinten – a fizikailag legközelebb álló olyan

csomópont IP címe, mely ID-je [„i” + utótag(N, j-1)]-re végződik Példa: a 2. bejegyzés a 5712 csomópont térképének 3. szintjén az a

212-re végződő ID-jű csomópont IP címe, mely fizikailag legközelebb áll az 5712 ID-jű ponthoz

Page 11: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 11

Neighbour Map

N = “5712” (Octal)

Útválasztási szintek1234

xxx1

5712

xxx0

xxx3

xxx4

xxx5

xxx6

xxx7

xx02

5712

xx22xx32

xx42

xx52

xx62

xx72

x012

x112

x212

x312

x412x512

x612

5712

0712

1712

2712

3712

4712

5712

6712

7712

Page 12: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 12

Utótag alapú útválasztás

Pontról pontra való továbbítás, számjegyenként **** → ***0 → **10 → *510 → 7510

Hasonlít a longest prefix match alapú IP útválasztásra

Mindegy melyik irányból közelítünk Az eredeti Tapestry javaslat – utótag alapú Jelenleg – előtag alapú

Page 13: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 13

Példa

5712

0880 3210

7510

4510

5712 0 1 2 3 4 5 6 7

0880 0 1 2 3 4 5 6 7

3210 0 1 2 3 4 5 6 7

4510 0 1 2 3 4 5 6 7

7510 0 1 2 3 4 5 6 7

5712 → 7510

Page 14: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 14

Tapestry csomópont N

Neighbour Map Object Store

A helyileg tárolt állományok

Object Location Pointers Információk bizonyos állományok tárolási helyéről <ObjectID, NodeID>

Back Pointers Azokra a pontokra mutatnak, melyek szomszéduknak tekintik N-t

Hotspot Monitor <ObjectID, NodeID, Frequency> - segítenek a cache kezelésében

Page 15: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 15

Tapestry csomópont

Page 16: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 16

Root Node (Plaxton)

Adott egy A állomány (IDA) Az A állomány gyökere (root node) az az R

csomópont, melyre igaz a következő:utótag(IDA, k) = utótag (IDR, k)

és nincs olyan más csomópont X melyre igaz lenne, hogy

utótag(IDA, k+1) = utótag (IDX, k+1)

Ha több ilyen pont van, a legnagyobb címmel rendelkező lesz a root

Page 17: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 17

A feszítőfa

Root(A) az a pont, ahova mindeki fordul ha A-ra kiváncsi Minden A állományhoz egy Root(A) gyökerű feszítőfa tartozik A hálózat bármely pontjáról, véges számú lépés alatt eljutunk a

feszítőfa gyökeréhez Számjegyenként egyre közelebb kerülünk, ameddig egy üres szomszéd

bejegyzéshez érünk Egy utolsó ugrásként egy shortcut vezet a root-hoz Információt szerzünk az A állományról

Statikus megoldás, a hálózat teljes ismerete szükséges Az összes shortcut-ot előre ki kell számolni

Page 18: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 18

Root node (Tapestry)

Surrogate routing – elosztott megoldás a root kiszámolására Ha egy üres szomszéd bejegyzésre bukkan, kiválasztja az

azon a szinten levő következő nem üres bejegyzést Ha egy szinten egyetlen bejegyzés sincs saját magán

kívül, megáll Ez a pont lesz a surrogate (root)

Page 19: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 19

4

2

3

3

3

2

2

1

2

4

1

2

3

3

1

34

1

1

4 3

2

4

Tapestry Mesh - Utótag alapú útválasztás

NodeID0x43FE

NodeID0x13FENodeID

0xABFE

NodeID0x1290

NodeID0x239E

NodeID0x73FE

NodeID0x423E

NodeID0x79FE

NodeID0x23FE

NodeID0x73FF

NodeID0x555E

NodeID0x035E

NodeID0x44FE

NodeID0x9990

NodeID0xF990

NodeID0x993E

NodeID0x04FE

NodeID0x43FE

Page 20: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 20

Tapestry – routing

NodeID0001

NodeID0000

NodeID1010

NodeID0100

NodeID1000

NodeID0101

NodeID1110

NodeID0111

NodeID1001

NodeID1011

NodeID0011

NodeID0110

NodeID1111

NodeID1100

NodeID1101

NodeID0010

0111 ?

0101 x001 xx01 xxx0

0101 1001 0101 0000

1101 x101 xx11 xxx1

1101 0101 0011 0101

0111 x011 xx01 xxx0

0111 0011 1101 0010

1111 x111 xx11 xxx1

1111 1111 1111 1111

0011 x011 xx01 xxx0

0011 0011 1001 1110

1011 x111 xx11 xxx1

1011 1111 0011 0011

0000 x000 xx00 xxx0

0000 0000 0000 0000

1000 x100 xx10 xxx1

1000 0100 1010 0101

Page 21: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 21

Lokalizáció

Egy szerver S bejelenti hogy rendelkezik az A állománnyal S elküld egy Publish (ObjectID(A), ServerID(S))

üzenetet a Root(A) felé Minden közbeeső router tárolja a linket (A→S)

Query(A) → Root (A) felé Ha útközben valaki tárolta a linket, a kérést azonnal

továbbküldi a megfelelő helyre

Page 22: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 22

Lokalizáció

Page 23: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 23

Hibatűrő útválasztás

Hibadetektálás Periódikus hello csomagok a szomszédok között

Hibakezelés Minden bejegyzés a Neighbour Map-ban tartalmaz 2

alternatív útvonalat Másodlagos szomszédok

Ha hiba történik, nem törli ki a hibás útvonalat Egy bitet átállítva bejegyzi hibásnak Egy bizonyos ideig (egy nap) ellenőrizgeti Ha megjavitották, visszaállítja a bitet Nem kell költségesen újra beilleszteni He letelik a tűrési idő, kitörli a Map-ből

Page 24: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 24

Dinamikus beillesztés

Több lépésből áll Feltételezzük, hogy N ismeri egy G gateway címét

Expanding ring search, web, stb Step 1: Felépíti N Neighbour Map-jét

Üzenetet küld minden közbeeső csomópont (H0..Hi) felé a G → N’ útvonalon, ahol N’ az N-hez legjobban hasonlító pont (IDN’ ~ IDN)

Hi visszaküldi az i szintű szomszédai listáját G = H0 utótag (Hi, i) = utótag (N, i)

N optimizálja azt, ha szükséges Kiszámolja hogy az elsődleges és másodlagos szomszédok közül ki van

fizikailag közelebb Megváltoztatja a sorrendet, ha szükséges

Ha egy üres bejegyzést talál a Hi -ban a következő ugrásra, megáll Surrogate routing-al eljut az N’-höz, es az N-hez tartozó adatokat (melyekre N

lesz az új root) atmásolja az N-hez

Page 25: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 25

Példa a dinamikus beillesztésre

NodeID0x243FE

NodeID0x913FENodeID

0x0ABFE

NodeID0x71290

NodeID0x5239E

NodeID0x973FE

NEW0x143FE

NodeID0x779FE

NodeID0xA23FE

Gateway0xD73FF

NodeID0xB555E

NodeID0xC035E

NodeID0x244FE

NodeID0x09990

NodeID0x4F990

NodeID0x6993E

NodeID0x704FE

4

2

3

3

3

2

1

2

4

1

2

3

3

1

34

1

1

4 3

2

4

NodeID0x243FE

Page 26: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 26

Dinamikus beillesztés (II)

Step 2: Értesíti jelenlétéről azokat a csomópontokat, melyek üres bejegyzést tárolnak az IDN-re A surrogate node-tól (N’) visszaindul a backlink-eken Egészen addig, ahol már megegyezik az utótag Ezek a csomópontok bejegyzik N-t a saját táblájukba

Step 3: Minden értesített csomópont újrapublikálja az érintett állományokat Lehet, hogy N lesz az új surrogate egy állomány számára Értesülnie kell az állomány tárolási helyéről

Step 4: Értesít más pontokat is (elsődleges, másodlagos szomszédok) a jelenlétéről Ezek lemérik a távolságot N felé, és átírják a táblájukat ha

szükséges

Page 27: Peer-to-Peer (P2P) hálózatok

2006 március 6P2P hálózatok 27

Irodalom

http://www.cs.ucsb.edu/~ravenben/tapestry/