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

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

Κεφάλαιο 2ο Application Layer

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


Παρουσίαση με θέμα: "Κεφάλαιο 2ο Application Layer"— Μεταγράφημα παρουσίασης:

1 Κεφάλαιο 2ο Application Layer
Δικτύωση Υπολογιστών: Προσέγγιση από πάνω προς τα κάτω 7η Έκδοση, 2016 J.F. Kurose, K.W. Ross [Εύδοξος: ] Application Layer

2 Περίγραμμα 2.1 Βασικές αρχές 2.2 Web και HTTP 2.3 FTP
2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS Application Layer

3 Application layer Οι στόχοι μας:
Βασικές αρχές υλοποίησης δικτυακών πρωτοκόλλων εφαρμογής Μοντέλα υπηρεσιών στο transport-layer Υπόδειγμα client-server Υπόδειγμα peer-to-peer Επισκόπηση βασικών πρωτοκόλλων εφαρμογής HTTP FTP SMTP / POP3 / IMAP DNS Δημιουργία δικτυακών εφαρμογών socket API Application Layer

4 Μερικές δικτυακές εφαρμογές
web text messaging remote login P2P file sharing multi-user network games streaming stored video (YouTube, Netflix) voice over IP (π.χ., Skype) real-time video conferencing social networking search Application Layer

5 Δημιουργία μίας δικτυακής εφαρμογής
application transport network data link physical Γράψτε προγράμματα που: Τρέχουν σε διαφορετικά end συστήματα Επικοινωνούν πάνω από το δίκτυο Π.χ., web server software επικοινωνεί με το browser software Δεν χρειάζεται να γράψετε προγράμματα για τις δικτυακές συσκευές κορμού: Οι δικτυακές συσκευές δεν τρέχουν εφαρμογές χρηστών Οι εφαρμογές στα ακραία συστήματα επιτρέπουν την γρήγορη ανάπτυξή τους και μετάδοσή τους application transport network data link physical application transport network data link physical Application Layer

6 Αρχιτεκτονικές εφαρμογών
Πιθανές δομές των εφαρμογών: client-server (πελάτη – εξυπηρέτη) peer-to-peer (P2P) (ομότιμοι χρήστες) Application Layer

7 Αρχιτεκτονική client-server
Ένας host πάντα ενεργός μόνιμη IP address Κλιμάκωση με τη χρήση data centers clients: Επικοινωνούν με το server Δεν είναι πάντα συνδεδεμένοι Μπορεί να έχουν δυναμικές IP διευθύνσεις Δεν επικοινωνούν απευθείας με άλλους clients client/server Application Layer

8 P2P architecture Δεν υπάρχει always-on server
Αυθαίρετα end systems επικοινωνούν απευθείας Οι peers απαιτούν υπηρεσίες από άλλους peers, παρέχουν αντίστοιχα υπηρεσία σε άλλους peers Δυνατότητα επεκτασιμότητας – νέοι peers αυξάνουν τις δυνατότητες υπηρεσιών, αλλά και τις απαιτήσεις Οι peers συνδέονται σποραδικά και αλλάζουν IP διευθύνσεις Πολύπλοκη διαχείριση peer-peer Application Layer

9 Διεργασίες που επικοινωνούν
Διεργασία (process): πρόγραμμα που τρέχει σε ένα host Μέσα στον ίδιο host, δύο διεργασίες επικοινωνούν χρησιμοποιώντας inter-process communication (ορίζεται από το λειτουργικό OS) Διεργασίες σε διαφορετικούς χρήστες επικοινωνούν ανταλλάσσοντας μηνύματα clients, servers client process: η διεργασία που εκκινεί την επικοινωνία server process: διεργασία που περιμένει να της ζητηθεί επικοινωνία Σημ: εφαρμογές σε P2P αρχιτεκτονικές έχουν client processes & server processes Application Layer

