Κεφάλαιο 2 Επίπεδο Εφαρμογής

Σχετικά έγγραφα
Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Ηλεκτρονικό Ταχυδρομείο - SMTP

Ιόνιο Πανεπιστήµιο. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα Θ. Υπηρεσίες Internet. ρ. Ε. Μάγκος

Web and HTTP. Βασικά Συστατικά: Web Server Web Browser HTTP Protocol

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Υπηρεσία Ηλεκτρονικού Ταχυδρομείου - SMTP

Network Address Translation (NAT)

Client server Peer-to-peer (Οµότιµα ίκτυα)

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Βασικές Υπηρεσίες Διαδικτύου. Επικοινωνίες Δεδομένων Μάθημα 2 ο

Υπολογιστές και ίκτυα Η/Υ.

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας - Βιβλιοθηκονοµίας. Υπηρεσίες Internet. ίκτυα Η/Υ. Επίπεδο Εφαρµογής. Ενότητα θ

Δίκτυα Επικοινωνιών Δίκτυα Υπολογιστών και Στρώμα Εφαρμογής Διδάσκοντες: Δρ. Ευγενία Αδαμοπούλου, Δρ. Κώστας Δεμέστιχας

Δίκτυα Υπολογιστών. Το επίπεδο εφαρμογής (application layer) Κ. Βασιλάκης

Εισαγωγή Επανάληψη. ΤΕΙ Στερεάς Ελλάδας. ΣT Εξάμηνο, Κατεύθυνση Μηχανικών Δικτύων Τ.Ε. Τμήμα Μηχανικών Πληροφορικής Τ.Ε. Διαδικτυακός Προγραμματισμός

Προγραμματισμός Ιστοσελίδων (Web Design)

Ιόνιο Πανεπιστήμιο Τμήμα Πληροφορικής Εισαγωγή στην Επιστήμη των Υπολογιστών Δίκτυα υπολογιστών. (και το Διαδίκτυο)

Τι είναι ένα δίκτυο υπολογιστών; Αρχιτεκτονική επιπέδων πρωτοκόλλων. Δικτυακά πρωτόκολλα

HY-335 : Δίκτυα Υπολογιστών

Πρωτόκολλο FTP. Από τα παλαιότερα πρωτόκολλα του ArpaNet Το FTP είναι μια τυποποίηση του TCP/IP Πρόκειται για πρωτόκολο γενικού σκοπού

Επίπεδο δικτύου IP Forwading κτλ

6.2 Υπηρεσίες Διαδικτύου

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Στρώμα εφαρμογής. Δίκτυα Υπολογιστών

ίκτυα - Internet Υπηρεσίες Internet O Παγκόσµιος Ιστός (World Wide Web) Ηλεκτρονική Αλληλογραφία ( ) Υπηρεσία FTP (File Transfer Protocol)

ΤΜΗΜΑ ΕΚΠΑΙΔΕΥΤΙΚΗΣ ΥΠΟΛΟΓΙΣΤΙΚΗΣ ΥΠΟΔΟΜΗΣ ΜΗΧΑΝΟΓΡΑΦΙΚΟ ΚΕΝΤΡΟ

Προγραμματισμός και Συστήματα στον Παγκόσμιο Ιστό Ενότητα 1: Εισαγωγή. Καθ. Ιωάννης Γαροφαλάκης Πολυτεχνική Σχολή Μηχανικών Η/Υ & Πληροφορικής

PROXY SERVER. Άριστη πύλη διαχωρισμού μεταξύ του εσωτερικού δικτύου και του Internet.

Εργαστηριακή Άσκηση 5

Τεχνολογίες ιαδικτύου

ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ ΠΑΝΕΠΙΣΤΗΜΙΟ ΚΡΗΤΗΣ. Δίκτυα Υπολογιστών. Μαρία Παπαδοπούλη Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης

Επίπεδο Μεταφοράς. (ανεβαίνουμε προς τα πάνω) Εργαστήριο Δικτύων Υπολογιστών Τμήμα Μηχανικών Η/Υ και Πληροφορικής

