Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Η παρουσίαση φορτώνεται. Παρακαλείστε να περιμένετε

Peer-To-Peer Networks Θέματα Πτυχιακών Αναστάσιος Ιωαννίδης Σαράντης Πασκαλής

Παρόμοιες παρουσιάσεις


Παρουσίαση με θέμα: "Peer-To-Peer Networks Θέματα Πτυχιακών Αναστάσιος Ιωαννίδης Σαράντης Πασκαλής"— Μεταγράφημα παρουσίασης:

1 Peer-To-Peer Networks Θέματα Πτυχιακών Αναστάσιος Ιωαννίδης (aioann@di.uoa.gr) Σαράντης Πασκαλής (paskalis@di.uoa.gr)

2 Τι Είναι Τα Δίκτυα P2P (1) Κλασσικό Μοντέλο Eπικοινωνίας Server Client

3 Τι Είναι Τα Δίκτυα P2P (2) P2P Μοντέλο Επικοινωνίας Client

4 Χαρακτηριστικά Δικτύων P2P Αποκέντρωση, κατανομή ευθύνης Μερική διαθεσιμότητα κόμβων Οι κόμβοι λειτουργούν και ως πελάτες και ως εξυπηρέτες Πλεονασμός παρεχόμενων πληροφοριών και υπηρεσιών Δεν υλοποιούνται απαραίτητα όλα τα χαρακτηριστικά αυτά

5 Μερικά Ιστορικά Στοιχεία Θεωρία κατανεμημένων αλγορίθμων Napster, η δύναμη της περιφέρειας Gnutella, πραγματική αποκέντρωση KaZaA/Morpheus, μεγάλη κλίμακα Distributed Hashtables

6 Overlay Networks Εικονικά δίκτυα πάνω από υπάρχοντα Παράδειγμα: Το HTTP πρωτόκολλο συνδέει δύο υπολογιστές χωρίς (σχεδόν) καμμία γνώση των ενδιάμεσων κόμβων Προσαρμογή της τοπολογίας του υπάρχοντος δικτύου Βασικό concept στα P2P δίκτυα

7 Αλγόριθμοι & Υποδομές P2P Napster/OpenNAP Gnutella Freenet FastTrack/OpenFT (WinMX, KaZaA) Chord (TheCircle) Pastry CAN Kademlia (EDonkey/Overnet)

8 Αλγόριθμος Napster Κεντρικός server που αποθηκεύει δείκτες σε διαθέσιμα μουσικά κομμάτια Κάθε client που συνδέεται, προσθέτει στη λίστα των διαθεσίμων Οι clients κάνουν ερωτήσεις στον server και λαμβάνουν διευθύνσεις άλλων clients που περιλαμβάνουν τα σχετικά αρχεία Αμεση σύνδεση μεταξύ των clients για τη μεταφορά των αρχείων

9 Χαρακτηριστικά του Napster Πλεονεκτήματα: –Αμεση σύνδεση με την κοινότητα χρηστών –Εαν η ζητούμενη πληροφορία υπάρχει επιστρέφεται άμεσα –Δυνατότητα σύνθετων queries Μειονεκτήματα: –Μοναδικό ευάλωτο σημείο: ο server

10 Gnutella Η πρώτη απόπειρα για δημιουργία πλήρως κατανεμημένου συστήματος Ιδεώδες η αφαίρεση της εξάρτησης από τον κεντρικό server του Napster Ανταλλαγή και άλλων τύπων αρχείων

11 Ο Αλγόριθμος του Gnutella (1) (v0.4) Το Gnutella χρησιμοποιεί τα παρακάτω μηνύματα για επικοινωνία μεταξύ των κόμβων: –Ping: Ανακάλυψη νέων κόμβων –Pong: Απάντηση στην αίτηση ping –Query: Αναζήτηση –QueryHit: Απάντηση σε αίτηση αναζήτησης –Push: Για παράκαμψη firewalls

12 Ο Αλγόριθμος του Gnutella (2) Κάθε κόμβος επικοινωνεί άμεσα με ένα μικρό σύνολο άλλων κόμβων Οταν ένας κόμβος δέχεται ένα Ping ή ένα Query, το στέλνει σε όλους τους κόμβους που γνωρίζει Κάθε μήνυμα έχει και ένα πεδίο TTL, το οποίο μειώνεται σε κάθε προώθηση