10 Sockets Μία διεργασία στέλνει/λαμβάνει μηνύματα σε/από το δικό της socket Το socket είναι μία πόρτα Η sending διεργασία σπρώχνει το μήνυμα έξω από την πόρτα Η sending διεργασία βασίζεται στην υποδομή μεταφοράς στην άλλη άκρη της πόρτας ώστε να μεταφέρει το μήνυμα στο socket της receiving process application application socket controlled by app developer process process transport transport controlled by OS network network link Internet link physical physical Application Layer

11 Διευθυνσιοδοτώντας τις Διεργασίες
Ο identifier περιλαμβάνει την IP address και port numbers που συσχετίζονται με τη διεργασία στο host. Παράδειγμα: HTTP server: 80 mail server: 25 Π.χ. για να στείλουμε HTTP message στον gaia.cs.umass.edu web server: IP address: port number: 80 Οι διεργασίες πρέπει να έχουν έναν identifier για να λάβουν μηνύματα Ο host device έχει μία «μοναδική» IP address Q: Φτάνει αυτό για την ταυτοποίηση της διεργασίας; A: Όχι, διότι πολλές διεργασίες μπορεί να τρέχουν στον ίδιο host Application Layer

12 Τι ορίζει το App-layer Τύπους μηνυμάτων που ανταλλάσσονται,
π.χ., request, response Σύνταξη του μηνύματος: Ποια πεδία και πώς τα πεδία προσδιορίζονται στο μήνυμα Σημασιολογία του μηνύματος Σημασία των πεδίων Κανόνες για το πότε και πως οι διεργασίες στέλνουν και αποκρίνονται σε μηνύματα open (ανοιχτά) protocols: Ορίζονται στα RFCs Επιτρέπουν τη διαλειτουργικότητα π.χ., HTTP, SMTP proprietary (ιδιόκτητα) protocols: π.χ., Skype Application Layer

13 Επίπεδο μεταφοράς και ανάγκες εφαρμογών
Ακεραιότητα δεδομένων Κάποιες εφαρμογές (π.χ., file transfer, web transactions) απαιτούν 100% αξιόπιστη μεταφορά δεδομένων Άλλες εφαρμογές (π.χ., audio) μπορούν να ανεχτούν απώλειες πακέτων Throughput-ρυθμαπόδοση Κάποιες εφαρμογές (π.χ., multimedia) απαιτούν ένα ελάχιστο throughput Άλλες εφαρμογές(“elastic apps”) κάνουν χρήση οποιουδήποτε throughput έχουν στη διάθεσή τους Χρονικές απαιτήσεις Κάποιες εφαρμογές (π.χ., Internet telephony, interactive games) απαιτούν χαμηλή καθυστέρηση Ασφάλεια κρυπτογράφηση, ακεραιότητα δεδομένων … Application Layer

14 Απαιτήσεις κοινών εφαρμογών
Εφαρμογή file transfer Web documents real-time audio/video stored audio/video interactive games text messaging Απώλεια data no loss loss-tolerant Ρυθμαπόδοση elastic audio: 5kbps-1Mbps video:10kbps-5Mbps same as above few kbps up Ευαισθησία χρόνου no yes, 100’s msec yes, few secs yes and no Application Layer

15 Υπηρεσίες πρωτοκόλλων μεταφοράς
TCP service: Αξιόπιστη μετάδοση Έλεγχος ροής: Ο αποστολέας δεν θα λειτουργήσει ερήμην του δέκτη Έλεγχος συμφόρησης: Ο αποστολέας σταματά όταν το δίκτυο υπερφορτωθεί Δεν παρέχει: χρονισμό, εγγύηση ελάχιστου throughput, ασφάλεια connection-oriented: Γίνεται εγκατάσταση σύνδεσης μεταξύ client-server. UDP service: Μη αξιόπιστη μεταφορά δεδομένων Δεν παρέχει: αξιοπιστία, έλεγχο ροής, έλεγχο συμφόρησης, χρονισμό, εγγύηση throughput, ασφάλεια και εγκατάσταση κλήσης, Q: Γιατί χρησιμοποιείται το UDP; Application Layer