Κεφάλαιο 2. ηµιουργία δικτυακής εφαρµογής

Κεφάλαιο 2 Επίπεδο Εφαρµογής

ΗY335: Δίκτυα Υπολογιστών Χειμερινό Εξάμηνο Τμήμα Επιστήμης Υπολογιστών Πανεπιστήμιο Κρήτης Διδάσκουσα: Μαρία Παπαδοπούλη

Εισαγωγή στους Υπολογιστές

Υπηρεσία Πληροφορικών Συστημάτων Τομέας Διαχείρισης Συστημάτων και Εφαρμογών

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

1.2.2 Το μοντέλο δικτύωσης TCP/IP 1 / 26

Δίκτυα Υπολογιστών Firewalls. Χάρης Μανιφάβας

ΔΙΚΤΥΑ. Διδάσκοντες: Π. Αγγελάτος, Δ. Ζήνδρος Επιμέλεια διαφανειών: Π. Αγγελάτος Σχολή Ηλεκτρολόγων Μηχανικών και Μηχανικών Υπολογιστών

Ηλεκτρονική Αλληλογραφία ( )

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Ρύθμιση Postfix SMTP Server, Courier IMAP, POP3 σε Ubuntu Linux

Δίκτυα Επικοινωνιών Ι. Τμήμα Πληροφορικής και Τηλεπικοινωνιών Εθνικό & Καποδιστριακό Πανεπιστήμιο Αθηνών. Επίπεδο Εφαρμογής. Διδάσκων: Λάζαρος Μεράκος

Δίκτυα Υπολογιστών ΙΙ (Ασκήσεις Πράξης)

Πρωτόκολλα Διαδικτύου

Τεχνολογίες Παγκόσμιου Ιστού. 1η διάλεξη

Ιόνιο Πανεπιστήµιο Τµήµα Αρχειονοµίας Βιβλιοθηκονοµίας. Μοντέλο TCP/IP. Ενότητα E. Συστήµατα Επικοινωνίας

ΠΑΓΚΑΛΟΣ ΙΩΑΝΝΗΣ ΣΙΣΜΑΝΗΣ ΝΙΚΟΣ. File Transfer Protocol

ΔΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Στρώμα εφαρμογής. Δίκτυα Υπολογιστών

Κεφάλαιο 2: Επίπεδο Εφαρµογής

ΜΕΤΑΦΟΡΑ ΑΡΧΕΙΩΝ FTP

ΕΘΝΙΚΟ ΜΕΤΣΟΒΙΟ ΠΟΛΥΤΕΧΝΕΙΟ. Σηµειώσεις για τα πρωτόκολλα στρώµατος εφαρµογής: HTTP, FTP, , DNS

Διαχείριση Δικτύων Εργαστήριο (Διαφάνειες)

ικτυακές εφαρµογές: ορολογία Κεφάλαιο 2

Βήμα 6. Ακολουθήστε αυτά που υποδεικνύουν τα σχήματα 6,7,8,9 και 10. σχήμα 6. σχήμα 7. σχήμα 8

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Στρώμα εφαρμογής. Δίκτυα Υπολογιστών

Πανεπιστήμιο Πειραιά Τμήμα Ψηφιακών Συστημάτων. ίκτυα Υπολογιστών Ι. To Μοντέλο OSI. Αναπλ. Καθηγ. Π. εμέστιχας

Κεφάλαιο 2: Επίπεδο Εφαρµογής

Άσκηση 2 η Πρωτόκολλο επικοινωνίας TCP/IP

Ιόνιο Πανεπιστήµιο Τµήµα Πληροφορικής Συστήµατα Επικοινωνίας. Μοντέλο TCP/IP. Ενότητα E. Πόσοι εµπλέκονται σε ένα Σύστηµα Επικοινωνίας

Πρωτόκολλα Διαδικτύου (ΨΣ-326 DS151)

Δίκτυα Επικοινωνιών Ι

