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

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

Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ) Διάλεξη #7: Επίπεδο Εφαρμογών (Application layer). Εργαστηριακές ασκήσεις στο εργαλείο προσομοίωσης δικτύων OPNET.

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


Παρουσίαση με θέμα: "Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ) Διάλεξη #7: Επίπεδο Εφαρμογών (Application layer). Εργαστηριακές ασκήσεις στο εργαλείο προσομοίωσης δικτύων OPNET."— Μεταγράφημα παρουσίασης:

1 Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ) Διάλεξη #7: Επίπεδο Εφαρμογών (Application layer). Εργαστηριακές ασκήσεις στο εργαλείο προσομοίωσης δικτύων OPNET Γαβαλάς Δαμιανός Εαρινό εξάμηνο

2 Περίληψη διάλεξης Γενικές αρχές και κατηγορίες δικτυακών εφαρμογών Ο ρόλος του Επιπέδου Εφαρμογών (Application Layer) Πρωτόκολλα Επιπέδου Εφαρμογών HTTP FTP SMTP DNS Εργαστηριακές ασκήσεις στο εργαλείο προσομοίωσης δικτύων

3

4 Το μοντέλο αναφοράς OSI (Open Systems Interconnection) Τα πακέτα στο επίπεδο δικτύου ονομάζονται datagrams Τα πακέτα στο data link layer ονομάζονται πλαίσια (frames) Τα πακέτα στο επίπεδο μεταφοράς ονομάζονται segments

5 Το μοντέλο αναφοράς TCP/IP

6 Παραδείγματα δικτυακών εφαρμογών Web Instant messaging (π.χ. chat) Remote login P2P file sharing Multi-user network games Audio και video Streaming Internet telephony Real-time video conference

7 Δημιουργία δικτυακών εφαρμογών Ανάπτυξη προγραμμάτων που: τρέχουν σε διαφορετικά συστήματα επικοινωνούν μέσω ενός δικτύου π.χ., Web: Το λογισμικό του Web server επικοινωνεί με το λογισμικό ενός browser Το επίπεδο εφαρμογών ΔΕΝ αφορά συσκευές του πυρήνα (core) των δικτύων, π.χ. routers Αυτές οι συσκευές δεν λειτουργούν στο επίπεδο μεταφοράς Ένας τέτοιος σχεδιασμός επιτρέπει τη γρήγορη ανάπτυξη εφαρμογών application transport network data link physical application transport network data link physical application transport network data link physical

8 Αρχιτεκτονικές δικτυακών εφαρμογών Client-server (μοντέλο πελάτη – διακομιστή) Peer-to-peer (P2P) (μοντέλο διομότιμης επικοινωνίας) Hybrid of client-server and P2P (υβριδικό μοντέλο πελάτη – διακομιστή και διομότιμης επικοινωνίας)

9 Αρχιτεκτονική client-server Διακομιστής (server): Ένας κόμβος που είναι πάντα ‘ανοικτός’ (always- on host) Σταθερή IP διεύθυνση Πολλαπλοί servers (server farms) για καλύτερη κλιμάκωση Πελάτες (clients): Επικοινωνούν με servers Δεν είναι πάντοτε on ή συνδεδεμένοι Μπορεί να έχουν δυναμικές IP διευθύνσεις Δεν επικοινωνούν απ’ ευθείας μεταξύ τους

10 Αμιγής P2P αρχιτεκτονική Δεν υπάρχει κάποιος ‘always-on’ server Αυθαίρετη απευθείας επικοινωνία τελικών κόμβων (end systems) Οι επικοινωνούντες ομότιμοι κόμβοι (peers) δεν είναι πάντα συνδεδεμένοι ούτε έχουν απαραίτητα σταθερή IP διεύθυνση Παράδειγμα: Gnutella Αυτή η αρχιτεκτονική προσφέρει πολύ καλή κλιμάκωση (Highly scalable) Είναι όμως δύσκολη στη διαχείριση (difficult to manage)

11 Υβριδική αρχιτεκτονική client-server και P2P Napster H μεταφορά αρχείων είναι P2P Η αναζήτηση αρχείων είναι κεντρική (centralized): Οι Peers καταγράφουν το περιεχόμενό τους σε έναν κεντρικό server Οι Peers εκτελούν ερωτήματα στον κεντρικό server για να εντοπίσουν περιεχόμενο που τους ενδιαφέρει Instant messaging Online Chat μεταξύ των χρηστών με P2P Ο εντοπισμός της τοποθεσίας του χρήστη γίνεται κεντρικά: Ο χρήστης καταγράφει την IP διεύθυνσή του σε ένα κεντρικό server όταν συνδέεται online Ο χρήστης βρίσκει μέσω του κεντρικού server τις IP διευθύνσεις των φίλων του

12 Επικοινωνία μεταξύ διεργασιών (Processes communication) Διεργασία (Process): πρόγραμμα που τρέχει σε έναν Η/Υ Μέσα στον ίδιο H/Y, δύο διεργασίες μπορούν να επικοινωνήσουν χρησιμοποιώντας inter-process communication (ορίζεται από το λειτουργικό σύστημα) Διεργασίες που τρέχουν σε διαφορετικούς Η/Υ επικοινωνούν με την ανταλλαγή μηνυμάτων (messages) Client process: η διεργασία που αρχίζει μια επικοινωνία Server process: η διεργασία που περιμένει διεργασίες πελατών να έρθουν σε επαφή μαζί της

13 Διευθυνσιοδότηση διεργασιών (Addressing processes) Μια διεργασία πρέπει να έχει ένα αναγνωριστικό (διεύθυνση) για να λάβει μηνύματα Κάθε κόμβος έχει μια μοναδική 32-bit IP διεύθυνση Ερώτηση: αρκεί η IP διεύθυνση του Η/Υ όπου τρέχει μια διεργασία ως διεύθυνση της διεργασίας; Απάντηση: Όχι, πολλές διεργασίες μπορεί να εκτελούνται ταυτόχρονα στον ίδιο Η/Υ Η διεύθυνση μια διεργασίας περιλαμβάνει την IP διεύθυνση του Η/Υ και τον αριθμό θύρας (port number) που σχετίζεται με τη διεργασία Παραδείγματα port numbers: HTTP server: 80 Mail server: 25

