Hálózatba kapcsolt erőforrás platformok és alkalmazásaik. Simon Csaba TMIT 2017

Hasonló dokumentumok
Elosztott adatbázisok és peerto-peer. Simon Csaba

Hálózati Technológiák és Alkalmazások. Vida Rolland, BME TMIT október 29. HSNLab SINCE 1992

Hálózati réteg. WSN topológia. Útvonalválasztás.

Hálózati Technológiák és Alkalmazások

Készítette: Weimann András

PEER-TO-PEER HÁLÓZATOK

Kommunikációs rendszerek programozása. Routing Information Protocol (RIP)

1: Bevezetés: Internet, rétegmodell Alapok: aszimptótika, gráfok. HálózatokII, 2007

Számítógép hálózatok, osztott rendszerek 2009

Elosztott rendszerek

Számítógépes Hálózatok Felhasználói réteg DNS, , http, P2P

Felhasználói réteg. Számítógépes Hálózatok Domain Name System (DNS) DNS. Domain Name System

Újdonságok Nexus Platformon

V2V - routing. Intelligens közlekedési rendszerek. VITMMA10 Okos város MSc mellékspecializáció. Simon Csaba

10: Peer-To-Peer Hálózatok I. HálózatokII, 2007

Hálózatba kapcsolt erőforrás platformok és alkalmazásaik. Simon Csaba TMIT 2017

Tartalom. Router és routing. A 2. réteg és a 3. réteg működése. Forgalomirányító (router) A forgalomirányító összetevői

Statikus routing. Hoszt kommunikáció. Router működési vázlata. Hálózatok közötti kommunikáció. (A) Partnerek azonos hálózatban

Hálózatok II 2005/ : Peer-To-Peer Hálózatok II

Hálózatba kapcsolt erőforrás platformok és alkalmazásaik. Simon Csaba, Maliosz Markosz TMIT 2017

Összefoglalás és gyakorlás

Hálózati Technológiák és Alkalmazások. Vida Rolland, BME TMIT november 5. HSNLab SINCE 1992

IP anycast. Jákó András BME TIO

Hálózati architektúrák és Protokollok Levelező II. Kocsis Gergely

A MAC-cím (Media Access Control) egy hexadecimális számsorozat, amellyel még a gyártás során látják el a hálózati kártyákat. A hálózat többi eszköze

FORGALOMIRÁNYÍTÓK. 6. Forgalomirányítás és irányító protokollok CISCO HÁLÓZATI AKADÉMIA PROGRAM IRINYI JÁNOS SZAKKÖZÉPISKOLA

Routing. Számítógép-hálózatok. Dr. Lencse Gábor. egyetemi docens Széchenyi István Egyetem, Távközlési Tanszék

1. Mit jelent a /24 címmel azonosított alhálózat?

Elosztott Hash Táblák. Jelasity Márk

Hálózati réteg. Feladata: a csomag eljusson a célig Több útválasztó Ez a legalacsonyabb rétek, mely a két végpont

Teljesen elosztott adatbányászat alprojekt

Számítógép hálózatok gyakorlat

IP multicast routing napjainkban. Jákó András BME EISzK

Hálózati architektúrák laborgyakorlat

Peer-to-peer alapú elosztott fájlrendszerek

Hálózati Technológiák és Alkalmazások

Forgalomirányítás (Routing)

Regresszió. Csorba János. Nagyméretű adathalmazok kezelése március 31.

4: Az IP Prefix Lookup Probléma Bináris keresés hosszosztályok alapján. HálózatokII, 2007

Hálózati architektúrák laborgyakorlat

A számítástechnika gyakorlata WIN 2000 I. Szerver, ügyfél Protokoll NT domain, Peer to Peer Internet o WWW oftp opop3, SMTP. Webmail (levelező)

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. Kocsis Gergely, Supák Zoltán

Algoritmusok és adatszerkezetek 2.

Programozás alapjai II. (7. ea) C++ Speciális adatszerkezetek. Tömbök. Kiegészítő anyag: speciális adatszerkezetek

Speciális adatszerkezetek. Programozás alapjai II. (8. ea) C++ Tömbök. Tömbök/2. N dimenziós tömb. Nagyméretű ritka tömbök

Adatbiztonság PPZH május 20.

Programozás alapjai II. (7. ea) C++

Adatszerkezetek 2. Dr. Iványi Péter

2017 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Számítógépes Hálózatok. 4. gyakorlat

Számítógépes Hálózatok. 6. gyakorlat

RHadoop. Kocsis Imre Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék

Hálózati architektúrák és Protokollok GI 8. Kocsis Gergely

Forgalomirányítás, irányító protokollok (segédlet az internet technológiák 1 laborgyakorlathoz) Készítette: Kolluti Tamás RZI3QZ

Hálózatok II. A hálózati réteg forgalomirányítása

Mobilitás és MANET (II)

Hálózati rendszerek adminisztrációja JunOS OS alapokon

TELJESÍTÉNYMÉRÉS FELHŐ ALAPÚ KÖRNYEZETBEN AZURE CLOUD ANALÍZIS

