Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

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

Hasonló előadás


Az előadások a következő témára: "Peer-to-Peer (P2P) hálózatok BMEVITT9176 Választható tárgy 2006 március 6."— Előadás másolata:

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

2 Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications Ion Stoica, Robert Morris, David Karger, M. Frans Kaashoek, Hari Balakrishnan - MIT

3 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

4 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

5 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

6 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 Project http://www.pdos.lcs.mit.edu/chord/

7 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.

8 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, 1997 http://citeseer.ist.psu.edu/plaxton97accessing.html

9 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, 16 40 =2 160 cím ~ Kiegyensúlyozott eloszlás a tartományon belül  Hash algoritmus

10 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

11 2006 március 6P2P hálózatok 11 Neighbour Map N = “5712” (Octal) Útválasztási szintek 1234 xxx1 5712 xxx0 xxx3 xxx4 xxx5 xxx6 xxx7 xx02 5712 xx22 xx32 xx42 xx52 xx62 xx72 x012 x112 x212 x312 x412 x512 x612 5712 0712 1712 2712 3712 4712 5712 6712 7712

12 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ú

13 2006 március 6P2P hálózatok 13 Példa 5712 0880 3210 7510 4510 5712 012 3 45 6 7 0880 012 3 45 6 7 3210 012 3 45 6 7 4510 012 3 45 6 7 7510 012 3 45 6 7 5712 → 7510

14 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  Back Pointers  Azokra a pontokra mutatnak, melyek szomszéduknak tekintik N-t Hotspot Monitor  - segítenek a cache kezelésében

15 2006 március 6P2P hálózatok 15 Tapestry csomópont

16 2006 március 6P2P hálózatok 16 Root Node (Plaxton) Adott egy A állomány (ID A ) Az A állomány gyökere (root node) az az R csomópont, melyre igaz a következő: utótag(ID A, k) = utótag (ID R, k)  és nincs olyan más csomópont X melyre igaz lenne, hogy utótag(ID A, k+1) = utótag (ID X, k+1) Ha több ilyen pont van, a legnagyobb címmel rendelkező lesz a root

17 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

18 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)

19 2006 március 6P2P hálózatok 19 4 2 3 3 3 2 2 1 2 4 1 2 3 3 1 3 4 1 1 43 2 4 Tapestry Mesh - Utótag alapú útválasztás NodeID 0x43FE NodeID 0x13FE NodeID 0xABFE NodeID 0x1290 NodeID 0x239E NodeID 0x73FE NodeID 0x423E NodeID 0x79FE NodeID 0x23FE NodeID 0x73FF NodeID 0x555E NodeID 0x035E NodeID 0x44FE NodeID 0x9990 NodeID 0xF990 NodeID 0x993E NodeID 0x04FE NodeID 0x43FE

20 2006 március 6P2P hálózatok 20 Tapestry – routing NodeID 0001 NodeID 0000 NodeID 1010 NodeID 0100 NodeID 1000 NodeID 0101 NodeID 1110 NodeID 0111 NodeID 1001 NodeID 1011 NodeID 0011 NodeID 0110 NodeID 1111 NodeID 1100 NodeID 1101 NodeID 0010 0111 ? 0101x001xx01xxx0 0101100101010000 1101x101xx11xxx1 1101010100110101 0111x011xx01xxx0 0111001111010010 1111x111xx11xxx1 1111 0011x011xx01xxx0 0011 10011110 1011x111xx11xxx1 101111110011 0000x000xx00xxx0 0000 1000x100xx10xxx1 1000010010100101

21 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

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

23 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

24 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 (H 0..H i ) felé a G → N’ útvonalon, ahol N’ az N-hez legjobban hasonlító pont (ID N’ ~ ID N )  H i visszaküldi az i szintű szomszédai listáját G = H 0 utótag (H i, 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 H i -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

25 2006 március 6P2P hálózatok 25 Példa a dinamikus beillesztésre NodeID 0x243FE NodeID 0x913FE NodeID 0x0ABFE NodeID 0x71290 NodeID 0x5239E NodeID 0x973FE NEW 0x143FE NodeID 0x779FE NodeID 0xA23FE Gateway 0xD73FF NodeID 0xB555E NodeID 0xC035E NodeID 0x244FE NodeID 0x09990 NodeID 0x4F990 NodeID 0x6993E NodeID 0x704FE 4 2 3 3 3 2 1 2 4 1 2 3 3 1 3 4 1 1 43 2 4 NodeID 0x243FE

26 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 ID N -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

27 2006 március 6P2P hálózatok 27 Irodalom  http://www.cs.ucsb.edu/~ravenben/tapestry/


Letölteni ppt "Peer-to-Peer (P2P) hálózatok BMEVITT9176 Választható tárgy 2006 március 6."

Hasonló előadás


Google Hirdetések