13 Ο Αλγόριθμος του Gnutella (3) Αρχικοποίηση: Για να συνδεθεί ένας κόμβος στο δίκτυο του Gnutella, θα πρέπει να γνωρίζει έναν ή περισσότερους κόμβους που είναι ήδη στο δίκτυο Ο κόμβος λαμβάνει τη λίστα των «γειτονικών» του κόμβων με το Ping

14 Χαρακτηριστικά του Gnutella (1) Κάθε αίτηση (είτε Ping είτε Query) αποτελεί ένα broadcast προς ένα μεγάλο μέρος του δικτύου Ακόμη και αν η ζητούμενη πληροφορία είναι διαθέσιμη στο δίκτυο, υπάρχει περίπτωση να μην βρεθεί Ο χειρισμός της εισόδου & εξόδου των κόμβων από το δίκτυο δεν αποτελεί ιδιαίτερη περίπτωση

15 Χαρακτηριστικά του Gnutella (2) Το scalability του Gnutella περιορίζεται σε δίκτυα της τάξεως των δεκάδων χιλιάδων κόμβων Με μερικές απλές τροποποιήσεις του αλγορίθμου ή της υλοποίησης, μπορούμε να έχουμε μέχρι 500.000 κόμβους

16 Freenet (1) Ενα P2P δίκτυο για την ελεύθερη ανταλλαγή πληροφοριών Στόχοι: –Προστασία των προσωπικών δεδομένων του χρήστη –Προστασία των υπαρχόντων δεδομένων από διαγραφή –Υψηλή διαθεσιμότητα και αξιοπιστία –Αποτελεσματική διαχείριση αποθηκευτικού χώρου και αναζήτησης

17 Freenet (2) Τα αρχεία δεν παραμένουν απαραίτητα στο σύστημα του χρήστη, αλλά εισάγονται στο δίκτυο, με ένα αναγνωριστικό κλειδί Βασική διαφορά με Napster και Gnutella: Το Freenet προσφέρει υπηρεσίες αποθήκευσης αρχείων αντί για υπηρεσίες διαμοιρασμού αρχείων

18 Αναζήτηση στο Freenet Κάθε κόμβος επικοινωνεί άμεσα με ένα μικρό σύνολο άλλων κόμβων Για μια αναζήτηση κλειδιού, η ερώτηση μεταφέρεται προς τον κόμβο που έχει παρόμοια κλειδιά, κ.ο.κ. Εάν μια διαδρομή αναζήτησης αποτύχει, ερωτάται ο αμέσως επόμενος κόμβος με παρόμοια κλειδιά (backtracking)

19 Νέα Αρχεία στο Freenet (1) Η αναζήτηση με βάση την ομοιότητα των κλειδιών είναι γενικά επιτυχής λόγω της εισαγωγής αρχείων με έναν αντίστοιχο μηχανισμό Τα δεδομένα που αποθηκεύει κάθε κόμβος είναι κρυπτογραφημένα και δεν μπορούν να αναγνωσθούν άμεσα (αλλά μέσω κάποιας αναζήτησης)

20 Νέα Αρχεία στο Freenet (2) Η διαδικασία εισαγωγής αρχείων εμπεριέχει τον κίνδυνο υπερφόρτωσης του χώρου αποθήκευσης Το Freenet αντιμετωπίζει το πρόβλημα με τη διαγραφή αρχείων τα οποία έχουν καιρό να ζητηθούν

21 Χαρακτηριστικά του Freenet Διατήρηση της ανωνυμίας του εισαγωγέα και του παραλήπτη Καλό scalability Μεγάλος χρόνος αναζήτησης, χωρίς εγγυήσεις επιτυχίας ακόμη και αν υπάρχει η πληροφορία Ευαισθησία στην άμετρη εισαγωγή αρχείων στο δίκτυο

22 FastTrack Από τα πρώτα εμπορικά (κλειστά) δίκτυα P2P Χρησιμοποιεί την ιδέα του Supernode και την αυτοοργάνωση των κόμβων σε τέτοιου είδους δίκτυα Τόσο ο αλγόριθμος όσο και το δίκτυο είναι «κλειστά» για open-source developers (για την ανάπτυξη των clients υπογράφονται ειδικές συμφωνίες)

23 οpenFT To openFT αποτελεί την open-source έκδοση των ιδεών του FastTrack Χρησιμοποιεί διαμοιρασμό αρχείων και δεν προσφέρει ανωνυμία Κάθε κόμβος που εισάγεται στο σύστημα, λαμβάνει μέσω άλλων κόμβων τη διεύθυνση (τουλάχιστον) ενός Supernode, με τον οποίο συνδέεται