A Markovi forgalomanalízis legújabb eredményei és ezek alkalmazása a távközlő hálózatok teljesítményvizsgálatában

2016 UNIVERSITAS SCIENTIARUM SZEGE- DIENSIS

Hálózati architektúrák és Protokollok GI 7. Kocsis Gergely

Autóipari beágyazott rendszerek. A kommunikáció alapjai

Újdonságok Nexus Platformon

Számítógépes Hálózatok 2010

2016 UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

Számítógépes Hálózatok

Számítógépes Hálózatok. 7. gyakorlat

A továbbiakban Y = {0, 1}, azaz minden szóhoz egy bináris sorozatot rendelünk

Internet Protokoll 6-os verzió. Varga Tamás

Unicast. Broadcast. Multicast. A célállomás egy hoszt. A célállomás az összes hoszt egy adott hálózaton

Unicast A célállomás egy hoszt. Broadcast A célállomás az összes hoszt egy adott hálózaton

Hálózati Technológiák és Alkalmazások. Vida Rolland, BME TMIT november 12. HSNLab SINCE 1992

IP alapú kommunikáció. 5. Előadás Routing 2 Kovács Ákos

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 3. óra. Kocsis Gergely, Kelenföldi Szilárd

Adott: VPN topológia tervezés. Költségmodell: fix szakaszköltség VPN végpontok

Két típusú összeköttetés PVC Permanent Virtual Circuits Szolgáltató hozza létre Operátor manuálisan hozza létre a végpontok között (PVI,PCI)

Multiprotocol encapsulation (RFC1483) - IETF Classical IP over ATM (RFC1577) - IETF LAN Emulation (LANE) - ATM Forum Multiprotocol over ATM (MPOA) -

VIII. Mérés SZÉCHENYI ISTVÁN EGYETEM GYŐR TÁVKÖZLÉSI TANSZÉK

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

Routing update: IPv6 unicast. Jákó András BME EISzK

IP alapú kommunikáció. 4. Előadás Routing 1 Kovács Ákos

Felvételi tematika INFORMATIKA

Hálózati architektúrák laborgyakorlat

Hálózati architektúrák és Protokollok PTI 5. Kocsis Gergely

Hálózatok. Alapismeretek. A hálózatok célja, építőelemei, alapfogalmak

Hálózati beállítások Készítette: Jámbor Zoltán 2016

Számítógépes Hálózatok

Cisco Teszt. Question 2 Az alábbiak közül melyek vezeték nélküli hitelesítési módok? (3 helyes válasz)

Számítógépes Hálózatok 2012

További forgalomirányítási és szervezési játékok. 1. Nematomi forgalomirányítási játék

Hálózati architektúrák és Protokollok PTI 3. Kocsis Gergely

21. tétel IP címzés, DOMAIN/URL szerkezete

2011. május 19., Budapest IP - MIKRO MOBILITÁS

Algoritmusok és adatszerkezetek gyakorlat 07

Az adott eszköz IP címét viszont az adott hálózat üzemeltetői határozzákmeg.

SZÁMÍTÓGÉP HÁLÓZATOK BEADANDÓ ESSZÉ. A Windows névfeloldási szolgáltatásai

Windows rendszeradminisztráció és Microsoft szerveralkalmazások támogatása. 3. óra. Kocsis Gergely, Supák Zoltán

Szimuláció RICHARD M. KARP és AVI WIGDERSON. (Készítette: Domoszlai László)

UTP vezeték. Helyi hálózatok tervezése és üzemeltetése 1

SSL elemei. Az SSL illeszkedése az internet protokoll-architektúrájába

Átírás:

Hálózatba kapcsolt erőforrás platformok és alkalmazásaik Simon Csaba TMIT 2017

Strukturált P2P

3 P2P Keresés Strukturálatlan P2P rendszerek Gnutella, KaZaa, stb... Véletlenszerű keresés Nincs információ a fájl lehetséges tárolási helyéről Nagy terhelés a rendszeren Minél több helyen tárolva, annál kisebb a keresés által generált terhelés

P2P Keresés (II) Strukturált P2P rendszerek Irányított keresés Kijelölt peer-ek kijelölt fájlokat (vagy azok fele mutató pointereket) kell tároljanak Mint egy információs pult Ha valaki keresi a fájlt, tudja kit kérdezzen 4 Elvárt tulajdonságok Elosztottság Felelősség elosztása a résztvevők között Alkalmazkodás A peer-ek ki és bekapcsolódnak a rendszerbe Az új peer-eknek feladatokat osztani A kilépő peer-ek feladatai újraosztani

5 Elosztott hash táblák - DHT Distributed Hash Tables Egy hash függvény a keresett fájlhoz egy egyéni azonosítót társít Példa: h( P2P_előadás ) -> 123 A hash függvény értékkészletét elosztja a peer-ek között Egy peer-nek tudnia kell minden olyan fájlról, melynek a hash-elt értéke a saját értékkészletébe tartozik Vagy saját maga tárolja a fájlt... Vagy tudja ki tárolja a fájlt.

6 DHT példa 211-399 200-210 484-799 100-199 400-483 123 0-99 h(x) [0..799]