14 Ένα πρωτόκολλο του Application layer ορίζει: Τον τύπο των μηνυμάτων που ανταλλάσσονται, π.χ., request & response μηνύματα Σύνταξη των μηνυμάτων: ποια πεδία περιλαμβάνουν, πως απεικονίζονται τα πεδία Σημασία της πληροφορίας που ενσωματώνεται σε κάθε πεδίο Κανόνες σχετικά με το πότε και πως οι διεργασίες στέλνουν και αποκρίνονται σε μηνύματα Δημόσια (Public-domain) πρωτόκολλα: Ορίζονται σε RFCs (Requests for Comments) Επιτρέπουν τη διαλειτουργικότητα π.χ., HTTP, SMTP Ιδιωτικά (Proprietary) πρωτόκολλα: π.χ., KaZaA

15 Απαιτήσεις κοινών εφαρμογών από την υπηρεσία μεταφοράς (Transport service) Application file transfer Web documents real-time audio/video stored audio/video interactive games instant messaging Data loss no loss loss-tolerant no loss Bandwidth elastic audio: 5kbps-1Mbps video:10kbps-5Mbps same as above few kbps up elastic Time Sensitive όχι ναι, 100’s msec ναι, λίγα secs ναι, 100’s msec ναι Elastic: όσο bandwidth περισσέψει Loss-tolerant: ανεκτικότητα σε απώλειες

16 Πρωτόκολλα μεταφοράς (transport protocols) στο Internet TCP: Με σύνδεση (connection-oriented): απαιτείται εγκατάσταση σύνδεσης μεταξύ των διεργασιών πελάτη και διακομιστή Αξιόπιστη μεταφορά (reliable transport) μεταξύ της διεργασίας- αποστολέα και της διεργασίας- παραλήπτη Έλεγχος ροής (flow control): ο αποστολέας δεν κατακλύζει τον παραλήπτη με πολλά δεδομένα Έλεγχος συμφόρησης (congestion control): ο αποστολέας δεν υπερφορτώνει το δίκτυο Δεν παρέχει: εγγυήσεις για χρονισμό (timing) και χρήση του ελάχιστου δυνατού bandwidth UDP: Γρήγορη αλλά αναξιόπιστη μεταφορά δεδομένων ανάμεσα σε επικοινωνούντες διεργασίες Δεν παρέχει: εγκατάσταση σύνδεσης, αξιοπιστία, έλεγχο ροής, έλεγχο συμφόρησης, εγγυήσεις για χρονισμό (timing) και χρήση του ελάχιστου δυνατού bandwidth

17 Εφαρμογές Internet: πρωτόκολλα του Application και Transport layer Application remote terminal access Web file transfer streaming multimedia Internet telephony Application layer protocol SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] ιδιωτικό (π.χ. RealNetworks) ιδιωτικό (π.χ., Dialpad) Underlying transport protocol TCP TCP ή UDP τυπικά UDP

18 Σύνοψη του HTTP (HyperText Markup Language) Πρωτόκολλο του Web, λειτουργεί στο application layer Μοντέλο client/server client: ένας browser που στέλνει αιτήσεις, λαμβάνει και εμφανίζει Web αντικείμενα server: Web server που στέλνει αντικείμενα σε απόκριση εισερχόμενων αιτήσεων HTTP 1.0: RFC 1945 HTTP 1.1: RFC 2068 Web αντικείμενα: HTML, JPEG, Java applet, audio, video files Κάθε web αντικείμενο έχει μια URL διεύθυνση: PC running Explorer Server running Apache Web server Mac running Navigator HTTP request HTTP response host name path name

19 Σύνοψη του HTTP Χρησιμοποιεί TCP: Ο client στέλνει μια αίτηση για TCP σύνδεση με το server, στην port 80 Ο server δέχεται την TCP σύνδεση από τον client HTTP μηνύματα (application- layer protocol messages) exchanged between browser (HTTP client) and Web server (HTTP server) TCP connection closed Το HTTP είναι ‘αμνήμων’ (“stateless”) Ο server δεν διατηρεί πληροφορία σχετικά με προηγούμενες αιτήσεις πελατών

20 HTTP συνδέσεις Όχι-επίμονο (Non- persistent) HTTP Το πολύ ένα web αντικείμενο μπορεί να σταλεί πάνω από κάθε TCP σύνδεση π.χ. για να «κατεβεί» μια web σελίδα με 10 εικόνες θα χρειαστούν 11 TCP συνδέσεις (εγκατάσταση και τερματισμός) Το HTTP/1.0 χρησιμοποιεί non- persistent HTTP Επίμονο (Persistent) HTTP Πολλά web αντικείμενα μπορούν μέσω μίας μόνο TCP σύνδεσης σε έναν web browser Το HTTP/1.1 χρησιμοποιεί persistent συνδέσεις

21 HTTP request μήνυμα Δύο τύποι HTTP μηνυμάτων: request, response HTTP request μήνυμα: ASCII (μορφή αναγνώσιμη από ανθρώπους) GET /somedir/page.html HTTP/1.1 Host: User-agent: Mozilla/4.0 Connection: close Accept-language:fr (extra carriage return, line feed) request line (GET, POST, HEAD εντολές) header lines Carriage return, line feed indicates end of message

22 HTTP request μήνυμα: γενική μορφή

23 HTTP response μήνυμα HTTP/ OK Connection close Date: Thu, 06 Aug :00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998 …... Content-Length: 6821 Content-Type: text/html data data data data data... status line (protocol status code status phrase) header lines data, e.g., requested HTML file ΗΤΤP status code

