Διομότιμα Συςτόματα (P2P systems) To ςύςτημα Pastry
Η ζννοια του δικτφου επικάλυψησ Θεώρηςη των P2P ςυςτημϊτων ωσ ΚΣ που λειτουργούν ςτο επύπεδο εφαρμογόσ και ςτα οπούα κϊθε ζεύγοσ ομότιμων κόμβων επικοινωνεύ, κϊνοντασ χρόςη ενόσ κατϊλληλου πρωτοκόλλου δρομολόγηςησ ςτο επύπεδο εφαρμογόσ Δίκτυο επικάλυψης (overlay network) 2
Το πρόβλημα εντοπιςμοφ πόρου ςε P2P 3
Τι είναι το Pastry; To Pastry εύναι ϋνα δομημϋνο P2P ςύςτημα, ςτο οπούο το δύκτυο επικϊλυψησ υλοποιεύ ϋναν DHT. Το δύκτυο επικϊλυψησ αναθϋτει κλειδιϊ (keys) ςε τιμϋσ (values) και οργανώνει τουσ ομότιμουσ κόμβουσ ςε ϋναν γρϊφο (τοπολογύα) που αντιςτοιχύζει κϊθε κλειδύ ςε ϋναν κόμβο. Επιτρϋπει την αποδοτικό ανακϊλυψη πόρων, χρηςιμοποιώντασ ςυγκεκριμϋνα κλειδιϊ. Ένασ DHT υλοποιεύ μύα μόνο λειτουργύα, την αναζότηςη για ςυγκεκριμϋνο κλειδύ (lookup (key)), που επιςτρϋφει τη διεύθυνςη του κόμβου που εύναι υπεύθυνοσ για το ςυγκεκριμϋνο κλειδύ. 4
Pastry κόμβοσ Αναπαρύςταται από ϋνα 128-bit GUID (global unique identifier) που προκύπτει εφαρμόζοντασ μια ςυνϊρτηςη κατακερματιςμού πϊνω ςτην IP ό ςτο public key του κόμβου Το GUID γρϊφεται ςυνόθωσ ωσ ακολουθύα ψηφύων ςτη βϊςη 2 b (b εύναι μια παρϊμετροσ διαμόρφωςησ με τυπικϋσ τιμϋσ 2 ό 4, δηλαδό το GUID εύναι 4αδικόσ ό 16αδικόσ αριθμόσ) Τα GUIDs εύναι ομοιόμορφα κατανεμημϋνα ςτο κυκλικό namespace (0 ωσ 2 128 1 ). Δρομολογεύ ϋνα μόνυμα ςε O(log 2 b N) βόματα ςτον προοριςμό του N: μϋγεθοσ του δικτύου Κϊθε κόμβοσ διατηρεύ: Ένα ςύνολο φύλλων (Leaf Set, L) Έναν πίνακα δρομολόγηςησ (Routing table, R) Ένα ςύνολο γειτόνων (Neighborhood Set, M)
Η κατάςταςη των κόμβων του Pastry Leaf set: L αριθμητικϊ πληςιϋςτεροι κόμβοι (το L εύναι μια παρϊμετροσ διαμόρφωςησ τυπικϊ ιςούται με 8 ό 16) Routing Table (βαςιςμϋνοσ ςτα προθϋματα - prefixbased) Neighborhood Set: M φυςικϊ πληςιϋςτεροι κόμβοι
Πίνακασ δρομολόγηςησ Πύνακασ log 2 b N γραμμών και 2 b 1 ςτοιχεύων ανϊ γραμμό (N εύναι ο αριθμόσ των κόμβων ςτο δύκτυο) Η πρώτη γραμμό του πύνακα εύναι η μηδενικό γραμμό. Τα περιεχόμενα του πύνακα ςτη ςειρϊ i αναφϋρονται ςε κόμβουσ των οπούων το GUID μοιρϊζεται με το GUID του τρϋχοντοσ κόμβου ϋνα πρόθεμα μόκουσ i ψηφύων, αλλϊ το ψηφύο i+1 ϋχει κϊποια από τισ δυνατϋσ τιμϋσ ςτο διϊςτημα 2 b -1 και διαφϋρει από το αντύςτοιχο ψηφύο του GUID του τρϋχοντοσ κόμβου.
Κόμβοσ με GUID: 10233102 (b = 2, L= 8) 0 1 2 3 02212102 22301203 31203203 11301233 12230203 13021022 10031203 10132102 10323302 10200230 10211302 1022302 10230322 10231000 10232121 10233001 10233232 10233120
Δρομολόγηςη μηνυμάτων Αν ϋνα μόνυμα με προοριςμό (κλειδύ) D εύναι μϋςα ςτο εύροσ του leaf set, προώθηςϋ το ςτο αριθμητικϊ πληςιϋςτερο leaf Διαφορετικϊ προώθηςϋ το ςτον κόμβο που ϋχει τουλϊχιςτον ϋνα περιςςότερο κοινό ψηφύο με το D ςτο prefix του GUID του ςε ςχϋςη με το GUID του τρϋχοντοσ κόμβου Αν δεν υπϊρχει τϋτοιοσ κόμβοσ, προώθηςϋ το ςτον κόμβο που ϋχει τουλϊχιςτον τα ύδια κοινϊ ψηφύα με το D ςτο prefix του GUID του, αλλϊ εύναι αριθμητικϊ πληςιϋςτεροσ από το τρϋχον GUID
Δρομολόγηςη μηνυμάτων (1) Το D είναι ζηο εύπορ ηος leaf set (2) Πποώθηζε ηο μήνςμα ζε ένα πληζιέζηεπο κόμβο (καλύηεπο ηαίπιαζμα) (3) Πποώθηζε ηο μήνςμα ζε ένα απιθμηηικά πληζιέζηεπο κόμβο (όσι καλύηεπο ηαίπιαζμα) Πηγή: A. Rowstron and P. Druschel. "Pastry: Scalable, decentralized object location and routing for large-scale peer-to-peer systems". IFIP/ACM Middleware Conference, Nov 2001 pp. 329-350. A: GUID κόμβος λήτηρ D: κλειδί ληθθένηορ μηνύμαηορ L i : i th πληζιέζηεπο GUID ζηο leaf set L D l : η ηιμή ηος l th τηθίος ηος κλειδιού D shl(a, B): ηο μήκορ ηος κοινού prefix μεηαξύ ηυν GUID/κλειδιών A και B R i l: (l, i) th ηιμή ηος πίνακα δπομολόγηζηρ
Κυκλική δρομολόγηςη ςτο Pastry 65A1FC 0 FFFFF...F (2 128-1) D471F1 D467C4 D46A1C D13DA3 Οι κοσκίδες αναπαριζηούν ενεργούς κόμβοσς. Ο τώρος διεσθύνζεων θεωρείηαι κσκλικός: ο κόμβος 0 είναι γειηονικός ζηον κόμβο (2 128-1). Το διάγραμμα δείτνει ηη δρομολόγηζη ενός μηνύμαηος από ηον κόμβο 65A1FC ζηον κόμβο D46A1C τρηζιμοποιώνηας μόνο ηον πίνακα θύλλων και σποθέηονηας ζύνολο θύλλων μεγέθοσς 8 (l = 4). Η δρομολόγηζη είναι εθικηή αλλά πολύ αργή για μεγάλα μεγέθη δικηύων (μηκλιμακώζιμος αλγόριθμος). 11
Αναφορζσ (1) A. Rowstron and P. Druschel, "Pastry: Scalable, distributed object location and routing for large-scale peer-to-peer systems". IFIP/ACM International Conference on Distributed Systems Platforms (Middleware), Heidelberg, Germany, pages 329-350, November, 2001 (2) Jeff Odom slides: http://x1.cs.umd.edu/818/docs/pastry.ppt