DHT példa 211-399 7 200-210 484-799 100-199 400-483 421 0-99 h(x) [0..799]

8 DHT útválasztás Minden peer mely információt tárol egy fájlról elérhető kell legyen egy rövid úton Korlátozott számú lépésen belül Korlátozott számú szomszéd Skálázható a rendszer méretétől függetlenül A különböző DHT megoldások lényégében az útválasztásban térnek el CAN, Chord, Pastry, Tapestry, Kademlia

CAN

10 CAN Sylvia Ratnasamy, Paul Francis, Mark Handley, Richard Karp, Scott Shenker, A Scalable Content-Addressable Network, Proceedings of the ACM SIGCOMM'01 Conference, San Diego, CA (August 2001). http://citeseerx.ist.psu.edu/viewdoc/summar y?doi=10.1.1.140.3129 Sylvia Ratnasamy, A Scalable Content-Addressable Network, Ph.D. Thesis, October 2002 http://berkeley.intel-research.net/sylvia/thesis.pdf

11 Content Addressable Network CAN = egy elosztott, Internet szinten skálázható hash tábla Tároló (Insert), kereső (Lookup) és adattörlő (Delete) műveleteket biztosít egy (Kulcs, Érték) paraméter párra CAN tulajdonságok Teljesen elosztott rendszer Skálázható: minden résztvevő csak korlátozott számú állapotot tárol, a résztvevők számától függetlenül Hibatűrő: akkor is működőképes ha a rendszer egy része meghibásodott

CAN architektúra A hash-tábla egy d-dimenziós ortogonális (Descartes) koordináta rendszerben kialakított D-tóruszon működik Ciklikus d-dimenziós tér hash(k)=(x1,, xd) 12 1-dimenziós ciklikus tér 0.5 + 0.7 = 0.2

CAN architektúra A hash-tábla egy d-dimenziós ortogonális (Descartes) koordináta rendszerben kialakított D-tóruszon működik Ciklikus d-dimenziós tér hash(k)=(x1,, xd) 13 Ortogonális (Descartes) távolság

CAN architektúra A hash-tábla egy d-dimenziós ortogonális (Descartes) koordináta rendszerben kialakított D-tóruszon működik Ciklikus d-dimenziós tér hash(k)=(x1,, xd) 14 Ortogonális (Descartes) távolság p1 = 0.2; p2 = 0.8 CartDist (p1, p2) = 0.4

CAN architektúra A hash-tábla egy d-dimenziós ortogonális (Descartes) koordináta rendszerben kialakított D-tóruszon működik Ciklikus d-dimenziós tér hash(k)=(x1,, xd) 15 Ortogonális (Descartes) távolság p1 = 0.2; p2 = 0.8 CartDist (p1, p2) = 0.4 1-dimenziós ciklikus tér 0.5 + 0.7 = 0.2 Koordináta zóna Egy szelet a Descartes térből

CAN architektúra (II) 16 CAN csomópontok Egy CAN csomópont = egy gép a rendszerben Egy CAN csomópont peer A peer-nek itt más jelentése van, lásd Zónák túlterhelése - később Minden CAN csomópont a tér egy külön zónájáért (szeletéjért) felel A csomópont információt tárol az összes olyan állományról mely a saját zónájába hash-elődik A csomópontok egymás között lefedik a teljes teret

CAN szomszédok 17 2 CAN csomópont szomszéd ha a zónáik átfedik egymást d-1 dimenzió mentén és szomszédosak 1 dimenzió mentén Egy csomópont ismeri az összes szomszédja IP címét Egy csomópont ismeri az összes szomszédos zóna koordinátáit A csomópontok csak a szomszédaikkal tudnak kommunikálni

CAN csatlakozás Egy CAN-nek van egy DNS domain neve Egy vagy több Bootstrap Node IP címére képződik le 18 A Bootstrap Node tárolja néhány résztvevő csomópont IP címét Gateway csomópontok Az új csomópont véletlenszerűen kiválaszt egyet, és rajta keresztül próbál csatlakozni A hash tábla egy szeletét (zónát) az új csomópontnak kell adni A kapcsolódó állományokat, illetve az azokra vonatkozó adatokat tárolni kell az új csomóponton Az új csomópont be kell kapcsolódjon az útválasztásba

CAN csatlakozás (II) 19 Zóna keresése az új csomópont részére 1. Véletlenszerűen választ egy P pontot 2. A JOIN üzenetet a P pontért felelős csomóponthoz küldi 3. A kérést a CAN útválasztást használva továbbítja

CAN routing 1. Elindul egy tetszőleges pontból 2. P = a K kulcs hash-elt értéke 3. Greedy (mohó) forwarding Az aktuális csomópont: 1. Leellenőrzi hogy a saját vagy a szomszédai zónája tartalmazza-e a P pontot 2. HA NEM a. Rangsorolja a szomszédait a P ponttal szembeni Descartes távolságuk alapján b. Az üzenetet a P ponthoz legközelebb álló szomszédhoz küldi c. Megismétli az 1. lépést 3. HA IGEN A pozitív választ (a keresett állományt) visszaküldi a keresőhöz 20