Εγκατάσταση λογαριασμού ηλεκτρονικού ταχυδρομείου στο MICROSOFT OUTLOOK

ΕΙΣΑΓΩΓΗ ΣΤΙΣ ΗΛΕΚΤΡΟΝΙΚΕΣ ΥΠΗΡΕΣΙΕΣ

1. Τρόποι πρόσβασης στο σας

Εγχειρίδιο χρήσης συστήματος ηλεκτρονικής αλληλογραφίας της Ελληνικής Ομοσπονδίας Μπριτζ

Γαβαλάς αµιανός

α. Το μέγιστο μήκος δεδομένων του ωφέλιμου φορτίου του πλαισίου Ethernet είναι 1500 οκτάδες. ΣΩΣΤΟ

Μεταφορά Αρχείων µε χρήση της Υπηρεσίας FTP σελ. 1

Πρωτόκολλα Επικοινωνίας και Τείχος Προστασίας

Εισαγωγή στην επιστήμη των υπολογιστών. Υλικό Υπολογιστών Κεφάλαιο 6ο ίκτυα υπολογιστών

ιαδικτυακές Εφαρµογές

Πρωτόκολλα Διαδικτύου. Άγγελος Ρούσκας Τμήμα Ψηφιακών Συστημάτων Πανεπιστήμιο Πειραιώς

Διαχείριση Πληροφοριών στο Διαδίκτυο. Εργαστήριο 1

Βασικές Έννοιες Web Εφαρμογών

Δίκτυα Υπολογιστών Επίπεδο Εφαρμογής Ιωάννης Κορίνθιος Δρ. Ηλεκτρολόγος Μηχανικός ΕΜΠ

ΙΚΤΥΑ ΥΠΟΛΟΓΙΣΤΩΝ. Εφαρμογές. Δίκτυα Υπολογιστών

Το διαδίκτυο είναι ένα δίκτυο που αποτελείτε από πολλά μικρότερα δίκτυα υπολογιστών.

7.2.2 Σχέση OSI και TCP/IP

Περί δικτύων. Δρ. Ματθαίος Πατρινόπουλος

DNS. Όλες οι άλλες υπηρεσίες του Διαδικτύου, (WWW και ) χρησιμοποιούν το DNS

Διαδικτυακές Υπηρεσίες

ίκτυα υπολογιστών Στόχοι κεφαλαίου ίκτυα

Ντίρλης Νικόλαος- ΕΤΥ 3ο ΦΡΟΝΤΙΣΤΗΡΙΟ ΠΑΡΑΣΚΕΥΗ 25 ΟΚΤΩΒΡΙΟΥ 2013 ΑΙΘΟΥΣΑ Β4

Special edition of the Technical Chamber of Greece on Video Conference Services on the Internet, 2000 NUTWBCAM

Απομακρυσμένη Πρόσβαση και Εντολές Ελέγχου και Υποστήριξης

Θέματα Προγραμματισμού Διαδικτύου Εισαγωγή - Πρωτόκολλα

ΤΕΙ ΗΠΕΙΡΟΥ Τμήμα Τηλεπληροφορικής & Διοίκησης

Τεχνολογίες Διαδικτύου. Server Side Scripting I PHP

Ως Διαδίκτυο (Internet) ορίζεται το παγκόσμιο (διεθνές) δίκτυο ηλεκτρονικών υπολογιστών (international network).

Τεχνολογία TCP/IP ΙΑ ΙΚΤΥΩΣΗ- INTERNET. Τεχνολογίες Τηλεκπαίδευσης & Εφαρµογές - Ιούλιος

wget --post-file meme.jpg :9646

Εισαγωγή στο πως λειτουργεί το διαδίκτυο

Πρόβλεμα Online Gaming με modem Thomson και Speedtouch

Δίκτυα Υπολογιστών Ενότητα 2: HTTP HyperText Transfer Protocol

Δίκτυα Θεωρία

Εισαγωγή στην Πληροφορική