24 Ο Αλγόριθμος του οpenFT (1) Ο νέος κόμβος ανεβάζει τη λίστα με τα αρχεία τα οποία κάνει διαθέσιμα στους άλλους στον Supernode O Supernode αναλαμβάνει να στείλει τη λίστα αυτή στους άλλους Supernodes Ερωτήσεις του κόμβου για αρχεία κατευθύνονται στον Supernode, o οποίος εξετάζει τις εσωτερικές του λίστες για να απαντήσει

25 Ο Αλγόριθμος του οpenFT (2) Βασική διαφορά με δίκτυα τύπου Napster: Ο Supernode δεν ορίζεται στατικά, αλλά επιλέγεται από τους υπάρχοντες κόμβους του δικτύου Ο αλγόριθμος επιλογής βασίζεται στους πόρους κάθε κόμβου (αποθηκευτικός χώρος, ταχύτητα σύνδεσης) και γίνεται με μια διαδικασία ψηφοφορίας

26 Ο Αλγόριθμος του οpenFT (2) Ο Supernode δεν αποτελεί μοναδικό σημείο αδυναμίας, καθώς η απομάκρυνσή του προκαλεί την (πιθανή) εκλογή ενός νέου Supernode Κανείς κόμβος δεν συνδέεται υπό μοναδικό Supernode, αλλά με όσους περισσότερους μπορεί Ο αλγορίθμος βρίσκεται σε διαρκή εξέλιξη και ανάπτυξη, και πολλές λεπτομέρειες του δεν είναι καλά τεκμηριωμένες

27 Χαρακτηριστικά του οpenFT Ο αλγόριθμος φαίνεται να έχει καλές δυνατότητες scalability, με δυνατότητα υποστήριξης εκατοντάδων χιλιάδων κόμβων Πολλές φορές τα στοιχεία των Supernodes δεν είναι σωστά ενημερωμένα Η αναζήτηση δεν προσφέρει εγγυήσεις χρονικές ή εντοπισμού της πληροφορίας, ακόμη και αν αυτή υπάρχει στο δίκτυο

28 Chord (1) Ανήκει στη «νέα» γενιά αλγορίθμων, με πραγματικά κατανεμημένη αναζήτηση Το Chord υλοποιεί ένα Distributed Hashtable (DH), προσφέροντας μία βασική συνάρτηση, τη lookup Hashtable: Οι πληροφορίες αποθηκεύονται μαζί με το κλειδί αναζήτησης Distributed: Η αποθήκευση γίνεται σε περισσότερους από ένα κόμβους

29 Chord (2) Το πρόβλημα της κατανομής είναι απλό για σταθερούς κόμβους Το Chord λύνει το ίδιο πρόβλημα για δυναμικά δίκτυα Η λύση βασίζεται στην ιδέα του consistent hashing: Οταν αλλάζουν οι κόμβοι, οι κατανομές δεδομένων σε κόμβους θα πρέπει να μένουν λίγο-πολύ σταθερές

30 Ο Αλγόριθμος του Chord (1) Κάθε κόμβος αποκτά και ένα μοναδικό ID, το οποίο προκύπτει από το hashing του ζευγαριού (IP address, port) To hashing γίνεται με τον αλγόριθμο SHA-1, ο οποίος δίνει 160 bit κλειδιού Ενα πακέτο δεδομένων (πχ αρχείο) αποκτά και αυτό ένα τέτοιο κλειδί με χρήση και πάλι του SHA-1

31 Ο Αλγόριθμος του Chord (2) Οι κόμβοι, ανάλογα με το κλειδί τους, διατάσσονται σε ένα δακτύλιο: 5 6 20 8 22 30 37 42 0

32 Ο Αλγόριθμος του Chord (3) Ενα πακέτο δεδομένων ανήκει σε ένα κόμβο, εάν και μόνο εάν το κλειδί του είναι μεγαλύτερο ή ίσο του κλειδιού του κόμβου, και δεν υπάρχει άλλος κόμβος με ενδιάμεσο τους κλειδί