CAN routing 1. Elindul egy tetszőleges pontból 2. P = a K kulcs hash-elt értéke 3. Greedy (mohó) forwarding Az aktuális csomópont: 1. Leellenőrzi hogy a saját vagy a szomszédai zónája tartalmazza-e a P pontot 2. HA NEM a. Rangsorolja a szomszédait a P ponttal szembeni Descartes távolságuk alapján b. Az üzenetet a P ponthoz legközelebb álló szomszédhoz küldi c. Megismétli az 1. lépést 3. HA IGEN A pozitív választ (a keresett állományt) visszaküldi a keresőhöz 21

CAN routing 1. Elindul egy tetszőleges pontból 2. P = a K kulcs hash-elt értéke 3. Greedy (mohó) forwarding Az aktuális csomópont: 1. Leellenőrzi hogy a saját vagy a szomszédai zónája tartalmazza-e a P pontot 2. HA NEM a. Rangsorolja a szomszédait a P ponttal szembeni Descartes távolságuk alapján b. Az üzenetet a P ponthoz legközelebb álló szomszédhoz küldi c. Megismétli az 1. lépést 3. HA IGEN A pozitív választ (a keresett állományt) visszaküldi a keresőhöz 22

CAN routing 1. Elindul egy tetszőleges pontból 2. P = a K kulcs hash-elt értéke 3. Greedy (mohó) forwarding Az aktuális csomópont: 1. Leellenőrzi hogy a saját vagy a szomszédai zónája tartalmazza-e a P pontot 2. HA NEM a. Rangsorolja a szomszédait a P ponttal szembeni Descartes távolságuk alapján b. Az üzenetet a P ponthoz legközelebb álló szomszédhoz küldi c. Megismétli az 1. lépést 3. HA IGEN A pozitív választ (a keresett állományt) visszaküldi a keresőhöz 23

CAN routing 1. Elindul egy tetszőleges pontból 2. P = a K kulcs hash-elt értéke 3. Greedy (mohó) forwarding Az aktuális csomópont: 1. Leellenőrzi hogy a saját vagy a szomszédai zónája tartalmazza-e a P pontot 2. HA NEM a. Rangsorolja a szomszédait a P ponttal szembeni Descartes távolságuk alapján b. Az üzenetet a P ponthoz legközelebb álló szomszédhoz küldi c. Megismétli az 1. lépést 3. HA IGEN A pozitív választ (a keresett állományt) visszaküldi a keresőhöz 24

CAN routing 1. Elindul egy tetszőleges pontból 2. P = a K kulcs hash-elt értéke 3. Greedy (mohó) forwarding Az aktuális csomópont: 1. Leellenőrzi hogy a saját vagy a szomszédai zónája tartalmazza-e a P pontot 2. HA NEM a. Rangsorolja a szomszédait a P ponttal szembeni Descartes távolságuk alapján b. Az üzenetet a P ponthoz legközelebb álló szomszédhoz küldi c. Megismétli az 1. lépést 3. HA IGEN A pozitív választ (a keresett állományt) visszaküldi a keresőhöz 25

CAN routing 1. Elindul egy tetszőleges pontból 2. P = a K kulcs hash-elt értéke 3. Greedy (mohó) forwarding Az aktuális csomópont: 1. Leellenőrzi hogy a saját vagy a szomszédai zónája tartalmazza-e a P pontot 2. HA NEM a. Rangsorolja a szomszédait a P ponttal szembeni Descartes távolságuk alapján b. Az üzenetet a P ponthoz legközelebb álló szomszédhoz küldi c. Megismétli az 1. lépést 3. HA IGEN A pozitív választ (a keresett állományt) visszaküldi a keresőhöz 26

CAN routing 1. Elindul egy tetszőleges pontból 2. P = a K kulcs hash-elt értéke 3. Greedy (mohó) forwarding Az aktuális csomópont: 1. Leellenőrzi hogy a saját vagy a szomszédai zónája tartalmazza-e a P pontot 2. HA NEM a. Rangsorolja a szomszédait a P ponttal szembeni Descartes távolságuk alapján b. Az üzenetet a P ponthoz legközelebb álló szomszédhoz küldi c. Megismétli az 1. lépést 3. HA IGEN A pozitív választ (a keresett állományt) visszaküldi a keresőhöz 27

CAN routing 28 Hibatűrő útválasztás 1. Elindul egy tetszőleges pontból 2. P = a K kulcs hash-elt értéke 3. Greedy (mohó) forwarding a. Mielőtt továbbküldené az üzenetet, ellenőrzi a szomszéd készenléti állapotát b. Az üzenetet a rendelkezésre álló legjobb szomszédhoz küldi el

29 CAN routing Hibatűrő útválasztás 1. Elindul egy tetszőleges pontból 2. P = a K kulcs hash-elt értéke 3. Greedy (mohó) forwarding a. Mielőtt továbbküldené az üzenetet, ellenőrzi a szomszéd készenléti állapotát b. Az üzenetet a rendelkezésre álló legjobb szomszédhoz küldi el

