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

Slides:



Advertisements
Παρόμοιες παρουσιάσεις
Δημιουργία Ιστοσελίδων σε HTML και FrontPage Πρόγραμμα Αναμόρφωσης Προπτυχιακών Σπουδών Κεντρικό Γραφείο Υποστήριξης Εκπαιδευτικού Έργου Αλέξανδρος Λεκατσάς.
Advertisements

Δίκτυα υπολογιστών.
WORDPRESS. Self-Hosting Wordpress • Απαιτείται δικό μας domain, και δικιά μας Web Hosting Υπηρεσία (κατόπιν πληρωμής) • Το λογισμικό του Wordpress κατεβαίνει.
Διαδίκτυο Κίκα Χρυσοστόμου.
ΔΙΑΔΙΚΤΥΟ (INTERNET) Γκόγκου A. Μάρθα Msc Πληροφορικής.
Ιστορία του Ιντερνετ.
Δίκτυα υπολογιστών ΕΠΛ 012
ΕΓΚΑΤΑΣΤΑΣΗ ΛΟΓΑΡΙΑΣΜΟΥ
Δίκτυα Υπολογιστών (Γ’ έτος, ΣΤ’ εξ)
Microsoft Exchange Server Τι είναι ο Exchange Ο Exchange Server χρησιμοποιείται για την παροχή υπηρεσίας ηλεκτρονικού ταχυδρομείου ( service).
Δ.Π.Θ. Συνδέοντας έγγραφα - 1 Συνδέοντας έγγραφα Μια σύνδεση στο Web (link) αποτελείται από δύο μέρη : Aυτό που βλέπουμε στη σελίδα και λέγεται άγκυρα.
Διαχείριση Δικτύων Ευφυή Δίκτυα Άσκηση 1: Χρήση βασικών εργαλείων για συλλογή πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου.
Web Services Υπηρεσίες διαδικτύου
Ενότητα Β: Εισαγωγή στο Διαδίκτυο Κουμπή Βασιλάντα, Ph.D, MSc.
ΙΩΑΝΝΗΣ ΚΩΝΣΤΑΝΤΙΝΟΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 19 ΟΚΤΩΒΡΙΟΥ 2012 ΑΙΘΟΥΣΑ Β4 1.
ΜΟΝΤΕΛΟ ΕΞΥΠΗΡΕΤΟΥΜΕΝΟΥ – ΕΞΥΠΗΡΕΤΗΤΗ ( CLIENT – SERVER )
ΤCP/IP Τι είναι; Σύντομο Ιστορικό
Κεφάλαιο 11.2 Sockets.
Υπηρεσίες δικτύων επικοινωνίας
Ηλεκτρονικό Ταχυδρομείο
Το Διαδίκτυο Τι πρέπει να ξέρετε για το Διαδίκτυο.
PHP/MYSQL ΠΑΡΟΥΣΙΑΣΗ ΣΤΑ ΠΛΑΙΣΙΑ ΤΟΥ ΜΑΘΗΜΑΤΟΣ ΕΠΟΙΚΟΙΝΩΝΙΑ ΑΝΘΡΩΠΟΥ-ΜΗΧΑΝΗΣ ΤΥΡΟΛΟΓΟΥ ΓΛΥΚΕΡΙΑ ΑΜ 875 ΡΙΖΟΥ ΔΕΣΠΟΙΝΑ ΑΜ 816.
Διαχείριση Δικτύων Ευφυή Δίκτυα Άσκηση 2: Ανάλυση Δικτυακής Κίνησης – Πρωτοκόλλων - Υπηρεσιών Εργαστήριο Διαχείρισης και Βέλτιστου Σχεδιασμού Δικτύων (NETMODE)
HY-335 : Δίκτυα Υπολογιστών Μαρία Παπαδοπούλη Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χειμερινό εξάμηνο O R E K W N T net works Επίπεδo.
1 Διαδίκτυο (Internet) Διευθύνσεις IP. 2 Ιεραρχικές ΙΡ διευθύνσεις  Κάθε host στο διαδίκυο έχει μια διεύθυνση που καλείται IP address.  Αυτή η διεύθυνση.
HY-335 : Δίκτυα Υπολογιστών DHCP Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χειμερινό εξάμηνο
Τεχνολογία TCP/IP TCP/IP internet είναι ένα οποιοδήποτε δίκτυο το οποίο χρησιμοποιεί τα πρωτόκολλα TCP/IP. Διαδίκτυο (Internet) είναι το μεγαλύτερο δίκτυο.
Β5.1.2 Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας.
HY-335 : Δίκτυα Υπολογιστών Μαρία Παπαδοπούλη Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Χειμερινό εξάμηνο O R E K W N T net works Επίπεδo.
ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ 8/11/2006. ΤΟ ΔΙΚΤΥΟ ΤΟΥ ΕΜΠ ntua.gr ( /16, AS#3323)
Εισαγωγή στο DNS lookup DNS lookup made easy by finrod για την Κοινότητα Ελεύθερου Λογισμικού ΕΜΠ(2011)
ΔΙΑΧΕΙΡΙΣΗ ΔΙΚΤΥΩΝ 14/11/07. 2 Κατηγορίες Λειτουργιών Διαχείρισης ΜΟΝΤΕΛΟ ΑΝΑΦΟΡΑΣ Fault (Βλάβες) Configuration (Διάρθρωση) Accounting (Λογιστική) Performance.
Σύνοψη 1 Αρχές διαδικτύου 1.1 Αναδρομή – εισαγωγή
Κρυπτογραφία Ψηφιακά Πιστοποιητικά
Δικτυα.
Τεχνολογία της Πληροφορίας στην Επικοινωνία και τα ΜΜΕ Επικοινωνία και τα ΜΜΕ, Εισαγωγή στο Διαδίκτυο Διάλεξη 9 η.
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ). 2 Εξοικείωση με πρωτόκολλο TCP Connection Oriented Αξιοπιστία στην παράδοση Σειρά Καθυστερήσεις Χαρακτηριστικά.
Κεφάλαιο 7 Διαδικτύωση-Internet 7.3 Πρωτόκολλο TCP.
Χάρης Κονδυλάκης Σχεδιασμός Ιστοχώρων 1. Παραδείγματα ιστοχώρων del.icio.us europa.eu lufthansa.aero cnn.tv.
ΗΜΥ 100: Εισαγωγή στην Τεχνολογία Διάλεξη 5 Η εξέλιξη του Διαδικτύου TΜΗΜΑ ΗΛΕΚΤΡΟΛΟΓΩΝ ΜΗΧΑΝΙΚΩΝ ΚΑΙ ΜΗΧΑΝΙΚΩΝ ΥΠΟΛΟΓΙΣΤΩΝ ΠΟΛΥΤΕΧΝΙΚΗ ΣΧΟΛΗ ΠΑΝΕΠΙΣΤΗΜΙΟ.
To πρωτόκολλο διαδικτύου IP -χρησιμοποιείται από αποστολέα και παραλήπτη που μπορεί να βρίσκονται σε διαφορετικά δίκτυα για να ανταλλάξουν πακέτα πληροφοριών.
Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Ρύθμιση Postfix SMTP Server, Courier IMAP, POP3 σε Ubuntu Linux Πανεπιστήμιο Πελοποννήσου Τμήμα Επιστήμης &
ΒΑΣΙΚΕΣ ΕΝΝΟΙΕΣ ΑΡΧΙΤΕΚΤΟΝΙΚΗΣ ΚΑΙ ΔΙΑΣΥΝΔΕΣΗΣ ΔΙΚΤΥΩΝ
Προχωρημένα Θέματα Δικτύων
Ερώτηση 2.6 Υποθέστε ότι θέλετε να κάνετε μια συναλλαγή από έναν απομακρυσμένο πελάτη προς έναν εξυπηρέτη, όσο το δυνατόν ταχύτερα. Θα χρησιμοποιούσατε.
Πανεπιστήμιο Πελοποννήσου
Τι είναι το Ίντερνετ Παγκόσμιο Δίκτυο
Κατανεμημένα Συστήματα
Internet Control Message Protocol (ICMP)
Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Ρύθμιση Postfix SMTP Server, Courier IMAP, POP3 σε Ubuntu Linux Πανεπιστήμιο Πελοποννήσου Τμήμα Επιστήμης.
Κεφάλαιο 10: Υπηρεσίες και εφαρμογές Διαδικτύου
Κεφάλαιο 7 Διαδικτύωση-Internet
ΚΑΤΑΝΕΜΗΜΕΝΑ ΣΥΣΤΗΜΑΤΑ (ΕΡΓΑΣΤΗΡΙΟ)
Ειδικά Θέματα σε Κινητά & Ασύρματα Δίκτυα
Κεφάλαιο 6o. Επίπεδο εφαρμογής
ΥΠΗΡΕΣΙΕΣ ΚΑΙ ΕΦΑΡΜΟΓΕΣ ΔΙΑΔΙΚΤΥΟΥ 10.1 Υπηρεσίες Διαδικτύου
Υπηρεσίες του διαδικτύου
Κεφάλαιο 7: Διαδικτύωση-Internet
Λύσεις Ασφάλειας στο Επίπεδο Διασύνδεσης
Κεφάλαιο 6o. Επίπεδο εφαρμογής
Κεφάλαιο 7:Διαδικτύωση-Internet
9.2 Δομή και υπηρεσίες του Διαδικτύου
Κεφάλαιο 7: Διαδικτύωση-Internet
10.1 Υπηρεσίες και εφαρμογές Διαδικτύου
9.3 υπηρεσίες του Διαδικτύου
Κεφάλαιο 1 Διαδίκτυο και παγκόσμιος ιστός Εισαγωγικές έννοιες
Υπηρεσίες Διαδικτύου.
Το Διαδίκτυο - Internet
Υπηρεσίες και εφαρμογές Διαδικτύου
HY-335 : Δίκτυα Υπολογιστών
Μεταγράφημα παρουσίασης:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ανέβασμα φόρμας εισόδου POST method: H web page συχνά περιλαμβάνει μία φόρμα εισόδου To input μεταφέρεται στο server στο entity body URL method: Χρησιμοποιεί την GET method Το input μεταφέρεται στο server μέσω του URL πεδίου στη request line: www.somesite.com/animalsearch?monkeys&banana Application Layer

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

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

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

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

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

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

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

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

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

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

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

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

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

Απλό παράδειγμα 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 Application Layer

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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