33 Υλοποίηση του Chord (1) Κάθε κόμβος διατηρεί τις παρακάτω πληροφορίες: –Τη διεύθυνση του επόμενου κόμβου –Τη διεύθυνση του προηγούμενου κόμβου –Τη λίστα δεικτών Η λίστα δεικτών περιέχει στη θέση i την διεύθυνση του κόμβου που απέχει από το δείκτη κατά 2 i Η λίστα δεικτών, για κλειδιά 160 bits, περιέχει συνεπώς 160 θέσεις Μόνο η διεύθυνση του επόμενου κόμβου είναι σημαντικό να είναι σωστή, οι άλλες είναι βοηθητικές

34 Υλοποίηση του Chord (2) Αναζήτηση κόμβου με χρήση της λίστας δεικτών: –Εάν εχεις το κλειδί, επέστρεψέ το –Βρές τον κόμβο που είναι πλησιέστερα (αλλά πριν) από το δεδομένο κλειδί από τη λίστα δεικτών –Προώθησε την ερώτηση στον κόμβο αυτό (αναδρομικά) Πλήθος μηνυμάτων: O(log n)

35 Υλοποίηση του Chord (3) Εισαγωγή νέου κόμβου –Πάρε ένα κόμβο του δικτύου –Ζήτησέ του τον επόμενο από εσένα κόμβο –Ζήτησέ του να χτίσει τη λίστα δεικτών σου –Μετέφερε τα κλειδιά του προηγούμενου που σου ανήκουν Σταθεροποίηση (ενημέρωση του προηγουμένου κόμβου –Πραγματοποιείται σε τακτά χρονικά διαστήματα από κάθε κόμβο –Ο κάθε κόμβος ελέγχει τον προηγούμενο του επομένου του Χρόνος εισαγωγής: O (log n)

36 Υλοποίηση του Chord (4) Η έξοδος κόμβου αντιμετωπίζεται με τη διατήρηση αντιγράφων ενός κλειδιού, εκτός από τον υπεύθυνο κόμβο και στους επόμενούς του.

37 Χαρακτηριστικά του Chord Εγγυημένος εντοπισμός δεδομένων σε χρόνο O(log n), εάν υπάρχει Η εισαγωγή νέου κόμβου απαιτεί την ανταλλαγή μέχρι Ο(log 2 n) μηνυμάτων Ισοκατανομή των δεδομένων σε όλους τους κόμβους λόγω του SHA-1 Scalable για εκατομμύρια κόμβους Δεν γίνεται διάκριση μεταξύ των διαθέσιμων πόρων των κόμβων, θεωρούνται όλοι ισοδύναμοι

38 Kademlia Βελτιωμένη έκδοση του Chord, όπου η μετρική βασίζεται στο XOR και όχι την αριθμητική διαφορά των κόμβων Επεκτείνει ελαφρώς τη λίστα δεικτών ώστε να έχει περισσότερες επιλογές κόμβων στην αναζήτηση

39 Θέμα 1: Μελέτη και σύγκριση P2P αλγορίθμων Διαχωρισμός σε οικογένειες/κατηγορίες Σύγκριση των αλγορίθμων με διάφορα κριτήρια 1 προπτυχιακός

40 Θέμα 2: Μέθοδοι ταχείας προσαρμογής P2P δικτύων Μελέτη της ταχύτητας προσαρμογής του δικτύου για νεοεισερχόμενους ή εξερχόμενους κόμβους Εφαρμογή μεθόδων επιτάχυνσης των λειτουργιών αυτών 2 προπτυχιακοί/1 μεταπτυχιακός

41 Θέμα 3: Ανισοκατανομή πόρων μεταξύ P2P κόμβων Μελέτη της προσαρμογής P2P αλγορίθμων σε δίκτυα ετερογενών κόμβων. Τροποποίηση αλγορίθμων ώστε να βελτιστοποιούν τη χρήση των πόρων. 1-2 μεταπτυχιακοί

42 Θέμα 4:Ασφάλεια σε P2P δίκτυα Διερεύνηση των κριτηρίων ασφαλείας σε P2P δίκτυα Μελέτη των χαρακτηριστικών ασφαλείας των P2P αλγορίθμων σε διάφορες μορφές επίθεσης 2 προπτυχιακοί

43 Επιθυμητά Προσόντα Δεκτές όλες οι γλώσσες προγραμματισμού, με προτίμηση στη Java. Επιθυμία διερεύνησης του χώρου P2P και των νέων τεχνολογιών.


Κατέβασμα ppt "Peer-To-Peer Networks Θέματα Πτυχιακών Αναστάσιος Ιωαννίδης Σαράντης Πασκαλής"

Παρόμοιες παρουσιάσεις


Διαφημίσεις Google