Δίκτυα Επικοινωνιών Δίκτυα Υπολογιστών και Στρώμα Εφαρμογής Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας ΔΠΜΣ «Τεχνο- Οικονομικά Συστήματα» Τεχνολογία Πληροφορίας και Τηλεπικοινωνιών
Ιστοσελίδα Μαθήματος 2 http://people.cn.ntua.gr/jenny/index.php/courses Εργασία: μπόνους 2 μονάδες http://people.cn.ntua.gr/jenny/images/mydata/ dialekseis/ergasies2015.pdf e-mail επικοινωνίας: eadam@cn.ntua.gr cdemest@cn.ntua.gr
Βιβλιογραφία 3 J. Kurose and K. Ross, Computer Networking A top down approach, Pearson, 6 th edition, 2013
4 DNS
DNS Domain Name System 5 Ένα φυσικό πρόσωπο έχει πολλά χαρακτηριστικά ταυτότητας (π.χ. αριθμό ταυτότητας, ΑΜΚΑ, αριθμό διαβατηρίου κτλ.) Ένας κόμβος στο Internet χαρακτηρίζεται από: μια διεύθυνση IP, η οποία χρησιμοποιείται για την αποστολή/λήψη πακέτων ένα όνομα (π.χ. www.ntua.gr), το οποίο χρησιμοποιείται από τους χρήστες- φυσικά πρόσωπα για να προσπελάσουν τον συγκεκριμένο σταθμό Απαιτείται λοιπόν ένας μηχανισμός αντιστοίχισης μεταξύ IP διευθύνσεων και ονομάτων
DNS Domain Name System 6 Το πρωτόκολλο DNS επιλύει το πρόβλημα της αντιστοίχισης ονομάτων και IP διευθύνσεων Ανήκει στην κατηγορία των πρωτοκόλλων του στρώματος εφαρμογής Οι hosts επικοινωνούν με τους name servers για να επιλύσουν ονόματα (μετάφραση ονομάτων/διευθύνσεων) Η επίλυση ονομάτων αποτελεί θεμελιώδη λειτουργία στο Διαδίκτυο Χρησιμοποιούνται κατανεμημένες βάσεις Οι name servers οργανώνονται ιεραρχικά
DNS Υπηρεσίες & Δομή 7 DNS υπηρεσίες μετάφραση ονομάτων σε IP διευθύνσεις aliasing (χρήση ψευδώνυμων) n canonical, alias name n π.χ. το canonical name του www.ece.ntua.gr είναι ecewww.noc.ntua.gr mail server aliasing τοπική διανομή n mirrored Web servers: πολλές IP διευθύνσεις αντιστοιχούν σε ένα όνομα n π.χ. το www.cnn.com αντιστοιχεί σε 4 IP διευθύνσεις Γιατί να μην έχουμε κεντρικοποιημένη δομή; Απ: Δεν είναι κλιμακώσιμη (scalable) επιλογή n αν αποτύχει ο κεντρικός κόμβος, καταρρέει η λειτουργία της επίλυσης n μεγάλος όγκος κίνησης προς ένα σημείο n μεγάλες ανάγκες για συντήρηση
DNS Κατανεμημένη & ιεραρχική 8 οργάνωση Τρία «είδη» - επίπεδα name servers Root name servers Top-level domain (TLD) servers Authoritative DNS servers
DNS Root name servers 9
TLD και authoritative name servers 10 Top-level domain (TLD) servers είναι υπεύθυνοι για τις περιοχές ανώτερου επιπέδου π.χ..com,.edu,.org,.net αλλά και.gr,.uk,.it κτλ. Authoritative DNS servers είναι οι DNS servers ενός οργανισμού, οι οποίοι παρέχουν authoritative απαντήσεις για την αντιστοίχιση των ονομάτων των hosts του οργανισμού σε IP διευθύνσεις μπορούν να συντηρούνται είτε από τον ίδιο τον οργανισμό είτε από έναν service provider
Τοπικός DNS server 11 Δεν εμπίπτει αυστηρά στην ιεραρχία Κάθε ISP (εμπορικός, εταιρικός, πανεπιστήμιο) διαθέτει έναν καλείται συχνά default name server Όταν ένας host κάνει μια ερώτηση (query) απευθύνεται στον τοπικό DNS server Αυτός διαθέτει μια τοπική μνήμη (cache) με πρόσφατες αντιστοιχίσεις ονομάτων- διευθύνσεων (η οποία όμως μπορεί να είναι παρωχημένη!) Δρα ως μεσολαβητής, προωθώντας το αίτημα βάσει ιεραρχίας
DNS Παράδειγμα επίλυσης 12 Ο host cis.poly.edu θέλει την IP διεύθυνση του gaia.cs.umass.edu Ερ.: Γιατί την θέλει; Επαναληπτικό query Ο server ο οποίος ρωτήθηκε, αν δεν ξέρει την απάντηση, απαντά με το όνομα του server που πρέπει να ερωτηθεί local DNS server dns.poly.edu 1 2 8 root DNS server 3 4 5 7 TLD DNS server authoritative DNS server dns.cs.umass.edu requesting host cis.poly.edu gaia.cs.umass.edu 6
DNS Παράδειγμα επίλυσης 13 Αναδρομικό query H ευθύνη επίλυσης «πέφτει» στον server που ρωτήθηκε κάθε φορά Ενδέχεται να δημιουργείται μεγάλος φόρτος στα ανώτερα επίπεδα local DNS server dns.poly.edu 1 2 8 requesting host cis.poly.edu root DNS server 7 6 5 3 TLD DNS server 4 authoritative DNS server dns.cs.umass.edu gaia.cs.umass.edu
DNS Caching & ενημέρωση 14 εγγραφών Κάθε φορά που ένας name server μαθαίνει μια αντιστοιχία ονόματος IP διεύθυνσης, την αποθηκεύει προσωρινά (caching) μετά από ορισμένο χρόνο (TTL), η προσωρινή αυτή πληροφορία σβήνεται συνήθως η πληροφορία των TLD servers αποθηκεύεται προσωρινά στους τοπικούς name servers n με αυτόν τον τρόπο οι root name servers δεν ερωτώνται συχνά Υπάρχει ο κίνδυνος οι προσωρινές πληροφορίες να είναι παρωχημένες (out-of-date) στην περίπτωση π.χ. που ένας host αλλάξει IP διεύθυνση προτού γίνει expire το TTL στο standard RFC 2136 προτείνονται μηχανισμοί για την ανανέωση αυτής της πληροφορίας
DNS - Εγγραφές 15 DNS: distributed db storing resource records (RR) RR format: (name, value, type, ttl) type=a name is hostname value is IP address type=ns name is domain (e.g., foo.com) value is hostname of authoritative name server for this domain type=cname name is alias name for some canonical (the real) name www.ibm.com is really servereast.backup2.ibm.com value is canonical name type=mx value is name of mailserver associated with name
DNS Μηνύματα πρωτοκόλλου 16 Μηνύματα ερώτησης (query) και απάντησης (response), που έχουν την ίδια δομή Επικεφαλίδα identification: πεδίο 16bit, με ίδια τιμή σε κάθε ζεύγος ερώτησης/ απάντησης flags n query ή reply n επιθυμητή αναδρομή n διαθέσιμη αναδρομή n authoritative reply 2 bytes 2 bytes identification flags # questions # answer RRs # authority RRs # additional RRs questions (variable # of questions) answers (variable # of RRs) authority (variable # of RRs) additional info (variable # of RRs)
DNS Μηνύματα πρωτοκόλλου 17 2 bytes 2 bytes identification # questions # authority RRs flags # answer RRs # additional RRs όνομα, πεδία ερώτησης απαντήσεις ονόματα authoritative name servers επιπλέον τυχόν «χρήσιμη πληροφορία» questions (variable # of questions) answers (variable # of RRs) authority (variable # of RRs) additional info (variable # of RRs)
Εισάγοντας DNS εγγραφές 18 Έστω ότι θέλουμε να κατοχυρώσουμε το όνομα metaptyxiako.gr Κατοχυρώνουμε το όνομα σε έναν πάροχο με την κατάλληλη εξουσιοδότηση ( DNS registrant ) παρέχονται το όνομα και οι IP διευθύνσεις των authoritative name servers (primary και secondary) εισάγονται εγγραφές στον.gr TLD server (metaptyxiako.gr, dns1.metaptyxiako.gr, NS) (dns1.metaptyxiako.gr, 147.102.7.100, A) δημιουργούνται στον authoritative name server εγγραφή τύπου Α για το www.metaptyxiako.gr, και εγγραφή τύπου ΜΧ για την περιοχή metaptyxiako.gr
Κάνοντας επίθεση στο DNS 19 DDoS attacks βομβαρδισμός των root servers με ερωτήματα n μικρός κίνδυνος καθώς n η προσωρινή τοπική αποθήκευση επιτρέπει την αποφυγή ερώτηση στον root server n γίνεται «φιλτράρισμα» και απόρριψη των κακόβουλων ερωτήσεων βομβαρδισμός των TLD servers n μεγαλύτερος κίνδυνος Παρεμβολή στις ερωτήσεις Αποστολή εσφαλμένων ενημερώσεων στους DNS servers
20 Δίκτυα P2P
Αμιγής P2P αρχιτεκτονική 21 δεν υπάρχει always-on server οι διάφοροι τερματικοί κόμβοι (ομότιμοι κόμβοι peers) επικοινωνούν απευθείας μεταξύ τους αυτοί οι peers δεν είναι διαρκώς συνδεδεμένοι μεταξύ τους ενώ αλλάζουν και IP διευθύνσεις παραδείγματα εφαρμογών διαμοιρασμός αρχείων (BitTorrent) streaming (KanKan) VoIP (Skype)
Διαμοιρασμός αρχείων 22 client-server vs P2P Ερώτηση: Πόσος χρόνος απαιτείται για το διαμοιρασμό αρχείου (μεγέθους F) από έναν server σε Ν peers; Οι δυνατότητες των peers για upload/download είναι περιορισμένες u s : server upload capacity file, size F server u s u 1 d 1 u 2 d 2 d i : peer i download capacity u N d N δίκτυο (µε αρκετά µεγάλη χωρητικότητα) u i : peer i upload capacity d i u i
Χρόνος διανομής αρχείου client-server 23 μετάδοση από server: πρέπει να γίνει ακολουθιακό uploading N αντιγράφων του αρχείου ο χρόνος που απαιτείται για ένα αντίγραφο είναι ίσος με F/u s ο χρόνος που απαιτείται για N αντίγραφα είναι ίσος με ΝF/u s client: κάθε client πρέπει να κάνει download ένα αντίγραφο του αρχείου d min = min client download rate download time: F/d min F u s network d i u i χρόνος διανοµής του F σε N clients µέσω client-server προσέγγισης D c-s > max{nf/u s,,f/d min }
Χρόνος διανομής αρχείου 24 P2P μετάδοση από server: πρέπει να γίνει uploading τουλάχιστον ενός αντιγράφου του αρχείου ο χρόνος που απαιτείται για ένα αντίγραφο είναι ίσος με F/u s client: κάθε client πρέπει να κάνει download ένα αντίγραφο του αρχείου download time: τουλάχιστον F/d min για τον client με το μικρότερο d min download rate clients (ως σύνολο): πρέπει να κατεβάσουν (άρα και να ανεβάσουν) συνολικά NF bits max upload rate (limiting max download rate) είναι u s + Σu i F u s network d i u i χρόνος διανοµής του F σε N clients µέσω P2P προσέγγισης D P2P > max{f/u s,,f/d min,,nf/(u s + Σu i )} το ίδιο συμβαίνει όμως και εδώ αφού κάθε peer προσθέτει capacity αυξάνει γραμμικά με το Ν
Παράδειγμα Client Server vs P2P 25 Υποθέτουμε τα εξής: 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
P2P διανομή αρχείου - BitTorrent 26 το αρχείο χωρίζεται σε «κομμάτια» (chunks) των 256Kb οι peers στο torrent στέλνουν/λαμβάνουν chunks tracker: παρακολουθεί τους peers που συμμετέχουν σε ένα torrent torrent: ομάδα peers που ανταλλάσσουν chunks ενός συγκεκριμένου αρχείου Η Άννα φτάνει ανακτά τη λίστα των peers από τον tracker και ξεκινά την ανταλλαγή chunks µε τους peers στο torrent
P2P διανομή αρχείου - BitTorrent 27 όταν ένας peer «μπαίνει» στο torrent δεν έχει chunks, αλλά θα συγκεντρώσει από άλλους peers με την πάροδο του χρόνου δηλώνεται στον tracker για να λάβει τη λίστα με τους peers (IP διευθύνσεις τους) και συνδέεται με ένα υποσύνολο από αυτούς (neighbours) καθώς κάνει dowloading, ταυτόχρονα κάνει και uploading σε άλλους peers οι peers με τους οποίους ανταλλάσσει chunks μπορεί να αλλάξουν μόλις ο peer ολοκληρώσει το «κατέβασμα» του αρχείου μπορεί να δράσει είτε «εγωιστικά» είτε «αλτρουιστικά» n Ερώτηση: ποιος είναι «εγωιστής» και ποιος «αλτρουιστής»;
BitTorrent 28 Αίτηση & αποστολή file chunks αίτηση chunks ανά πάσα στιγμή οι διάφοροι peers έχουν διαφορετικά υποσύνολα file chunks κάθε peer περιοδικά ρωτάει τους άλλους peers για τη λίστα των file chunks κάθε peer ζητά από τους άλλους τα file chunks που του λείπουν, ξεκινώντας από τα πιο σπάνια αποστολή chunks (ανταποδοτικό σχήμα) ένας peer (π.χ. η Άννα) στέλνει chunks στους 4 εκείνους peers που της στέλνουν chunks με τον υψηλότερο ρυθμό n στους άλλους προσωρινά δε στέλνει n η λίστα των top 4 αναθεωρείται τακτικά (π.χ. κάθε 10 sec) κάθε 30 sec επιλέγει τυχαία έναν άλλο peer και αρχίζει να του στέλνει chunks n αυτός ο νέος peer μπορεί να μπει στη λίστα των top 4
BitTorrent «Μου δίνεις, σου δίνω» 29 Η Άννα «τυχαία»/«ευκαιριακά» ( opportunistically ) αρχίζει να στέλνει στο Βασίλη Η Άννα γίνεται ένας από τους top 4 τροφοδότες του Βασίλη. Ο Βασίλης ανταποδίδει Ο Βασίλης μπορεί να γίνει ένας από τους top 4 τροφοδότες της Άννας με υψηλότερο upload rate: βρίσκεις καλύτερους συνεργάτες και εν τέλει «κατεβάζεις» και εσύ το αρχείο ταχύτερα!
Distributed Hash Table (DHT) 30 Κατανεμημένος πίνακας κατακερματισμού Χρήση DHT Κυκλικά DHT και υπερκείμενα δίκτυα
Απλή βάση δεδομένων 31 Απλή βάση δεδομένων με ζεύγη (key, value) Παράδειγμα: key: Ονοματεπώνυμο, value: ΑΦΜ Ονοματεπώνυμο ΑΦΜ Τζένη Αδαμοπούλου 123456789 Κώστας Δεμέστιχας 987654321 Γιώργος Παπαδόπουλος 111123456 Παράδειγμα: key: Όνομα ταινίας, value: IP διεύθυνση Ταινία IP διεύθυνση Batman 147.102.7.35 Χ- Men 147.102.7.46 The Notebook 147.102.7.48
Πίνακας κατακερματισμού 32 Πιο βολικός τρόπος αποθήκευσης και αναζήτησης επί αριθμητικής αναπαράστασης του key Παράδειγμα: key = hash (original key) Ταινία (original key) key IP διεύθυνση Batman 1234 147.102.7.35 Χ- Men 2345 147.102.7.46 The Notebook 7890 147.102.7.48 Παράδειγμα: key = hash (original key) Χρήστης (original key) key IP διεύθυνση jenny 4567 147.102.7.35 kostas 2345 147.102.7.46 alex 3245 147.102.7.48 hash είναι μια συνάρτηση κατακερματισμού, π.χ. SHA-1, MD5
Distributed Hash Table (DHT) 33 Κατανεμημένα ζεύγη (key, value) σε εκατομμύρια peers ομοιόμορφη κατανομή των ζευγών στους peers Κάθε peer μπορεί να αναζητήσει σε μία βάση (query) με χρήση του key η βάση επιστρέφει την value που αντιστοιχεί στο key προκειμένου να εξυπηρετηθεί η αναζήτηση ανταλλάσσεται μικρός αριθμός μηνυμάτων μεταξύ των peers κάθε peer γνωρίζει μόνο την IP διεύθυνση για μικρό αριθμό άλλων peers ευέλικτο σχήμα ως προς τις συχνές αναχωρήσεις/αφίξεις peers
Κατανεμημένοι πίνακες 34 κατακερματισμού DHT πίνακας που έχει ο χρήστης Αλέξανδρος Ταινία (original key) key IP διεύθυνση Batman 1234 147.102.7.35 Batman 1234 147.102.7.46 The Notebook 7890 147.102.7.48 Η Άννα θέλει να κατεβάσει την ταινία Batman. Κάνει μια αναζήτηση για το key 1234 που αντιστοιχεί στην ταινία Batman. Οι μηχανισμοί του DHT (βλ. παρακάτω) προσδιορίζουν ότι ο Αλέξανδρος έχει την πληροφορία για το ποιοι peers έχουν το αντικείμενο 1234. Eν τέλει, η Άννα μαθαίνει ότι οι peers 147.102.7.35 και 147.102.7.46 είναι αυτοί που έχουν το ζητούμενο αντικείμενο.
Ανάθεση ζευγών key-value στους 35 peers κανόνας: ανάθεση ενός ζεύγους key-value στον peer με το «κοντινότερο» ID σύμβαση: «κοντινότερο» θεωρούμε το πιο «κοντινό» επόμενο του key ID Παράδειγμα: Έστω ότι έχουμε το σύνολο IDs {0, 1, 2,, 63} Έστω ότι έχουμε τους peers με ID: 1,12,13,25,32,40,48,60 n To key = 51 ανατίθεται στον peer 60 n To key = 60 ανατίθεται στον peer 60 n To key = 61 ανατίθεται στον peer 1
Κυκλικό DHT 36 Κάθε peer γνωρίζει τις IP διευθύνσεις (values) μόνο για τον αμέσως προηγούμενο και επόμενο του 1 60 12 48 40 32 13 25 overlay network
Επίλυση ερωτήματος 37 value 1 12 Ποιο είναι το value που αντιστοιχεί στο key 53; 60 13 48 Όταν έχουμε N peers απαιτούνται κατά μέσο όρο N/2=Ο(Ν) μηνύματα για την επίλυση της αναζήτησης 40 32 25 Ερ. : Γιατί γνώριζε ο peer 60 την αντιστοίχιση του key 53;
Κυκλικό DHT με συντομεύσεις 38 60 value 1 12 Ποιο είναι το value που αντιστοιχεί στο key 53; 48 40 32 Κάθε peer γνωρίζει τις IP διευθύνσεις του προηγούμενου, του επόμενου και των συντομεύσεων (γειτονικών ) του Αντί για 6 απαιτούνται τώρα 3 μηνύματα Δυνατότητα σχεδιασμού συντομεύσεων με Ο(log N) γείτονες και Ο (log N) μηνύματα σε μια αναζήτηση Ερ.: Γιατί ο peer 12 ρωτάει τον 32 και όχι τον 13; 25 13
Αποχώρηση peer 39 αναμενόμενη η αποχώρηση κάποιων peers θεωρούμε τώρα ότι κάθε peer ξέρει την IP διεύθυνση των δύο επόμενων του περιοδικά ελέγχει (ping) αυτοί «υπάρχουν» ακόμα αν ο αμέσως επόμενος αποχωρήσει, τότε τίθεται ο πρώην μεθεπόμενος ως αμέσως επόμενος Παράδειγμα: Ο peer 5 αποχωρεί Ο peer 4 ανιχνεύει την αποχώρηση του 5 και ρωτάει τον μεθεπόμενο του, τον peer 8 ποιος είναι ο επόμενος του Ο peer 4 γνωρίζει ως τώρα ως επόμενο τον peer 8 και ως μεθεπόμενο των peer 10 (φυσικά και τις IP διευθύνσεις τους) 1 15 12 10 8 O peer 5 εγκαταλείπει ξαφνικά 3 5 4
40 Ευχαριστώ για την προσοχή σας!