Upload
callum-brooks
View
35
Download
0
Embed Size (px)
DESCRIPTION
Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ) Διάλεξη # 7: Επίπεδο Εφαρμογών ( Application layer). Εργαστηριακές ασκήσεις στο εργαλείο προσομοίωσης δικτύων OPNET. Γαβαλάς Δαμιανός [email protected]. Εαρινό εξάμηνο. Περίληψη διάλεξης. Γενικές αρχές και κατηγορίες δικτυακών εφαρμογών - PowerPoint PPT Presentation
Citation preview
Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ)Διάλεξη #7: Επίπεδο Εφαρμογών (Application layer). Εργαστηριακές ασκήσεις στο εργαλείο προσομοίωσης δικτύων OPNET
Γαβαλάς Δαμιανός[email protected]Εαρινό εξάμηνο
Περίληψη διάλεξης
Γενικές αρχές και κατηγορίες δικτυακών εφαρμογών
Ο ρόλος του Επιπέδου Εφαρμογών (Application Layer)
Πρωτόκολλα Επιπέδου Εφαρμογών HTTP FTP SMTP DNS
Εργαστηριακές ασκήσεις στο εργαλείο προσομοίωσης δικτύων
Το μοντέλο αναφοράς OSI (Open Systems Interconnection)
Τα πακέτα
στο επίπεδο δικτύου
ονομάζονται
datagrams
Τα πακέτα
στο data link layer ονομάζον
ται πλαίσια (frames)
Τα πακέτα
στο επίπεδο
μεταφοράς
ονομάζονται
segments
Το μοντέλο αναφοράς 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
Δημιουργία δικτυακών εφαρμογών
Ανάπτυξη προγραμμάτων που:
τρέχουν σε διαφορετικά συστήματα
επικοινωνούν μέσω ενός δικτύου
π.χ., Web: Το λογισμικό του Web server επικοινωνεί με το λογισμικό ενός browser
Το επίπεδο εφαρμογών ΔΕΝ αφορά συσκευές του πυρήνα (core) των δικτύων, π.χ. routers
Αυτές οι συσκευές δεν λειτουργούν στο επίπεδο μεταφοράς
Ένας τέτοιος σχεδιασμός επιτρέπει τη γρήγορη ανάπτυξη εφαρμογών
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
Αρχιτεκτονικές δικτυακών εφαρμογών Αρχιτεκτονικές δικτυακών εφαρμογών
Client-server (μοντέλο πελάτη – διακομιστή)
Peer-to-peer (P2P) (μοντέλο διομότιμης επικοινωνίας)
Hybrid of client-server and P2P (υβριδικό μοντέλο πελάτη – διακομιστή και διομότιμης επικοινωνίας)
Αρχιτεκτονική client-server
Διακομιστής (server): Ένας κόμβος που είναι
πάντα ‘ανοικτός’ (always-on host)
Σταθερή IP διεύθυνση Πολλαπλοί servers
(server farms) για καλύτερη κλιμάκωση
Πελάτες (clients): Επικοινωνούν με
servers Δεν είναι πάντοτε on ή
συνδεδεμένοι Μπορεί να έχουν
δυναμικές IP διευθύνσεις
Δεν επικοινωνούν απ’ ευθείας μεταξύ τους
Αμιγής P2P αρχιτεκτονική
Δεν υπάρχει κάποιος ‘always-on’ server
Αυθαίρετη απευθείας επικοινωνία τελικών κόμβων (end systems)
Οι επικοινωνούντες ομότιμοι κόμβοι (peers) δεν είναι πάντα συνδεδεμένοι ούτε έχουν απαραίτητα σταθερή IP διεύθυνση
Παράδειγμα: Gnutella
Αυτή η αρχιτεκτονική προσφέρει πολύ καλή κλιμάκωση (Highly scalable)
Είναι όμως δύσκολη στη διαχείριση (difficult to manage)
Υβριδική αρχιτεκτονική client-server και P2P Napster
H μεταφορά αρχείων είναι P2P Η αναζήτηση αρχείων είναι κεντρική (centralized):
Οι Peers καταγράφουν το περιεχόμενό τους σε έναν κεντρικό server
Οι Peers εκτελούν ερωτήματα στον κεντρικό server για να εντοπίσουν περιεχόμενο που τους ενδιαφέρει
Instant messaging Online Chat μεταξύ των χρηστών με P2P Ο εντοπισμός της τοποθεσίας του χρήστη γίνεται
κεντρικά: Ο χρήστης καταγράφει την IP διεύθυνσή του σε ένα κεντρικό
server όταν συνδέεται online Ο χρήστης βρίσκει μέσω του κεντρικού server τις IP
διευθύνσεις των φίλων του
Επικοινωνία μεταξύ διεργασιών (Processes communication) Διεργασία (Process):
πρόγραμμα που τρέχει σε έναν Η/Υ
Μέσα στον ίδιο H/Y, δύο διεργασίες μπορούν να επικοινωνήσουν χρησιμοποιώντας inter-process communication (ορίζεται από το λειτουργικό σύστημα)
Διεργασίες που τρέχουν σε διαφορετικούς Η/Υ επικοινωνούν με την ανταλλαγή μηνυμάτων (messages)
Client process: η διεργασία που αρχίζει μια επικοινωνίαServer process: η διεργασία που περιμένει διεργασίες πελατών να έρθουν σε επαφή μαζί της
Διευθυνσιοδότηση διεργασιών (Addressing processes)
Μια διεργασία πρέπει να έχει ένα αναγνωριστικό (διεύθυνση) για να λάβει μηνύματα Κάθε κόμβος έχει μια μοναδική 32-bit IP διεύθυνση Ερώτηση: αρκεί η IP διεύθυνση του Η/Υ όπου τρέχει μια διεργασία ως διεύθυνση της διεργασίας; Απάντηση: Όχι, πολλές διεργασίες μπορεί να εκτελούνται ταυτόχρονα στον ίδιο Η/Υ
Η διεύθυνση μια διεργασίας περιλαμβάνει την IP διεύθυνση του Η/Υ και τον αριθμό θύρας (port number) που σχετίζεται με τη διεργασία Παραδείγματα port numbers:
HTTP server: 80 Mail server: 25
Ένα πρωτόκολλο του Application layer ορίζει:
Τον τύπο των μηνυμάτων που ανταλλάσσονται, π.χ., request & response μηνύματαΣύνταξη των μηνυμάτων: ποια πεδία περιλαμβάνουν, πως απεικονίζονται τα πεδίαΣημασία της πληροφορίας που ενσωματώνεται σε κάθε πεδίοΚανόνες σχετικά με το πότε και πως οι διεργασίες στέλνουν και αποκρίνονται σε μηνύματα
Δημόσια (Public-domain) πρωτόκολλα:Ορίζονται σε RFCs (Requests for Comments)Επιτρέπουν τη διαλειτουργικότηταπ.χ., HTTP, SMTP
Ιδιωτικά (Proprietary) πρωτόκολλα:π.χ., KaZaA
Απαιτήσεις κοινών εφαρμογών από την υπηρεσία μεταφοράς (Transport service)
Application
file transfere-mail
Web documentsreal-time audio/video
stored audio/videointeractive gamesinstant messaging
Data loss
no lossno lossno lossloss-tolerant
loss-tolerantloss-tolerantno loss
Bandwidth
elasticelasticelasticaudio: 5kbps-1Mbpsvideo:10kbps-5Mbpssame as above few kbps upelastic
Time Sensitive
όχιόχιόχιναι, 100’s msec
ναι, λίγα secsναι, 100’s msecναι
Elastic: όσο bandwidth περισσέψει
Loss-tolerant: ανεκτικότητα σε απώλειες
Πρωτόκολλα μεταφοράς (transport protocols) στο InternetTCP: Με σύνδεση (connection-
oriented): απαιτείται εγκατάσταση σύνδεσης μεταξύ των διεργασιών πελάτη και διακομιστή
Αξιόπιστη μεταφορά (reliable transport) μεταξύ της διεργασίας-αποστολέα και της διεργασίας-παραλήπτη
Έλεγχος ροής (flow control): ο αποστολέας δεν κατακλύζει τον παραλήπτη με πολλά δεδομένα
Έλεγχος συμφόρησης (congestion control): ο αποστολέας δεν υπερφορτώνει το δίκτυο
Δεν παρέχει: εγγυήσεις για χρονισμό (timing) και χρήση του ελάχιστου δυνατού bandwidth
UDP: Γρήγορη αλλά
αναξιόπιστη μεταφορά δεδομένων ανάμεσα σε επικοινωνούντες διεργασίες
Δεν παρέχει: εγκατάσταση σύνδεσης, αξιοπιστία, έλεγχο ροής, έλεγχο συμφόρησης, εγγυήσεις για χρονισμό (timing) και χρήση του ελάχιστου δυνατού bandwidth
Εφαρμογές Internet: πρωτόκολλα του Application και Transport layer
Application
e-mailremote terminal access
Web file transfer
streaming multimedia
Internet telephony
Applicationlayer protocol
SMTP [RFC 2821]Telnet [RFC 854]HTTP [RFC 2616]FTP [RFC 959]ιδιωτικό(π.χ. RealNetworks)ιδιωτικό(π.χ., Dialpad)
Underlyingtransport protocol
TCPTCPTCPTCPTCP ή UDP
τυπικά UDP
Σύνοψη του 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 runningExplorer
Server running
Apache Webserver
Mac runningNavigator
HTTP request
HTTP request
HTTP response
HTTP response
www.someschool.edu/someDept/pic.gif
host name path name
Σύνοψη του 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 δεν διατηρεί πληροφορία σχετικά με προηγούμενες αιτήσεις πελατών
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 συνδέσεις
HTTP request μήνυμα
Δύο τύποι HTTP μηνυμάτων: request, response HTTP request μήνυμα:
ASCII (μορφή αναγνώσιμη από ανθρώπους)
GET /somedir/page.html HTTP/1.1Host: www.someschool.edu User-agent: Mozilla/4.0Connection: close Accept-language:fr
(extra carriage return, line feed)
request line(GET, POST,
HEAD εντολές)
header lines
Carriage return, line feed
indicates end of message
HTTP request μήνυμα: γενική μορφή
HTTP response μήνυμα
HTTP/1.1 200 OK Connection closeDate: 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 data data data data ...
status line(protocol
status codestatus phrase)
header lines
data, e.g., requestedHTML file
ΗΤΤP status code
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:
Αποθηκεύοντας στοιχεία για τη διάδραση χρηστών με 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 και το αποθηκεύει στη ΒΔ του
Λειτουργία των Cookies
client server
usual http request msgusual http response
+Set-cookie: 1678
usual http request msg
cookie: 1678usual http response
msg
usual http request msg
cookie: 1678usual http response msg
cookie-specificaction
cookie-spectificaction
servercreates ID
1678 for user
entry in backend
database
access
acce
ss
Cookie file
amazon: 1678ebay: 8734
Cookie file
ebay: 8734
Cookie file
amazon: 1678ebay: 8734
μια βδομάδα αργότερα:
Χρήσεις των cookies
Εξουσιοδότηση πρόσβασης (authorization) Καλάθια αγορών (shopping carts) Προτάσεις (recommendations) .......
Προσωρινή αποθήκευση Web αντικειμένων: web caches (proxy server)
Ο browser στέλνει όλα τα HTTP requests σε ένα ενδιάμεσο (cache) Αν το αιτούμενο
αντικείμενο υπάρχει στο cache, το cache θα το επιστρέψει
Διαφορετικά, το cache θα προωθήσει την αίτηση στον (origin) που θα επιστρέψει το αντικείμενο στον client
Στόχος: να ικανοποιήσουμε τις αιτήσεις των clients χωρίς απαραίτητα τη βοήθεια του web server που αποθηκεύει το αιτούμενο περιεχόμενο
client
Proxyserver
client
HTTP request
HTTP request
HTTP response
HTTP response
HTTP request
HTTP response
origin server
origin server
Ερώτηση: ποια είναι τα πλεονεκτήματα και ποια τα προβλήματα που εντοπίζετε σε αυτή τη μέθοδο;
Προσωρινή αποθήκευση Web αντικειμένων: web caches (proxy server) To Cache (proxy server)
λειτουργεί ως client και server
Γιατί Web caching? Μειώνει το χρόνο
απόκρισης για την εξυπηρέτηση client requests
Μειώνει την κίνηση (traffic) στο access link του οργανισμού
originservers
Internet
Δίκτυοοργανισμού 10 Mbps LAN
1.5 Mbps access link
cacheοργανισμού
Μειονεκτήματα: Τα cached αντικείμενα
μπορεί να έχουν στο μεταξύ ενημερωθεί στον origin server
Απαιτείται (μεγάλος) αποθηκευτικός χώρος στον proxy server
Υπο συνθήκη (Conditional) GET
O cache συχνά ενημερώνει το περιεχόμενό του
Στόχος: ο server αν μη στείλει το αντικείμενο αν το cache έχει μία πρόσφατη έκδοσή του
Cache: Ορίζεται η ημερομηνία του cached copy στο HTTP requestIf-modified-since: <date>
Server: το response δεν περιέχει δεδομένα (το αντικείμενο) αν το αντικείμενο δεν έχει τροποποιηθεί από τότε που έγινε cached:HTTP/1.0 304 Not Modified
cache server
HTTP request msgIf-modified-since:
<date>
HTTP responseHTTP/1.0
304 Not Modified
To αντικείμενοδεν έχει
τροποποιηθεί
HTTP request msgIf-modified-since:
<date>
HTTP responseHTTP/1.0 200 OK
<data>
To αντικείμενοέχει
τροποποιηθεί
FTP: File Transfer Protocol (Πρωτόκολλο Μεταφοράς Αρχείων)
Μεταφορά αρχείων από/προς ένα απομακρυσμένο Η/Υ (FTP server)
client/server μοντέλο client: αρχίζει τη διαδικασία της μεταφοράς
(από/προς τον FTP server) server: o απομακρυσμένος Η/Υ
ftp: RFC 959 Ο ftp server είναι λογισμικό που «τρέχει» στην
port 21
file transfer FTPserver
FTPuser
interface
FTPclient
local filesystem
remote filesystem
user at host
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 συνδέσεις για κάθε μεταφορά αρχείου
FTPclient
FTPserver
TCP control connection
port 21
TCP data connectionport 20
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
Electronic Mail
Τρία κύρια συστατικά: user agents (πράκτορες
χρηστών) mail servers simple mail transfer protocol
(SMTP)
User Agent Πρόγραμμα για την σύνταξη,
επεξεργασία, ανάγνωση, διαχείριση μηνυμάτων
π.χ., Eudora, Outlook, Netscape Messenger
Εξερχόμενα και εισερχόμενα μηνύματα αποθηκεύονται στον mail server
user mailbox
outgoing message queue
mailserver
useragent
useragent
useragent
mailserver
useragent
useragent
mailserver
useragent
SMTP
SMTP
SMTP
Electronic Mail: mail servers
Mail Servers Το mailbox αποθηκεύει
εισερχόμενα μηνύματα για τους χρήστες
Ουρά μηνυμάτων (message queue) εξερχόμενων emails
To SMTP πρωτόκολλο διευθετίζει την αποστολή email μηνυμάτων μεταξύ mail servers
Ισχύει το client/server μοντέλο: client: ο αποστολέας mail
server “server”: ο αποδέκτης
mail server
mailserver
useragent
useragent
useragent
mailserver
useragent
useragent
mailserver
useragent
SMTP
SMTP
SMTP
Electronic Mail: SMTP [RFC 2821]
Χρησιμοποιεί TCP για την αξιόπιστη μεταφορά email μηνυμάτων από ένα client σε ένα server, port 25
Απευθείας μεταφορά από τον αποστολέα στον αποδέκτη mail server
Τρεις φάσεις μεταφοράς Χειραψία (handshaking) Μεταφορά μηνυμάτων Τερματισμός σύνδεσης
Αλληλεπίδραση εντολή/απόκριση (command/response interaction) Εντολές: ASCII text Αποκρίσεις: status code και κείμενο
Σενάριο: Η Αλίκη στέλνει email στον Bob1) Η Αλίκη χρησιμοποιεί τον
User Agent (UA) για να συντάξει το μήνυμα προς τον (“to”) [email protected]
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 του
useragent
mailserver
mailserver user
agent
1
2 3 4 56
Δείγμα SMTP διάδρασης
S: 220 hamburger.edu C: HELO crepes.fr S: 250 Hello crepes.fr, pleased to meet you C: MAIL FROM: <[email protected]> S: 250 [email protected]... Sender ok C: RCPT TO: <[email protected]> S: 250 [email protected] ... 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
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 μήνυμα
Μορφή Mail μηνύματος
SMTP: πρωτόκολλο για ανταλλαγή emails
RFC 822: πρότυπο που ορίζει τη μορφή (format) των μηνυμάτων
header lines, e.g., To: From: Subject:
body το “μήνυμα”, μόνο ASCII
χαρακτήρες
header
body
blankline
Μορφή mail μηνύματος: πολυμεσικές επεκτάσεις (multimedia extensions)
MIME: multimedia mail extension, RFC 2045, 2056 Πρόσθετες γραμμές στην κεφαλίδα του μηνύματος
δηλώνουν τον MIME τύπο περιεχομένου
From: [email protected] To: [email protected] 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
κωδικοποιημένα δεδομένα
Πρωτόκολλα πρόσβασης σε 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.
useragent
sender’s mail server
useragent
SMTP SMTP accessprotocol
receiver’s mail server
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: 1 498 S: 2 912 S: . C: retr 1 S: <message 1 contents> S: . C: dele 1 C: retr 2 S: <message 1 contents> 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
Ρυθμίσεις email
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) ονομάτων (διεύθυνση/όνομα μετάφραση)
DNS
Γιατί όχι κεντρικό DNS;;; μοναδικό σημείο αποτυχίας (single point of failure) μεγάλος όγκος κίνησης (traffic volume) μακρινή απόσταση ως την κεντρική ΒΔ & απόκριση (distant centralized database)
δεν έχει καλή κλιμάκωση (low scalability)
DNS υπηρεσίες Μετάφραση Hostname σε IP διεύθυνση Κατανομή φόρτου (Load distribution)
Πολλαπλοί πανομοιότυποι Web servers: σύνολο IP διευθύνσεων για ένα όνομα
Root DNS Servers
com DNS servers org DNS servers edu DNS servers
poly.eduDNS servers
umass.eduDNS servers
yahoo.comDNS servers
amazon.comDNS servers
pbs.orgDNS servers
Κατανεμημένη, Ιεραρχική Database
Ένας Client θέλει την IP του www.amazon.com; 1η μέθοδος:
Ο Client στέλνει ένα ερώτημα (queries) έναν root server για να βρει τον com DNS server
Ο Client στέλνει ένα ερώτημα στον com DNS server για να βρει τον amazon.com DNS server
Ο Client στέλνει ένα ερώτημα στον amazon.com DNS server για να βρει την IP address του www.amazon.com
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, CAl ICANN Los Angeles, CA
e NASA Mt View, CAf 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, VAc Cogent, Herndon, VA (also Los Angeles)d U Maryland College Park, MDg US DoD Vienna, VAh ARL Aberdeen, MDj Verisign, ( 11 locations)
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). Μπορεί να διατηρούνται από τον οργανισμό ή
τον παροχέα υπηρεσιών
Τοπικός Name Server
Δεν ανήκει απαραίτητα στην ιεραρχία Κάθε ISP (εμπορικός ISP, εταιρία, παν/μιο)
διαθέτει ένα τοπικό DNS Αποκαλείται και “default name server”
Όταν ένας κόμβος εκτελεί ένα DNS ερώτημα, το ερώτημα στέλνεται στον τοπικό DNS server Λειτουργεί ως ενδιάμεσος (proxy), προωθεί το
ερώτημα στην ιεραρχία
requesting hostcis.poly.edu
gaia.cs.umass.edu
root DNS server
τοπικός DNS serverdns.poly.edu
1
23
4
5
6
authoritative DNS serverdns.cs.umass.edu
78
TLD DNS server
Παράδειγμα
Ο κόμβος cis.poly.edu θέλει να βρει την IP διεύθυνση του gaia.cs.umass.edu
requesting hostcis.poly.edu
gaia.cs.umass.edu
root DNS server
local DNS serverdns.poly.edu
1
2
45
6
authoritative DNS serverdns.cs.umass.edu
7
8
TLD DNS server
3
Αναδρομικά ερωτήματα (recursive queries)
Αναδρομικό (iterative) ερώτημα: Μεταφέρει το βάρος της επίλυσης του ονόματος από τον τοπικό στους root και TLD servers μεγάλος φόρτος!
Επαναληπτικό (recusrsive) ερώτημα: Ο name server με τον οποίο ήρθαμε σε επαφή απαντάει με την IP που αντιστοιχεί στο όνομα που στείλαμε Αν δεν το ξέρει: “Δεν ξέρω αυτό το όνομα, αλλά ρώτησε αυτό το name server”
Παράδειγμα εκτέλεσης ερωτήματος με αναδρομή (recursive)
DNS: προσωρινή αποθήκευση (caching) και ενημέρωση (updating) εγγραφών
Μόλις κάποιος name server μάθει κάποια νέα αντιστοίχηση, την αποθηκεύει (caches) Οι cache εγγραφές λήγουν (timeout) μετά από
κάποιο χρόνο Οι IP διευθύνσεις των TLD servers είναι τυπικά
αποθηκευμένες στους τοπικούς name servers Έτσι οι τοπικοί name servers δεν επισκέπτονται συχνά
τους root name servers
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)
για κάποιο «κανονικό» (αληθινό) όνομα
www.ibm.com είναι στην πραγματικότητα
servereast.backup2.ibm.com value είναι το αληθινό όνομα
Type=MX value είναι το όνομα του
mailserver που συσχετίζεται με το name
ttl: time to live (μετά από πόσο χρόνο θα λήξει η
εγγραφή)
DNS πρωτόκολλο: μηνύματα
DNS πρωτόκολλο: query και reply μηνύματα, και τα δύο με την ίδια μορφή μηνύματος (format)
Κεφαλίδα μηνύματος identification: 16-bit α/α (#) για ερώτημα, η απάντηση στην ερώτηση χρησιμοποιεί τον ίδιο # Flags (σημαίες):
query ή reply ζητείται αναδρομή
(recursion) recursion διαθέσιμη η απάντηση είναι
authoritative
DNS πρωτόκολλο: μηνύματα
Όνομα, τύπος πεδίωνγια ένα ερώτημα
RRs σε απάντησηερωτήματος
εγγραφές γιαauthoritative servers
επιπλέον “βοηθητική”πληροφορία που μπορεί
να χρησιμοποιηθεί
Εισαγωγή εγγραφών στο 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, 212.212.212.1, A)
Type: domai
n
Type: host
OPNET
Εργαλείο προσομοίωσης δικτύων (network simulation tool) Γιατί χρειάζονται τα εργαλεία προσομοίωσης δικτύων;
Προσμοιώνουν τον πραγματικό κόσμο στην οθόνη του υπολογιστή
Για ακαδημαϊκούς σκοπούς Δυνατότητα σχεδιασμού δικτύων (network models) με ρεαλιστικά μέσα
μετάδοσης, δικτυακές συσκευές, δικτυακά πρωτόκολλα Βοηθούν στην κατανόηση της λειτουργίας των δικτύων και των επιπτώσεων
της αύξησης του αριθμού χρηστών ή της δικτυακής κίνησης (traffic) Επιλογή στατιστικών (από όλο το δίκτυο ή μια συγκεκριμένη συσκευή) που θα
συλλεχθούν από την προσομοίωση «Τρέξιμο» προσομοίωσης, επισκόπηση και κατανόηση παραγόμενων
στατιστικών Για τους διαχειριστές δικτύων
Ποιο φθηνή λύση από το να αγοράσεις και να στήσεις ένα δίκτυο που θα αποδειχθεί μη λειτουργικό στην πράξη
Ανάλυση απαιτήσεων χρηστών, εφαρμογών και (σε συνδυασμό με μια ανάλυση κόστους) προσομοίωση δικτυακών λύσεων και επιλογή εκείνης με το καλύτερο λόγο «value for money»
Αντίστοιχα, προσομοίωση δικτυακών λύσεων για επέκταση (upgrade) υφιστάμενων λύσεων
Μεθοδολογία Προσομοίωσης
Αναλυτική παρουσίαση της μεθοδολογίας που ακολουθείται
Συνοπτική παρουσίαση της μεθοδολογίας που ακολουθείται
Μικρής κλίμακας τοπικά δίκτυα
Η σημερινή εργαστηριακή άσκηση στο OPNET
επικεντρώνει στην επέκταση του δικτύου μικρής
κλίμακας που δημιουργήσαμε στο προηγούμενο
μάθημα
Στο τέλος της άσκησης θα έχουμε:
δημιουργήσει μια νέα δικτυακή τοπολογία (σενάριο)
που θα αποτελεί επέκταση της προηγούμενης
συλλέξει στατιστικές μετρήσεις για την απόδοση
του (νέου) δικτύου
συγκρίνει τις μετρήσεις αυτές μεταξύ των δύο
‘όψεων’ του δικτύου (σεναρίου)
Δημιουργία νέου project
H σχεδίαση γίνεται στον Project Editor που εμφανίζεται εξ’ ορισμού με τη δημιουργία ενός project
H δημιουργία ενός μοντέλου δικτύου (network model) προϋποθέτει τη δημιουργία ενός σεναρίου που ενσωματώνεται σε ένα project
To project είναι ένα σύνολο από συσχετιζόμενα σενάρια που επιτρέπουν τη διερεύνηση μιας άλλης πλευράς του δικτύου
Σε κάθε ένα από τα σενάρια αυτά εξετάζεται διαφορετική προσέγγιση του δικτύου
Τα βασικά χαρακτηριστικά καθορίζονται μέσω του Startup Wizard
Project Editor window
Project Editor buttons
Δημιουργία ενός δικτύου: Τοπολογία – Χρήση του Rapid Configuration wizard Δημιουργεί ένα δίκτυο επιλέγοντας:
Την τοπολογία του δικτύου Τους τύπους των κόμβων του δικτύου
Κόμβος (node): συμβολίζει ένα πραγματικό δικτυακό αντικείμενο που μπορεί να μεταδίδει και να λαμβάνει δεδομένα
Συνδέσεις (links): Επικοινωνιακό μέσο που διασυνδέει κόμβους μεταξύ τους.
Δημιουργία του δικτύου: Rapid Configuration wizard Επιλέξτε Topology Rapid Configuration Star
Προσδιορίστε τα node models και link models του δικτύου. Τα models ακολουθούν το παρακάτω σχήμα ονομασίας:
<protocol1>_..._<protocoln>_<function>_<mod> <protocol> ορίζει το πρωτόκολλο(α) που
υποστηρίζονται από το μοντέλο <function>: συντόμευση της γενικής λειτουργίας του
μοντέλου <mod>: δείχνει το επίπεδο κληρονομικότητας
(derivation) του μοντέλου
Δημιουργία του δικτύου: Rapid Configuration wizard
Δημιουργία του δικτύου: Rapid Configuration wizard
Δημιουργία του δικτύου: προσθήκη server Έχοντας δημιουργήσει τη γενική δικτυακή τοπολογία,
πρέπει να προσθέσουμε ένα διακομιστή (server) Θα χρησιμοποιήσουμε τη 2η μέθοδο δημιουργίας δικτυακών
αντικειμένων: θα «τραβήξουμε» αντικείμενα από την παλέτα αντικειμένων (object palette) στο χώρο εργασίας (workspace)
Αν δεν είναι ήδη ανοικτή, ανοίξτε την object palette με κλικ στο αντίστοιχο πλήκτρο
Τραβήξτε το Sm_Int_server αντικείμενο στο workspace. Στη συνέχεια πρέπει να συνδέσουμε το server στο
υπόλοιπο δίκτυο με ένα 10BaseT link Κάνετε κλικ στο 10BaseT link object στην παλέτα Κάνετε ένα κλικ στο server και ένα στο switch (στο κέντρο
του star) ώστε να σχεδιασθεί ένα link που θα συνδέει τα δύο αντικείμενα
Δημιουργία του δικτύου: ορισμός traffic Τέλος, πρέπει να προστεθούν αντικείμενα (configuration
objects) για τον προσδιορισμό της δικτυακής κίνησης που προέρχεται από εφαρμογές (application traffic).
Η κίνηση του δικτύου προστίθεται μέσω αντικειμένων διαμόρφωσης της παλέτας αντικειμένων Αντικείμενο καθορισμού εφαρμογών (application definition
object): εφαρμογές που «τρέχουν» στο δίκτυο (π.χ. e-mail) και συχνότητα με την οποία στέλνουν / ζητούν δεδομένα
Αντικείμενο καθορισμού προφίλ χρηστών (profile definition objects):
Είδος των εφαρμογών που χρησιμοποιεί (π.χ. light database access)
Συχνότητα με την οποία καλεί τη συγκεκριμένη εφαρμογή
Δημιουργία του δικτύου: ορισμός traffic Στα πλαίσια αυτής της άσκησης, εισάγουμε από την
παλέτα αντικειμένων (object palette): ένα application definition object με τις προκαθορισμένες
ρυθμίσεις (default configurations) των standard applications
ένα profile definition object με ένα προφίλ που μοντελοποιεί πρόσβαση σε βάση δεδομένων
Profile definition object
Η δημιουργία του δικτύου έχει πλέον ολοκληρωθεί και είμαστε έτοιμοι για τη συλλογή στατιστικών
Δημιουργία του δικτύου: συλλογή στατιστικών Μπορούμε να συλλέξουμε στατιστικά για μεμονωμένα
αντικείμενα του δικτύου (object statistics) ή για ολόκληρο το δίκτυο (global statistics)
Τα στατιστικά επιλέγονται για κάθε σενάριο ξεχωριστά και αφορούν μόνο το σενάριο για το οποίο έχουν επιλεχθεί
Μας ενδιαφέρει να συλλέξουμε στατιστικά που θα απαντούν ερωτήματα όπως: Θα αντέξει ο server τον επιπλέον φόρτο από ένα δεύτερο
δίκτυο; Η συνολική καθυστέρηση (total delay) στο δίκτυο θα είναι
αποδεκτή όταν εγκατασταθεί το 2ο δίκτυο; Για να απαντηθούν αυτές οι ερωτήσεις πρέπει να έχουμε
εικόνα της παρούσας κατάστασης του δικτύου (πριν επεκταθεί)
Χρειαζόμαστε ένα object statistic (Server Load) και ένα global statistic (Ethernet delay)
Δημιουργία του δικτύου: συλλογή στατιστικών To Server load είναι ένα
βασικό στατιστικό που αντανακλά την απόδοση όλου του δικτύου
Right-click στον server node (node_31) Choose Individual Statistics
Δημιουργία του δικτύου: συλλογή στατιστικών Συλλογή στατιστικών για τη
συνολική καθυστέρηση στο δίκτυο
Right-click στον κενό χώρο του workspace Choose Individual Statistics
«Τρέξιμο» προσομοίωσης
Επιλέξτε Simulation Configure Discrete Event Simulation… ή κάνετε κλικ στο “configure / run simulation” πλήκτρο
Πληκτρολογείστε Duration: 0,5 για να προσομοιώσετε μισή ώρα δικτυακής λειτουργίας
Πατήστε ‘Run’ για να ξεκινήσει η προσομοίωση
«Τρέξιμο» προσομοίωσης
Όσο εκτελείται η προσομοίωση, ένα πλαίσιο διαλόγου ενημερώνει για την πρόοδο της προσομοίωσης
Για πόσο χρόνο
εκτελείται ηπροσομοίωσ
η
Προσομοιωμένος χρόνος δικτυακής
λειτουργίας
Επισκόπηση αποτελεσμάτων
Right-click στον κενό χώρο του workspace View Results
Στην κορύφωσή του (peak) ο φόρτος (load) του server είναι λιγότερο από 6000 bits/second Αφού το δίκτυο σταθεροποιηθεί, η μέγιστη καθυστέρηση είναι περίπου 0.4 msec
Αυτές οι τιμές θα συγκριθούν με την εικόνα του δικτύου μετά την αναβάθμισή του
Αναβάθμιση του δικτύου: δημιουργία διπλότυπου σεναρίου Ανάγκη για:
Μελέτη εναλλακτικών περιπτώσεων Σχεδιασμός νέας τοπολογίας Επέκταση υπάρχουσας υποδομής Διερεύνηση ‘what-if’ σεναρίων
Το νέο (αναβαθμισμένο) δίκτυο υλοποιείται στο OPNET ως διαφορετικό σενάριο, δημιουργώντας διπλότυπο (duplicate) του σεναρίου που ήδη υπάρχει
Αναβάθμιση του δικτύου
Έχουμε δημιουργήσει ένα αρχικό (baseline) δίκτυο και συλλέξαμε στατιστικά για αυτό
Είμαστε έτοιμοι να το αναβαθμίσουμε και να επιβεβαιώσουμε ότι εξακολουθεί να λειτουργεί ικανοποιητικά με επιπλέον φόρτο
Για να εκτελέσουμε σύγκριση μεταξύ των δύο μορφών του ίδιου δικτύου, καλό είναι να αποθηκεύουμε το αρχικό ως ένα σενάριο και το αναβαθμισμένο ως άλλο σενάριο Θα αντιγράψουμε το αρχικό σενάριο και θα κάνουμε
μόνο τις απαραίτητες αλλαγές στο δεύτερο σενάριο Αντιγραφή του αρχικού σεναρίου
Επιλέξτε Scenarios Duplicate Scenario... Κρατήστε το ίδιο όνομα σεναρίου, προσθέτοντας τη λέξη
expansion στο τέλος Επιλέξτε OK.
Αναβάθμιση του δικτύου
Η αναβάθμιση αφορά επέκταση του υφιστάμενου δικτύου σε ένα δεύτερο όροφο
Ο δεύτερος όροφος θα έχει όμοια τοπολογία με τον πρώτο, μόνο που δεν θα έχει ξεχωριστό server
Επιλέξτε Topology Rapid Configuration
Επιλέξτε Star και δώσετε τις ρυθμίσεις που φαίνονται στη διπλανή εικόνα
Αναβάθμιση του δικτύου: συνένωση των δικτύων των δύο ορόφων Αν δεν είναι ήδη ανοικτή, ανοίξτε την παλέτα
αντικειμένων (object palette) Εισάγετε στο workspace έναν Cisco 2514
δρομολογητή (router) ανάμεσα στα δύο δίκτυα Συνδέστε τον Cisco router με τους 3Com switches
(που βρίσκονται στο κέντρο κάθε star) με ένα 10BaseT link
Κλείστε την object palette Αποθηκεύστε το project επιλέγοντας File Save
Αναβάθμιση του δικτύου: τελική τοπολογία & εκτέλεση της προσομοίωσης Επιλέξτε Simulation
Configure Discrete Event Simulation και
επιβεβαιώστε ότι η τιμή του Duration είναι 0,5 hours
Πατήστε ‘Run’ για να «τρέξει» η προσομοίωση
Αναβάθμιση του δικτύου: Επισκόπηση αποτελεσμάτων Right-click στον κενό χώρο του workspace View
Results
Αναβάθμιση του δικτύου: Σύγκριση αποτελεσμάτων των δύο σεναρίων Right-click στον κενό χώρο του workspace Compare
Results
Αναβάθμιση του δικτύου: Ποιοτική αξιολόγηση αποτελεσμάτων Παρότι ο μέσος φόρτος (average
load) του server είναι υψηλότερος στο αναβαθμισμένο δίκτυο, όπως αναμενόταν, δεν αυξάνεται σταθερά με την πάροδο του χρόνου, δείχνοντας ότι το δίκτυο παραμένει σταθερό
Το δεύτερο γράφημα δείχνει ότι δεν υπάρχει σημαντική διαφορά στην καθυστέρηση του δικτύου (Ethernet delay). Ο φόρτος του server έχει αυξηθεί, όχι όμως και η καθυστέρηση
Μέτρηση χρήσης (utilization) της CPU του server και εξερχόμενου traffic από τον database server Προσθέστε ένα ακόμα
στατιστικό: τη μέτρηση της χρήσης του επεξεργαστή (CPU) του server Θα πρέπει να ορίσετε το
στατιστικό αυτό και στα δύο σενάρια και ξανατρέξετε και τις δύο προσομοιώσεις
Για να «μετακινηθείτε» ανάμεσα σε διαφορετικά σενάρια επιλέξτε Scenarios Switch to scenario
Ομοίως, προσθέστε ένα στατιστικό για τη μέτρηση της κίνησης (traffic, bytes/sec) που προέρχεται από τον Database server (που είναι εγκατεστημένος στον server του δικτύου)
CPU Utilization
Προσθήκη νέας κίνησης (traffic) στο δίκτυο Δημιουργήστε ένα διπλότυπο του τελευταίου
σεναρίου Σε αυτό το νέο σενάριο θα προσομοιώσουμε τη
λειτουργία του δικτύου με προσθήκη νέων εφαρμογών που θα δημιουργούν επιπλέον κίνηση (traffic) στο δίκτυο και φόρτο στον server
Προσθήκη νέων εφαρμογών: Right-click στο Profile Definition object Edit
Attributes
Προσθήκη νέας κίνησης (traffic) στο δίκτυο Επιλέγουμε (...) και Edit
Προσθήκη νέας κίνησης (traffic) στο δίκτυο Στη συνέχεια αλλάζουμε τη λίστα των εφαρμογών
που περιέχονται στο συγκεκριμένο profile: Επιλέγουμε (...) και Edit
Προσθήκη νέας κίνησης (traffic) στο δίκτυο Στη συνέχεια αλλάζουμε τη λίστα των εφαρμογών
που περιέχονται στο συγκεκριμένο profile: Αντί ‘Database Access (Light)’ επιλέγουμε ‘Database
Access (Heavy)’
Προσθήκη νέας κίνησης (traffic) στο δίκτυο Δηλώστε ότι ο server
μπορεί να εκτελεί και τη νέα υπηρεσία:
Right-click στο server Edit attributes Application:
Supported Services = All
Τρέξτε την προσομοίωση αυτού του σεναρίου και συγκρίνετε τα αποτελέσματα με τα υπόλοιπα δύο σενάρια