24 HTTP response status codes 200 OK request succeeded, requested object later in this message 301 Moved Permanently requested object moved, new location specified later in this message (Location:) 400 Bad Request request message not understood by server 404 Not Found requested document not found on this server 505 HTTP Version Not Supported In first line in server->client response message. A few sample codes:

25 Αποθηκεύοντας στοιχεία για τη διάδραση χρηστών με server: cookies Πολλά μεγάλα Web sites χρησιμοποιούν cookies Τέσσερα στοιχεία: 1) cookie header γραμμή στο HTTP response μήνυμα 2) cookie header line στο HTTP request μήνυμα 3) Το cookie file διατηρείται στον Η/Υ του χρήστη και το διαχειρίζεται ο browser του χρήστη 4) Αποθήκευση δεδομένων στη βάση δεδομένων του Web site Παράδειγμα: Ο Τάκης συνδέεται στο Internet πάντα από τον ίδιο Η/Υ Επισκέπτεται ένα συγκεκριμένο e-commerce site για πρώτη φορά Όταν οι αρχικές HTTP αιτήσεις φθάνουν στο site, το site δημιουργεί ένα μοναδικό ID και το αποθηκεύει στη ΒΔ του

26 Λειτουργία των Cookies client server usual http request msg usual http response + Set-cookie: 1678 usual http request msg cookie: 1678 usual http response msg usual http request msg cookie: 1678 usual http response msg cookie- specific action cookie- spectific action server creates ID 1678 for user entry in backend database access Cookie file amazon: 1678 ebay: 8734 Cookie file ebay: 8734 Cookie file amazon: 1678 ebay: 8734 μια βδομάδα αργότερα:

27 Χρήσεις των cookies Εξουσιοδότηση πρόσβασης (authorization) Καλάθια αγορών (shopping carts) Προτάσεις (recommendations)

28 Προσωρινή αποθήκευση Web αντικειμένων: web caches (proxy server) Ο browser στέλνει όλα τα HTTP requests σε ένα ενδιάμεσο (cache) Αν το αιτούμενο αντικείμενο υπάρχει στο cache, το cache θα το επιστρέψει Διαφορετικά, το cache θα προωθήσει την αίτηση στον (origin) που θα επιστρέψει το αντικείμενο στον client Στόχος: να ικανοποιήσουμε τις αιτήσεις των clients χωρίς απαραίτητα τη βοήθεια του web server που αποθηκεύει το αιτούμενο περιεχόμενο client Proxy server client HTTP request HTTP response HTTP request HTTP response origin server origin server Ερώτηση: ποια είναι τα πλεονεκτήματα και ποια τα προβλήματα που εντοπίζετε σε αυτή τη μέθοδο;

29 Προσωρινή αποθήκευση Web αντικειμένων: web caches (proxy server) To Cache (proxy server) λειτουργεί ως client και server Γιατί Web caching? Μειώνει το χρόνο απόκρισης για την εξυπηρέτηση client requests Μειώνει την κίνηση (traffic) στο access link του οργανισμού origin servers Internet Δίκτυο οργανισμού 10 Mbps LAN 1.5 Mbps access link cache οργανισμού Μειονεκτήματα: Τα cached αντικείμενα μπορεί να έχουν στο μεταξύ ενημερωθεί στον origin server Απαιτείται (μεγάλος) αποθηκευτικός χώρος στον proxy server

30 Υπο συνθήκη (Conditional) GET O cache συχνά ενημερώνει το περιεχόμενό του Στόχος: ο server αν μη στείλει το αντικείμενο αν το cache έχει μία πρόσφατη έκδοσή του Cache: Ορίζεται η ημερομηνία του cached copy στο HTTP request If-modified-since: Server: το response δεν περιέχει δεδομένα (το αντικείμενο) αν το αντικείμενο δεν έχει τροποποιηθεί από τότε που έγινε cached: HTTP/ Not Modified cache server HTTP request msg If-modified-since: HTTP response HTTP/ Not Modified To αντικείμενο δεν έχει τροποποιηθεί HTTP request msg If-modified-since: HTTP response HTTP/ OK To αντικείμενο έχει τροποποιηθεί

31 FTP: File Transfer Protocol (Πρωτόκολλο Μεταφοράς Αρχείων) Μεταφορά αρχείων από/προς ένα απομακρυσμένο Η/Υ (FTP server) client/server μοντέλο client: αρχίζει τη διαδικασία της μεταφοράς (από/προς τον FTP server) server: o απομακρυσμένος Η/Υ ftp: RFC 959 Ο ftp server είναι λογισμικό που «τρέχει» στην port 21 file transfer FTP server FTP user interface FTP client local file system remote file system user at host

32 FTP: ξεχωριστές συνδέσεις για μεταφορά εντολών και για μεταφορά αρχείων Ο FTP client ανοίγει μια TCP σύνδεση με την εφαρμογή FTP server στην port 21 Ο Client περνάει από μια διαδικασία εξουσιοδότησης πρόσβασης (Login) Ο Client μπορεί να επισκοπήσει (browse) τους απομακρυσμένους φακέλους στέλνοντας FTP εντολές μέσα από την ίδια TCP σύνδεση Όταν ο server δέχεται μία εντολή για μεταφορά αρχείου, ο server ανοίγει μία “FTP data” TCP σύνδεση με τον client Μετά την ολοκλήρωση της μεταφοράς κάθε αρχείου, ο server κλείνει την “FTP data” σύνδεση Ξεχωριστές FTP data συνδέσεις για κάθε μεταφορά αρχείου FTP client FTP server TCP control connection port 21 TCP data connection port 20