16 Internet apps: application, transport protocols
layer protocol SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (e.g., YouTube), RTP [RFC 1889] SIP, RTP, proprietary (π.χ., Skype) underlying transport protocol TCP TCP or UDP application remote terminal access Web file transfer streaming multimedia Internet telephony Application Layer

17 Ασφάλεια στο TCP TCP & UDP Δεν παρέχουν κρυπτογράφηση SSL
Ακεραιότητα δεδομένων Αυθεντικοποίηση στα τερματικά σημεία SSL βρίσκεται στο app layer Οι εφαρμογές χρησιμοποιούν SSL βιβλιοθήκες που μιλάνε στο TCP SSL socket API Application Layer

18 Περίγραμμα 2.1 Βασικές αρχές 2.2 Web και HTTP 2.3 FTP
2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS Application Layer

19 Web και HTTP Η web page αποτελείται από objects
Αντικείμενο μπορεί να είναι ένα HTML file, JPEG εικόνα, Java applet, audio αρχείο,… Η web page αποτελείται από ένα βασικό HTML-file που περιλαμβάνει μερικά referenced objects Κάθε object μπορεί να κληθεί από το Uniform Resource Locator (URL), π.χ., host name path name Application Layer

20 HTTP επισκόπηση HTTP: hypertext transfer protocol
Web’s application layer client/server μοντέλο client: o περιηγητής (browser) που ζητάει, λαμβάνει (χρησιμοποιώντας το HTTP protocol) και εμφανίζει τα Web αντικείμενα server: Ο Web server στέλνει αντικείμενα απαντώντας στις αιτήσεις HTTP request HTTP response PC running Firefox browser HTTP request HTTP response server running Apache Web iphone running Safari browser Application Layer

21 HTTP επισκόπηση χρησιμοποιεί TCP:
Ο πελάτης εκκινεί την TCP σύνδεση (δημιουργία socket) με το server, πόρτα 80 Ο εξυπηρετητής δέχεται την TCP σύνδεση από τον πελάτη HTTP μηνύματα (μηνύματα πρωτοκόλλου επιπέδου εφαρμογής) ανταλλάσσονται μεταξύ του περιηγητή (HTTP πελάτης) και του Web server (HTTP server) Κλείσιμο της TCP σύνδεσης Το HTTP είναι“stateless” Δηλαδή ο server δεν διατηρεί πληροφορίες σχετικά με τα παρελθόντα αιτήματα των clients requests Επιπλέον Τα πρωτόκολλα που διατηρούν την κατάσταση(“state” ) είναι πολύπλοκα! Πρέπει να διατηρηθεί το ιστορικό των συνδέσεων Αν ο server/client καταρρεύσει, οι τρέχουσες καταστάσεις που έχουν διατηρήσει μπορεί να μη συμπίπτουν Application Layer

22 HTTP συνδέσεις Μη διαρκείς (non-persistent) HTTP
Το πολύ ένα αντικείμενο στέλνεται από μία TCP σύνδεση Η σύνδεση κλείνει μετά Η μεταφόρτωση πολλών αντικειμένων απαιτεί πολλαπλές TCP συνδέσεις Διαρκείς (Persistent) HTTP Πολλά αντικείμενα μπορούν να σταλούν πάνω από μία TCP σύνδεση μεταξύ client, server Application Layer

23 Μη διαρκείς HTTP συνδέσεις
Υποθέστε ότι ο χρήστης εισάγει το URL: (περιέχει κείμενο, Αναφορές σε 10 jpeg images) 1a. Ο HTTP client εκκινεί την TCP σύνδεση με τον HTTP server (διεργασία) στο στην πόρτα 80 1b. Ο HTTP server στον host αναμένει το αίτημα για TCP σύνδεση στην πόρτα 80. “Δέχεται” τη σύνδεση ειδοποιώντας τον client 2. Ο HTTP client στέλνει το HTTP request message (που περιέχει το URL) μέσα στο TCP socket. Το μήνυμα υποδεικνύει ότι ο client θέλει το αντικείμενο someDepartment/home.index 3. Ο HTTP server λαμβάνει το μήνυμα - αίτημαr, σχηματίζει το response message που περιέχει το απαιτούμενο αντικείμενο, και στέλνει το μήνυμα μέσα στο socket time Application Layer