Σύντομη παρουσίαση των εργαλείων/εντολών telnet, ping, traceroute nslookup και nmap, zenmap

Μάθημα 5: To Μοντέλο Αναφοράς O.S.I.

1 η Διάλεξη: Εισαγωγή στο Διαδίκτυο

Βασίλειος Κοντογιάννης ΠΕ19

Υπηρεσία Πληροφορικών Συστημάτων Τομέας Συστημάτων

Transcript:

Κεφάλαιο 2 Επίπεδο Εφαρμογής Σχετικά με τη χρήση αυτών των διαφανειών: Αυτές οι διαφάνειες διατίθενται ελεύθερα σε όλους (καθηγητές, φοιτητές, αναγνώστες). Είναι σε μορφή PowerPoint, έτσι ώστε να είναι δυνατή η επεξεργασία τους με οποιοδήποτε τρόπο. Προκειμένου να χρησμοποιηθούν απαιτείται: Αν χρησιμοποιηθούν χωρίς καμία αλλαγή να αναφερθεί η πηγή Αν δημοσιευθούν σε κάποια ιστοσελίδα χωρίς καμία επεξεργασία να σημειωθεί η πηγή και τα πνευματικά δικαιώματα αυτού του υλικού. Computer Networking: A Top Down Approach, 4 th edition. Jim Kurose, Keith Ross Addison-Wesley, July 2007. All material copyright 1996-2007 J.F Kurose and K.W. Ross, All Rights Reserved 2: Application Layer 1

Internet protocol stack application: υποστηρίζει εφαρμογές δικτύου FTP, SMTP, HTTP transport: διεργασία μεταφοράς δεδομένων TCP, UDP network: δρομολόγηση των δεδομένων (datagrams) από την πηγή στον προορισμό IP, routing protocols link: μεταφορά δεδομένων μεταξύ γειτονικών στοιχείων του δικτύου PPP, Ethernet physical: bits on the wire application transport network link physical Introduction 1-2

Application Layer (επίπεδο εφαρμογής) Δημοφιλή πρωτόκολλα επιπέδου εφαρμογής HTTP FTP SMTP / POP3 / IMAP DNS 2: Application Layer 3

Μέρικές εφαρμογές δικτύου e-mail web instant messaging remote login P2P file sharing multi-user network games streaming stored video clips voice over IP real-time video conferencing grid computing 2: Application Layer 4

Δημιουργώντας μία εφαρμογή δικτύου application transport network data link physical Γράφουμε προγράμματα που: τρέχουν σε διαφορετικά τερματικά συστήματα Επικοινωνούν μέσω δικτύου πχ: web software επικοινωνεί με browser software Δε χρειάζεται να δημιoυργηθεί λογισμικό για συσκευές κεντρικού δικτύου (network core) Network-core συσκευές δεν υποστηρίζουν εφαρμογές χρήστη Εφαρμογές σε τερματικά συστήματα επιτρέπουν γρήγορη ανάπτυξη εφαρμογών και διάδοση application transport network data link physical application transport network data link physical 2: Application Layer 5

Αρχιτεκτονικές εφαρμογών Client- Peer-to-peer (P2P) Υβριδικές (Hybrid of client- and P2P) 2: Application Layer 6

Αρχιτεκτονική Client- client/ : always-on host στατική IP διεύθυνση farms for scaling clients: επικοινωνούν με τον μπορεί να είναι διακοπτόμενα συνδεδεμένοι μπορούν να έχουν δυναμική IP διεύθυνση δεν επικοινωνούν απευθείας μεταξύ τους 2: Application Layer 7

Αρχιτεκτονική Pure P2P όχι πάντα-on τυχαία τερματικά συστήματα επικοινωνούν άμεσα Peers:συνδέονται διακεκομένα και αλλάζουν τις IP διευθύνσεις τους peer-peer Highly scalable but difficult to manage 2: Application Layer 8