33 FTP εντολές, αποκρίσεις Δείγματα εντολών: Στέλνονται ως ASCII κείμενο πάνω από τη “σύνδεση ελέγχου” USER username PASS password LIST επιστρέφει τη λίστα των αρχείων του τρέχοντος φακέλου RETR filename ανακτάει (get) ένα αρχείο STOR filename ανεβάζει (put) ένα αρχείο στον FTP server Δείγματα κωδικών που επιστρέφει ο FTP server: status code και κείμενο (όπως στο HTTP) 331 Username OK, password required 125 data connection already open; transfer starting 425 Can’t open data connection 452 Error writing file

34 Electronic Mail Τρία κύρια συστατικά: user agents (πράκτορες χρηστών) mail servers simple mail transfer protocol (SMTP) User Agent Πρόγραμμα για την σύνταξη, επεξεργασία, ανάγνωση, διαχείριση μηνυμάτων π.χ., Eudora, Outlook, Netscape Messenger Εξερχόμενα και εισερχόμενα μηνύματα αποθηκεύονται στον mail server user mailbox outgoing message queue mail server user agent user agent user agent mail server user agent user agent mail server user agent SMTP

35 Electronic Mail: mail servers Mail Servers Το mailbox αποθηκεύει εισερχόμενα μηνύματα για τους χρήστες Ουρά μηνυμάτων (message queue) εξερχόμενων s To SMTP πρωτόκολλο διευθετίζει την αποστολή μηνυμάτων μεταξύ mail servers Ισχύει το client/server μοντέλο: client: ο αποστολέας mail server “server”: ο αποδέκτης mail server mail server user agent user agent user agent mail server user agent user agent mail server user agent SMTP

36 Electronic Mail: SMTP [RFC 2821] Χρησιμοποιεί TCP για την αξιόπιστη μεταφορά μηνυμάτων από ένα client σε ένα server, port 25 Απευθείας μεταφορά από τον αποστολέα στον αποδέκτη mail server Τρεις φάσεις μεταφοράς Χειραψία (handshaking) Μεταφορά μηνυμάτων Τερματισμός σύνδεσης Αλληλεπίδραση εντολή/απόκριση (command/response interaction) Εντολές: ASCII text Αποκρίσεις: status code και κείμενο

37 Σενάριο: Η Αλίκη στέλνει στον Bob 1) Η Αλίκη χρησιμοποιεί τον User Agent (UA) για να συντάξει το μήνυμα προς τον (“to”) 2) Ο UA της Αλίκης στέλνει το μήνυμα στον mail server της. Το μήνυμα τοποθετείται στην ουρά μηνυμάτων (message queue) 3) Ο mail server της Αλίκης (Client) ανοίγει μια TCP σύνδεση με τον mail server του Bob 4) O SMTP client στέλνει το μήνυμα ης Αλίκης μέσω της TCP σύνδεσης 5) Ο mail server του Bob τοποθετεί το εισερχόμενο μήνυμα στο προσωπικό του mailbox 6) Ο Bob κατεβάζει και διαβάζει το μήνυμα χρησιμοποιώντας τον user agent του user agent mail server mail server user agent

38 Δείγμα 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: 250 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

39 SMTP: τελικά σχόλια Το SMTP χρησιμοποιεί persistent συνδέσεις (μεταφορά πολλών αντικειμένων πάνω από την ίδια σύνδεση) Το SMTP απαιτεί το μήνυμα (header & body) σε 7-bit ASCII Ο SMTP server ψάχνει τους χαρακτήρες CRLF.CRLF για να εντοπίσει το τέλος του μηνύματος Σύγκριση με HTTP: HTTP: pull SMTP: push Και τα δύο χρησιμοποιούν ASCII command/response συναλλαγές, status codes HTTP: κάθε αντικείμενο ενσωματώνεται σε ξεχωριστό response μήνυμα SMTP: πολλαπλά αντικείμενα μπορούν να σταλούν σε ένα multipart μήνυμα

40 Μορφή Mail μηνύματος SMTP: πρωτόκολλο για ανταλλαγή s RFC 822: πρότυπο που ορίζει τη μορφή (format) των μηνυμάτων header lines, e.g., To: From: Subject: body το “μήνυμα”, μόνο ASCII χαρακτήρες header body blank line

41 Μορφή mail μηνύματος: πολυμεσικές επεκτάσεις (multimedia extensions) MIME: multimedia mail extension, RFC 2045, 2056 Πρόσθετες γραμμές στην κεφαλίδα του μηνύματος δηλώνουν τον MIME τύπο περιεχομένου From: To: Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data base64 encoded data multimedia δεδομένα, τύπος, υπο-τύπος, δηλώσεις παραμέτρων Μέθοδος κωδικοποίησης δεδομένων MIME version κωδικοποιημένα δεδομένα

42 Πρωτόκολλα πρόσβασης σε mail servers (Mail access protocols) Ο ρόλος του SMTP είναι η παράδοση / αποθήκευση μηνυμάτων στον mail server του παραλήπτη Ο ρόλος του Mail access protocol: ανάκτηση μηνυμάτων από τον server POP: Post Office Protocol [RFC 1939] Εξακρίβωση ταυτότητας (authorization) μεταξύ user agent server και download IMAP: Internet Mail Access Protocol [RFC 1730] Περισσότερες λειτουργίες (πιο πολύπλοκο) Χειρισμός αποθηκευμένων μηνυμάτων στο server HTTP: Hotmail, Yahoo! Mail, etc. user agent sender’s mail server user agent SMTP access protocol receiver’s mail server

43 POP3 protocol Φάση εξακρίβωσης ταυτότητας εντολές client: user: ορίζει το username pass: password Αποκρίσεις του server +OK -ERR Φάση συναλλαγής, client: list: list message numbers retr: retrieve message by number dele: delete quit C: list S: S: S:. C: retr 1 S: S:. C: dele 1 C: retr 2 S: S:. C: dele 2 C: quit S: +OK POP3 server signing off S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on

44 Ρυθμίσεις