24 Μη διαρκείς HTTP (cont.)
4. Ο HTTP server κλείνει την TCP σύνδεση. 5. Ο HTTP client λαμβάνει το response message που περιέχει το αρχείο html, απεικονίζει το html. Αναλύει το html file, και βρίσκει 10 αναφερόμενα jpeg αντικείμενα. time 6. Τα βήματα 1-5 επαναλαμβάνονται για κάθε ένα από τα 10 jpeg αντικείμενα Application Layer

25 Μη διαρκείς HTTP: Χρόνος απόκρισης
RTT (ορισμός): Ο χρόνος ένα μικρό πακέτο να ταξιδέψει από τον client στο server μετ’ επιστροφής HTTP χρόνος απόκρισης: Ένα RTT για την εκκίνηση της TCP σύνδεσης Ένα RTT για HTTP request Χρόνος μετάδοσης του αρχείου non-persistent HTTP χρόνος απόκρισης = 2RTT+ χρόνος μετάδοσης του αρχείου initiate TCP connection RTT request file time to transmit file RTT file received time time Application Layer

26 Διαρκείς (persistent) HTTP
Ο server αφήνει τη σύνδεση ανοιχτή αφού στείλει την απόκριση Τα επόμενα HTTP μηνύματα μεταξύ των ιδίων client/server στέλνονται πάνω από την ίδια ανοιχτή σύνδεση Ο client στέλνει ένα αίτημα μόλις θελήσει ένα referenced object Ο χρόνος απόκρισης είναι όσο ένα RTT για όλα τα referenced objects Προβλήματα του non-persistent HTTP : Απαιτεί 2 RTTs για κάθε αντικείμενο overhead του OS για κάθε TCP σύνδεση Οι browsers συχνά ανοίγουν παράλληλες TCP συνδέσεις για να πάρουν τα referenced αντικείμενα Application Layer

27 HTTP μήνυμα request Δύο τύποι μηνυμάτων HTTP: request, response
ASCII format carriage return character line-feed character request line (GET, POST, HEAD commands) GET /index.html HTTP/1.1\r\n Host: www-net.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n Accept: text/html,application/xhtml+xml\r\n Accept-Language: en-us,en;q=0.5\r\n Accept-Encoding: gzip,deflate\r\n Accept-Charset: ISO ,utf-8;q=0.7\r\n Keep-Alive: 115\r\n Connection: keep-alive\r\n \r\n header lines carriage return, line feed at start of line indicates end of header lines Application Layer

28 Ανέβασμα φόρμας εισόδου
POST method: H web page συχνά περιλαμβάνει μία φόρμα εισόδου To input μεταφέρεται στο server στο entity body URL method: Χρησιμοποιεί την GET method Το input μεταφέρεται στο server μέσω του URL πεδίου στη request line: Application Layer

29 HTTP μήνυμα απόκρισης status line (protocol status code status phrase)
HTTP/ OK\r\n Date: Sun, 26 Sep :09:20 GMT\r\n Server: Apache/ (CentOS)\r\n Last-Modified: Tue, 30 Oct :00:02 GMT\r\n ETag: "17dc6-a5c-bf716880"\r\n Accept-Ranges: bytes\r\n Content-Length: 2652\r\n Keep-Alive: timeout=10, max=100\r\n Connection: Keep-Alive\r\n Content-Type: text/html; charset=ISO \r\n \r\n data data data data data ... header lines data, e.g., requested HTML file Application Layer