CAN routing Hibatűrő útválasztás 30 1. Elindul egy tetszőleges pontból 2. P = a K kulcs hash-elt értéke 3. Greedy (mohó) forwarding a. Mielőtt továbbküldené az üzenetet, ellenőrzi a szomszéd készenléti állapotát b. Az üzenetet a rendelkezésre álló legjobb szomszédhoz küldi el

CAN routing 31 Hibatűrő útválasztás 1. Elindul egy tetszőleges pontból 2. P = a K kulcs hash-elt értéke 3. Greedy (mohó) forwarding a. Mielőtt továbbküldené az üzenetet, ellenőrzi a szomszéd készenléti állapotát b. Az üzenetet a rendelkezésre álló legjobb szomszédhoz küldi el

CAN routing 32 Hibatűrő útválasztás 1. Elindul egy tetszőleges pontból 2. P = a K kulcs hash-elt értéke 3. Greedy (mohó) forwarding a. Mielőtt továbbküldené az üzenetet, ellenőrzi a szomszéd készenléti állapotát b. Az üzenetet a rendelkezésre álló A célcsomópontot legjobb szomszédhoz elérjük ha küldi létezik el legalább egy út

CAN csatlakozás (II) Zóna keresése az új csomópont részére 1. Véletlenszerűen választ egy P pontot 2. A JOIN üzenetet a P pontért felelős csomóponthoz küldi 3. A kérést a CAN útválasztást használva továbbítja 4. A P pontért felelős csomópont kettévágja zónáját Az egyik fele az új csomóponté lesz A másik fele megmarad a régi csomópontnál 5. Az elosztás a zóna legnagyobb oldalának megfelelő dimenzió mentén történik Ha két oldal egyenlő, a kisebbik rangú dimenzió mentén osztódik 6. A hash tábla alapján az új csomópont zónájába eső állományokra vonatkozó adatokat átküldi 33

CAN csatlakozás (II) Zóna keresése az új csomópont részére 1. Véletlenszerűen választ egy P pontot 2. A JOIN üzenetet a P pontért felelős csomóponthoz küldi 3. A kérést a CAN útválasztást használva továbbítja 4. A P pontért felelős csomópont kettévágja zónáját Az egyik fele az új csomóponté lesz A másik fele megmarad a régi csomópontnál 5. Az elosztás a zóna legnagyobb oldalának megfelelő dimenzió mentén történik 6. A hash Ha tábla két oldal alapján egyenlő, az új a csomópont kisebbik rangú dimenzió mentén osztódik zónájába eső állományokra vonatkozó adatokat átküldi 34

CAN csatlakozás (II) Zóna keresése az új csomópont részére 1. Véletlenszerűen választ egy P pontot 2. A JOIN üzenetet a P pontért felelős csomóponthoz küldi 3. A kérést a CAN útválasztást használva továbbítja 4. A P pontért felelős csomópont kettévágja zónáját Az egyik fele az új csomóponté lesz A másik fele megmarad a régi csomópontnál 5. Az elosztás a zóna legnagyobb oldalának megfelelő dimenzió mentén történik Ha két oldal egyenlő, a kisebbik rangú dimenzió mentén osztódik 6. A hash tábla alapján az új csomópont zónájába eső állományokra vonatkozó adatokat átküldi 35

CAN csatlakozás (II) Zóna keresése az új csomópont részére 1. Véletlenszerűen választ egy P pontot 2. A JOIN üzenetet a P pontért felelős csomóponthoz küldi 3. A kérést a CAN útválasztást használva továbbítja 4. A P pontért felelős csomópont kettévágja zónáját Az egyik fele az új csomóponté lesz A másik fele megmarad a régi csomópontnál 5. Az elosztás a zóna legnagyobb oldalának megfelelő dimenzió mentén történik Ha két oldal egyenlő, a kisebbik rangú dimenzió mentén osztódik 36 6. A hash tábla alapján az új csomópont zónájába eső állományokra vonatkozó adatokat átküldi

6. A hash tábla alapján az új csomópont zónájába eső állományokra vonatkozó adatokat átküldi CAN csatlakozás (II) Zóna keresése az új csomópont részére 1. Véletlenszerűen választ egy P pontot 2. A JOIN üzenetet a P pontért felelős csomóponthoz küldi 3. A kérést a CAN útválasztást használva továbbítja 4. A P pontért felelős csomópont kettévágja zónáját Az egyik fele az új csomóponté lesz A másik fele megmarad a régi csomópontnál 5. Az elosztás a zóna legnagyobb oldalának megfelelő dimenzió mentén történik Ha két oldal egyenlő, a kisebbik rangú dimenzió mentén osztódik 37

CAN csatlakozás (III) Bekapcsolódás az útválasztásba 1. Az új csomópont megkapja a régi csomópont (kinek a zónáját osztottuk) szomszédainak listáját 2. A régi csomópont frissíti a szomszédait Törli az elvesztett szomszédokat Bejegyzi az új csomópontot 3. Minden szomszéd kap egy frissítő üzenetet, a saját szomszéd-táblája frissítéséhez Törli a régi csomópontot Bejegyzi az új csomópontot 38