Υβριδική αρχιτεκτονική μεταξύ client- και P2P Skype voice-over-ip P2P εφαρμογή κεντρικός : εύρεση διεύθυνσης απομακρυσμένης σύνδεσης Σύνδεση client-client: απευθείας (όχι μέσω ) Instant messaging chatting μεταξύ 2 χρηστών είναι P2P Κεντρική υπηρεσία : με παρουσία του client ανίχνευση θέσης ο χρήστης καταχωρεί την IP του διεύθυνση στον κεντρικό όταν συνδεθεί ο χρήστης επικοινωνεί με τον κεντρικό για να βρει IP διεύθυνση 2: Application Layer 9

Web and HTTP Ορολογία Μία σελίδα (Web page) αποτελείται από αντικείμενα (objects) Ένα αντικείμενο μπορεί να είναι ένα αρχείο HTML, μία εικόνα JPEG, Java applet, αρχείο ήχου, Μία δικτυακή σελίδα αποτελείται από base HTMLfile που περιλαμβάνει πολλά αντικείμενα Κάθε αντικείμενο έχει μία διεύθυνση URL Παράδειγμα URL: www.someschool.edu/somedept/pic.gif host name path name 2: Application Layer 10

HTTP HTTP: hypertext transfer protocol Πρωτόκολλο επιπέδου εφαρμογής του διαδικτύου Μοντέλο client/ client: ο browser που ζητάει, λαμβανει και εμφανίζει αντικείμενα : ο web στέλνει αντικείμενα σε απάντηση αιτήσεων PC running Explorer Mac running Navigator Server running Apache Web 2: Application Layer 11

HTTP (συνέχεια) Χρησιμοποιεί TCP: ο client αρχικοποιεί την TCP σύνδεση (δημιουργεί socket) με το, port 80 ο αποδέχεται την TCP σύνδεση από τον client HTTP μηνύματα (μηνύματα πρωτοκόλλου επιπέδου εφαρμογής) αναλλάσσονται μεταξύ του browser (HTTP client) και του Web (HTTP ) κλείνει η σύνδεση HTTP is stateless ο δε διατηρεί πληροφορίες για προηγούμενες αιτήσεις client Πρωτόκολλα που διατηρούν πληροφορίες είναι πολύπλοκα! ποηγούμενο ιστορικό (state) θα πρέπει να διατηρηθεί aside αν ο /client κρασάρει μπορεί το ιστορικό τους να μην είναι συνεπές και θα πρέπει να συνδυαστεί 2: Application Layer 12

HTTP connections Nonpersistent HTTP Τουλάχιστον ένα αντικείμενο στέλνεται με σύνδεσηtcp Persistent HTTP Πολλά αντικείμεα μπορούν να σταλούν με μία σύνδεση TCP μεταξύ client and. 2: Application Layer 13

Nonpersistent HTTP Έστω ένας χρήστης πατάει το παρακάτω URL www.someschool.edu/somedepartment/home.index (contains text, references to 10 jpeg images) χρόνος 1a. HTTP client αρχικοποιεί τη σύνδεση TCP με τον HTTP (process) at www.someschool.edu on port 80 2. HTTP client στέλνει ένα HTTP μήνυμα αίτησης-request message (που περιλαμβάνει ένα URL) μέσα σε ένα socket σύνδεσης TCP. Το μήνυμα σημειώνει ότι ο client θέλει ένα αντικείμενο, somedepartment/home.index 1b. HTTP at host www.someschool.edu περιμένει για τη TCP σύνδεση στο port 80. Αποδέχεται τη σύνδεση και ενημερώνει τον client. 3. HTTP λαμβάνει το μήνυμα αίτησης που περιλαμβάνει τα αντικείμενα που θέλει ο client και στέλνει ένα μήνυμα στο socket 2: Application Layer 14

Nonpersistent HTTP (συνέχεια) χρόνος 5. HTTP client λαμβάνει ένα μήνυμα απάντησης που περιλαμβάνει ένα αρχείο html και παρουσιάζει το html. Αναλύοντας το αρχείο file, βρίσκει 10 αντικείμενα jpeg 6. Τα βήματα 1-5 επαναλαμβάνονται για κάθε ένα από τα 10 αντικείμενα jpeg 4. HTTP κλείνει τη σύνδεση TCP. 2: Application Layer 15