30 Κατάσταση χρήστη-server: cookies
Πολλά Web sites κάνουν χρήση των cookies Τέσσερα συστατικά: 1) Η γραμμή επικεφαλίδας του cookie στο HTTP μήνυμα response 2) Η γραμμή επικεφαλίδας του cookie του επόμενου HTTP μηνύματος request 3) Το cookie αρχείο φυλάσσεται στο host του χρήστη, και το διαχειρίζεται ο περιηγητής του χρήστη 4) back-end βάση δεδομένων στο Web site Παράδειγμα: Η Σούλα πάντα μπαίνει στο δίκτυο από το laptop της Επισκέπτεται συγκεκριμένο e-commerce site για πρώτη φορά Όταν τα αρχικά HTTP requests φτάνουν στο site, αυτό δημιουργεί: μοναδικό ID Είσοδο στην backend database για τα ID Application Layer

31 Cookies: διατηρούν “state” (συνέχεια)
client server ebay 8734 usual http request msg Amazon server creates ID 1678 for user create entry cookie file usual http response set-cookie: 1678 ebay 8734 amazon 1678 backend database usual http request msg cookie: 1678 cookie- specific action access usual http response msg usual http request msg cookie: 1678 cookie- specific action access Μια βδομάδα αργότερα: ebay 8734 amazon 1678 usual http response msg Application Layer

32 Cookies – τα καλά και τα κακά
Κακά cookies και ιδιωτικότητα: Τα cookies επιτρέπουν στα sites να μάθουν πολλά για μας Παρέχουμε συνήθως στα sites ονόματα και Χρησιμοποιούνται: αυθεντικοποίηση καλάθια αγορών συστάσεις διατήρηση συνεδρίας του χρήστη (Web ) Πώς διατηρούν την“κατάσταση”: Τερματικά σημεία των πρωτοκόλλων: διατηρούν κατάσταση στον αποστολέα/παραλήπτη σε πολλαπλές δοσοληψίες cookies: Τα http μηνύματα μεταφέρουν την κατάσταση Application Layer

33 Web caches (proxy server)
Ρυθμίζουμε τον browser: Web προσβάσεις μέσω cache Ο browser στέλνει όλα τα HTTP requests to cache Αν το object είναι στην cache: Η cache το επιστρέφει αλλιώς η cache αιτείται το object από το server προορισμού HTTP response proxy server HTTP request client origin server HTTP request HTTP response client origin server Application Layer

34 Περίγραμμα 2.1 Βασικές αρχές 2.2 Web και HTTP 2.3 FTP
2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS Application Layer

35 FTP: Το πρωτόκολλο μεταφοράς αρχείων
file transfer FTP user interface client FTP server user at host remote file system local file system Μεταφορά αρχείου από/προς απομακρυσμένο host client/server μοντέλο client: πλευρά που ξεκινά μεταφορά (είτε προς/από remote) server: remote host ftp: RFC 959 ftp server: port 21 (port 22, secure FTP) Application Layer

36 FTP: ξεχωριστός έλεγχος, συνδέσεις data
Ο FTP client επικοινωνεί με τον FTP server στην πόρτα 21, με TCP Ο client εξουσιοδοτείται μέσω της σύνδεσης ελέγχου Ο client βλέπει τα απομακρυσμένο directory, και στέλνει εντολές πάνω από τη σύνδεση ελέγχου Όταν ο server λάβει εντολή αποστολής αρχείου , Ο server ανοίγει 2η TCP σύνδεση δεδομένων προς τον client Αφού ολοκληρωθεί η μεταφορά του αρχείου, ο server κλείνει τη σύνδεση TCP control connection, server port 21 TCP data connection, server port 20 FTP client FTP server Application Layer

37 Περίγραμμα 2.1 Βασικές αρχές 2.2 Web και HTTP 2.3 FTP
2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS Application Layer

