1 Content Addressable Network Λίλλης Κώστας Καλλιμάνης Νικόλαος Αγάθος Σπυρίδων – Δημήτριος Σταθοπούλου Ευγενία Γεωργούλας Κώστας
2 Γενικά Χαρακτηριστικά των p2p συστημάτων. Δεν έχουν κεντρικό έλεγχο. Όλοι οι κόμβοι του συστήματος είναι ομότιμοι. Μπορούν να υποστηρίξουν τεράστιο αριθμό χρηστών. Έχουν ανοχή σε σφάλματα. Γνωστά p2p συστήματα. Napster Gnutella Κατά κόρον έχουν χρησιμοποιηθεί για το διαμοιρασμό αρχείων μεταξύ των χρηστών.
3 Εισαγωγή Βασικό ζήτημα στα p2p συστήματα είναι η εύρεση ενός σχήματος δεικτοδότησης των αντικειμένων. Υπάρχουν αρκετοί τρόποι για την αναζήτηση ενός αρχείου στο σύστημα. Napster → Χρησιμοποιεί κεντρικό ευρετήριο. Gnutella → Χρησιμοποιεί πλημμύρα. Και τα δύο έχουν πρόβλημα κλιμάκωσης.
4 CAN Είναι ένα κατανεμημένο σύστημα ομότιμων, το οποίο παρέχει τη λειτουργικότητα ενός πίνακα κατακερματισμού. Υποστηρίζει λειτουργίες. Εισαγωγή. Διαγραφή. Αναζήτηση.
5 CAN Κάθε κόμβος αποθηκεύει ένα κομμάτι του πίνακα κατακερματισμού (zone). Κάθε κόμβος κρατάει πληροφορία για μερικούς από τους γειτονικούς του κόμβους. Οι αναζητήσεις κάποιου κλειδιού δρομολογούνται μέσω ενδιάμεσων κόμβων, χρησιμοποιώντας έναν greedy αλγόριθμο.
6 CAN-Σχεδιασμός Εικονικός χώρος d διαστάσεων σε ένα d torus. Σε κάθε κόμβο ανατίθεται δυναμικά ένα κομμάτι του χώρου. Κάθε ζεύγος (key, value) αντιστοιχίζεται σε κάποιο σημείο του χώρου μέσω μίας συνάρτησης κατακερματισμού και αποθηκεύεται στον αντίστοιχο κόμβο.
7 CAN-Αναζήτηση Αρχικά κατακερματίζεται το κλειδί. Ελέγχει αν το σημείο βρίσκεται στο zone που του ανήκει. Αν όχι ελέγχει αν βρίσκεται στα zones των «γειτονικών» κόμβων. Σε αντίθετη περίπτωση το αίτημα δρομολογείται.
8 CAN-Δρομολόγηση Κάθε κόμβος διατηρεί έναν πίνακα με τις ΙΡ διευθύνσεις και τη ζώνη του κάθε γείτονα. Greedy αλγόριθμος για την εύρεση του γείτονα που είναι πλησιέστερος στον προορισμό με βάση τις καρτεσιανές συντεταγμένες. Για ένα χώρο διάστασης d, χωρισμένο σε n ίσες ζώνες κάθε κόμβος έχει 2d γείτονες και το μέσο μήκος ενός μονοπατιού είναι
9 Γειτονικοί Κόμβοι
10 Εύρεση - Παράδειγμα 1 (x, y) (a, b)
11 Εύρεση - Παράδειγμα 2 (x, y) (a, b)
12 Εύρεση - Παράδειγμα 3 (a, b) Χ Χ (x, y)
13 CAN - Εισαγωγή Νέου Κόμβου Κάθε νέος κόμβος καταλαμβάνει ένα τμήμα του χώρου συντεταγμένων. 1. Ο νέος κόμβος βρίσκει έναν κόμβο, ο οποίος βρίσκεται ήδη στο CAN. 2. Χρησιμοποιώντας τον μηχανισμό δρομολόγησης του CAN βρίσκει τον κόμβο του οποίου το zone θα διαμεριστεί. 3. Οι γείτονες του διαμοιρασμένου zone ενημερώνονται για την εισαγωγή νέου κόμβου (νέου zone).
14 CAN – Εύρεση Ενός Zone Επιλογή ενός τυχαίου σημείου P στο χώρο. Αποστολή αιτήματος JOIN στον κόμβο (έστω n 1 ) που κατέχει το zone, στο οποίο ανήκει το P. Ο n 1 διαμερίζει το zone και αναθέτει το ένα τμήμα στο νέο κόμβο.
15 CAN – Συμμετοχή στη δρομολόγηση Ο νέος κόμβος μαθαίνει τους γείτονες του από τον n 1 και ο n 1 ορίζει τους νέους του γείτονες. Οι παλαιοί και νέοι γείτονες ενημερώνονται για τις αλλαγές. Κάθε κόμβος στέλνει περιοδικά update μηνύματα στους γειτονικούς κόμβους.
16 Εισαγωγή - Παράδειγμα
17 Εισαγωγή - Παράδειγμα
18 Εισαγωγή - Παράδειγμα
19 CAN – Διαγραφή, Ανάκαμψη και Συντήρηση Εθελοντική αποχώρηση → ο κόμβος παραδίδει το zone του και τα δεδομένα του σε ένα γείτονα. Συγχώνευση. Προσωρινή ανάληψη.
20 CAN – Διαγραφή, Ανάκαμψη και Συντήρηση Αποτυχία δικτύου ή κόμβου. Ανίχνευση αποτυχίας μέσω των περιοδικών μηνυμάτων. Οι γειτονικοί κόμβοι θέτουν ένα μετρητή ανάληψης αρχικοποιημένο ανάλογο με το μέγεθος της ζώνης. Στέλνεται ένα μήνυμα ανάληψης που περιέχει το μέγεθος της ζώνης σε όλους τους γείτονες του κόμβου που απέτυχε. Αν το μέγεθος της ζώνης του κόμβου που έχει λάβει το μήνυμα είναι μικρότερο σταματάει ο μετρητής, αν όχι απαντάει με ένα μήνυμα ανάληψης. Οι κόμβοι συμφωνούν ότι ο κόμβος με τη μικρότερη ζώνη παίρνει το χώρο.
21 Αποχώρηση - Παράδειγμα
22 Αποχώρηση - Παράδειγμα
23 Αποχώρηση - Παράδειγμα
24 ? Ερωτήσεις