Persistent HTTP Nonpersistent HTTP issues: Απαιτεί 2 RTTs για κάθε αντικείμενο OS overhead για κάθε σύνδεσηtcp browsers συχνά ανοίγουν παράλληλα συνδέσεις TCP προκειμένου να πάρουν τα αναφερόμενα αντικείμενα Persistent HTTP Ο αφήνει ανοιχτή τη σύνδεση αφού στείλει την απάντηση Επομένως και τα HTTP μηνύματα μεταξύ του ίδιου client/ στέλνουν με ανοιχτή σύνδεση Ο client στέλνει αιτήματα ακριβώς μόλις μετρήσει ένα αναφερόμενο αντικείμενο 1 RTT για όλα τα αναφερόμενα αντικείμενα 2: Application Layer 16

HTTP μήνυμα αίτησης 2 τύποι HTTP μηνυμάτων: αίτηση (request), απάντηση (response) HTTP μήνυμα αίτησης: ASCII (σε format που μπορεί να διαβαστεί από άνθρωπο) αμμή αίτηση, request line (GET, POST, HEAD commands) header lines GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-agent: Mozilla/4.0 Connection: close Accept-language:fr Γραμμή επιστροφής (Carriage return, line feed) σημειώνει το τέλος του μηνύματος (extra carriage return, line feed) 2: Application Layer 17

HTTP request message: general format 2: Application Layer 18

Μορφή μεταφόρτωσης (Uploading form input) Μέθοδος Post: Η σελίδα διαδικτύου συχνά περιλαμβάνει φόρμα εισόδου Η είσοδος μεταφορτώνεται στον ως ένα σώμα Μέθοδος URL: Χρησιμοποιεί τη μέθοδο GET Η είσοδος μεταφορτώνεται στο πεδίο του URL στη γραμμή αιτήματος: www.somesite.com/animalsearch?monkeys&banana 2: Application Layer 19

Τύποι μεθόδων HTTP/1.0 GET POST HEAD Ζητάει από τον να αφήσει το αντικείμενο που ζητήθηκε εκτός της απάντησης HTTP/1.1 GET, POST, HEAD PUT Μεταφορτώνει το αρχείο σαν ένα σώμα, στο path που καθορίζεται στο πεδίο του URL DELETE Διαγράφει το αρχείο που καθορίζεται στο πεδίο του URL 2: Application Layer 20

HTTP μήνυμα απάντησης (response message) Γραμμή κατάστασης (protocol status code status phrase) header lines HTTP/1.1 200 OK Connection close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998... Content-Length: 6821 Content-Type: text/html Δεδομένα, πχ HTML αρχείο που ζητήθηκε data data data data data... 2: Application Layer 21

Κατάσταση HTTP απάντησης (response) Στην πρώτη γραμμή του μηνύματος απάντησης από τον ->client, μπορεί να υπάρχει ο παρακάτωκώδικας: 200 OK Το αίτημα ήταν επιτυχές, και το ζητούμενο αντικείνο θα είναι παρακάτω στο μήνυμα 301 Moved Permanently Το ζητούμενο αντικείμενο έχει μετακινηθεί και η νέα το θέση σημειώνεται παρακάτω στο μήνυμα (Location:) 400 Bad Request Το μήνυμα αίτησης δεν έγινε αντιληπτό από τον 404 Not Found Το ζητούμενο έγγραφο δε βρέθηκε από τον 505 HTTP Version Not Supported 2: Application Layer 22

Trying out HTTP (client side) for yourself 1. Telnet to your favorite Web : telnet cis.poly.edu 80 Opens TCP connection to port 80 (default HTTP port) at cis.poly.edu. Anything typed in sent to port 80 at cis.poly.edu 2. Type in a GET HTTP request: GET /~ross/ HTTP/1.1 Host: cis.poly.edu By typing this in (hit carriage return twice), you send this minimal (but complete) GET request to HTTP 3. Look at response message sent by HTTP! 2: Application Layer 23

