710 likes | 812 Views
Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer. Λεοντιάδης Ηλίας Πανεπιστήμιο Ιωαννίνων Τμήμα πληροφορικής. Δομή. Επισκόπηση δικτύων peer to peer Πράκτορες και συστήματα πολλαπλών πρακτόρων Μοντέλο distributed cache Ανακάλυψη υπηρεσιών Κινητικότητα
E N D
Κινητικότητα και ενημερώσεις σε δίκτυα peer to peer Λεοντιάδης Ηλίας Πανεπιστήμιο ΙωαννίνωνΤμήμα πληροφορικής
Δομή • Επισκόπηση δικτύων peer to peer • Πράκτορες και συστήματα πολλαπλών πρακτόρων • Μοντέλο distributed cache • Ανακάλυψη υπηρεσιών • Κινητικότητα • Ενημερώσεις (μέθοδοι push/pull και παραλλαγές) • Πειραματικά αποτελέσματα • Αντίγραφα (Replication) • Δημιουργία αντιγράφων • Ενημέρωση αντιγράφων
Συστήματα peer-to-peer (P2P) • Αποκέντρωση • Οι peers είναι ομότιμοι • Διαμοιρασμός πόρων/ υπηρεσιών • Άμεση συνεργασία (peer to peer) • Αυτο-οργάνωση και αυτονομία • Λειτουργία σε ασταθές και αναξιόπιστο περιβάλλον Κεντρικός server peer client
Εφαρμογές δικτύων peer to peer • Συστήματα ανταλλαγής αρχείων • Napster, Gnutella, Kazaa, BitTorrent, LimeWire, Freenet, E-donkey • Κατανεμημένοι υπολογισμοί (distributed computing) • SETI@Home, United Devices,Entropia, GPU • Επικοινωνία • ICQ, Net meeting • Συνεργασία • Ασφάλεια • Ιδιωτικότητα (privacy) • Freenet • Έξυπνες συσκευές • Δίκτυα από ανιχνευτές • Δίκτυα αυτοκινήτων
Τύποι συστημάτων P2PΚεντρικοποιημένα Κεντρικόςserver peers
Broker peer Τύποι συστημάτων P2PΣυστήματα μεσίτη peers
Τύποι συστημάτων P2PΠλήρως αποκεντρωμένα
Τύποι συστημάτων P2PΜερικώς αποκεντρωμένα Συνδέσεις super peers (αναζητήσεις) Απ’ ευθείας συνδέσεις των client (δεδομένα)
Δομή δικτύων • Αδόμητα (unstructured) • Η τοποθέτηση της πληροφορίας δεν έχει καμία σχέση με την τοπολογία του δικτύου • Αναζήτηση τύπου flooding • Παραδείγματα: Gnutella • Δομημένα (structured) • Η τοπολογία είναι ελεγχόμενη και η πληροφορία τοποθετείται σε συγκεκριμένες θέσεις του δικτύου • Υπάρχει δρομολόγηση αναζητήσεων. • Παραδείγματα: CAN, Chord, Tapestry κτλ • Ελαφρώς δομημένα • Ανάμεσα στα προηγούμενα δύο • Οι θέσεις τον πόρων επηρεάζεται από κάποια δρομολόγηση αλλά δεν καθορίζεται από αυτήν • Παραδείγματα: Freenet
Multi-agent systems • Multi-Agent system (MAS) • Δίκτυο απόsoftware agents • Υπολογιστικοί πόροι και υπηρεσίες διαμοιράζονται σε όλο το δίκτυο • Οι agents συνεργάζονται για ναεκπληρώσουν έναν συγκεκριμένο στόχο Για να το κάνουν αυτό, χρειάζονται υπηρεσίες που παρέχονται από άλλους agents • Open MAS • Δεν υπάρχει σφαιρική γνώση για το τι υπάρχει στο σύστημα • Έτσι, οι agentsδεν γνωρίζουν ποιος agent προσφέρει ποια υπηρεσία
Ανακάλυψη υπηρεσιών σε open MAS Ζήτημα: Πώς ανακαλύπτουμεέναν agent που προσφέρει μια συγκεκριμένη υπηρεσία Προσεγγίσεις: • Central directory • Υπάρχει ένας agent που διατηρεί έναν κεντρικό κατάλογο που αντιστοιχεί υπηρεσίες σε agents • Middle agents • Υπάρχουν μερικοί agents (middle agents) που κρατούν τμήμα αυτού του καταλόγου • Distributed cachemodel: • Κάθε agent διατηρεί τμήμα του καταλόγου • Απόδοση • Ανοχή σε σφάλματα
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
Αναζήτηση υπηρεσιών • Μέθοδοι αναζήτησης που βασίζονται στην τεχνική 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
Το πρόβλημα: Το δίκτυο των cache και κινητικότητα Κινητικότητα • Οι agents μπορεί να μετακινηθούνπ.χ. να αλλάξουν IP • Οι υπηρεσίες μπορεί να μετακινηθούν από έναν agent σε κάποιον άλλο • Όσοι είχαν στην cache υπηρεσίες του μη-έγκυρες εγγραφές (invalid cache entries) Ουσιαστικά, κανείς δεν γνωρίζει την νέα του θέση, αφού κάνεις δεν ενημερώθηκε για την μετακίνηση Νέα θέση a3 a1 a2 a3 Παλιά θέση Όταν ένας agent μετακινείται δημιουργείται ασυνέπεια στις εγγραφές cache των άλλων a4 a5 a6
Πολιτικές ενημέρωσης Μελετήσαμε το πρόβλημα της ενημέρωσης των cache σε ένα δίκτυο από κινητούς πράκτορες Από την στιγμή που οι εγγραφές στην cache ορίζουν το δίκτυο P2P, με το να ενημερώνουμε την cache, ενημερώνουμε το ίδιο το δίκτυο. • Προτείνουμε πολιτικές που βασίζονται σε δύο βασικές μεθόδους: • Pull • Ξεκινά από agents που επιθυμούν να ανανεώσουν την cache τους • Push • Ξεκινά από agents που μετακινούνται
Μέθοδος pull Ξεκινά από κάποιον agent που επιθυμεί να ανανεώσει κάποια εγγραφή • περιοδικά • on demand • Οποιοσδήποτε αλγόριθμος αναζήτησης που βασίζεται στο flooding μπορεί να χρησιμοποιηθεί • Απλό flood • Teeming with decay • K-Random paths Pull Αναζήτηση του δικτύουγια κάποιον agent που γνωρίζει νεότερη θέση
Παράδειγμα pull Παλιά θέση Agent που γνωρίζει την νέα θέση Agent που κάνει pull Νέα θέση
Παράδειγμα pull Απευθείας απάντηση
Μέθοδος push • Το pull δεν μπορεί να δουλέψει από μόνο του Όταν κάποιος agent μετακινείται πρέπει να ενημερώσει τουλάχιστον έναν ακόμα για την νέα του θέση Push Όταν ένας agent μετακινείται προωθεί στο δίκτυο (κάνει push) την πληροφορία που σχετίζεται με την νέα του θέση.
Παράδειγμα push Χρειάζεται ενημέρωση Παλιά θέση Χρειάζεται ενημέρωση Χρειάζεται ενημέρωση Νέα θέση
Προτεινόμενες πολιτικές • Απλό push/pull Συνδυασμός των αλγορίθμων push / pull με χρήση των κατάλληλων αλγορίθμων flooding • Push με καταλόγους snooping καιπεριοδικά pulls Νέα παραλλαγή του push όπου οι κόμβοι που «μαθαίνουν» για μία μετακίνηση κρατούν την πληροφορία αυτή σε κάποιον κατάλογο • Inverted cache με leasingΜία «ενημερωμένη» έκδοση του αλγορίθμου push που συνδυάσαμε με την ιδέα leasing
Απλό push/pull Δεν υπάρχει καμία πληροφορία για το ποιοι agents χρειάζονται την ενημέρωση • Απαιτείται έναευρύ pushώστε να ενημερώσουμε επαρκή αριθμό από agents • Αλγόριθμος teeming with decay • Μεγάλο TTL και μικρή παράμετρος decay Απλό push O agent που μετακινείται πλημμυρίζει τυφλά το δίκτυο με μηνύματα που περιέχουν την νέα του θέση έτσι ώστε να ενημερώσει όσο το δυνατό περισσότερους agents.
Απλό push/pull Pull • Ένας agent μπορεί να μην λάβει την ενημέρωση: • Εκτός σύνδεσης την ώρα του push • TTL, decay • Μη συνεκτικό δίκτυο • Όταν ο agent αντιληφθεί μη έγκυρη εγγραφή στην cache του • on-demand pull
Push με καταλόγους snooping και περιοδικό pull Κατάλογοι snooping Κάθε agent παρακολουθεί το δίκτυο και κρατά έναν κατάλογο με τους πρόσφατα μετακινηθέντες κόμβους για τους οποίους ενημερώθηκε. Αυτός ο κατάλογος ονομάζεταιsnooping directory. • Ουσιαστικά: • Όταν λάβει κάποιο μήνυμα push, αποθηκεύει την πληροφορία στον δικό του κατάλογο snooping • Το κάνει αυτό ακόμα και αν το μήνυμα δεν περιέχει πληροφορία για κάποιον agent που τον ενδιαφέρει • Κρατά την πληροφορία αυτή για περιορισμένο χρονικό διάστημα (υπάρχει expiration time) Επομένως, κάθε κόμβος θυμάται για λίγο τις νέες θέσεις όλων των agent για τους οποίους έλαβε μήνυμα push.
Παράδειγμα push με καταλόγους snooping Snooping dir -a1 moved to … Snooping dir -a1 moved to …
Παράδειγμα 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
Περιοδικά pulls • Όλοι οι agent κάνουνπεριοδικά pull Περιοδικά, μαθαίνουν αν κάποιος agent που τους ενδιαφέρει έχει μετακινηθεί πρόσφατα ρωτώντας τους γείτονες τους. • Γιατίπεριοδικά pull; • Για να εκμεταλλευτούμε τα snooping directories:Αν κάνουμε pull πολύ αργά οι παλιές μετακινήσεις θα έχουν σβηστεί από τους καταλόγους snooping των γειτόνων. • Ο χρόνος μεταξύ δύο διαδοχικών pull < expiration time
Push με καταλόγους snooping και περιοδικά pull:Συζήτηση • Πλέον, σε κάθε μετακίνηση δεν χρειάζεται να ενημερώσουμε όσο το δυνατό περισσότερους agents άλλα μερικούς • Η μέθοδος αυτήμας επιτρέπει να χρησιμοποιήσουμε λιγότερο ευρύ push Για παράδειγμα: Αν υποθέσουμε ότι όλοι οι agent κάνουν περιοδικό pull από την 2-hop γειτονιά τους: • Όσοι κόμβοι απέχουν2-hop από τους agents που ενημερώθηκαν με pushθα λάβουν την ενημέρωση. • Έτσι αρκεί να ενημερωθεί ένας μόνο κόμβος σε κάθε 2-hop γειτονιά • Προτιμούμε τον αλγόριθμο k-walkers • Δημιουργούμε K-walkers • Επιθυμούμε όλοι οι agents να απέχουν το πολύ 2-hop από τα μονοπάτια τους.
Push με καταλόγους snooping και περιοδικά pull
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
Inverted cache push/pull Ζήτημα Το να φυλάσσουμε ολόκληρο τονκατάλογο της inverted cache μπορεί να μην είναι πάντα επιθυμητό επειδή υπάρχουν δημοφιλείς agents. Λύσεις • Κρατάμε μόνο ένα μέρος του καταλόγου • Συνδυασμός με την τεχνικήleasing • Οι agents που δεν ενημερώθηκαν πρέπει να καταφύγουν σε on-demand pull.
Inverted cache push/pull: Leasing • Σε κάθε εγγραφή της cache ανατίθεται από τον ιδιοκτήτη της υπηρεσίας χρόνοςμίσθωσης (lease time) • Μετά την λήξη της μίσθωσης ο ιδιοκτήτης της υπηρεσίας μπορεί να σβήσει την εγγραφή από την inverted cache τουχωρίς ενημερώσει ποτέ τον μισθωτή • Έτσι μπορούμε να ελέγξουμε το μέγεθος της inverted cache μέσω του χρόνου μίσθωσης • Μικρότερος χρόνος μίσθωσηςμικρότερες λίστες Lease time Το χρονικό διάστημα κατά το οποίο ο ιδιοκτήτης της υπηρεσίας εγγυάται ότι θα ενημερώσει τον μισθωτή για την οποιαδήποτε μετακίνηση της.
Πειραματικά αποτλέσματα • Χρήση ενός εξομοιωτή • Παραγωγή τυχαίου γράφου • Κάθε agent παρέχει έναν αριθμό από υπηρεσίες • Υπάρχουν δημοφιλής και μη-δημοφιλείς υπηρεσίες • Αρχικά όλοι οι πράκτορες έχουν έγκυρες εγγραφές στην cache • Η εξομοίωση τρέχει για έναν αριθμό από γύρους (turn based): • Σε κάθε γύρο, ένας agent μπορεί να • Μετακινηθεί • Να χρησιμοποιήσει μια υπηρεσία • Μπορεί να χρειαστεί on-demand push • Να κάνει κάποιο περιοδικό pull (ανάλογα με τον αλγόριθμο) • Να προσθέσει, σβήσει, αντικαταστήσει εγγραφές στην cache του. • Κρατάμε στατιστικά • Μηνύματα push/pull • Ποσοστό έγκυρων εγγραφών στην cache • Μέσο μέγεθος καταλόγων (snooping, inverted cache…) • Πόσοι agent μετακινήθηκαν σε κάθε βήμα μετά την μετακίνηση • Πόσο γρήγορα βρίσκεται μια τυχαία υπηρεσία (βάθος αναζήτησης).
Εξομοίωση • Στις εξομοιώσεις που θα παρουσιάσουμε • Δίκτυο των 1000 agent • 3000 υπηρεσίες • 250 γύροι • Ενδιαφερόμαστε κυρίως για: • Το ποσοστό των cache που παρέμεινε έγκυρο κατά την διάρκεια της εξομοίωσης. • Το κόστος μηνυμάτων του • Pull • Push • Αλλαγών στην cache • Την ταχύτητα ενημέρωσης • Την ταχύτητα εύρεσης μιας τυχαίας υπηρεσίας
Απλό push/pull Εύρος του push – ποσοστό έγκυρων εγγραφών cache
Απλό push/pullΕύρος του push – αριθμός μηνυμάτων
Push with snooping directories and periodic pullΕύρος του push – ποσοστό έγκυρων εγγραφών cache
Push with snooping directoriesand periodic pullΕύρος του push – αριθμός μηνυμάτων
Inverted cache push/pull με leasing Διάρκεια του lease - ποσοστό έγκυρων εγγραφών cache