38 Ηλ. ταχυδρομείο Τρία κύρια συστατικά: Ο agent του χρήστη (MUA)
user mailbox outgoing message queue Τρία κύρια συστατικά: Ο agent του χρήστη (MUA) mail servers (MTA, MDA) simple mail transfer protocol: SMTP User Agent - Πράκτορας Ο “mail reader” e.g., Outlook, Thunderbird, iPhone mail client Τα εξερχόμενα και εισερχόμενα μηνύματα αποθηκεύονται στο server mail server SMTP user agent Application Layer

39 Μail servers mail servers:
mailbox περιλαμβάνει τα μηνύματα για το χρήστη message queue των προς αποστολή μηνυμάτων SMTP protocol μεταξύ των mail servers για να ανταλλάξουν μηνύματα client: Ο αποστέλλων mail server server: Ο λαμβάνων mail server user agent mail server user agent SMTP mail server user agent SMTP SMTP user agent mail server user agent user agent Application Layer

40 SMTP [RFC 2821] Χρησιμοποιεί το TCP για να στείλει μήνυμα από τον client στο server στη θύρα 25 Άμεση μεταφορά: Ο αποστέλλων server στο λαμβάνοντα server Τρεις φάσης αποστολής handshaking (greeting) transfer of messages closure Αλληλεπίδραση εντολών/αποκρίσεων (όπως HTTP, FTP) commands: ASCII text response: status code and phrase Τα μηνύματα πρέπει να είναι σε 7-bit ASCI Application Layer

41 Σενάριο: Η Alice στέλνει μήνυμα στο Bob
1) Η Alice χρησιμοποιεί το MUA για να στείλει μήνυμα “to” 2) Ο MUA στέλνει το μήνυμα στο mail server της. Το μήνυμα μπαίνει στην message queue 3) Η client πλευρά του SMTP ανοίγει TCP σύνδεση με τον mail server του Bob (MTA) 4) SMTP client στέλνει το μήνυμα της Alice πάνω στην TCP σύνδεση 5) Ο mail server του Bob τοποθετεί το μήνυμα στο mailbox του (MDA) 6) Ο Bob χρησιμοποιεί το δικό του user agent για να διαβάσει το μήνυμα user agent user agent 1 mail server mail server 2 3 6 4 5 Alice’s mail server Bob’s mail server Application Layer

42 Απλό παράδειγμα SMTP χρήσης
S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: S: 250 Sender ok C: RCPT TO: S: Recipient ok C: DATA S: 354 Enter mail, end with "." on a line by itself C: Do you like ketchup? C: How about pickles? C: . S: 250 Message accepted for delivery C: QUIT S: 221 hamburger.edu closing connection Application Layer

43 Πρωτόκολλα πρόσβασης mail
mail access protocol user agent SMTP SMTP user agent sender’s mail server (e.g., POP, IMAP) receiver’s mail server SMTP: μεταφορά/αποθήκευση στο mail server mail access protocol: Ανάκτηση από το server POP: Post Office Protocol [RFC 1939]: authorization, download IMAP: Internet Mail Access Protocol [RFC 1730]: περισσότερα χαρακτηριστικά, περιλαμβάνοντας διαχείριση μηνυμάτων που είναι αποθηκευμένα στο server HTTP: Gmail, Hotmail, Yahoo! Mail, κλπ. Application Layer

44 POP3 protocol authorization phase transaction phase, client: C: list
S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on authorization phase client commands: user: declare username pass: password server responses +OK -ERR transaction phase, client: list: list message numbers retr: retrieve message by number dele: delete quit C: list S: 1 498 S: 2 912 S: . C: retr 1 S: <message 1 contents> C: dele 1 C: retr 2 C: dele 2 C: quit S: +OK POP3 server signing off Application Layer