CAN csatlakozás (III) Bekapcsolódás az útválasztásba 1. Az új csomópont megkapja a régi csomópont (kinek a zónáját osztottuk) szomszédainak listáját 2. A régi csomópont frissíti a szomszédait Törli az elvesztett szomszédokat Bejegyzi az új csomópontot 3. Minden szomszéd kap egy frissítő üzenetet, a saját szomszéd-táblája frissítéséhez Törli a régi csomópontot Bejegyzi az új csomópontot 39

CAN csatlakozás (III) 40 Bekapcsolódás az útválasztásba 1. Az új csomópont megkapja a régi csomópont (kinek a zónáját osztottuk) szomszédainak listáját 2. A régi csomópont frissíti a szomszédait Törli az elvesztett szomszédokat Bejegyzi az új csomópontot 3. Minden szomszéd kap egy frissítő üzenetet, a saját szomszéd-táblája frissítéséhez Törli a régi csomópontot Bejegyzi az új csomópontot

CAN csatlakozás (III) 41 Bekapcsolódás az útválasztásba 1. Az új csomópont megkapja a régi csomópont (kinek a zónáját osztottuk) szomszédainak listáját 2. A régi csomópont frissíti a szomszédait Törli az elvesztett szomszédokat Bejegyzi az új csomópontot 3. Minden szomszéd kap egy frissítő üzenetet, a saját szomszéd-táblája frissítéséhez Törli a régi csomópontot Bejegyzi az új csomópontot

42 Csomópont távozása Csomópont kilép a rendszerből a. Ha az egyik szomszéd zónája egyesíthető a kilépő csomópont zónájával, akkor ez a szomszéd veszi át az egyesített zóna kezelését egyesíthető = szabályos konvex zóna keletkezik b. Ha nem, akkor az egyik szomszéd két külön zónát kezel majd

Csomópont távozása Csomópont kilép a rendszerből a. Ha az egyik szomszéd zónája egyesíthető a kilépő csomópont zónájával, akkor ez a szomszéd veszi át az egyesített zóna kezelését egyesíthető = szabályos konvex zóna keletkezik 43 b. Ha nem, akkor az egyik szomszéd két külön zónát kezel majd

Csomópont távozása Csomópont kilép a rendszerből a. Ha az egyik szomszéd zónája egyesíthető a kilépő csomópont zónájával, akkor ez a szomszéd veszi át az egyesített zóna kezelését egyesíthető = szabályos konvex zóna keletkezik b. Ha nem, akkor az egyik szomszéd két külön zónát kezel majd Mindkét esetben (a és b): 44 1. A kilépő csomópont adatai átkerülnek a zónát átvevő csomóponthoz 2. A zónát átvevő csomópont frissíti a szomszédainak listáját 3. Az összes szomszédot értesíti a cseréről, azok pedig frissítik a saját szomszéd-listájukat

somópont távozása (II) Ha egy csomópont angolosan távozik (ungraceful departure)... Szabályos időközönként a csomópontok frissítő üzeneteket küldenek a szomszédaiknak A saját zonájuk koordinátái, a szomszédaik listája, illetve azok zónáinak koordinátái Ha egy csomópont egy adott t időn belül nem kapott üzenetet az egyik szomszédjától, elindítja a TAKEOVER procedúrát Megpróbálja átvenni a halottnak hitt csomópont zónáját Egy TAKEOVER üzenetet küld a halott csomópont minden szomszédjának Ha egy csomópont kap egy TAKEOVER üzenetet, összehasonlítja a saját zónáját a küldő zónájával Ha optimálisabb, hogy ő vegye át a zónát, saját maga küld egy új TAKEOVER üzenetet a halott csomópont szomszédainak Az a szomszéd veszi át a zónát, aki nem kap választ a TAKEOVER üzenetére t időn belül A halott csomóponton tárolt adatok nem elérhetőek mindaddig ameddig a forrás nem publikálja újból őket (elküldi az új csomópontnak) 45

46 CAN Optimalizálás Optimalizációs lehetőségek Rövidebb utak: kevesebb ugrás a forrás és a cél között Rövidebb ugrások: két szomszéd közötti ugrás a fizikai topológián Optimalizált zónafelosztás

CAN valóságok CAN valóságok (Reality): többszörös koordináta rendszerek Minden csomópont több koordináta rendszer (valóság) része Minden valóságban... Egyenlő a zónák száma Ugyanazok a tárolt adatok Ugyanaz a hash függvény Egy csomópontnak különböző zónai vannak a különböző valóságokban A zónák kiosztásakor a P pontot véletlenszerűen választjuk A hash tábla tartalma minden valóságban elérhető nagyobb rendelkezésre állás 47

48 Útválasztás a valóságokban 1. A cél minden valóságban ugyanabba a H pontba hash-elődik Minden valóságban más-más csomópont zónájába tartozhat a H pont 2. A hagyományos útválasztás a következő módon egészítjük ki: a. Minden csomópont az útvonalon ellenőrzi, hogy melyik valóságban a legkisebb a távolsága a célhoz b. Az üzenetet a legjobb valóságban küldi tovább

