1 / 71

Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer

Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer. Λεοντιάδης Ηλίας Πανεπιστήμιο Ιωαννίνων Τμήμα πληροφορικής. Δομή. Επισκόπηση δικτύων peer to peer Πράκτορες και συστήματα πολλαπλών πρακτόρων Μοντέλο distributed cache Ανακάλυψη υπηρεσιών Κινητικότητα

Download Presentation

Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer Λεοντιάδης Ηλίας Πανεπιστήμιο ΙωαννίνωνΤμήμα πληροφορικής

  2. Δομή • Επισκόπηση δικτύων peer to peer • Πράκτορες και συστήματα πολλαπλών πρακτόρων • Μοντέλο distributed cache • Ανακάλυψη υπηρεσιών • Κινητικότητα • Ενημερώσεις (μέθοδοι push/pull και παραλλαγές) • Πειραματικά αποτελέσματα • Αντίγραφα (Replication) • Δημιουργία αντιγράφων • Ενημέρωση αντιγράφων

  3. Συστήματα peer-to-peer (P2P) • Αποκέντρωση • Οι peers είναι ομότιμοι • Διαμοιρασμός πόρων/ υπηρεσιών • Άμεση συνεργασία (peer to peer) • Αυτο-οργάνωση και αυτονομία • Λειτουργία σε ασταθές και αναξιόπιστο περιβάλλον Κεντρικός server peer client

  4. Εφαρμογές δικτύων peer to peer • Συστήματα ανταλλαγής αρχείων • Napster, Gnutella, Kazaa, BitTorrent, LimeWire, Freenet, E-donkey • Κατανεμημένοι υπολογισμοί (distributed computing) • SETI@Home, United Devices,Entropia, GPU • Επικοινωνία • ICQ, Net meeting • Συνεργασία • Ασφάλεια • Ιδιωτικότητα (privacy) • Freenet • Έξυπνες συσκευές • Δίκτυα από ανιχνευτές • Δίκτυα αυτοκινήτων

  5. Τύποι συστημάτων P2PΚεντρικοποιημένα Κεντρικόςserver peers

  6. Broker peer Τύποι συστημάτων P2PΣυστήματα μεσίτη peers

  7. Τύποι συστημάτων P2PΠλήρως αποκεντρωμένα

  8. Τύποι συστημάτων P2PΜερικώς αποκεντρωμένα Συνδέσεις super peers (αναζητήσεις) Απ’ ευθείας συνδέσεις των client (δεδομένα)

  9. Δομή δικτύων • Αδόμητα (unstructured) • Η τοποθέτηση της πληροφορίας δεν έχει καμία σχέση με την τοπολογία του δικτύου • Αναζήτηση τύπου flooding • Παραδείγματα: Gnutella • Δομημένα (structured) • Η τοπολογία είναι ελεγχόμενη και η πληροφορία τοποθετείται σε συγκεκριμένες θέσεις του δικτύου • Υπάρχει δρομολόγηση αναζητήσεων. • Παραδείγματα: CAN, Chord, Tapestry κτλ • Ελαφρώς δομημένα • Ανάμεσα στα προηγούμενα δύο • Οι θέσεις τον πόρων επηρεάζεται από κάποια δρομολόγηση αλλά δεν καθορίζεται από αυτήν • Παραδείγματα: Freenet

  10. Συστήματα πολλαπλών πρακτόρων

  11. Multi-agent systems • Multi-Agent system (MAS) • Δίκτυο απόsoftware agents • Υπολογιστικοί πόροι και υπηρεσίες διαμοιράζονται σε όλο το δίκτυο • Οι agents συνεργάζονται για ναεκπληρώσουν έναν συγκεκριμένο στόχο Για να το κάνουν αυτό, χρειάζονται υπηρεσίες που παρέχονται από άλλους agents • Open MAS • Δεν υπάρχει σφαιρική γνώση για το τι υπάρχει στο σύστημα • Έτσι, οι agentsδεν γνωρίζουν ποιος agent προσφέρει ποια υπηρεσία

  12. Ανακάλυψη υπηρεσιών σε open MAS Ζήτημα: Πώς ανακαλύπτουμεέναν agent που προσφέρει μια συγκεκριμένη υπηρεσία Προσεγγίσεις: • Central directory • Υπάρχει ένας agent που διατηρεί έναν κεντρικό κατάλογο που αντιστοιχεί υπηρεσίες σε agents • Middle agents • Υπάρχουν μερικοί agents (middle agents) που κρατούν τμήμα αυτού του καταλόγου • Distributed cachemodel: • Κάθε agent διατηρεί τμήμα του καταλόγου • Απόδοση • Ανοχή σε σφάλματα

  13. Distributed cache model Cache του a1 R4:A2(IP) R8: A6(IP) R1R2R3 • Κάθε agent διατηρεί k εγγραφές cache που αφορούν υπηρεσίες που προσφέρουν άλλοι agents • Εγγραφές Cache: Κάθε εγγραφή περιέχει την διεύθυνση του agent που προσφέρει την συγκεκριμένη υπηρεσία. • Το σύστημα μοντελοποιείται ως ένας κατευθυνόμενος γράφος G(V;E) που ονομάζουμε δίκτυο των cache • Αν στο G υπάρχει ακμή u  v, τότε ο agent v καλείται γείτοναςτου u a1 R4R7 a2 a3 R9 a4 a5 R1 R6 a6 R8R5R2 R1

  14. Αναζήτηση υπηρεσιών • Μέθοδοι αναζήτησης που βασίζονται στην τεχνική flooding • Απλό flood • Κάθε κόμβος που λαμβάνει το μήνυμα αναζήτησης • Εξετάζει αν έχει την απάντηση • Το προωθεί σε όλους τους γείτονες • Μέχρι να φτάσουμε έναν μέγιστο αριθμό βημάτων (TTL) • Teeming • Προωθεί το μήνυμα σε ένα τυχαίο υποσύνολο των γειτόνων • Σταθερή πιθανότητα Φ να επιλεχθεί κάποιος γείτονας • Teeming με decay • Παρόμοιο με το teeming, μόνο που τουποσύνολο μικραίνεικαθώς αυξάνεται το βάθος αναζήτησης • Φ = (1-d)level Το d < 1 ονομάζεταιπαράμετρος decay • K-Random paths (K-walkers) • Μόνο ο πρώτος agent προωθεί το μήνυμα σε K τυχαίους γείτονες • Όλοι οι υπόλοιποι προωθούν το μήνυμασε έναν μόνο τυχαίο γείτονα Απλό flood Teeming 2-Random paths

  15. Το πρόβλημα: Το δίκτυο των cache και κινητικότητα Κινητικότητα • Οι agents μπορεί να μετακινηθούνπ.χ. να αλλάξουν IP • Οι υπηρεσίες μπορεί να μετακινηθούν από έναν agent σε κάποιον άλλο • Όσοι είχαν στην cache υπηρεσίες του μη-έγκυρες εγγραφές (invalid cache entries) Ουσιαστικά, κανείς δεν γνωρίζει την νέα του θέση, αφού κάνεις δεν ενημερώθηκε για την μετακίνηση Νέα θέση a3 a1 a2 a3 Παλιά θέση Όταν ένας agent μετακινείται δημιουργείται ασυνέπεια στις εγγραφές cache των άλλων a4 a5 a6

  16. Πολιτικές ενημέρωσης Μελετήσαμε το πρόβλημα της ενημέρωσης των cache σε ένα δίκτυο από κινητούς πράκτορες Από την στιγμή που οι εγγραφές στην cache ορίζουν το δίκτυο P2P, με το να ενημερώνουμε την cache, ενημερώνουμε το ίδιο το δίκτυο. • Προτείνουμε πολιτικές που βασίζονται σε δύο βασικές μεθόδους: • Pull • Ξεκινά από agents που επιθυμούν να ανανεώσουν την cache τους • Push • Ξεκινά από agents που μετακινούνται

  17. Μέθοδος pull Ξεκινά από κάποιον agent που επιθυμεί να ανανεώσει κάποια εγγραφή • περιοδικά • on demand • Οποιοσδήποτε αλγόριθμος αναζήτησης που βασίζεται στο flooding μπορεί να χρησιμοποιηθεί • Απλό flood • Teeming with decay • K-Random paths Pull Αναζήτηση του δικτύουγια κάποιον agent που γνωρίζει νεότερη θέση

  18. Παράδειγμα pull Παλιά θέση Agent που γνωρίζει την νέα θέση Agent που κάνει pull Νέα θέση

  19. Παράδειγμα pull

  20. Παράδειγμα pull

  21. Παράδειγμα pull

  22. Παράδειγμα pull Απευθείας απάντηση

  23. Παράδειγμα pull

  24. Μέθοδος push • Το pull δεν μπορεί να δουλέψει από μόνο του Όταν κάποιος agent μετακινείται πρέπει να ενημερώσει τουλάχιστον έναν ακόμα για την νέα του θέση Push Όταν ένας agent μετακινείται προωθεί στο δίκτυο (κάνει push) την πληροφορία που σχετίζεται με την νέα του θέση.

  25. Παράδειγμα push Χρειάζεται ενημέρωση Παλιά θέση Χρειάζεται ενημέρωση Χρειάζεται ενημέρωση Νέα θέση

  26. Παράδειγμα push

  27. Παράδειγμα push

  28. Παράδειγμα push

  29. Παράδειγμα push

  30. Προτεινόμενες πολιτικές • Απλό push/pull Συνδυασμός των αλγορίθμων push / pull με χρήση των κατάλληλων αλγορίθμων flooding • Push με καταλόγους snooping καιπεριοδικά pulls Νέα παραλλαγή του push όπου οι κόμβοι που «μαθαίνουν» για μία μετακίνηση κρατούν την πληροφορία αυτή σε κάποιον κατάλογο • Inverted cache με leasingΜία «ενημερωμένη» έκδοση του αλγορίθμου push που συνδυάσαμε με την ιδέα leasing

  31. Απλό push/pull Δεν υπάρχει καμία πληροφορία για το ποιοι agents χρειάζονται την ενημέρωση • Απαιτείται έναευρύ pushώστε να ενημερώσουμε επαρκή αριθμό από agents • Αλγόριθμος teeming with decay • Μεγάλο TTL και μικρή παράμετρος decay Απλό push O agent που μετακινείται πλημμυρίζει τυφλά το δίκτυο με μηνύματα που περιέχουν την νέα του θέση έτσι ώστε να ενημερώσει όσο το δυνατό περισσότερους agents.

  32. Απλό push/pull Pull • Ένας agent μπορεί να μην λάβει την ενημέρωση: • Εκτός σύνδεσης την ώρα του push • TTL, decay • Μη συνεκτικό δίκτυο • Όταν ο agent αντιληφθεί μη έγκυρη εγγραφή στην cache του • on-demand pull

  33. Push με καταλόγους snooping και περιοδικό pull Κατάλογοι snooping Κάθε agent παρακολουθεί το δίκτυο και κρατά έναν κατάλογο με τους πρόσφατα μετακινηθέντες κόμβους για τους οποίους ενημερώθηκε. Αυτός ο κατάλογος ονομάζεταιsnooping directory. • Ουσιαστικά: • Όταν λάβει κάποιο μήνυμα push, αποθηκεύει την πληροφορία στον δικό του κατάλογο snooping • Το κάνει αυτό ακόμα και αν το μήνυμα δεν περιέχει πληροφορία για κάποιον agent που τον ενδιαφέρει • Κρατά την πληροφορία αυτή για περιορισμένο χρονικό διάστημα (υπάρχει expiration time) Επομένως, κάθε κόμβος θυμάται για λίγο τις νέες θέσεις όλων των agent για τους οποίους έλαβε μήνυμα push.

  34. Παράδειγμα push με καταλόγους snooping

  35. Παράδειγμα push με καταλόγους snooping Snooping dir -a1 moved to … Snooping dir -a1 moved to …

  36. Παράδειγμα push με καταλόγους snooping Snooping dir -a1 moved to … Snooping dir -a1 moved to … Snooping dir -a1 moved to … Snooping dir -a1 moved to … Snooping dir -a1 moved to … a1

  37. Περιοδικά pulls • Όλοι οι agent κάνουνπεριοδικά pull Περιοδικά, μαθαίνουν αν κάποιος agent που τους ενδιαφέρει έχει μετακινηθεί πρόσφατα ρωτώντας τους γείτονες τους. • Γιατίπεριοδικά pull; • Για να εκμεταλλευτούμε τα snooping directories:Αν κάνουμε pull πολύ αργά οι παλιές μετακινήσεις θα έχουν σβηστεί από τους καταλόγους snooping των γειτόνων. • Ο χρόνος μεταξύ δύο διαδοχικών pull < expiration time

  38. Push με καταλόγους snooping και περιοδικά pull:Συζήτηση • Πλέον, σε κάθε μετακίνηση δεν χρειάζεται να ενημερώσουμε όσο το δυνατό περισσότερους agents άλλα μερικούς • Η μέθοδος αυτήμας επιτρέπει να χρησιμοποιήσουμε λιγότερο ευρύ push Για παράδειγμα: Αν υποθέσουμε ότι όλοι οι agent κάνουν περιοδικό pull από την 2-hop γειτονιά τους: • Όσοι κόμβοι απέχουν2-hop από τους agents που ενημερώθηκαν με pushθα λάβουν την ενημέρωση. • Έτσι αρκεί να ενημερωθεί ένας μόνο κόμβος σε κάθε 2-hop γειτονιά • Προτιμούμε τον αλγόριθμο k-walkers • Δημιουργούμε K-walkers • Επιθυμούμε όλοι οι agents να απέχουν το πολύ 2-hop από τα μονοπάτια τους.

  39. Push με καταλόγους snooping και περιοδικά pull

  40. Inverted cache push/pull • Κάθε agent κρατάει μια λίστατων agent που τον γνωρίζουν, η οποία ονομάζεται inverted cache. • Όταν ένας agent μετακινείται, ενημερώνει τους agents στην • inverted cache ώστε να ανανεώσουν την cache τους. • απλή cache ώστε να ανανεώσουν την inverted cache τους. • Με το να γνωρίζουμε του που να στείλουμε το update • Αποφεύγουμε το flooding  Ελάχιστος φόρτος μηνυμάτων • Μειονέκτημα:Οι αλλαγές στην cache κάποιου agent (προσθήκη διαγραφή κτλ.) απαιτούν ανταλλαγή μηνυμάτων A B C A C B

  41. Inverted cache push/pull Ζήτημα Το να φυλάσσουμε ολόκληρο τονκατάλογο της inverted cache μπορεί να μην είναι πάντα επιθυμητό επειδή υπάρχουν δημοφιλείς agents. Λύσεις • Κρατάμε μόνο ένα μέρος του καταλόγου • Συνδυασμός με την τεχνικήleasing • Οι agents που δεν ενημερώθηκαν πρέπει να καταφύγουν σε on-demand pull.

  42. Inverted cache push/pull: Leasing • Σε κάθε εγγραφή της cache ανατίθεται από τον ιδιοκτήτη της υπηρεσίας χρόνοςμίσθωσης (lease time) • Μετά την λήξη της μίσθωσης ο ιδιοκτήτης της υπηρεσίας μπορεί να σβήσει την εγγραφή από την inverted cache τουχωρίς ενημερώσει ποτέ τον μισθωτή • Έτσι μπορούμε να ελέγξουμε το μέγεθος της inverted cache μέσω του χρόνου μίσθωσης • Μικρότερος χρόνος μίσθωσηςμικρότερες λίστες Lease time Το χρονικό διάστημα κατά το οποίο ο ιδιοκτήτης της υπηρεσίας εγγυάται ότι θα ενημερώσει τον μισθωτή για την οποιαδήποτε μετακίνηση της.

  43. Πειραματικά αποτλέσματα • Χρήση ενός εξομοιωτή • Παραγωγή τυχαίου γράφου • Κάθε agent παρέχει έναν αριθμό από υπηρεσίες • Υπάρχουν δημοφιλής και μη-δημοφιλείς υπηρεσίες • Αρχικά όλοι οι πράκτορες έχουν έγκυρες εγγραφές στην cache • Η εξομοίωση τρέχει για έναν αριθμό από γύρους (turn based): • Σε κάθε γύρο, ένας agent μπορεί να • Μετακινηθεί • Να χρησιμοποιήσει μια υπηρεσία • Μπορεί να χρειαστεί on-demand push • Να κάνει κάποιο περιοδικό pull (ανάλογα με τον αλγόριθμο) • Να προσθέσει, σβήσει, αντικαταστήσει εγγραφές στην cache του. • Κρατάμε στατιστικά • Μηνύματα push/pull • Ποσοστό έγκυρων εγγραφών στην cache • Μέσο μέγεθος καταλόγων (snooping, inverted cache…) • Πόσοι agent μετακινήθηκαν σε κάθε βήμα μετά την μετακίνηση • Πόσο γρήγορα βρίσκεται μια τυχαία υπηρεσία (βάθος αναζήτησης).

  44. Εξομοίωση • Στις εξομοιώσεις που θα παρουσιάσουμε • Δίκτυο των 1000 agent • 3000 υπηρεσίες • 250 γύροι • Ενδιαφερόμαστε κυρίως για: • Το ποσοστό των cache που παρέμεινε έγκυρο κατά την διάρκεια της εξομοίωσης. • Το κόστος μηνυμάτων του • Pull • Push • Αλλαγών στην cache • Την ταχύτητα ενημέρωσης • Την ταχύτητα εύρεσης μιας τυχαίας υπηρεσίας

  45. Απλό push/pull Εύρος του push – ποσοστό έγκυρων εγγραφών cache

  46. Απλό push/pullΕύρος του push – αριθμός μηνυμάτων

  47. Push with snooping directories and periodic pullΕύρος του push – ποσοστό έγκυρων εγγραφών cache

  48. Push with snooping directoriesand periodic pullΕύρος του push – αριθμός μηνυμάτων

  49. Απλό push/pull vs. snooping

  50. Inverted cache push/pull με leasing Διάρκεια του lease - ποσοστό έγκυρων εγγραφών cache

More Related