ίκτυα Υπολογιστών (Γ έτος, ΣΤ εξ) ιάλεξη #7: Επίπεδο Εφαρμογών (Application layer). Εργαστηριακές ασκήσεις στο εργαλείο προσομοίωσης δικτύων OPNET Γαβαλάς Δαμιανός dgavalas@aegean.gr Εαρινό εξάμηνο Περίληψη διάλεξης Γενικές αρχές και κατηγορίες δικτυακών εφαρμογών Ο ρόλος του Επιπέδου Εφαρμογών (Application Layer) Πρωτόκολλα Επιπέδου πέδου Εφαρμογών HTTP FTP SMTP DNS Εργαστηριακές ασκήσεις στο εργαλείο προσομοίωσης δικτύων 1
Το μοντέλο αναφοράς OSI (Open Systems Interconnection) Τα πακέτα στο επίπεδο μεταφοράς ονομάζονται segments Τα πακέτα στο επίπεδο δικτύου ονομάζονται datagrams Τα πακέτα στο data link layer ονομάζονται πλαίσια (frames) 2
Το μοντέλο αναφοράς TCP/IP Παραδείγματα δικτυακών εφαρμογών E-mail Web Instant messaging (π.χ. χ chat) Remote login P2P file sharing Multi-user network games Audio και video Streaming Internet telephony Real-time video conference 3
ημιουργία δικτυακών εφαρμογών Ανάπτυξη προγραμμάτων που: τρέχουν σε διαφορετικά συστήματα επικοινωνούν μέσω ενός δικτύου π.χ., Web: Το λογισμικό του Web επικοινωνεί με το λογισμικό ενός browser Το επίπεδο εφαρμογών ΕΝ αφορά συσκευές του πυρήνα (core) των δικτύων, π.χ. routers Αυτές οι συσκευές δεν λειτουργούν στο επίπεδο μεταφοράς Ένας τέτοιος σχεδιασμός επιτρέπει τη γρήγορη ανάπτυξη εφαρμογών application transport network data link physical application transport network data link physical application transport network data link physical Αρχιτεκτονικές δικτυακών εφαρμογών Αρχιτεκτονικές δικτυακών εφαρμογών Client- (μοντέλο πελάτη διακομιστή) Peer-to-peer (P2P) (μοντέλο διομότιμης επικοινωνίας) Hybrid of client- and P2P (υβριδικό μοντέλο πελάτη διακομιστή και διομότιμης επικοινωνίας) 4
Αρχιτεκτονική client- ιακομιστής (): Ένας κόμβος που είναι πάντα ανοικτός (always- on host) Σταθερή IP διεύθυνση Πολλαπλοί s ( farms) για καλύτερη κλιμάκωση Πελάτες (clients): Επικοινωνούν με s εν είναι πάντοτε on ή συνδεδεμένοι Μπορεί να έχουν δυναμικές IP διευθύνσεις εν επικοινωνούν απ ευθείας μεταξύ τους Αμιγής P2P αρχιτεκτονική εν υπάρχει κάποιος always-on Αυθαίρετη απευθείας επικοινωνία τελικών κόμβων (end systems) Οι επικοινωνούντες ομότιμοι κόμβοι (peers) δεν είναι πάντα συνδεδεμένοι ούτε έχουν απαραίτητα σταθερή IP διεύθυνση Παράδειγμα: Gnutella Αυτή η αρχιτεκτονική προσφέρει πολύ καλή κλιμάκωση (Highly scalable) Είναι όμως δύσκολη στη διαχείριση (difficult to manage) 5
Υβριδική αρχιτεκτονική client- και P2P Napster H μεταφορά αρχείων είναι P2P Η αναζήτηση αρχείων είναι κεντρική (centralized): Οι Peers καταγράφουν το περιεχόμενό τους σε έναν κεντρικό Οι Peers εκτελούν ερωτήματα στον κεντρικό για να εντοπίσουν περιεχόμενο που τους ενδιαφέρει Instant messaging Online Chat μεταξύ των χρηστών με P2P Ο εντοπισμός της τοποθεσίας του χρήστη γίνεται κεντρικά: Ο χρήστης καταγράφει την IP διεύθυνσή του σε ένα κεντρικό όταν συνδέεται online Ο χρήστης βρίσκει μέσω του κεντρικού τις IP διευθύνσεις των φίλων του Επικοινωνία μεταξύ διεργασιών (Processes communication) ιεργασία (Process): πρόγραμμα που τρέχει σε έναν Η/Υ Μέσα στον ίδιο H/Y, δύο διεργασίες μπορούν να επικοινωνήσουν χρησιμοποιώντας inter-process communication (ορίζεται από το λειτουργικό σύστημα) ιεργασίες που τρέχουν σε διαφορετικούς Η/Υ επικοινωνούν με την ανταλλαγή μηνυμάτων (messages) Client process: η διεργασία που αρχίζει μια επικοινωνία Server process: η διεργασία που περιμένει διεργασίες πελατών να έρθουν σε επαφή μαζί της 6
ιευθυνσιοδότηση διεργασιών (Addressing processes) Μια διεργασία πρέπει να έχει ένα αναγνωριστικό (διεύθυνση) για να λάβει μηνύματα Κάθε κόμβος έχει μια μοναδική 32-bit IP διεύθυνση Ερώτηση: αρκεί η IP διεύθυνση του Η/Υ όπου τρέχει μια διεργασία ως διεύθυνση της διεργασίας; Απάντηση: Όχι, πολλές διεργασίες μπορεί να εκτελούνται ταυτόχρονα στον ίδιο Η/Υ Η διεύθυνση μια διεργασίας περιλαμβάνει την IP διεύθυνση του Η/Υ και τον αριθμό θύρας (port number) που σχετίζεται με τη διεργασία Παραδείγματα port numbers: HTTP : 80 Mail : 25 Ένα πρωτόκολλο του Application layer ορίζει: Τον τύπο των μηνυμάτων που ανταλλάσσονται, π.χ., request & response μηνύματα Σύνταξη των μηνυμάτων: ποια πεδία περιλαμβάνουν, πως απεικονίζονται τα πεδία Σημασία της πληροφορίας που ενσωματώνεται σε κάθε πεδίο Κανόνες σχετικά με το πότε και πως οι διεργασίες στέλνουν και αποκρίνονται σε μηνύματα ημόσια (Public-domain) πρωτόκολλα: Ορίζονται σε RFCs (Requests for Comments) Επιτρέπουν τη διαλειτουργικότητα π.χ., HTTP, SMTP Ιδιωτικά (Proprietary) πρωτόκολλα: π.χ., KaZaA 7
Απαιτήσεις κοινών εφαρμογών από την υπηρεσία μεταφοράς (Transport service) Application Data loss Bandwidth Time Sensitive file transfer e-mail Web documents real-time audio/video stored audio/video no loss no loss no loss loss-tolerant loss-tolerant elastic elastic elastic audio: 5kbps-1Mbps video:10kbps-5mbps same as above interactive games loss-tolerant few kbps up instant messaging no loss elastic ναι όχι όχι όχι ναι, 100 s msec ναι, λίγα secs ναι, 100 s msec Elastic: όσο bandwidth περισσέψει Loss-tolerant: ανεκτικότητα σε απώλειες Πρωτόκολλα μεταφοράς (transport protocols) στο Internet TCP: Με σύνδεση (connection-oriented): απαιτείται εγκατάσταση σύνδεσης μεταξύ των διεργασιών πελάτη και διακομιστή Αξιόπιστη μεταφορά (reliable transport) μεταξύ της διεργασίαςαποστολέα και της διεργασίαςπαραλήπτη Έλεγχος ροής (flow control): ο αποστολέας δεν κατακλύζει τον παραλήπτη με πολλά δεδομένα Έλεγχος συμφόρησης ης (congestion n control): ο αποστολέας δεν υπερφορτώνει το δίκτυο εν παρέχει: εγγυήσεις για χρονισμό (timing) και χρήση του ελάχιστου δυνατού bandwidth UDP: Γρήγορη αλλά αναξιόπιστη μεταφορά δεδομένων ανάμεσα σε επικοινωνούντες διεργασίες εν παρέχει: εγκατάσταση σύνδεσης, αξιοπιστία, έλεγχο ροής, έλεγχο συμφόρησης, εγγυήσεις για χρονισμό (timing) και χρήση του ελάχιστου δυνατού bandwidth 8
Εφαρμογές Internet: πρωτόκολλα του Application και Transport layer Application e-mail 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) ιδιωτικό (π.χ., Skype, Dialpad) Underlying transport protocol TCP TCP TCP TCP TCP ή UDP τυπικά UDP Σύνοψη του HTTP (HyperText Markup Language) Πρωτόκολλο του Web, λειτουργεί στο application layer Μοντέλο client/ client: ένας browser που στέλνει αιτήσεις, λαμβάνει και εμφανίζει Web αντικείμενα : Web που στέλνει αντικείμενα σε απόκριση εισερχόμενων αιτήσεων PC running Explorer HTTP 1.0: RFC 1945 HTTP 1.1: 1 RFC 2068 Mac running Web αντικείμενα: HTML, JPEG, Navigator Java applet, audio, video files Κάθε web αντικείμενο έχει μια URL διεύθυνση: www.someschool.edu/somedept/pic.gif Server running Apache Web host name path name 9
Σύνοψη του HTTP Χρησιμοποιεί TCP: Ο client στέλνει μια αίτηση για TCP σύνδεση με το, στην port 80 Ο δέχεται την TCP σύνδεση από τον client HTTP μηνύματα (applicationlayer protocol messages) ανταλλάσσονται μεταξύ του browser (HTTP client) and Web (HTTP ) TCP connection closed Το HTTP είναι αμνήμων ( stateless ) Ο δεν διατηρεί πληροφορία σχετικά με προηγούμενες αιτήσεις πελατών HTTP συνδέσεις Όχι-επίμονο (Nonpersistent) HTTP Το πολύ ένα web αντικείμενο μπορεί να σταλεί πάνω από κάθε TCP σύνδεση π.χ. για να «κατεβεί» μια web σελίδα με 10 εικόνες θα χρειαστούν 11 TCP συνδέσεις (εγκατάσταση και τερματισμός) Το HTTP/1.0 χρησιμοποιεί nonpersistent HTTP Επίμονο (Persistent) HTTP Πολλά web αντικείμενα μπορούν μέσω μίας μόνο TCP σύνδεσης σε έναν web browser Το HTTP/1.1 χρησιμοποιεί persistent it t συνδέσεις 10
HTTP request μήνυμα ύο τύποι HTTP μηνυμάτων: request, response HTTP request μήνυμα: ASCII (μορφή αναγνώσιμη από ανθρώπους) request line (GET, POST, GET /somedir/page.html HTTP/1.1 HEAD εντολές) Host: www.someschool.edu User-agent: Mozilla/4.0 header Connection: close lines Accept-language:fr Carriage return, line feed indicates end of message (extra carriage return, line feed) HTTP request μήνυμα: γενική μορφή 11
HTTP response μήνυμα status line (protocol status code status phrase) header lines ΗΤΤP status code HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998... Content-Length: 6821 Content-Type: text/html data, e.g., requested HTML file data data data data data... HTTP response status codes In first line in ->client response message. A few sample 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 404 Not Found requested document not found on this 505 HTTP Version Not Supported 12
Αποθηκεύοντας στοιχεία για τη διάδραση χρηστών με : 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 και το αποθηκεύει στη Β του Λειτουργία των Cookies client Cookie file usual http request msg ebay: 8734 usual http response + Set-cookie: 1678 creates ID 1678 for user Cookie file amazon: 1678 ebay: 8734 μια βδομάδα αργότερα: Cookie file amazon: 1678 ebay: 8734 usual http request msg cookie: 1678 usual http response msg usual http request msg cookie: 1678 usual http response msg cookiespecific action cookiespectific action 13
Χρήσεις των cookies Εξουσιοδότηση πρόσβασης (authorization) Καλάθια αγορών (shopping carts) Προτάσεις (recommendations)... Προσωρινή αποθήκευση Web αντικειμένων: web caches (proxy ) Στόχος: να ικανοποιήσουμε τις αιτήσεις των clients χωρίς απαραίτητα τη βοήθεια του web που αποθηκεύει το αιτούμενο περιεχόμενο Ο browser στέλνει όλα τα HTTP requests σε ένα ενδιάμεσο (cache) Αν το αιτούμενο αντικείμενο υπάρχει στο cache, το cache θα το επιστρέψει ιαφορετικά, το cache θα προωθήσει την αίτηση στον (origin) που θα επιστρέψει το αντικείμενο στον client client client Proxy Ερώτηση: ποια είναι τα πλεονεκτήματα και ποια τα προβλήματα που εντοπίζετε σε αυτή τη μέθοδο; origin origin 14
Προσωρινή αποθήκευση Web αντικειμένων: web caches (proxy ) To Cache (proxy ) λειτουργεί ως client και Γιατί Web caching? Μειώνει το χρόνο απόκρισης για την εξυπηρέτηση client requests Μειώνει την κίνηση (traffic) στο access link του οργανισμού Δίκτυο οργανισμού Internet 1.5 Mbps access link origin s Μειονεκτήματα: οργανισμού 10 Mbps LAN Τα cached αντικείμενα μπορεί να έχουν στο μεταξύ ενημερωθεί στον origin cache Απαιτείται (μεγάλος) οργανισμού αποθηκευτικός χώρος στον proxy Υπο συνθήκη (Conditional) GET O cache συχνά ενημερώνει το περιεχόμενό του Στόχος: ο να μη στείλει το αντικείμενο αν το cache έχει μία πρόσφατη έκδοσή του Cache: Ορίζεται η ημερομηνία του cached copy στο HTTP request If-modified-since: <date> Server: το response δεν περιέχει δεδομένα δ (το αντικείμενο) αν το αντικείμενο δεν έχει τροποποιηθεί από τότε που έγινε cached: HTTP/1.0 304 Not Modified cache HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 304 Not Modified HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 200 OK <data> To αντικείμενο δεν έχει τροποποιηθεί To αντικείμενο έχει τροποποιηθεί 15
FTP: File Transfer Protocol (Πρωτόκολλο Μεταφοράς Αρχείων) user at host FTP FTP user interface client local file system file transfer FTP remote file system Μεταφορά αρχείων από/προς ένα απομακρυσμένο Η/Υ (FTP ) client/ μοντέλο client: αρχίζει τη διαδικασία της μεταφοράς (από/προς τον FTP ) : o απομακρυσμένος Η/Υ ftp: RFC 959 Ο ftp είναι λογισμικό που «τρέχει» στην port 21 FTP: ξεχωριστές συνδέσεις για μεταφορά εντολών και για μεταφορά αρχείων Ο FTP client ανοίγει μια TCP σύνδεση με την εφαρμογή FTP στην port 21 Ο Client περνάει από μια διαδικασία εξουσιοδότησης πρόσβασης (Login) Ο Client μπορεί να επισκοπήσει (browse) τους απομακρυσμένους φακέλους στέλνοντας FTP εντολές μέσα από την ίδια TCP σύνδεση Όταν ο δέχεται μία εντολή για μεταφορά αρχείου,, ο ανοίγει μία FTP data TCP σύνδεση με τον client Μετά την ολοκλήρωση της μεταφοράς κάθε αρχείου, ο κλείνει την FTP data σύνδεση Ξεχωριστές FTP data συνδέσεις για κάθε μεταφορά αρχείου FTP client TCP control connection port 21 TCP data connection port 20 FTP 16
FTP εντολές, αποκρίσεις είγματα εντολών: Στέλνονται ως ASCII κείμενο πάνω από τη σύνδεση ελέγχου USER username PASS password LIST επιστρέφει τη λίστα των αρχείων του τρέχοντος φακέλου RETR filename ανακτάει (get) ένα αρχείο STOR filename ανεβάζει (put) ένα αρχείο στον FTP είγματα κωδικών που επιστρέφει ο FTP : 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 Electronic Mail Τρία κύρια συστατικά: user agents (πράκτορες χρηστών) mail s simple mail transfer protocol (SMTP) User Agent Πρόγραμμα για την σύνταξη, επεξεργασία, ανάγνωση, διαχείριση μηνυμάτων π.χ. Outlook, Netscape Messenger, Eudora, Εξερχόμενα και εισερχόμενα μηνύματα αποθηκεύονται στον mail user agent mail SMTP mail user agent SMTP SMTP user agent outgoing message queue mail user mailbox user agent user agent user agent 17
Electronic Mail: mail s Mail Servers Το mailbox αποθηκεύει εισερχόμενα μηνύματα για τους χρήστες Ουρά μηνυμάτων (message queue) εξερχόμενων emails To SMTP πρωτόκολλο διευθετίζει την αποστολή email μηνυμάτων μεταξύ mail s Ισχύει το client/ μοντέλο: client: ο αποστολέας mail : ο αποδέκτης mail mail SMTP mail user agent user agent SMTP SMTP user agent mail user agent user agent user agent Electronic Mail: SMTP [RFC 2821] Χρησιμοποιεί TCP για την αξιόπιστη μεταφορά email μηνυμάτων από ένα client σε ένα, port 25 Απευθείας μεταφορά από τον αποστολέα στον αποδέκτη mail Τρεις φάσεις μεταφοράς Χειραψία (handshaking) Μεταφορά μηνυμάτων Τερματισμός σύνδεσης Αλληλεπίδραση εντολή/απόκριση (command/response interaction) Εντολές: ASCII text Αποκρίσεις: status code και κείμενο 18
Σενάριο: Η Αλίκη στέλνει email στον Bob 1) Η Αλίκη χρησιμοποιεί τον User Agent (UA) για να συντάξει το μήνυμα προς τον ( to ) bob@someschool.edu 2) Ο UA της Αλίκης στέλνει το μήνυμα στον mail της. Το μήνυμα τοποθετείται στην ουρά μηνυμάτων (message queue) 3) Ο mail της Αλίκης (Client) ανοίγει μια TCP σύνδεση με τον mail του Bob 4) O SMTP client στέλνει το μήνυμα ης Αλίκης μέσω της TCP σύνδεσης 5) Ο mail του Bob τοποθετεί το εισερχόμενο μήνυμα στο προσωπικό του mailbox 6) Ο Bob κατεβάζει και διαβάζει το μήνυμα χρησιμοποιώντας τον user agent του 1 user agent mail 2 3 4 mail 5 6 user agent είγμα SMTP διάδρασης S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <alice@crepes.fr> S: 250 alice@crepes.fr... Sender ok C: RCPT TO: <bob@hamburger.edu> S: 250 bob@hamburger.edu... 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 19
SMTP: τελικά σχόλια Το SMTP χρησιμοποιεί persistent συνδέσεις (μεταφορά πολλών αντικειμένων πάνω από την ίδια σύνδεση) Το SMTP απαιτεί το μήνυμα (header & body) σε 7-bit ASCII Ο SMTP ψάχνει τους χαρακτήρες CRLF.CRLF για να εντοπίσει ει το τέλος του μηνύματος Σύγκριση με HTTP: HTTP: pull SMTP: push Και τα δύο χρησιμοποιούν ASCII command/response συναλλαγές, status codes HTTP: κάθε αντικείμενο ενσωματώνεται σε ξεχωριστό response μήνυμα SMTP: πολλαπλά αντικείμενα μπορούν να σταλούν σε ένα multipart μήνυμα Μορφή Mail μηνύματος SMTP: πρωτόκολλο για ανταλλαγή emails RFC 822: πρότυπο που ορίζει τη μορφή (format) των μηνυμάτων header lines, e.g., To: From: Subject: body το μήνυμα, μόνο ASCII χαρακτήρες header body blank line 20
Μορφή mail μηνύματος: πολυμεσικές επεκτάσεις (multimedia extensions) MIME: multimedia mail extension, RFC 2045, 2056 Πρόσθετες γραμμές στην κεφαλίδα του μηνύματος δηλώνουν τον MIME τύπο περιεχομένου MIME version Μέθοδος κωδικοποίησης δεδομένων multimedia δεδομένα, τύπος, υπο-τύπος, δηλώσεις παραμέτρων κωδικοποιημένα δεδομένα From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data Πρωτόκολλα πρόσβασης σε mail s (Mail access protocols) user agent SMTP SMTP access protocol user agent sender s mail receiver s mail Ο ρόλος του SMTP είναι η παράδοση / αποθήκευση μηνυμάτων στον mail του παραλήπτη Ο ρόλος του Mail access protocol: ανάκτηση μηνυμάτων από τον POP: Post Office Protocol [RFC 1939] Εξακρίβωση ταυτότητας (authorization) μεταξύ user agent <--> και download IMAP: Internet Mail Access Protocol [RFC 1730] Περισσότερες λειτουργίες (πιο πολύπλοκο) Χειρισμός αποθηκευμένων μηνυμάτων στο HTTP: Hotmail, Yahoo! Mail, etc. 21
POP3 protocol Φάση εξακρίβωσης ταυτότητας εντολές client: user: ορίζει το username pass: password Αποκρίσεις του +OK -ERR Φάση συναλλαγής, client: list: list message numbers retr: retrieve ti message by number dele: delete quit S: +OK POP3 ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on C: list S: 1 498 S: 2 912 S:. C: retr 1 S: <message 1 contents> S:. C: dele e 1 C: retr 2 S: <message 1 contents> S:. C: dele 2 C: quit S: +OK POP3 signing off Ρυθμίσεις email 22
DNS: Domain Name System (Σύστημα Ονομάτων Περιοχής) Άνθρωποι: πολλά αναγνωριστικά : Αριθμός ταυτότητας, όνομα, αριθμός διαβατηρίου,... Internet κόμβοι, routers: IP address (32 bit) χρησιμοποιούνται για την διευθυνσιοδότηση των IP datagrams όνομα, π.χ., www.yahoo.com χρησιμοποιείται από ανθρώπους Ερώτηση: αντιστοίχηση μεταξύ IP διευθύνσεων και ονομάτων;;; Domain Name System: Κατανεμημένη βάση δεδομένων υλοποιείται ως μία ιεραρχία πολλών name s Είναι ένα application-layer πρωτόκολλο με το ρόλο να διευθετίζει την επικοινωνία μεταξύ κόμβων, routers, name s για την επίλυση (resolve) ονομάτων (διεύθυνση/όνομα μετάφραση) DNS DNS υπηρεσίες Μετάφραση Hostname σε IP διεύθυνση Κατανομή φόρτου (Load distribution) Πολλαπλοί πανομοιότυποι Web s: σύνολο IP διευθύνσεων για ένα όνομα Γιατί όχι κεντρικό DNS;;; μοναδικό σημείο αποτυχίας (single point of failure) μεγάλος όγκος κίνησης (traffic volume) μακρινή απόσταση ως την κεντρική Β & απόκριση (distant centralized database) δεν έχει καλή κλιμάκωση (low scalability) 23
Κατανεμημένη, Ιεραρχική Database Root DNS Servers com DNS s org DNS s edu DNS s yahoo.com DNS s amazon.com DNS s pbs.org DNS s poly.edu umass.edu DNS sdns s Ένας Client θέλει την IP του www.amazon.com; 1η μέθοδος: Ο Client στέλνει ένα ερώτημα (queries) έναν root για να βρει τον com DNS Ο Client στέλνει ένα ερώτημα στον com DNS για να βρει τον amazon.com DNS Ο Client στέλνει ένα ερώτημα στον amazon.com DNS για να βρει την IP address του www.amazon.com DNS: Root name s Ο τοπικός name έρχεται σε επαφή με τον root name root name : έρχεται σε επαφή με τον κατάλληλο (authoritative) name αν το όνομα που ζητείται δεν είναι γνωστό Βρίσκει την αντιστοίχηση Επιστρέφει την αντιστοίχηση στον τοπικό name e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 17 other locations) b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA a Verisign, Dulles, VA c Cogent, Herndon, VA (also Los Angeles) d U Maryland College Park, MD k RIPE London (also Amsterdam, Frankfurt) g US DoD Vienna, VA h ARL Aberdeen, MD i Autonomica, Stockholm (plus 3 other locations) j Verisign, ( 11 locations) m WIDE Tokyo 13 root name s παγκοσμίως 24
TLD και Authoritative Servers Top-level domain (TLD) s: υπεύθυνοι για com, org, net, edu, etc, και όλα τα top-level domains χωρών uk, fr, ca, jp. Network solutions maintains ins s s for com TLD Educause for edu TLD Authoritative DNS s: DNS s των οργανισμών, παρέχουν hostname <--> IP αντιστοιχίσεις για τους s του οργανισμού (π.χ., Web και mail). Μπορεί να διατηρούνται από τον οργανισμό ή τον παροχέα υπηρεσιών Τοπικός Name Server εν ανήκει απαραίτητα στην ιεραρχία Κάθε ISP (εμπορικός ISP, εταιρία, παν/μιο) διαθέτει ένα τοπικό DNS Αποκαλείται και default name Όταν ένας κόμβος εκτελεί ένα DNS ερώτημα, το ερώτημα στέλνεται στον τοπικό DNS Λειτουργεί ως ενδιάμεσος (proxy), προωθεί το ερώτημα στην ιεραρχία 25
Παράδειγμα root DNS Ο κόμβος cis.poly.edu θέλει να βρει την IP διεύθυνση του gaia.cs.umass.edu 2 3 4 5 TLD DNS τοπικός DNS dns.poly.edu 1 8 7 6 requesting host cis.poly.edu authoritative DNS dns.cs.umass.edu gaia.cs.umass.edu Αναδρομικά ερωτήματα (recursive queries) root DNS Αναδρομικό (iterative) ερώτημα: Μεταφέρει το βάρος της επίλυσης του ονόματος από τον τοπικό στους root και TLD s μεγάλος φόρτος! Επαναληπτικό (recusrsive) ερώτημα: Ο name με τον οποίο ήρθαμε σε επαφή απαντάει με την IP που αντιστοιχεί στο όνομα που στείλαμε Αν δεν το ξέρει: εν ξέρω αυτό το όνομα, αλλά ρώτησε αυτό το name local DNS dns.poly.edu 1 2 3 8 requesting host cis.poly.edu 7 6 5 4 authoritative DNS dns.cs.umass.edu gaia.cs.umass.edu TLD DNS serve 26
Παράδειγμα εκτέλεσης ερωτήματος με αναδρομή (recursive) DNS: προσωρινή αποθήκευση (caching) και ενημέρωση (updating) εγγραφών Μόλις κάποιος name μάθει κάποια νέα αντιστοίχηση, την αποθηκεύει (caches) Οι cache εγγραφές λήγουν (timeout) μετά από κάποιο χρόνο Οι IP διευθύνσεις των TLD s είναι τυπικά αποθηκευμένες στους τοπικούς name s Έτσι οι τοπικοί name s δεν επισκέπτονται συχνά τους root name s 27
DNS εγγραφές (records) DNS: κατανεμημένη αποθήκευση resource records (RR) σε Β Type=A μορφή RR: (name, value, type, ttl) name είναι όνομα κόμβου (hostname) value είναι IP διεύθυνση Type=NS name είναι περιοχή (e.g. foo.com) value είναι IP διεύθυνση του authoritative name αυτής της περιοχής Type=CNAME ttl: time to live (μετά από πόσο χρόνο θα λήξει η εγγραφή) name είναι ψευδο-όνομα (alias) για κάποιο «κανονικό» (αληθινό) όνομα www.ibm.com είναι στην πραγματικότητα east.backup2.ibm.com value είναι το αληθινό όνομα Type=MX value είναι το όνομα του mail που συσχετίζεται με το name DNS πρωτόκολλο: μηνύματα DNS πρωτόκολλο: query και reply μηνύματα, και τα δύο με την ίδια μορφή μηνύματος (format) Κεφαλίδα μηνύματος identification: 16-bit α/α (#) για ερώτημα, η απάντηση στην ερώτηση χρησιμοποιεί τον ίδιο # Flags (σημαίες): query ή reply ζητείται αναδρομή (recursion) recursion διαθέσιμη η απάντηση είναι authoritative 28
DNS πρωτόκολλο: μηνύματα Όνομα, τύπος πεδίων για ένα ερώτημα RRs σε απάντηση ερωτήματος εγγραφές για authoritative s επιπλέον βοηθητική πληροφορία που μπορεί να χρησιμοποιηθεί Εισαγωγή εγγραφών στο DNS Παράδειγμα: μόλις δημιουργήσαμε την εταιρία Network Utopia Θέλουμε να καταγράψουμε το όνομα networkuptopia.com σε κάποιον DNS (registrar) Πρέπει να παρέχουμε στον registrar τα ονόματα και IP διευθύνσεις του authoritative name (primary and secondary) O Registrar εισάγει RRs (resource records) στον com TLD : Type: domain (networkutopia.com,dns1.networkutopia.com,ns) (dns1.networkutopia.com, 212.212.212.1, A) Type: host 29
OPNET Εργαλείο προσομοίωσης δικτύων (network simulation tool) Γιατί χρειάζονται τα εργαλεία προσομοίωσης δικτύων; Προσμοιώνουν τον πραγματικό κόσμο στην οθόνη του υπολογιστή Για ακαδημαϊκούς σκοπούς υνατότητα σχεδιασμού δικτύων (network models) με ρεαλιστικά μέσα μετάδοσης, δικτυακές συσκευές, δικτυακά πρωτόκολλα Βοηθούν στην κατανόηση της λειτουργίας των δικτύων και των επιπτώσεων της αύξησης του αριθμού χρηστών ή της δικτυακής κίνησης (traffic) Επιλογή στατιστικών (από όλο το δίκτυο ή μια συγκεκριμένη συσκευή) που θα συλλεχθούν από την προσομοίωση «Τρέξιμο» προσομοίωσης, επισκόπηση και κατανόηση παραγόμενων στατιστικών Για τους διαχειριστές δικτύων Ποιο φθηνή λύση από το να αγοράσεις και να στήσεις ένα δίκτυο που θα αποδειχθεί μη λειτουργικό στην πράξη Ανάλυση απαιτήσεων χρηστών, εφαρμογών και (σε συνδυασμό με μια ανάλυση κόστους) προσομοίωση δικτυακών λύσεων και επιλογή εκείνης με το καλύτερο λόγο «value for money» Αντίστοιχα, προσομοίωση δικτυακών λύσεων για επέκταση (upgrade) υφιστάμενων λύσεων 30
OPNET Θα χρησιμοποιήσουμε τη (δωρεάν) έκδοση ΙΤ Guru Academic Edition 9.1 Μπορείτε να το κατεβάσετε και από τη διεύθυνση: http://www.aegean.gr/culturaltec/dgavalas/cn/software/opn et_v1995_setup.exe (~46ΜΒ) Άλλα δημοφιλή εργαλεία προσομοίωσης NS-2 (Network Simulator-2), http://www.isi.edu/nsnam/ns/ ωρεάν Χρειάζεται προγραμματισμός στη script γλώσσα Perl ιαθέτει επεκτάσεις (extensions) που καλύπτουν και άλλα είδη δικτύων (wireless networks, sensor networks, mobile ad-hoc networks, ) Μεθοδολογία Προσομοίωσης Αναλυτική παρουσίαση της μεθοδολογίας που ακολουθείται Συνοπτική παρουσίαση της μεθοδολογίας που ακολουθείται 31
Που (σε ποιο φάκελο) αποθηκεύονται τα μοντέλα Edit Preferences Ρυθμίσεις στον Η/Υ όπου εγκαθιστούμε το OPNET Πρέπει να προσθέσουμε μία μεταβλητή περιβάλλοντος (environmental variable) που θα δηλώνει τον φάκελο όπου το OPNET θα αναζητεί και θα αποθηκεύει αρχεία Control Panel Performance and maintenance System Advanced 32
Ρυθμίσεις στον Η/Υ όπου εγκαθιστούμε το OPNET Θα πρέπει να ορίσετε τη μεταβλητή περιβάλλοντος opnet_user_home και να της δώσετε τιμή το φάκελο όπου θέλετε να αποθηκεύετε αρχεία Στο εργαστήριο Χατζηγιάννη: opnet_user_home=c:\opnet_files\ 33
Μικρής κλίμακας τοπικά δίκτυα Η πρώτη εργαστηριακή άσκηση στο OPNET επικεντρώνει στην ανάπτυξη ενός δικτύου μικρής κλίμακας με τη χρήση του Project Editor O Project Editor επιτρέπει τη δημιουργία, προσομοίωση και ανάλυση της απόδοσης ενός δικτύου υπολογιστών Στο τέλος της άσκησης θα μπορείτε να: ημιουργείτε μια δικτυακή τοπολογία Συλλέγετε στατιστικές μετρήσεις για την απόδοση του δικτύου Αναλύετε τις μετρήσεις αυτές ιαδικασία σχεδίασης και μελέτης δικτύων υπολογιστών Περιβάλλον Τοπολογία δικτύου Συλλογή στατιστικών μετρήσεων Εκτέλεση της προσομοίωσης Επισκόπηση των αποτελεσμάτων Επέκταση του δικτύου 34
ημιουργία νέου project H σχεδίαση γίνεται στον Project Editor που εμφανίζεται εξ ορισμού με τη δημιουργία ενός project H δημιουργία ενός μοντέλου δικτύου (network model) προϋποθέτει τη δημιουργία ενός σεναρίου που ενσωματώνεται σε ένα project To project είναι ένα σύνολο από συσχετιζόμενα σενάρια που επιτρέπουν τη διερεύνηση μιας άλλης πλευράς του δικτύου Σε κάθε ένα από τα σενάρια αυτά εξετάζεται διαφορετική προσέγγιση του δικτύου Τα βασικά χαρακτηριστικά καθορίζονται μέσω του Startup Wizard Νέο project Startup Wizard Ενέργειες που καθορίζονται μέσω του Startup Wizard: Καθορισμός της αρχικής τοπολογίας του δικτύου Καθορισμός της κλίμακας και του μεγέθους του δικτύου Επιλογή χάρτη για το υπόβαθρο (background) του δικτύου Συσχέτιση μιας παλέτας αντικειμένων με το σενάριο Ο Startup Wizard εμφανίζεται αυτόματα κατά τη δημιουργία ενός νέου project ημιουργήστε ένα νέο project (File New Project) 35
ημιουργία ενός δικτύου: Τοπολογία Σχεδίαση στον Project Editor ομικά στοιχεία δικτύου: Τοπολογία (network topology): διαδικτυακές συσκευές, συνδέσεις, κόμβοι, διακομιστές Κίνηση (traffic): πρωτόκολλα, εφαρμογές, τύποι χρηστών Υπάρχουν τρεις μέθοδοι για τη δημιουργία τοπολογίας δικτύου Εισαγωγή (import) τοπολογίας από εξωτερική πηγή δεδομένων (external source file) Τοποθέτηση κόμβων από την παλέτα αντικειμένων στο χώρο εργασίας (workspace) ημιουργία νέας τοπολογίας με τη χρήση του Rapid configuration wizard (χρήση προκαθορισμένων μοντέλων) Project Editor window 36
Project Editor buttons ημιουργία ενός δικτύου: Τοπολογία Χρήση του Rapid Configuration wizard ημιουργεί ένα δίκτυο επιλέγοντας: Την τοπολογία του δικτύου Τους τύπους των κόμβων του δικτύου Κόμβος (node): συμβολίζει ένα πραγματικό δικτυακό αντικείμενο που μπορεί να μεταδίδει και να λαμβάνει δεδομένα Σ δέ (li k ) Ε ό έ δ δέ ό β Συνδέσεις (links): Επικοινωνιακό μέσο που διασυνδέει κόμβους μεταξύ τους. 37
ημιουργία του δικτύου: Rapid Configuration wizard Επιλέξτε Topology Rapid Configuration Star Προσδιορίστε τα node models και link models του δικτύου. Τα models ακολουθούν το παρακάτω σχήμα ονομασίας: <protocol1>_..._<protocoln>_<function>_<mod> <protocol> ορίζει το πρωτόκολλο(α) που υποστηρίζονται από το μοντέλο <function>: συντόμευση της γενικής λειτουργίας του μοντέλου <mod>: δείχνει το επίπεδο κληρονομικότητας (derivation) του μοντέλου ημιουργία του δικτύου: Rapid Configuration wizard Center Node Model: 3C_SSII_1100_3300_4s_ae52_e48_ge3 Αυτός ο (κεντρικός) κόμβος είναι ένα switch της 3Com, τύπου SuperStack St II 1100, με 4 slots (4s), 52 auto-sensing Ethernet t ports (ae52), 48 Ethernet ports (e48) και 3 Gigabit Ethernet ports (ge3). Periphery Node Model: Sm_Int_wkstn, Number: 30 Αυτή η ρύθμιση παρέχει 30 Ethernet σταθμούς εργασίας (workstations) ως περιφερειακούς κόμβους Link Model: 10BaseT (φυσικό μέσο μετάδοσης) Προσδιορίστε επίσης τις συντεταγμένες όπου θα τοποθετηθεί το center (3Com Switch) καθώς και την ακτίνα στην οποία θα τοποθετηθούν οι περιφερειακές συσκευές Πατήστε «ΟΚ» για να σχεδιαστεί το δίκτυο στο χώρο του Project Editor 38
ημιουργία του δικτύου: Rapid Configuration wizard ημιουργία του δικτύου: Rapid Configuration wizard 39
ημιουργία του δικτύου: προσθήκη Έχοντας δημιουργήσει τη γενική δικτυακή τοπολογία, πρέπει να προσθέσουμε ένα διακομιστή () Θα χρησιμοποιήσουμε μ τη 2η η μέθοδο δημιουργίας δικτυακών αντικειμένων: θα «τραβήξουμε» αντικείμενα από την παλέτα αντικειμένων (object palette) στο χώρο εργασίας (workspace) Αν δεν είναι ήδη ανοικτή, ανοίξτε την object palette με κλικ στο αντίστοιχο πλήκτρο Τραβήξτε το Sm_Int_ αντικείμενο στο workspace. Στη συνέχεια πρέπει να συνδέσουμε το στο υπόλοιπο δίκτυο με ένα 10BaseT link Κάνετε κλικ στο 10BaseT link object στην παλέτα Κάνετε ένα κλικ στο και ένα στο switch (στο κέντρο του star) ώστε να σχεδιασθεί ένα link που θα συνδέει τα δύο αντικείμενα ημιουργία του δικτύου: ορισμός traffic Τέλος, πρέπει να προστεθούν αντικείμενα (configuration objects) για τον προσδιορισμό της δικτυακής κίνησης που προέρχεται από εφαρμογές (application traffic). Η κίνηση του δικτύου προστίθεται μέσω αντικειμένων διαμόρφωσης της παλέτας αντικειμένων Αντικείμενο καθορισμού εφαρμογών (application definition object): εφαρμογές που «τρέχουν» στο δίκτυο (π.χ. e-mail) και συχνότητα με την οποία στέλνουν / ζητούν δεδομένα Αντικείμενο καθορισμού προφίλ χρηστών (profile definition objects): Είδος των εφαρμογών που χρησιμοποιεί (π.χ. light database access) Συχνότητα με την οποία καλεί τη συγκεκριμένη εφαρμογή 40