45 POP3 (περισσότερα) και IMAP
Το προηγούμενο παράδειγμα χρησιμοποιεί τον POP3 “download and delete” τρόπο Ο Bob δεν μπορεί να διαβάσει αν αλλάξει client POP3 “download-and-keep”: αντίγραφα των μηνυμάτων σε διάφορους clients POP3 είναι “χωρίς κατάσταση» στα διάφορα sessions IMAP Κρατάει όλα τα μηνύματα στον server Επιτρέπει στο χρήστη να οργανώσει τα μηνύματα σε folders Κρατάει την κατάσταση του χρήστη κατά τις συνόδους: Ονόματα φακέλων και αντιστοιχίες μεταξύ των IDs των μηνυμάτων και του ονόματος του φακέλου Application Layer

46 Περίγραμμα 2.1 Βασικές αρχές 2.2 Web και HTTP 2.3 FTP
2.4 electronic mail SMTP, POP3, IMAP 2.5 DNS Application Layer

47 DNS: domain name system
Κατανεμημένη βάση δεδομένων που διαχειρίζονται ιεραρχικά πολλοί name servers application-layer protocol: hosts, name servers επικοινωνούν για να κάνουν τη μετάφραση address/name Σημ: Βασική Internet λειτουργία, που υλοποιείται σαν application-layer protocol Πολυπλοκότητα στο άκρο του δικτύου Άνθρωποι: πολλές ταυτότητες: ταυτότητα, όνομα, διαβατήριο # Internet hosts, routers: IP address “name”, π.χ., – που χρησιμοποιείται από τους ανθρώπους Q: Πώς γίνεται η αντιστοίχιση ονομάτων σε διευθύνσεις και αντίστροφα? Application Layer

48 DNS: υπηρεσίες, δομή DNS services Γιατί όχι κεντρικοποιημένο DNS?
Μετάφραση hostname σε IP διεύθυνση host aliasing - ψευδώνυμα canonical, alias names mail server aliasing - ψευδώνυμα Κατανομή φόρτου Κλωνοποιημένοι Web servers: Πολλές IP addresses αντιστοιχούν σε ένα όνομα Γιατί όχι κεντρικοποιημένο DNS? Μοναδικό σημείο αποτυχίας Μεγάλη κίνηση Βάση δεδομένων που να τοποθετηθεί κάπου κεντρικά Διαχείριση A: Κυρίως δεν επεκτείνεται Application Layer

49 DNS: Κατανεμημένη, ιεραρχική βάση
Root DNS Servers com DNS servers org DNS servers edu DNS servers poly.edu DNS servers umass.edu yahoo.com amazon.com pbs.org Ο client θέλει την IP for 1st approx: Ο client ρωτά το root server για να βρει τον .com DNS server Ο client ρωτά τον .com DNS server για να βρει τον amazon.com DNS server Ο client ρωτά τον amazon.com DNS server για να πάρει την IP του Application Layer

50 DNS: root name servers Είναι σημεία επαφής των τοπικών name servers που δεν επιλύουν (resolve) τα ονόματα root name server: Επικοινωνεί με τον εξουσιοδοτημένο name server (authoritative) αν δεν γνωρίζει την αντιστοιχία (mapping) Παίρνει την αντιστοιχία και την επιστρέφει στον τοπικό name server c. Cogent, Herndon, VA (5 other sites) d. U Maryland College Park, MD h. ARL Aberdeen, MD j. Verisign, Dulles VA (69 other sites ) k. RIPE London (17 other sites) i. Netnod, Stockholm (37 other sites) e. NASA Mt View, CA f. Internet Software C. Palo Alto, CA (and 48 other sites) m. WIDE Tokyo (5 other sites) 13 root name “servers” worldwide a. Verisign, Los Angeles CA (5 other sites) b. USC-ISI Marina del Rey, CA l. ICANN Los Angeles, CA (41 other sites) g. US DoD Columbus, OH (5 other sites) Application Layer

51