45 DNS: Domain Name System (Σύστημα Ονομάτων Περιοχής) Άνθρωποι: πολλά ‘αναγνωριστικά’: Αριθμός ταυτότητας, όνομα, αριθμός διαβατηρίου,... Internet κόμβοι, routers: IP address (32 bit) – χρησιμοποιούνται για την διευθυνσιοδότηση των IP datagrams “όνομα”, π.χ., ww.yahoo.com – χρησιμοποιείται από ανθρώπους Ερώτηση: αντιστοίχηση μεταξύ IP διευθύνσεων και ονομάτων;;; Domain Name System: Κατανεμημένη βάση δεδομένων υλοποιείται ως μία ιεραρχία πολλών name servers Είναι ένα application-layer πρωτόκολλο με το ρόλο να διευθετήζει την επικοινωνία μεταξύ κόμβων, routers, name servers για την επίλυση (resolve) ονομάτων (διεύθυνση/όνομα μετάφραση)

46 DNS Γιατί όχι κεντρικό DNS;;; μοναδικό σημείο αποτυχίας (single point of failure) μεγάλος όγκος κίνησης (traffic volume) μακρινή απόσταση ως την κεντρική ΒΔ & απόκριση (distant centralized database)  δεν έχει καλή κλιμάκωση (low scalability) DNS υπηρεσίες Μετάφραση Hostname σε IP διεύθυνση Κατανομή φόρτου (Load distribution) Πολλαπλοί πανομοιότυποι Web servers: σύνολο IP διευθύνσεων για ένα όνομα

47 Root DNS Servers com DNS servers org DNS serversedu DNS servers poly.edu DNS servers umass.edu DNS servers yahoo.com DNS servers amazon.com DNS servers pbs.org DNS servers Κατανεμημένη, Ιεραρχική Database Ένας Client θέλει την IP του 1η μέθοδος: Ο Client στέλνει ένα ερώτημα (queries) έναν root server για να βρει τον com DNS server Ο Client στέλνει ένα ερώτημα στον com DNS server για να βρει τον amazon.com DNS server Ο Client στέλνει ένα ερώτημα στον amazon.com DNS server για να βρει την IP address του

48 DNS: Root name servers Ο τοπικός name server έρχεται σε επαφή με τον root name server root name server: έρχεται σε επαφή με τον κατάλληλο (authoritative) name server αν το όνομα που ζητείται δεν είναι γνωστό Βρίσκει την αντιστοίχηση Επιστρέφει την αντιστοίχηση στον τοπικό name server 13 root name servers παγκοσμίως b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 17 other locations) i Autonomica, Stockholm (plus 3 other locations) k RIPE London (also Amsterdam, Frankfurt) m WIDE Tokyo a Verisign, Dulles, VA c Cogent, Herndon, VA (also Los Angeles) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 11 locations)

49 TLD και Authoritative Servers Top-level domain (TLD) servers: υπεύθυνοι για com, org, net, edu, etc, και όλα τα top-level domains χωρών uk, fr, ca, jp. Network solutions maintains servers for com TLD Educause for edu TLD Authoritative DNS servers: DNS servers των οργανισμών, παρέχουν hostname IP αντιστοιχίσεις για τους servers του οργανισμού (π.χ., Web και mail). Μπορεί να διατηρούνται από τον οργανισμό ή τον παροχέα υπηρεσιών

50 Τοπικός Name Server Δεν ανήκει απαραίτητα στην ιεραρχία Κάθε ISP (εμπορικός ISP, εταιρία, παν/μιο) διαθέτει ένα τοπικό DNS Αποκαλείται και “default name server” Όταν ένας κόμβος εκτελεί ένα DNS ερώτημα, το ερώτημα στέλνεται στον τοπικό DNS server Λειτουργεί ως ενδιάμεσος (proxy), προωθεί το ερώτημα στην ιεραρχία

51 requesting host cis.poly.edu gaia.cs.umass.edu root DNS server τοπικός DNS server dns.poly.edu authoritative DNS server dns.cs.umass.edu 7 8 TLD DNS server Παράδειγμα Ο κόμβος cis.poly.edu θέλει να βρει την IP διεύθυνση του gaia.cs.umass.edu

52 requesting host cis.poly.edu gaia.cs.umass.edu root DNS server local DNS server dns.poly.edu authoritative DNS server dns.cs.umass.edu 7 8 TLD DNS server 3 Αναδρομικά ερωτήματα (recursive queries) Αναδρομικό (iterative) ερώτημα: Μεταφέρει το βάρος της επίλυσης του ονόματος από τον τοπικό στους root και TLD servers μεγάλος φόρτος! Επαναληπτικό (recusrsive) ερώτημα: Ο name server με τον οποίο ήρθαμε σε επαφή απαντάει με την IP που αντιστοιχεί στο όνομα που στείλαμε Αν δεν το ξέρει: “Δεν ξέρω αυτό το όνομα, αλλά ρώτησε αυτό το name server”

53 Παράδειγμα εκτέλεσης ερωτήματος με αναδρομή (recursive)

54 DNS: προσωρινή αποθήκευση (caching) και ενημέρωση (updating) εγγραφών Μόλις κάποιος name server μάθει κάποια νέα αντιστοίχηση, την αποθηκεύει (caches) Οι cache εγγραφές λήγουν (timeout) μετά από κάποιο χρόνο Οι IP διευθύνσεις των TLD servers είναι τυπικά αποθηκευμένες στους τοπικούς name servers Έτσι οι τοπικοί name servers δεν επισκέπτονται συχνά τους root name servers

55 DNS εγγραφές (records) DNS: κατανεμημένη αποθήκευση resource records (RR) σε ΒΔ Type=NS name είναι περιοχή (e.g. foo.com) value είναι IP διεύθυνση του authoritative name server αυτής της περιοχής μορφή RR: (name, value, type, ttl) Type=A name είναι όνομα κόμβου (hostname) value είναι IP διεύθυνση Type=CNAME name είναι ψευδο-όνομα (alias) για κάποιο «κανονικό» (αληθινό) όνομα είναι στην πραγματικότητα servereast.backup2.ibm.com value είναι το αληθινό όνομα Type=MX value είναι το όνομα του mailserver που συσχετίζεται με το name ttl: time to live (μετά από πόσο χρόνο θα λήξει η εγγραφή)

