Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ)

Preview:

DESCRIPTION

Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ) Διάλεξη # 7: Επίπεδο Εφαρμογών ( Application layer). Εργαστηριακές ασκήσεις στο εργαλείο προσομοίωσης δικτύων OPNET. Γαβαλάς Δαμιανός dgavalas@aegean.gr. Εαρινό εξάμηνο. Περίληψη διάλεξης. Γενικές αρχές και κατηγορίες δικτυακών εφαρμογών - PowerPoint PPT Presentation

Citation preview

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

Γαβαλάς Δαμιανόςdgavalas@aegean.grΕαρινό εξάμηνο

Περίληψη διάλεξης

Γενικές αρχές και κατηγορίες δικτυακών εφαρμογών

Ο ρόλος του Επιπέδου Εφαρμογών (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”) bob@someschool.edu

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: <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

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: 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

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

Τρέξτε την προσομοίωση αυτού του σεναρίου και συγκρίνετε τα αποτελέσματα με τα υπόλοιπα δύο σενάρια

Recommended