Web caches (proxy ) Στόχος: να ικανοποιηθεί το αίτημα του client χωρίς να εμπλακεί ο origin user sets browser: Web accesses via cache Ο browser στέλνει όλα τα αιτήματα HTTP στην cache Αντικείμενο στην cache: η cache επιστρέφει αντικείμενο Αλλιώς η cache ζητάει αντικείμενο από τον origin και μετά επιστρέφει το αντικείμενο στον client client client Proxy origin origin 2: Application Layer 24

More about Web caching Η cache λειτουργεί και ως client και ως typically cache is installed by ISP (university, company, residential ISP) Γιατί Web caching? Μειώνει το χρόνο απόκρισης για το αίτημα του client μειώνει το traffic σε μία σύνδεση (institution s access link) Internet dense with caches: enables poor content providers to effectively deliver content (but so does P2P file sharing) 2: Application Layer 25

Get υπό συνθήκη (Conditional GET) Στόχος: να μην στέλνεται ένα αντικείμενο αν η cache πρέπει να ενημερωθεί cache: ορίζεται η ημερομηνία του αντιγράφου που υπάρχει στο HTTP αίτημα If-modified-since: <date> : η απάντηση δεν περιλαμβάνει αντικείμενα αν δεν έχει γίνει ενημέρωση στο αντίγραφο: HTTP/1.0 304 Not Modified cache HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 304 Not Modified HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 200 OK <data> object not modified object modified 2: Application Layer 26

FTP: the file transfer protocol user at host FTP user interface FTP client local file system file transfer FTP remote file system Μεταφορά αρχείου από/προς remote host Μοντέλο client/ client: η πλευρά που αρχικοποιεί τη μεταφορά (είτε από είτε προς το remote) : remote host ftp: RFC 959 ftp : port 21 2: Application Layer 27

FTP: διαχωρίζει τον έλεγχο, συνδέσεις δεδομένων FTP client επικοινωνεί με τον FTP στο port 21, TCP είναι το πρωτόκολλο μεταφοράς Ο client εγκρίνεται με την σύνδεση ελέγχου client καλεί το remote directory στέλνοντας εντολές μέσω σύνδεσης ελέγχου Όταν ο λάβει εντολή μεταφοράς αρχείου ανοίγει 2 η TCP σύνδεση (για το αρχείο) στον client Αφού μεταφερθεί ένα αρχείο ο κλείνει τη σύνδεση δεδομένων. FTP client TCP control connection port 21 TCP data connection port 20 Ο ανοίγει άλλη TCP σύνδεση δεδομένων για να μεταφέρει άλλο αρχείο. Σύνδεση ελέγχου: out of band Ο FTP δατηρεί την καταστασή του: τρέχον κατάλογος, προηγούμενη έγκριση FTP 2: Application Layer 28

FTP εντολές, απαντήσεις Εντολές : sent as ASCII text over control channel USER username PASS password LIST return list of file in current directory RETR filename retrieves (gets) file STOR filename stores (puts) file onto remote host Επιστροφές κώδικα status code and phrase (as in HTTP) 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file 2: Application Layer 29

Electronic Mail 3 βασικά στοιχεία: Πράκτορες χρήστη (user agents) mail s Πρωτόκολλο, simple mail transfer protocol: SMTP Πράκτορες χρήστη (User Agent) a.k.a. mail reader Σύνθεση, επεξεργασία και ανάγνωση mail μηνυμάτων e.g., Eudora, Outlook, elm, Mozilla Thunderbird Εξερχόμενα και εισερχόμενα μηνύματα αποθηκεύονται στον mail SMTP mail user agent user agent SMTP SMTP user agent outgoing message queue mail user mailbox user agent user agent user agent 2: Application Layer 30