56 DNS πρωτόκολλο: μηνύματα DNS πρωτόκολλο: query και reply μηνύματα, και τα δύο με την ίδια μορφή μηνύματος (format) Κεφαλίδα μηνύματος identification: 16-bit α/α (#) για ερώτημα, η απάντηση στην ερώτηση χρησιμοποιεί τον ίδιο # Flags (σημαίες): query ή reply ζητείται αναδρομή (recursion) recursion διαθέσιμη η απάντηση είναι authoritative

57 DNS πρωτόκολλο: μηνύματα Όνομα, τύπος πεδίων για ένα ερώτημα RRs σε απάντηση ερωτήματος εγγραφές για authoritative servers επιπλέον “βοηθητική” πληροφορία που μπορεί να χρησιμοποιηθεί

58 Εισαγωγή εγγραφών στο DNS Παράδειγμα: μόλις δημιουργήσαμε την εταιρία “Network Utopia” Θέλουμε να καταγράψουμε το όνομα networkuptopia.com σε κάποιον DNS (registrar) Πρέπει να παρέχουμε στον registrar τα ονόματα και IP διευθύνσεις του authoritative name server (primary and secondary) O Registrar εισάγει RRs (resource records) στον “com TLD server”: (networkutopia.com,dns1.networkutopia.com,NS) (dns1.networkutopia.com, , A) Type: domain Type: host

59

60 OPNET Εργαλείο προσομοίωσης δικτύων (network simulation tool) Γιατί χρειάζονται τα εργαλεία προσομοίωσης δικτύων; Προσμοιώνουν τον πραγματικό κόσμο στην οθόνη του υπολογιστή Για ακαδημαϊκούς σκοπούς Δυνατότητα σχεδιασμού δικτύων (network models) με ρεαλιστικά μέσα μετάδοσης, δικτυακές συσκευές, δικτυακά πρωτόκολλα Βοηθούν στην κατανόηση της λειτουργίας των δικτύων και των επιπτώσεων της αύξησης του αριθμού χρηστών ή της δικτυακής κίνησης (traffic) Επιλογή στατιστικών (από όλο το δίκτυο ή μια συγκεκριμένη συσκευή) που θα συλλεχθούν από την προσομοίωση «Τρέξιμο» προσομοίωσης, επισκόπηση και κατανόηση παραγόμενων στατιστικών Για τους διαχειριστές δικτύων Ποιο φθηνή λύση από το να αγοράσεις και να στήσεις ένα δίκτυο που θα αποδειχθεί μη λειτουργικό στην πράξη Ανάλυση απαιτήσεων χρηστών, εφαρμογών και (σε συνδυασμό με μια ανάλυση κόστους) προσομοίωση δικτυακών λύσεων και επιλογή εκείνης με το καλύτερο λόγο «value for money» Αντίστοιχα, προσομοίωση δικτυακών λύσεων για επέκταση (upgrade) υφιστάμενων λύσεων

61 Μεθοδολογία Προσομοίωσης Αναλυτική παρουσίαση της μεθοδολογίας που ακολουθείται Συνοπτική παρουσίαση της μεθοδολογίας που ακολουθείται

62 Μικρής κλίμακας τοπικά δίκτυα Η σημερινή εργαστηριακή άσκηση στο OPNET επικεντρώνει στην επέκταση του δικτύου μικρής κλίμακας που δημιουργήσαμε στο προηγούμενο μάθημα Στο τέλος της άσκησης θα έχουμε: δημιουργήσει μια νέα δικτυακή τοπολογία (σενάριο) που θα αποτελεί επέκταση της προηγούμενης συλλέξει στατιστικές μετρήσεις για την απόδοση του (νέου) δικτύου συγκρίνει τις μετρήσεις αυτές μεταξύ των δύο ‘όψεων’ του δικτύου (σεναρίου)

63 Δημιουργία νέου project H σχεδίαση γίνεται στον Project Editor που εμφανίζεται εξ’ ορισμού με τη δημιουργία ενός project H δημιουργία ενός μοντέλου δικτύου (network model) προϋποθέτει τη δημιουργία ενός σεναρίου που ενσωματώνεται σε ένα project To project είναι ένα σύνολο από συσχετιζόμενα σενάρια που επιτρέπουν τη διερεύνηση μιας άλλης πλευράς του δικτύου Σε κάθε ένα από τα σενάρια αυτά εξετάζεται διαφορετική προσέγγιση του δικτύου Τα βασικά χαρακτηριστικά καθορίζονται μέσω του Startup Wizard

64 Project Editor window

65 Project Editor buttons

66 Δημιουργία ενός δικτύου: Τοπολογία – Χρήση του Rapid Configuration wizard Δημιουργεί ένα δίκτυο επιλέγοντας: Την τοπολογία του δικτύου Τους τύπους των κόμβων του δικτύου Κόμβος (node): συμβολίζει ένα πραγματικό δικτυακό αντικείμενο που μπορεί να μεταδίδει και να λαμβάνει δεδομένα Συνδέσεις (links): Επικοινωνιακό μέσο που διασυνδέει κόμβους μεταξύ τους.

67 Δημιουργία του δικτύου: Rapid Configuration wizard Επιλέξτε Topology  Rapid Configuration  Star Προσδιορίστε τα node models και link models του δικτύου. Τα models ακολουθούν το παρακάτω σχήμα ονομασίας: _..._ _ _ ορίζει το πρωτόκολλο(α) που υποστηρίζονται από το μοντέλο : συντόμευση της γενικής λειτουργίας του μοντέλου : δείχνει το επίπεδο κληρονομικότητας (derivation) του μοντέλου

68 Δημιουργία του δικτύου: Rapid Configuration wizard

69

70 Δημιουργία του δικτύου: προσθήκη server Έχοντας δημιουργήσει τη γενική δικτυακή τοπολογία, πρέπει να προσθέσουμε ένα διακομιστή (server) Θα χρησιμοποιήσουμε τη 2η μέθοδο δημιουργίας δικτυακών αντικειμένων: θα «τραβήξουμε» αντικείμενα από την παλέτα αντικειμένων (object palette) στο χώρο εργασίας (workspace) Αν δεν είναι ήδη ανοικτή, ανοίξτε την object palette με κλικ στο αντίστοιχο πλήκτρο Τραβήξτε το Sm_Int_server αντικείμενο στο workspace. Στη συνέχεια πρέπει να συνδέσουμε το server στο υπόλοιπο δίκτυο με ένα 10BaseT link Κάνετε κλικ στο 10BaseT link object στην παλέτα Κάνετε ένα κλικ στο server και ένα στο switch (στο κέντρο του star) ώστε να σχεδιασθεί ένα link που θα συνδέει τα δύο αντικείμενα

71 Δημιουργία του δικτύου: ορισμός traffic Τέλος, πρέπει να προστεθούν αντικείμενα (configuration objects) για τον προσδιορισμό της δικτυακής κίνησης που προέρχεται από εφαρμογές (application traffic). Η κίνηση του δικτύου προστίθεται μέσω αντικειμένων διαμόρφωσης της παλέτας αντικειμένων Αντικείμενο καθορισμού εφαρμογών (application definition object): εφαρμογές που «τρέχουν» στο δίκτυο (π.χ. ) και συχνότητα με την οποία στέλνουν / ζητούν δεδομένα Αντικείμενο καθορισμού προφίλ χρηστών (profile definition objects): Είδος των εφαρμογών που χρησιμοποιεί (π.χ. light database access) Συχνότητα με την οποία καλεί τη συγκεκριμένη εφαρμογή

72 Δημιουργία του δικτύου: ορισμός traffic Στα πλαίσια αυτής της άσκησης, εισάγουμε από την παλέτα αντικειμένων (object palette): ένα application definition object με τις προκαθορισμένες ρυθμίσεις (default configurations) των standard applications ένα profile definition object με ένα προφίλ που μοντελοποιεί πρόσβαση σε βάση δεδομένων

73 Profile definition object Η δημιουργία του δικτύου έχει πλέον ολοκληρωθεί και είμαστε έτοιμοι για τη συλλογή στατιστικών

74 Δημιουργία του δικτύου: συλλογή στατιστικών Μπορούμε να συλλέξουμε στατιστικά για μεμονωμένα αντικείμενα του δικτύου (object statistics) ή για ολόκληρο το δίκτυο (global statistics) Τα στατιστικά επιλέγονται για κάθε σενάριο ξεχωριστά και αφορούν μόνο το σενάριο για το οποίο έχουν επιλεχθεί Μας ενδιαφέρει να συλλέξουμε στατιστικά που θα απαντούν ερωτήματα όπως: Θα αντέξει ο server τον επιπλέον φόρτο από ένα δεύτερο δίκτυο; Η συνολική καθυστέρηση (total delay) στο δίκτυο θα είναι αποδεκτή όταν εγκατασταθεί το 2ο δίκτυο; Για να απαντηθούν αυτές οι ερωτήσεις πρέπει να έχουμε εικόνα της παρούσας κατάστασης του δικτύου (πριν επεκταθεί) Χρειαζόμαστε ένα object statistic (Server Load) και ένα global statistic (Ethernet delay)

75 Δημιουργία του δικτύου: συλλογή στατιστικών To Server load είναι ένα βασικό στατιστικό που αντανακλά την απόδοση όλου του δικτύου Right-click στον server node (node_31)  Choose Individual Statistics

76 Δημιουργία του δικτύου: συλλογή στατιστικών Συλλογή στατιστικών για τη συνολική καθυστέρηση στο δίκτυο Right-click στον κενό χώρο του workspace  Choose Individual Statistics

77 «Τρέξιμο» προσομοίωσης Επιλέξτε Simulation  Configure Discrete Event Simulation… ή κάνετε κλικ στο “configure / run simulation” πλήκτρο Πληκτρολογείστε Duration: 0,5 για να προσομοιώσετε μισή ώρα δικτυακής λειτουργίας Πατήστε ‘Run’ για να ξεκινήσει η προσομοίωση

78 «Τρέξιμο» προσομοίωσης Όσο εκτελείται η προσομοίωση, ένα πλαίσιο διαλόγου ενημερώνει για την πρόοδο της προσομοίωσης Για πόσο χρόνο εκτελείται η προσομοίωση Προσομοιωμένος χρόνος δικτυακής λειτουργίας

79 Επισκόπηση αποτελεσμάτων Right-click στον κενό χώρο του workspace  View Results Στην κορύφωσή του (peak) ο φόρτος (load) του server είναι λιγότερο από 6000 bits/second Αφού το δίκτυο σταθεροποιηθεί, η μέγιστη καθυστέρηση είναι περίπου 0.4 msec Αυτές οι τιμές θα συγκριθούν με την εικόνα του δικτύου μετά την αναβάθμισή του

80 Αναβάθμιση του δικτύου: δημιουργία διπλότυπου σεναρίου Ανάγκη για: Μελέτη εναλλακτικών περιπτώσεων Σχεδιασμός νέας τοπολογίας Επέκταση υπάρχουσας υποδομής Διερεύνηση ‘what-if’ σεναρίων Το νέο (αναβαθμισμένο) δίκτυο υλοποιείται στο OPNET ως διαφορετικό σενάριο, δημιουργώντας διπλότυπο (duplicate) του σεναρίου που ήδη υπάρχει

81 Αναβάθμιση του δικτύου Έχουμε δημιουργήσει ένα αρχικό (baseline) δίκτυο και συλλέξαμε στατιστικά για αυτό Είμαστε έτοιμοι να το αναβαθμίσουμε και να επιβεβαιώσουμε ότι εξακολουθεί να λειτουργεί ικανοποιητικά με επιπλέον φόρτο Για να εκτελέσουμε σύγκριση μεταξύ των δύο μορφών του ίδιου δικτύου, καλό είναι να αποθηκεύουμε το αρχικό ως ένα σενάριο και το αναβαθμισμένο ως άλλο σενάριο Θα αντιγράψουμε το αρχικό σενάριο και θα κάνουμε μόνο τις απαραίτητες αλλαγές στο δεύτερο σενάριο Αντιγραφή του αρχικού σεναρίου Επιλέξτε Scenarios  Duplicate Scenario... Κρατήστε το ίδιο όνομα σεναρίου, προσθέτοντας τη λέξη expansion στο τέλος Επιλέξτε OK.

82 Αναβάθμιση του δικτύου Η αναβάθμιση αφορά επέκταση του υφιστάμενου δικτύου σε ένα δεύτερο όροφο Ο δεύτερος όροφος θα έχει όμοια τοπολογία με τον πρώτο, μόνο που δεν θα έχει ξεχωριστό server Επιλέξτε Topology  Rapid Configuration Επιλέξτε Star και δώσετε τις ρυθμίσεις που φαίνονται στη διπλανή εικόνα

83 Αναβάθμιση του δικτύου: συνένωση των δικτύων των δύο ορόφων Αν δεν είναι ήδη ανοικτή, ανοίξτε την παλέτα αντικειμένων (object palette) Εισάγετε στο workspace έναν Cisco 2514 δρομολογητή (router) ανάμεσα στα δύο δίκτυα Συνδέστε τον Cisco router με τους 3Com switches (που βρίσκονται στο κέντρο κάθε star) με ένα 10BaseT link Κλείστε την object palette Αποθηκεύστε το project επιλέγοντας File  Save

84 Αναβάθμιση του δικτύου: τελική τοπολογία & εκτέλεση της προσομοίωσης Επιλέξτε Simulation  Configure Discrete Event Simulation και επιβεβαιώστε ότι η τιμή του Duration είναι 0,5 hours Πατήστε ‘Run’ για να «τρέξει» η προσομοίωση

85 Αναβάθμιση του δικτύου: Επισκόπηση αποτελεσμάτων Right-click στον κενό χώρο του workspace  View Results

86 Αναβάθμιση του δικτύου: Σύγκριση αποτελεσμάτων των δύο σεναρίων Right-click στον κενό χώρο του workspace  Compare Results

87 Αναβάθμιση του δικτύου: Ποιοτική αξιολόγηση αποτελεσμάτων Παρότι ο μέσος φόρτος (average load) του server είναι υψηλότερος στο αναβαθμισμένο δίκτυο, όπως αναμενόταν, δεν αυξάνεται σταθερά με την πάροδο του χρόνου, δείχνοντας ότι το δίκτυο παραμένει σταθερό Το δεύτερο γράφημα δείχνει ότι δεν υπάρχει σημαντική διαφορά στην καθυστέρηση του δικτύου (Ethernet delay). Ο φόρτος του server έχει αυξηθεί, όχι όμως και η καθυστέρηση

88 Μέτρηση χρήσης (utilization) της CPU του server και εξερχόμενου traffic από τον database server Προσθέστε ένα ακόμα στατιστικό: τη μέτρηση της χρήσης του επεξεργαστή (CPU) του server Θα πρέπει να ορίσετε το στατιστικό αυτό και στα δύο σενάρια και ξανατρέξετε και τις δύο προσομοιώσεις Για να «μετακινηθείτε» ανάμεσα σε διαφορετικά σενάρια επιλέξτε Scenarios  Switch to scenario Ομοίως, προσθέστε ένα στατιστικό για τη μέτρηση της κίνησης (traffic, bytes/sec) που προέρχεται από τον Database server (που είναι εγκατεστημένος στον server του δικτύου) CPU Utilization

89 Προσθήκη νέας κίνησης (traffic) στο δίκτυο Δημιουργήστε ένα διπλότυπο του τελευταίου σεναρίου Σε αυτό το νέο σενάριο θα προσομοιώσουμε τη λειτουργία του δικτύου με προσθήκη νέων εφαρμογών που θα δημιουργούν επιπλέον κίνηση (traffic) στο δίκτυο και φόρτο στον server Προσθήκη νέων εφαρμογών: Right-click στο Profile Definition object  Edit Attributes

90 Προσθήκη νέας κίνησης (traffic) στο δίκτυο Επιλέγουμε (...) και Edit

91 Προσθήκη νέας κίνησης (traffic) στο δίκτυο Στη συνέχεια αλλάζουμε τη λίστα των εφαρμογών που περιέχονται στο συγκεκριμένο profile: Επιλέγουμε (...) και Edit

92 Προσθήκη νέας κίνησης (traffic) στο δίκτυο Στη συνέχεια αλλάζουμε τη λίστα των εφαρμογών που περιέχονται στο συγκεκριμένο profile: Αντί ‘Database Access (Light)’ επιλέγουμε ‘Database Access (Heavy)’

93 Προσθήκη νέας κίνησης (traffic) στο δίκτυο Δηλώστε ότι ο server μπορεί να εκτελεί και τη νέα υπηρεσία: Right-click στο server  Edit attributes Application: Supported Services = All Τρέξτε την προσομοίωση αυτού του σεναρίου και συγκρίνετε τα αποτελέσματα με τα υπόλοιπα δύο σενάρια


Κατέβασμα ppt "Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ) Διάλεξη #7: Επίπεδο Εφαρμογών (Application layer). Εργαστηριακές ασκήσεις στο εργαλείο προσομοίωσης δικτύων OPNET."

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


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