Δίκτυα P2P Χαράλαμπος Ζ. Πατρικάκης
Δημιουργώντας μια εφαρμογή Δημιουργία προγραμμάτων τα οποία: Τρέχουν σε (διαφορετικά) τερματικά συστήματα Επικοινωνούν πάνω από το δίκτυο π.χ. το λογισμικό του εξυπηρετητή ιστού(web server) επικοινωνεί με το λογισμικό του περιηγητή(browser)στον Η/Υ του χρήστη Δεν υπάρχει ανάγκη για δημιουργία λογισμικού για συσκευές του πυρήνα (core) του δικτύου Οι συσκευές του πυρήνα του δικτύου δεν τρέχουν εφαρμογές χρήστη Εφαρμογή πάνω σε τερματικά συστήματα επιτρέπει γρήγορη ανάπτυξη εφαρμογών, διάδοση δικτύου εφαρμογή μεταφορά δίκτυο ζεύξη φυσικό εφαρμογή μεταφορά δίκτυο ζεύξη φυσικό εφαρμογή μεταφορά δίκτυο ζεύξη φυσικό
Αρχιτεκτονικές εφαρμογών Α) Αρχιτεκτονική πελάτη-εξυπηρετητή Η οποία να περιλαμβάνει κέντρα δεδομένων(data centers) / cloud computing Β) Αρχιτεκτονική ζεύξης μεταξύ ομότιμων (P2P) Γ) Υβριδικό μοντέλο αρχιτεκτονικής: πελάτηεξυπηρετητή και ζεύξης μεταξύ ομότιμων (P2P)
Α) Αρχιτεκτονική πελάτη-εξυπηρετητή πελάτης/εξυπηρετητής Εξυπηρετητές: Είναι υπολογιστές οι οποίοι βρίσκονται συνεχώς σε λειτουργία always-on Έχουν σταθερή(μόνιμη) διεύθυνση IP Οργανώνονται σε ομάδες για αναβάθμιση της ικανότητάς τους (farms for scaling) Πελάτες: Επικοινωνούν με τον εξυπηρετητή Μπορεί να συνδέονται διακοπτόμενα Μπορεί να έχουν δυναμικές διευθύνσεις IP Δεν επικοινωνούν άμεσα ο ένας με τον άλλο
Β) Αμιγής P2P αρχιτεκτονική Δεν υπάρχει εξυπηρετητής διαθέσιμος 24/7 Αυθαίρετα τερματικά συστήματα τα οποία επικοινωνούν απ ευθείας Οι ομότιμοι συνδέονται ανά διαστήματα και αλλάζουν IP διεύθυνσεις Εύκολα επεκτάσιμη Δύσκολα διαχειρίσιμη ομότιμοι Παραδείγματα Διανομή αρχείων Streaming (KanKan) VoIP (Skype)
Γ) Υβριδικό μοντέλο πελάτη-εξυπηρετητή και P2P Skype Μεταφορά φωνής πάνω από IP δίκτυο (VoIP)- εφαρμογή P2P Συγκεντρωτικός εξυπηρετητής: βρίσκει τη διεύθυνση του απομακρυσμένου μέρους/ομάδας Σύνδεση μεταξύ πελατών: άμεση (όχι διαμέσου εξυπηρετητή) Στιγμιαία/άμεση ανταλλαγή μηνυμάτων Η ανταλλαγή μηνυμάτων μεταξύ δύο χρηστών είναι P2P Συγκεντρωτική υπηρεσία: ανίχνευση/εύρεση παρουσίας πελάτη Ο χρήστης εγγράφει την διεύθυνση IP του στον κεντρικό εξυπηρετητή όταν γίνεται online Ο χρήστης έρχεται σε επαφή με τον κεντρικό εξυπηρετητή για να βρει τις IP διευθύνσεις των φίλων του
Διεργασίες που επικοινωνούν πάνω σε ένα δίκτυο Διεργασία: πρόγραμμα το οποίο τρέχει σε ένα υπολογιστή υπηρεσίας Μέσα στον ίδιο υπολογιστή υπηρεσίας, δύο διεργασίες επικοινωνούν χρησιμοποιώντας επικοινωνία ενδο-διεργασίας (καθορίζεται από το λειτουργικό σύστημα). Διεργασίες σε διαφορετικούς υπολογιστές υπηρεσίας επικοινωνούν ανταλλάσσοντας μηνύματα Διεργασία πελάτη: διεργασία που εκκινεί την επικοινωνία Διεργασία εξυπηρετητή: διεργασία η οποία περιμένει την επικοινωνία Σημείωση: εφαρμογές με P2P αρχιτεκτονικές έχουν διεργασίες πελάτη& διεργασίες εξυπηρετητή
Αμιγής P2P αρχιτεκτονική Δεν υπάρχει εξυπηρετητής διαθέσιμος 24/7 Αυθαίρετα τερματικά συστήματα τα οποία επικοινωνούν απ ευθείας Οι ομότιμοι συνδέονται ανά διαστήματα και αλλάζουν IP διεύθυνσεις Εύκολα επεκτάσιμη αλλά δύσκολη στη διαχείρηση Τρία ζητήματα: Διανομή αρχείων Αναζήτηση για πληροφορίες case study: Skype peer-peer
Μάθημα: Δίκτυα Η/Υ Διανομή αρχείου: μοντέλο εξυπηρετητήπελάτη σε αντιδιαστολή με το μοντέλο P2P Ερώτηση : Πόσος χρόνος απαιτείται για να διανεμηθεί το αρχείο από έναv εξυπηρετητή σε N ομότιμους(peers)? αρχείο, μεγέθους F εξυπηρετητή ς d N u N u 1 d 1 u 2 u d 2 s δίκτυο (with abundant bandwidth) u s : upload bandwidth εξυπηρετητή u i : upload bandwidth του ομότιμου i d i : download bandwidth του ομότιμου i
Χρόνος διανομής αρχείου: μοντέλο πελάτηεξυπηρετητή O server στέλνει σε σειρά N αντίγραφα ενός αρχείου: F Server u u 2 1 d 1 u d s 2 Σε χρόνο NF/u s Ο πελάτης i χρειάζεται χρόνο F/d i για να κατεβάσει το αρχείο d N u N Δίκτυο (με άπειρο Διαθέσιμο bandwidth) Χρόνος διανομής του F σε N πελάτες με χρήση Μοντέλου client/server = d cs = max { NF/u s, F/min(d i ) } i Αυξάνει γραμμικά για μεγάλα N
Χρόνος διανομής αρχείου : Δίκτυο ομότιμων (P2P) Ο server πρέπει να στείλει ένα αντίγραφο σε χρόνο: F/u s Ο πελάτης i θέλει χρόνο F/d i για να το κατεβάσει NF bits πρέπει να διανεμηθούν (συνολικά) F Server d N u N u u 2 1 d 1 u d s 2 Δίκτυο (με άπειρο bandwidth) Ταχύτερος δυνατός ρυθμός συνεισφοράς: u s + Su i d P2P = max { F/u s, F/min(d i ), NF/(u s + Su i ) } i
Server-client και P2P: ένα παράδειγμα Client upload rate = u, F/u = 1 hour, u s = 10u, d min u s Minimum Distribution Time 3.5 3 2.5 2 1.5 1 0.5 0 P2P Client-Server 0 5 10 15 20 25 30 35 N
Διανομή αρχείων: BitTorrent Διανομή αρχείου πάνω από P2P tracker: παρακολουθεί peers Που συμμετέχουν στη διανομή torrent: ομάδες από Peers οι οποίοι ανταλλάσουν τμήματα του αρχείου obtain list of peers Ανταλλαγή τμημάτων (Chunks) του αρχείου peer
BitTorrent (1/2) Το αρχείο διαιρείται σε τμήματα των 256KB. Ο κάθε peer ο οποίος μπαίνει σε ένα torrent: Δεν έχει τμήματα του αρχείου, αλλά θα συλλέξει σταδιακά Εγγράφεται σε έναν tracker για να πάρει λίστα από peers, και συνδέεται σε ένα υποσύνολο με τους γειτονικούς του Ενώ κατεβάζει, στέλνει παράλληλα σε άλλους Μπορεί να συνδεθεί/αποσυνδεθεί οποτεδήποτε Όταν κάποιος peer αποκτήσει ένα ολόκληρο αρχείο, μπορεί (εγωιστικά) να φύγει, ή (αλτρουιστικά) να μείνει
BitTorrent (2/2) Τραβώντας τμήματα Σε κάθε χρονική στιγμή, οι peers έχουν διαφορετικά τμήματα αρχείων Περιοδικά, ένας peer (Αλίκη) ζητά κάθε γείτονά της για μια λίστα από τμήματα που αυτός έχει. Στη συνέχεια στέλνει αιτήματα γι αυτά που δεν έχει (προτεραιότητα στα πιο σπάνια) (rarest first) Στέλνοντας τμήματα: tit-for-tat Η Αλίκη στέλνει τμήματα σε 4 γείτονες στο μέγιστο ρυθμό Επαναξιολογεί τους 4 καλύτερους κάθε 10 δευτερόλεπτα Κάθε 30 δευτερόλεπτα: επιλέγει τυχαία ένα διαφορετικό peer, και αρχίζει να στέλνει τμήματα του αρχείου Ο νέος Peer Μπορεί να μπει μέσα στους 4 πρώτους optimistically unchoke
Δομημένα υπερκείμενα δίκτυα Tapestry: Παράδειγμα με δημοσίευση του122b h από τον A40C h (αριστερά) και τη δρομολόγηση ερωτήματος για το 122B h από τον 1553 h (δεξιά)
Distributed Hash Table (DHT) DHT: κατανεμημένη βάση P2P Βασίζεται σε ζεύγη (key, value). Παραδείγματα: key: ss αριθμός, value: όνομα key: τίτλος ταινίας, value: Διεύθυνση δικτύου address Διανομή των ζευγών πάνω από τους ομότιμους κόμβους κάθε κόμβος στέλνει ένα ερώτημα χρησιμοποιώντας ένα κλειδί προς το DHT To DHT απαντά με τις τιμές που αντιστοιχούν στο κλειδί Οι κόμβοι μπορούν και να εισάγουν ζεύγη στο DHT
Ανάθεση κλειδιών σε κόμβους? Το πρόβλημα: Η ανάθεση ζευγών (key, value) στου; κόμβους. Η λύση: Μετατροπή κάθε κλειδιού σε ακέραιο Ανάθεση των αριθμών σε κόμβους Τοποθέτηση ζεύγους (key,value) στον κόμβο ο οποίος είναι πιο κοντά στο κλειδί
Αναγνωριστικά DHT Κάθε αναγνωριστικό είναι ανάμεσα σε [0,2 n -1] για κάθε κόμβο για κάποιο n. Άρα τα αναγνωριστικά έχουν n bits. Κάθε κλειδί είναι ένας ακέραιος μέσα σε αυτή την περιοχή Για να πάρουμε ακέραιο κλειδί, τότε χρησιμοποιούμε το hash του αρχικού κλειδιού Π.χ., key = hash( Led Zeppelin IV ) Για αυτό το σκοπό λέγεται distributed hash table
Ανάθεση κλειδιών σε κόμβους Κανόνας: ανάθεση κλειδιού στον κόμβο με το πιο κοντινό ID. Σύμβαση για τις ανάγκες της διάλεξης ο πιο κοντινός είναι ο κόμβος με κλειδί το οποίο έχει την ακριβώς επόμενη τιμή από το κλειδί το οποίο χρησιμοποιούμε. Π.χ., n=4; Και κόμβοι οι παρακάτω: 1,3,4,5,8,10,12,14; key = 13, τότε κοντινότερος κόμβος ο 14 key = 15, τότε κοντινότερος κόμβος ο 1
Κυκλικό DHT (1) 1 15 3 12 10 8 Κάθε κόμβος γνωρίζει τον προηγούμενο και τον επόμενό του μόνο. Υπερκείμενο δίκτυο overlay network 5 4
Κυκλικό DHT (ΙΙ) Μάθημα: Δίκτυα Η/Υ O(N) πολυπλοκότη 0001 τα (στη βάση μηνυμάτων Εγώ που 0011 χρειαζόμαστε για Ν 1111 κόμβους 1110 1100 1110 1110 1110 1110 Ποιος είναι πιο κοντά στο κλειδί 1110? 0100 0101 1010 1110 1000
Κυκλικό DHT (με συντμήσεις) 15 1 3 Ποιος είναι πιο κοντά στο κλειδί 14? 4 12 5 10 8 Κάθε κόμβος τώρα γνωρίζει εκτός από τον προηγούμενο και τον επόμενο, και τις συντμήσεις που τον αφορούν. Μείωση πλήθους μηνυμάτων. πολυπλοκότηταo(log N)
Εμφάνιση, εξαφάνιση κόμβων 1 15 3 peers may come and go (churn) Κάθε κόμβος γνωρίζει τη διεύθυνση των δύο επόμενων 4 Κάθε κόμβος περιοδικά ελέγχει τους δύο επόμενους για να δει εάν είναι διαθέσιμοι 12 5 Εάν ο αμέσως επόμενος φύγει, τότε τον αντικαθιστά με τον 10 επόμενο 8 Ο 4 καταλαβαίνει ότι ο 5 έφυγε. Κάνει τον 8 τον αμέσως επόμενό του και τον ρωτά ποιος είναι ο αμέσως επόμενός του (του 8), για να τον κάνει μεθεπόμενο στη σειρά του
Αδόμητα υπερκείμενα δίκτυα Παράδειγμα με TTL 3 flooding
Αδόμητα υπερκείμενα δίκτυα Παράδειγμα με TTL 3 random walk
Οργάνωση κόμβων Δομή δένδρου Πλέγμα
Διανομή βίντεο και P2P
Κίνητρα συμμετοχής
Βιβλιογραφία Peer-to-Peer Video Streaming Jânio M. Monteiro 1,2, Rui S. Cruz 2, Charalampos Z. Patrikakis 3, Nikolaos C. Papaoulakis 4, Carlos T. Calafate 5, Mário S. Nunes 2 1 ISE, University of Algarve, Portugal 2 Instituto Superior Técnico/INESC-ID/INOV, Lisbon, Portugal 3 Technological Education Institute of Piraeus, Greece 4 National Technical University of Athens, Greece 5 Universidad Politécnica de Valencia, Spain Computer Networking: A Top Down Approach 6 th edition Jim Kurose, Keith Ross Addison-Wesley March 2012