Electronic Mail: mail s Mail Servers mailbox contains incoming messages for user message queue of outgoing (to be sent) mail messages SMTP protocol between mail s to send email messages client: sending mail mail SMTP mail user agent SMTP SMTP mail user agent user agent user agent : receiving mail user agent user agent 2: Application Layer 31

Electronic Mail: SMTP [RFC 2821] Χρησιμοποιεί το πρωτόκολλο TCP για αξιόπιστη μεταφορά μηνυμάτων ηλεκτρονικού ταχυδρομείου από τον client στο, port 25 Απεθείας μεταφορά: αποστολή και λήψη από τον 3 φάσεις μεταφοράς χαιρετισμός (handshaking -greeting) μεταφορά μηνυματων επίλογος Αλληλεπίδραση εντόλών αποκρίσεων (command/response interaction) commands: ASCII κείμενο response: κώδικας κατάστασης και φράση (status code and phrase) messages must be in 7-bit ASCII 2: Application Layer 32

Σενάριο: η Alice στέλνει μήνυμα στον Bob 1) Alice χρησιμοποιεί UA (user agent) για να συνθέσει το μήνυμα και to bob@someschool.edu 2) Alice s UA στέλνει το μήνυμα στον mail της και το μήνυμα τοποθετείται στην ουρά μηνυμάτων 3) Client side of SMTP ανοίγει τη σύνδεση TCP με τον mail του Bob 4) SMTP client στέλνει το μήνυμα της Alice με την TCP σύνδεση 5) Ο mail του Bob τοποθετεί το μήνυμα στο mailbox 6) Ο Bob καλεί τον δικό του UA προκειμένου να διαβάσει το μήνυμα 1 user agent mail 2 3 4 mail 5 6 user agent 2: Application Layer 33

Sample SMTP interaction 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 2: Application Layer 34

Try SMTP interaction for yourself: telnet name 25 see 220 reply from enter HELO, MAIL FROM, RCPT TO, DATA, QUIT commands above lets you send email without using email client (reader) 2: Application Layer 35

SMTP: final words SMTP χρησιμοποιεί persistent συνδέσεις SMTP απαιτεί το μήνυμα (header & body) να είναι σε 7-bit ASCII SMTP χρησιμοποιεί CRLF.CRLF για να προσδιορίσει το τέλος του μηνύματος Comparison with HTTP: HTTP: pull SMTP: push Και τα 2 έχουν ASCII διασύνδεση εντολών/αποκρίσεων (command/response interaction), status codes HTTP: κάθε αντικείμενο είναι μέσα στον δικό του μήνυμα απάντησης SMTP: πολλά αντικείμενα στέλνονται σε πολλά μηνύματα 2: Application Layer 36

Mail access protocols user agent SMTP SMTP access protocol user agent sender s mail receiver s mail SMTP: παράδοση αι αποθήκευση στο του παραλήπτη Mail access protocol: ανάκτηση από τον POP: Post Office Protocol [RFC 1939] Έγκριση -authorization (agent <-->) and download IMAP: Internet Mail Access Protocol [RFC 1730] Περισσότερες δυνατότητες (περισσότερο πολύπλοκο) Χειρισμός των αποθηκευμένων μηνυμάτων στον HTTP: gmail, Hotmail, Yahoo! Mail, etc. 2: Application Layer 37

POP3 and IMAP Περισσότερα για POP3 Το προηγούμενο παράδειγμα χρησιμοποιεί λειτουργία λήψης και διαγραφής Ο Bob δεν μπορεί να ξαναδιαβάσει το μήνυμα αν αλλάξει τον client Download-and-keep : αντίγραφα μηνυμάτων σε διαφορετικούς clients POP3 is stateless across sessions IMAP Κρατάει όλα τα μηνύματα σε ένα μέρος στον Επιτρέπει στο χρήστη να οργανώσει τα μηνύματά του σε φακέλους IMAP κρατάει keeps την κατάσταση του χρήστη σε sessions: Ονόματα των φακέλων και συνδέσεις μεταξύ των κλειδιών των μηνυμάτων και του ονόματος του φακέλου 2: Application Layer 38