Útválasztás a valóságokban 1. A cél minden valóságban ugyanabba a H pontba hash-elődik Minden valóságban más-más csomópont zónájába tartozhat a H pont 2. A hagyományos útválasztás a következő módon egészítjük ki: a. Minden csomópont az útvonalon ellenőrzi, hogy melyik valóságban a legkisebb a távolsága a célhoz b. Az üzenetet a legjobb valóságban küldi tovább 49

Többdimenziós koordináta rendszer 50 A routing hatékonysága függ a koordináták számától Az útvonal átlagos hossza: O(d*n 1/d ) n = 1000, egyenlő zónák Ha a dimenziók száma (d) nő, az út hossza csökken D Út átlagos hossza 2 15 3 7.5 5 5 10 4.95

Több valóság vagy több dimenzió? 51 A dimenziók növelése hatékonyabb az útvonal optimalizálásában mint a valóságok növelése A valóságok nagyobb hibatűrést és rendelkezésre állást biztosítanak

Kademlia

53 Kademlia: A peer-to-peer information system based on the XOR metric Petar Maymounkov and David Mazieres New York University Proceedings of the 1st International Workshop on Peer-to-Peer Systems (IPTPS '02), pages 53-65, March 2002.

54 Kademlia P2P adattároló hálózat Kulcs-érték párok tárolása egyedi, 160 bites kulcsok DHT Kialakítandó környezet Cél Bármelyik node bármikor eltűnhessen A node-ok legyenek egyenletesen terheltek tárolási kapacitás sávszélesség Gyors adatelérés Minimális számú vezérlő üzenet

55 Kademlia A routing-tábla rugalmas Közelségi alapú (proximity-based) routing Laza követelmények minimális fenntartás Bejövő és kimenő üzenetek eloszlása azonos A hálózat önmegerősítő Csak log n node elérését kell ismerni

Routing tábla Rugalmas kialakítás Mindegy, hogy kit ismerek az adott tartományban A kimenő és bejövő eloszlás azonos 1 0 56 1 0 1 0 1 0 1 0 1 0 1 0

57 Kademlia routing 1 0 1 1 0 1 0 0 1 1 0 1 0 101? 0 Minden hop eggyel kisebb ágra visz a cél körül Az adott ágon belül bármelyik node-hoz ugorhatunk

XOR - topológia Definíció: d(x,y) = x XOR y Szimmetrikus: d(x,y) = d (y,x). Kevesebb vezérlő üzenet Egyértelmű: minden x ϵ {0,1} 160 és l ϵ N-hez pontosan egy olyan y ϵ {0,1} 160 létezik, hogy d(x,y) = l. 58 A nagyobb helyiértékű bitek eltérése nagyobb távolságot eredményez: x = 010101 y = 110001 x XOR y = 100100, azaz 32 + 4 = 36 Geometriai értelmezés: A közös ágon lévő csomópont közelebb van, mint a többi

59 Adatstruktúrák Kapcsolatok (nodeid, IP:UDP_port) párok k-vödör tárolóegység maximum k db. kapcsolathoz alapértelmezésben k=20 Egy A állományra (ID A ) vonatkozó infókat a (XOR metrika szerint) hozzá legközelebb álló k db. csomóponton fogunk tárolni Annak a valószínűsége, hogy mind a k csomópont egyszerre kilépjen kellően kicsi legyen Routing tábla Műveletek: kapcsolat létesítése, törlése Egy k-vödrökből álló fa Minden vödör a fa egy tartományáért felelős

Útválasztó tábla A 0100 csomópont útválasztó táblája 60

Keresés Cél: A T célhoz legközelebbi k node megtalálása, ahol T ϵ {0, 1} 160 find_node n (T) : visszaadja azt a k darab címet az n csomópont útválasztó táblájából, amelyik T-hez legközelebb áll Egy vagy több k-vödörből Ha nincs k node az összes vödrében, akkor kevesebbet ad vissza A válaszok minden lépésben visszamennek a keresést indító peer-hez Keresés: n 0 : a keresést végző node N 0 :={Ø} N 1 = min k {find_node n0 (T), N 0 } N 2 = min k {find_node n1 (T), N 1 } N i = min k {find_node ni-1 (T), N i-1 } Ahol n i (i > 0) az N i halmaz tetszőleges címe A keresés akkor ér véget, ha N i csak olyan címeket tartalmaz, amelyeket n 0 már megkérdezett Az egymás utáni find_node n (T) hívások egyre kisebb tartományhoz tartozó k-vödörből adnak választ 61

62 Párhuzamos keresés Nagyobb forgalomért cserébe gyorsabb keresés Cél A keresés menjen a gyorsabb / közelebbi gépeken keresztül Kerüljük el a kilépett node-ok miatti timeout-okat Megoldás: egyszerre α > 1 párhuzamos find_node n (T)

Kapcsolatok fenntartása Ha egy node nem válaszol, töröljük a routing táblából Minden egyes node amelyiktől hívást kapunk bekerül a routing táblánkba ha... Megnézzük, hogy a k-vödör ahova kerülne tele van-e Ha nem, betesszük Ha igen, megpingeljük azt a node-ot, melyről legrégebb hallottunk Ha válaszol, az új node-ot nem tesszük be a táblába Ha a régi él, akkor valószínű hogy később is élni fog, kár elveszteni Mérések alapján a Gnutella hálón DoS támadások ellen is véd Ha nem válaszol, töröljük, és felveszi az új node-ot 63 Az XOR topológia szimmetriája miatt a minket hívó node-ok eloszlása éppen a routing táblánkéval egyező eloszlású lesz Formálisan: annak valószínűsége, hogy egy [2 i, 2 i+1 ] távolságra levő node-tól kapunk üzenetet konstans, azaz i-től független

Node-ok elérhetősége a Gnutella hálón 64 x-tengely: az elérhetőség időtartama percben y-tengely: azon node-oknak, amelyek x percen át elérhetőek, mekkora hányada lesz x+60 perc múlva is elérhető

Érkezés, távozás, frissítés 65 Node érkezése: Egy már bentlévő node-tól néhány címet elkér Megkeresi önmagát Megkapja a saját ID-jéhez legközelebb álló k node címét Ezektől a node-októl megkapja a tárolandó infókat Bekerül mások k-vödreibe, elkezdi feltölteni saját k-vödreit Node távozása Nincs semmi tennivaló Periodikus frissítés Ha egy csomópont tárol egy értéket, periódikus időközönként megkeresi a k-1 másik csomópontot amelyik legközelebb áll az adott értékhez Tárolja az értéket ezeken a csomópontokon

Alkalmazások A Kademliát használó néhány alkalmazás: Overnet háló: Overnet, edonkey, mldonkey 2006-ban 645.000 párhuzamos felhasználó A RIAA betiltatta 2006-ban Az eredeti ed2k hálót helyettesítette 66 Kad háló: emule, mldonkey, amule emule fejleszői az Overnet helyett saját Kademlia implementációt készítettek Directconnect: RevConnect Trackerless BitTorrent: Azureus, BitSpirit, exeem

Tapestry

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

69 Tapestry Egy elosztott, hibatűrő, adaptív lokalizáló és útválasztó infrastruktúra Utótag (suffix) alapú ú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

70 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

Neighbour Map 71 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

Neighbour Map 0712 1712 2712 3712 4712 5712 6712 7712 4 N = 5712 (Octal) x012 x112 x212 x312 x412 x512 x612 5712 3 xx02 5712 xx22 xx32 xx42 xx52 xx62 xx72 2 Útválasztási szintek xxx0 xxx1 5712 xxx3 xxx4 xxx5 xxx6 xxx7 1 72

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

Példa 5712 7510 74 5712 0 1 2 3 4 5 6 7 0330 0 1 2 3 4 5 6 7 5712 0330 3210 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 4510 7510

Tapestry routing 0000 x000 xx00 xxx0 75 0000 0000 0000 0000 NodeID 0000 0111? 1000 x100 xx10 xxx1 1000 0100 1010 0101 0101 x001 xx01 xxx0 0101 1001 0101 0000 1101 x101 xx11 xxx1 1101 0101 0011 0101 NodeID 1010 NodeID 0100 NodeID 1000 NodeID 0101 NodeID 1110 NodeID 0001 NodeID 0111 NodeID 1001 NodeID 1011 NodeID 0011 0011 x011 xx01 xxx0 0011 0011 1001 1110 NodeID 1100 1011 x111 xx11 xxx1 1011 1111 0011 0011 NodeID 0110 NodeID 1101 NodeID 1111 0111 x011 xx01 xxx0 0111 0011 1101 0010 NodeID 0010 1111 x111 xx11 xxx1 1111 1111 1111 1111

76 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

Tapestry csomópont 77

78 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 node

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

4 2 3 3 3 2 2 1 2 4 1 2 3 3 1 3 4 1 1 4 3 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 80

81 Root node (Tapestry) Surrogate (helyettesítő) 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 szint után egyetlen bejegyzés sincs saját magán kívül, megáll Ez a pont lesz a surrogate (root)

82 Surrogate Routing példa 91145 <O:12345, S:B3467> 61145 31145 B7645 F3145 B3467 12345 96145 B3945

Lokalizáció 83 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

Lokalizáció 84

Tapestry alkalmazások Mnemosyne Biztonságos elosztott fájlrendszer A Freenet-hez hasonló szolgáltatás http://www.cs.rice.edu/conferences/iptps02/107.pdf Bayeux Alkalmazás rétegbeli multicast megoldás Későbbi előadásban részletesen Spamwatch Elosztott spam szűrő A felhasználók címkézik a spam leveleket Az e-mail szerverek egy Tapestry hálóba kötve http://www.zhoufeng.net/eng/spamwatch/ OceanStore Elosztott tárolás http://oceanstore.cs.berkeley.edu/ 85

86 Összefoglalás Strukturálatlan vs strukturált P2P Tervezhető, algoritmizálható rendszer Nincs központi entitás - hurrá És ez nem tetszik a felhasználóknak - búúú CAN szép elméleti példa Kademlia és Tapestry használ(t/j)ák Chord to come