Peer-to-Peer Technology Συστήµατα Peer to Peer Καταργούν την αρχιτεκτονική Client-Server Στηρίζονται στην οµότιµη και εθελοντική συµπεριφορά των διαφόρων κόµβων Client Server
Συστήµατα Peer to Peer Καταργούν την αρχιτεκτονική Client-Server Στηρίζονται στην οµότιµη και εθελοντική συµπεριφορά των διαφόρων κόµβων peer peer PP Στόχοι / Πλεονεκτήµατα Συνάθροιση πόρων (Resource aggregation) Βελτίωση scalability/reliability Αυτονοµία Ανωνυµία (δεν ισχύει πάντα) Ad-hoc communication Περιοχές έρευνας Peer discovery and group management Data location and placement Reliable and efficient file exchange Security/privacy/anonymity/trust
PP Αρχιτεκτονικές Centralised (Napster) Flooding (Gnutella) Document routing (CAN, Parstry) Gnutella Είναιτοιδεατόδίκτυοπουενώνεικόµβους που διαµοιράζονται αρχεία και που χρησιµοποιεί ένα συγκεκριµένο πρωτόκολλο (Gnutella). Χαρακτηριστικά Ανοιχτή Αρχιτεκτονική Πρωτόκολλο αναζήτησης αρχείων υναµικό (Χρησιµοποιεί group membership µηνύµατα: ping, pong)
Περιγραφή Gnutella Gnutella Goals: υνατότητα να λειτουργεί σε δυναµικό περιβάλλον Σε ένα PP δίκτυο µπαίνουν και βγαίνουν συνεχώς νέοι κόµβοι. Αυτό θα πρέπει να µην είναι ορατό στον χρήστη Αποδοτικότητα και επεκτασιµότητα(scalability) Οι δυνατότητες του είναι ορατές όταν το Gnutella δίκτυο είναι µεγάλο όπου δηλ το παραδοσιακό σύστηµα client-server υστερεί Απαραίτητη η επεκτασιµότητα αφού ένα PP δίκτυο πρέπει να εκθέτει το network effect Αξιοπιστία Εξωτερικές επιθέσεις δεν πρέπει να προκαλούν σηµαντικές απώλειες σε δεδοµένα και σε απόδοση Ανωνυµία Οι χρήστες που το χρησιµοποιούν δεν θέλουν να αποκαλύψουν την ταυτότητά τους Περιγραφή Gnutella Το δίκτυο αποτελείται από κόµβους που ονοµάζονται servents από το SERV(er) + client. Η εισαγωγή ενός κόµβου στο δίκτυο γίνεται µε τηνσύνδεσησεκάποιον κόµβο που είναι συνδεδεµένος στο δίκτυο Κάθε κόµβος στέλνει περιοδικά µηνύµατα ping γιαναβρίσκεινέοεισαχθέντες κόµβους. Έτσι διατηρείται ο δυναµικός χαρακτήρας του δικτύου Τα µηνύµατα είτε γίνονται broadcast είτε back-propagated Κάθε µήνυµα έχει ένα τυχαίο µοναδικό id Κάθε κόµβος διαθέτει λίγη µνήµη γιαταµηνύµατα που πρόσφατα έχει δροµολογήσει την οποία χρησιµοποιεί για να µην ξανακάνει broadcast αλλά και για να υλοποιήσει το back-propagation Ορίζεται µια τιµή γιατοχρόνοζωήςttl Οι κόµβοι αποφασίζουν που να συνδεθούν στο δίκτυο βασιζόµενοι αποκλειστικά σε τοπική πληροφορία. Αυτό σηµαίνει ότι το Gnutella είναι ένα δίκτυο το οποίο οργανώνεται µόνο του.
Περιγραφή Gnutella Λειτουργίες Μηνύµατα Broadcast (Flooding) Back-propagated Node to node Membership PING PONG Query QUERY QUERY RESPONSE File download GET, PUSH Μηχανισµός αναζήτησης στο Gnutella A Βήµατα: Ο κόµβος αρχίζει µια αναζήτηση για το αρχείο A.
Μηχανισµός αναζήτησης στο Gnutella A A A Βήµατα: Ο κόµβος αρχίζει µια αναζήτηση για το αρχείο A. Στέλνει µήνυµα σε όλους τους γείτονες. Μηχανισµός αναζήτησης στο Gnutella A A A Βήµατα: Ο κόµβος αρχίζει µια αναζήτηση για το αρχείο A. Στέλνει µήνυµα σε όλους τους γείτονες. Οι γείτονες προωθούν το µήνυµα. A
Μηχανισµός αναζήτησης στο Gnutella A: A A: A A Βήµατα: Ο κόµβος αρχίζει µια αναζήτηση για το αρχείο A. Στέλνει µήνυµα σε όλους τους γείτονες. Οι γείτονες προωθούν το µήνυµα. Οι κόµβοι που έχουν το αρχείο Α στέλνουν απάντηση. Μηχανισµός αναζήτησης στο Gnutella A: A: A A Βήµατα: Ο κόµβος αρχίζει µια αναζήτηση για το αρχείο A. Στέλνει µήνυµα σε όλους τους γείτονες. Οι γείτονες προωθούν το µήνυµα. Οι κόµβοι που έχουν το αρχείο Α στέλνουν απάντηση. Η απάντηση διαδίδεται προς τα πίσω (back-propagated).
Μηχανισµός αναζήτησης στο Gnutella A: A: Βήµατα: Ο κόµβος αρχίζει µια αναζήτηση για το αρχείο A. Στέλνει µήνυµα σε όλους τους γείτονες. Οι γείτονες προωθούν το µήνυµα. Οι κόµβοι που έχουν το αρχείο Α στέλνουν απάντηση. Η απάντηση διαδίδεται προς τα πίσω (back-propagated). Μηχανισµός αναζήτησης στο Gnutella download A download A Βήµατα: Ο κόµβος αρχίζει µια αναζήτηση για το αρχείο A. Στέλνει µήνυµα σε όλους τους γείτονες. Οι γείτονες προωθούν το µήνυµα. Οι κόµβοι που έχουν το αρχείο Α στέλνουν απάντηση. Η απάντηση διαδίδεται προς τα πίσω (back-propagated). Download A 8
Gnutella Network Analysis (some statistics) Το διάγραµµα δείχνει τα αποτελέσµατα της επέκτασης του Gnutella σε έξι µήνες Παρατηρούµεότιστοµεγαλύτερο µέρος του δικτύου ο αριθµός των κόµβων αυξήθηκε κατά φορές µέσα σε έξι µήνες Number of nodes in the largest - Gnutella Network Growth. // // // /8/ // // // /9/ Number of nodes network ( x) component (') // // /9/ // // // // // // /9/ Gnutella Network Analysis (some statistics) % των κόµβων εγκαταλείπουν το δίκτυο σε λιγότερο από ώρες Μόνο το % των κόµβων παραµένουν στο δίκτυο για παραπάνω από ώρες Η τοπολογία του δικτύου που παίρνουµε δεν είναι ακριβής εικόνα λόγω των παραπάνω. Τα παραπάνω δείχνουν τη δυναµική συµπεριφορά του Gnutella. 9
Gnutella Network Analysis (some statistics) Στο σχήµα φαίνεται ένα στιγµιότυπο του Gnutella που ελήφθη σε ένα τυχαίο link τον Νοέµβριο του. % της συνολικής κίνησης οφείλεται στον χρήστη (queries) % οφείλεται σε ping-pong µηνύµατα. Message Frequency. Ping Push Query Other - 99 98 minute Gnutella Network Analysis Από τα αποτελέσµατα υπολογίστηκε η συνολική κίνηση στο δίκτυο.. συνδέσεις. κόµβοι kbps ανά σύνδεση ή ΤΒ/µήνα ->,% τηςσυνολικήςκίνησηςστις ΗΠΑ τον εκέµβριο του. Number of links (') Αν και το δίκτυο µέσα σε µήνες εξαπλώθηκε κατά δύο τάξεις µεγέθους ο µέσος αριθµός των συνδέσεων ανά κόµβο παρέµεινε σταθερός Number of nodes
Gnutella Network Analysis Παρόλα αυτά από τον Ιούνιο του αυτό το πρόβληµαλύθηκεµε τηνκαινούρια έκδοση του Gnutella. 9% Queries 8% ping pong Περίπου 8ΤΒ/µήνα Κατανοµή κοντινότερων µονοπατιών Napster Cluster από κεντρικούς κόµβους για indexing (PP?) Κάθε κόµβος συνδέεται σε ένα κεντρικό υπολογιστή Οι αιτήσεις γίνονται σ αυτούς
Power Law ίκτυα Power Law δίκτυα λέγονται αυτά που έχουν πολλούς κόµβους µε µικρό αριθµό συνδέσεωνκαιλίγουςκόµβους µεπολύµεγάλο αριθµό συνδέσεων Χαρακτηριστικά: Τα δίκτυα αυτά είναι εξαιρετικά ανθεκτικά σε τυχαίες βλάβες Αβοήθητα σε καλά οργανωµένες επιθέσεις Number of nodes (log scale) Number of links (log scale) Κατανοµήσυνδέσεων Ιούνιος A Measurement Study of Peer-to-Peer File Sharing Systems Stefan Saroiu, P. Krishna Gummadi, Steven D. Gribble Dept. of Computer Science and Engineering, Univ. of Washington, Seattle Σκοπός των µετρήσεων ήταν να µελετηθεί ένα στιγµιότυπο ενός µεγάλου υποσυνόλου των δυο δικτύων καθώς και οι πληροφορίες σχετικά µε τους κόµβους όπως αυτές δηµοσιεύονται από τα πρωτόκολλα. Μετρήσεις Αποτελέσµατα Bandwidth Latency Availability Attacks Συµπεράσµατα
Μετρήσεις στο Napster Αιτήσεις για δηµοφιλή µουσικά αρχεία Πολλές αιτήσεις παράλληλα εν υπήρχε πρόσβαση στους κεντρικούς servers Από τις απαντήσεις των εξεταζόµενων κόµβων Λίστα των κόµβωνπουείχαντοαρχείο Ταχύτητα των κόµβων όπως την ανέφεραν οι ίδιοι Αριθµός και τα ονόµατα των αρχείων που είχε κάθε κόµβος καθώς και το µέγεθός τους Οαριθµός των uploads και downloads κάθε κόµβου εκείνη τη στιγµή Το IP των κόµβων Μετρήσεις στο Gnutella Σύνδεση µε κάποιους πολύ γνωστούς κόµβους και αποστολή µηνυµάτων ping-pong µε πολύµεγάλο TTL Καταγραφή από το pong µήνυµα τουαριθµού και του µεγέθους των αρχείων κάθε κόµβου.
Μετρήσεις 9.8 κόµβοι του Napster. κόµβοι για ώρες µετρήσεις κάθε λεπτά.9.8 κόµβοι του Gnutella. peers για ώρες µετρήσεις κάθε λεπτά Πραγµατοποιηµένες Μετρήσεις Latency Μετρήθηκαν οι «round-trip» χρόνοι για την ανταλλαγή ενός πακέτου - bytes ανάµεσα στους κόµβους και στο µηχάνηµα που έκανε τις µετρήσεις. (µετρήσεις εξαρτώµενες από την τοποθεσία του µηχανήµατος που εκτελεί τις µετρήσεις) Χρόνος παραµονής των κόµβων στο δίκτυο Offline Inactive (network nodes, www nodes) Active (peers) Bottleneck Bandwidth (Σηµεία συµφόρησης) Περίπου ίδιο µετοδιαθέσιµο Bandwidth
Latency (Gnutella) (/) % των κόµβων έχει καθυστέρηση 8ms % έχει καθυστέρηση τουλάχιστον ms Σε ένα αδόµητο τυχαίο δίκτυο θα έχουµε υψηλές καθυστερήσεις % of hosts msec Latency (Gnutella) (/) υο clusters κόµβων (modems-broadband) -Kbps, -ms Kbps, -ms Downstream vs. Latency msec Kbps
Bandwidth (/) (Gnutella) % of hosts Kbps 8% στο Gnutella σχετικά καλό bandwidth, 8 % πάνω από Mbps ιαφορά ανάµεσα στο «upstream» και «downstream» γιατί οι εισερχόµενοι κόµβοι έχουν ασύµµετρες συνδέσεις (ADSL,modems) Bandwidth (/) % of hosts Kbps Στο Napster µεγαλύτερο ποσοστό χρηστών µπαίνουν µε χαµηλότερες ταχύτητες Εξαιτίας του flooding που κάνει το Gnutella απαιτεί περισσότερο bandwidth Το Gnutella είναι δηµοφιλέστερο στους χρήστες µε περισσότερες τεχνικές γνώσεις µε καλύτερες συνδέσεις στο δίκτυο
Bandwidth (/) Το % των χρηστών του Napster δεν αναφέρει το bandwidth % των χρηστών αναφέρει λανθασµένα ότι έχει Kbps bandwidth Η πληροφορία ενδιαφέρει τους άλλους κόµβους αλλά δεν είναι χρήσιµη για τον ίδιο. Availability (/) Gnutella % of hosts Napster Gnutella Napster Οι on-line χρόνοι είναι παρόµοιοι Όχι όµωςκαιοιχρόνοιπουσυµµετέχουν στα PP Περισσότερη συµµετοχή στο Napster
Availability (/) % sessions Min Napster Περισσότερη συµµετοχή Περισσότερο διαθέσιµουλικό έχει και άλλες δυνατότητες που το κάνει χρησιµότερο (mp player, chat κτλ) Και για τα δύο συστήµατα η µέση διάρκεια λεπτά Free-riders % of hosts % of hosts Shared Files Shared Files Κόµβοι που έχουν συµπεριφορά client κατεβάζουν αρχεία µε πολύµεγαλύτερη συχνότητα από ότι ανεβάζουν (επιβαρύνουν το σύστηµα) Gnutella % των peers shared files -% των κόµβων έχουν µόνο -% των διαµοιραζόµενων αρχείων και για τα δύο συστήµατα 8
Downloads Ένα % των κόµβωνυψηλώνταχυτήτωνδενκατεβάζουντίποτα. Είτε γιατί έχουν ταχύτερη γραµµή και χρειάζεται λιγότερος χρόνος να κατέβει κάτι (σφάλµα µέτρησης) Είτε γιατί τείνουν να µην κατεβάζουν αρχεία. Το ποσοστό των κόµβων σε κάθε κλάση ταχυτήτων είναι περίπου ίδιο µε το ποσοστό των αρχείων που προσφέρει η κλάση αυτή. Gnutella Attacks (/) Ανθεκτικό σε τυχαίες καταρρεύσεις κόµβων Θα αρχίσει να έχει πρόβληµα όταν έχει καταρρεύσει το % των κόµβων Ευάλωτο σε καλά οργανωµένες επιθέσεις Κατάρρευση µόνο του % των κόµβων, αν αυτοί είναι συγκεκριµένοι µπορείναπροκαλέσεισοβαρόπρόβληµα 9
Gnutella Attacks (/) Συµπεράσµατα εν χρειάζονται µόνο καλοί αλγόριθµοι δροµολόγησης και εντοπισµού των κόµβων Πρέπει να µελετηθεί και η συµπεριφορά των τελικών ετερογενών κόµβων και να ανατίθενται προσεκτικά ρόλοι σ αυτούς Επιπλέον ένα τέτοιο σύστηµα θα πρέπει να έχει υπόψη του ότι δεν συµµετέχουν οµότιµα όλοι οι κόµβοι και ότι σκόπιµα πολλές φορές αναφέρουν εσφαλµένες πληροφορίες για δικό τους όφελος. Θα πρέπει να δοθούν κίνητρα στους κόµβους να συµµετέχουν ενεργά (respect points, bonus points)
Document Routing CAN Ηαρχιτεκτονική αυτή συσχετίζει σε κάθε κόμβο και στοιχείο (file) μια μοναδική ταυτότητα (id) σε ένα χώρο d-διαστάσεων Στόχοι Κλιμάκωση σε εκατοντάδες χιλιάδες κόμβους Γρήγορη λήψη αφίξεων και αντιµετώπιση δυσλειτουργιών σε κόμβους Ιδιότητες Πίνακας δροµολόγησης μεγέθους O(d) Παρέχεται εγγύηση ότι ένα αρχείο θα βρίσκεται το πολύ σε d*n /d hops, όπου n είναι ο συνολικός αριθμός κόμβων CAN Example: Two Dimensional Space Οχώρος διαµοιράζεται µεταξύ των κόµβων Όλοι οι κόµβοι µαζί καλύπτουν όλο τον χώρο Κάθε κόµβος καλύπτει έναν χώρο (ορθογώνιο) µε λόγο : ή :. Παράδειγµα: Κόµβος n:(, ), καλύπτει όλο το χώρο n
CAN Example: Two Dimensional Space Κόµβος n:(, ) Ο χώρος διαµοιράζεται µεταξύ των n και n n n CAN Example: Two Dimensional Space Κόµβος n:(, ) Ο χώρος διαµοιράζεται µεταξύ των n και n Κόµβος n:(, ) Ο παραπάνω χώρος διαµοιράζεται εκ νέου µεταξύ των n και n n n n
CAN Example: Two Dimensional Space Κόµβος n:(, ) Ο χώρος διαµοιράζεται µεταξύ των n και n Κόµβος n:(, ) Ο παραπάνω χώρος διαµοιράζεται εκ νέου µεταξύ των n και n Κόµβοι n:(,) n:(,) διαµοιρασµός του υπόλοιπου χώρου µεταξύ των κόµβων n και [n, n] εκ νέου διαµοιρασµός του υπόλοιπου χώρου µεταξύ των κόµβων n και n n n n n n CAN Example: Two Dimensional Space Nodes: n:(, ); n:(,); n:(, ); n:(,);n:(,) Items: f:(,); f:(,); f:(,); f:(,); n n n f n f f n f
CAN Example: Two Dimensional Space Κάθε item αποθηκεύεται από τον κόµβο που ελέγχει το δικό του διαµερισµένο διάστηµα στο χώρο n n n f n f f n f CAN: Query Example Κάθε κόµβος γνωρίζει το γείτονα του neighbor (node) στον d-διάστατο χώρο Προωθεί το query στον γειτονικό κόµβο που βρίσκεται χωροταξικά πλησιέστερα στο query id Παράδειγµα: Ο κόµβος n αναζητεί το item f n n n f n f f n f
CAN: Query Example Κάθε κόµβος γνωρίζει το γείτονα του neighbor (node) στον d-διάστατο χώρο Προωθεί το query στον γειτονικό κόµβο που βρίσκεται χωροταξικά πλησιέστερα στο query id Παράδειγµα: Ο κόµβος n αναζητεί το item f n f f n n n n f f CAN: Query Example Κάθε κόµβος γνωρίζει το γείτονα του neighbor (node) στον d-διάστατο χώρο Προωθεί το query στον γειτονικό κόµβο που βρίσκεται χωροταξικά πλησιέστερα στο query id Παράδειγµα: Ο κόµβος n αναζητεί το item f n f f n n n n f f
CAN: Query Example Κάθε κόµβος γνωρίζει το γείτονα του neighbor (node) στον d-διάστατο χώρο Προωθεί το query στον γειτονικό κόµβο που βρίσκεται χωροταξικά πλησιέστερα στο query id Παράδειγµα: Ο κόµβος n αναζητεί το item f n f f n n n n f f Node Failure Recovery Simple failures Υπάρχει η γνώση του γείτονα του γειτονικού κόµβου Όταν ένας κόµβος πέφτει ο γείτονας αναλαµβάνει τον έλεγχο του χώρου More complex failure modes Ταυτόχρονη δυσλειτουργία πολλών κόµβων Αναπροσαρµογή του d-διάστου χώρου (σπανίως) n f f n n n n f f Πως θα ήταν ο d-διάστατος χώρος εάν αποσυρόταν ο κόµβος n
Πως θα ήταν ο d-διάστατος χώρος εάν αποσυρόταν ο κόµβος n n n f n f f n f