52 TLD, εξουσιοδοτημένοι servers
top-level domain (TLD) servers: Υπεύθυνοι για com, org, net, edu, aero, jobs, museums, και όλα τα domains των χωρών, π.χ.: gr, uk, fr, ca, jp Η Network Solutions συντηρεί τους servers για το .com TLD Educause for .edu TLD Εξουσιοδοτημένοι DNS servers: Οι DNS server(s) ενός οργανισμού, που παρέχουν εξουσιοδοτημένη αντιστοίχιση ονομάτων σε IP που ανήκουν στην «περιοχή» του οργανισμού Συντηρούνται από τον οργανισμό ή τον Service Provider Application Layer

53 Τοπικός DNS name server
Δεν ανήκει αυστηρά στην ιεραρχία Κάθε ISP (residential ISP, company, university) έχει ένα δικό του (π.χ. ΠΑΔΑ) Συνήθως ονομάζεται “default name server” Όταν ένας host κάνει DNS ερώτηση, αυτή στέλνεται στον τοπικό DNS. Έχει μία τοπική cache των πρόσφατων αντιστοιχίσεων (μπορεί να μην έχει ενημερωθεί πρόσφατα) Λειτουργεί σαν proxy, προωθώντας μηνύματα στην ιεραρχία Application Layer

54 DNS Παράδειγμα εύρεσης αντιστοιχίας
root DNS server 2 Ο host στο cis.poly.edu ζητά την IP address για gaia.cs.umass.edu 3 TLD DNS server 4 5 Επαναλαμβανόμενη ερώτηση (iterated query): Ο server που δέχεται το αίτημα απαντά με το όνομα του server πρέπει να ερωτηθεί “I don’t know this name, but ask this server” local DNS server dns.poly.edu 7 6 1 8 authoritative DNS server dns.cs.umass.edu requesting host cis.poly.edu gaia.cs.umass.edu Application Layer

55 authoritative DNS server
root DNS server 2 3 7 Αναδρομική ερώτηση (recursive query): Μεταφέρει το πρόβλημα της εύρεσης του ονόματος στον πιό πάνω server Μεγάλο φόρτο στα ψηλά επίπεδα της ιεραρχίας? 6 TLD DNS server local DNS server dns.poly.edu 4 5 1 8 authoritative DNS server dns.cs.umass.edu requesting host cis.poly.edu gaia.cs.umass.edu Application Layer

56 DNS: caching και ανανέωση εγγραφών
Μόλις ένας name server μάθει την αντιστοιχία, την αποθηκεύει (caching) Οι cache εγγραφές λήγουν (εξαφανίζονται μετά από κάποιο χρόνο (TTL) Οι TLD servers αποθηκεύονται στους τοπικούς servers Συνεπώς οι root name servers δεν δέχονται συχνά επισκέψεις Οι αποθηκευμένες εγγραφές μπορεί να είναι out-of-date (best effort name-to-address translation!) Αν το όνομα του host αλλάξει IP address, μπορεί να μην είναι ευρύτερα γνωστό στο διαδίκτυο έως ότου λήξουν όλα τα TTLs Μηχανισμοί update/notify έχουν προταθεί στο IETF standard RFC 2136 Application Layer

57 DNS records (εγγραφές)
DNS: κατανεμημένη βάση με αποθηκευμένα resource records (RR) RR format: (name, value, type, ttl) type=A name είναι ένα hostname value είναι μια IP address type=CNAME name είναι το ψευδώνυμο (alias name) για κάποιο “canonical” (πραγματικό name) π.χ. είναι πραγματικά το servereast.backup2.ibm.com value είναι το canonical name type=NS name είναι ένα domain (π.χ., uniwa.gr) value είναι το hostname του authoritative name server για αυτό το domain type=MX value είναι το όνομα του mailserver που σχετίζεται με το name Application Layer

58 Κεφάλαιο 2ο Application Layer
Ερωτήσεις ??? Δικτύωση Υπολογιστών: Προσέγγιση από πάνω προς τα κάτω 7η Έκδοση, 2016 J.F. Kurose, K.W. Ross [Εύδοξος: ] Application Layer


Κατέβασμα ppt "Κεφάλαιο 2ο Application Layer"

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


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