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



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

Δίκτυα Υπολογιστών Επίπεδο εφαρμογής To Σύστημα Ονομασίας Τομέων DNS

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

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

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

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

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

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

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

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

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

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

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

Network Address Translation (NAT)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή. Κ. Βασιλάκης

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

Κεφάλαιο 6ο ΕΠΙΠΕΔΟ ΕΦΑΡΜΟΓΗΣ. Εισαγωγή

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

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

Εργαστήριο Wireshark: DNS

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

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

Λογισµικό (Software SW) Λειτουργικά Συστήµατα και ίκτυα

Μάθηµα 4ο. Απόδοση ικτύου (εξαρτάται) Καθυστέρηση Μετάδοσης & Ρυθµός ιέλευσης

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

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

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

Περιεχόμενα. Πρόλογος... xiii

Υλοποίηση Δικτυακών Υποδομών και Υπηρεσιών: Υπηρεσία Domain Name Service

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

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

Δίκτυα Υπολογιστών. Δίκτυα υπολογιστών και το Διαδίκτυο Εισαγωγή. Κ. Βασιλάκης

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

Συνεχής ροή πολυµέσων

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

Εργαστήριο Ethereal: ICMP

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

ΕΠΛ 001: ΕΙΣΑΓΩΓΗ ΣΤΗΝ ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ. Δίκτυα Υπολογιστών

Στόχοι. Υπολογιστικά συστήματα: Στρώματα. Βασικές έννοιες [7]

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

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

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

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

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

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

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

To λεξικό του Internet

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

Χρήση βασικών εργαλείων συλλογής πληροφοριών για τη διαμόρφωση και την κατάσταση λειτουργίας του δικτύου

7.11 Πρωτόκολλα Εφαρµογής Βασικές και Προηγµένες Υπηρεσίες ιαδικτύου. Ηλεκτρονικό Ταχυδροµείο. Τεχνολογία ικτύων Επικοινωνιών ΙΙ

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

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

Τεχνολογία Δικτύων Επικοινωνιών (Ενότητα Πρωτόκολλα και Αρχιτεκτονική Δικτύου)

Ενότητα 8. Εισαγωγή στην Πληροφορική. Internet: Τότε και Τώρα. Κεφάλαιο 8Α. Τρόπος Λειτουργίας Internet. Χειµερινό Εξάµηνο

Κάντε κλικ για έναρξη

Επαναληπτικές Ασκήσεις Μαθήματος

ΘΕΜΑ ΠΤΥΧΙΑΚΗΣ : ΜΗΧΑΝΙΣΜΟΙ ΣΥΛΛΟΓΗΣ ΣΤΟΙΧΕΙΩΝ ΣΤΟ ΔΙΑΔΥΚΤΙΟ (COOKIES)

3.3 Πρωτόκολλα ανεύρεσης και απόδοσης διευθύνσεων, Address Resolution Protocol (ARP) και Dynamic Host Configuration Protocol (DHCP)

Πρότυπο Αναφοράς Open Systems Interconnection (OSI) Επικοινωνίες Δεδομένων Μάθημα 5 ο

Πρωτόκολλα Επικοινωνίας Πρωτόκολλο IP

Ενότητα 1. Εισαγωγή στις βασικές έννοιες των ικτύων ΗΥ

Α5.1 Εισαγωγή στα Δίκτυα. Α Λυκείου

ΤΕΧΝΟΛΟΓΙΑ ΙΚΤΥΩΝ ΕΠΙΚΟΙΝΩΝΙΩΝ

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

Εργαστήριο Wireshark: HTTP

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

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

Αριστοµένης Μακρής Εργαστήρια Η/Υ

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

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

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

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

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

Σχολή Προγραµµατιστών Ηλεκτρονικών Υπολογιστών (ΣΠΗΥ) Τµήµα Προγραµµατιστών Σειρά 112

Το πρωτόκολλο ΗΤΤΡ (HyperText Transfer Protocol)

Transcript:

Κεφάλαιο 2 Επίπεδο Εφαρµογής Πηγή των ακόλουθων διαφανειών είναι οι διαφάνειες που συνοδεύουν ως διδακτικό υλικό το βιβλίο των J.F. Kurose and K.W. Ross: Computer Networking: A Top-Down Approach Featuring the Internet, 2η έκδοση ικτύωση Υπολογιστών: Προσέγγιση από Πάνω προς τα Κάτω µε Έµφαση στο ιαδίκτυο, Jim Kurose, Keith Ross 2η έκδοση, Addison- Wesley, 2002. (Μετάφραση Εκδόσεις Γκιούρδας, 2004) 2: Επίπεδο Εφαρµογής 1 Κεφάλαιο 2: Επίπεδο Εφαρµογής Στόχοι: γενικές έννοιες, στοιχεία σχετικά µε την υλοποίηση των πρωτοκόλλων δικτυακών εφαρµογών µοντέλα υπηρεσιών επιπέδου δικτύου αρχιτεκτονική client αρχιτεκτονική peer-topeer εξέταση δηµοφιλών πρωτοκόλλων επιπέδου εφαρµογής HTTP FTP SMTP / POP3 / IMAP DNS µέθοδοι διανοµής περιεχοµένου Web caching δίκτυα διανοµής περιεχοµένου (content distribution networks CDNs) κοινή χρήση αρχείων µεταξύ οµοτίµων (peer to peer file sharing) 2: Επίπεδο Εφαρµογής 2 Κεφάλαιο 2 ηµιουργία δικτυακής εφαρµογής application transport 2.1 Αρχές πρωτοκόλλων επιπέδου εφαρµογής 2.2 Web και HTTP 2.3 FTP 2.4 Ηλεκτρονικό ταχυδροµείο SMTP, POP3, IMAP 2.5 DNS 2.6 Προγραµµατισµός socket µε TCP 2.7 Προγραµµατισµός socket µε UDP 2.8 Κατασκευή ενός Web 2.9 ιανοµή περιεχοµένου Web caching ίκτυα διανοµής περιεχοµένου Κοινή χρήση αρχείων µεταξύ οµοτίµων ηµιουργία προγραµµάτων που τρέχουν σε (διαφορετικά) τερµατικά συστήµατα επικοινωνούν µέσω δικτύου π.χ., το πρόγραµµα του web επικοινωνεί µε το πρόγραµµα του web browser οι συσκευές του πυρήνα του δικτύου δεν τρέχουν εφαρµογές χρηστών ταχεία ανάπτυξη και διάδοση εφαρµογών application transport network data link physical network data link physical application transport network data link physical 2: Επίπεδο Εφαρµογής 3 2: Επίπεδο Εφαρµογής 4 1

Αρχιτεκτονικές εφαρµογών Client- Peer-to-peer (P2P) Υβριδική client- και P2P 2: Επίπεδο Εφαρµογής 5 Αρχιτεκτονική client- client/ : µονίµως σε λειτουργία µόνιµη διεύθυνση IP φάρµες εξυπηρετητών ( farms) για scalability clients: επικοινωνούν µε όχι απαραίτητα µονίµως συνδεδεµένοι ενδέχεται να έχουν δυναµική διεύθυνση IP δεν επικοινωνούν απευθείας µεταξύ τους 2: Επίπεδο Εφαρµογής 6 Αρχιτεκτονική P2P Υβριδική client- και P2P δεν υπάρχει αποκλειστικός µόνιµα σε λειτουργία τερµατικά συστήµατα peer-peer επικοινωνούν απευθείας µεταξύ τους οι peers δεν είναι µόνιµα συνδεδεµένοι και αλλάζουν διευθύνσεις IP παράδειγµα: Gnutella Μεγάλο scalability αλλά δυσκολία στη διαχείριση 2: Επίπεδο Εφαρµογής 7 Skype voice-over-ip εφαρµογή P2P κεντρικός : ανεύρεση διεύθυνσης καλούµενου σύνδεση client µε client: απευθείας (όχι µέσω ) Instant messaging η ανταλλαγή µηνυµάτων µεταξύ χρηστών είναι P2P κεντρικοποιηµένη υπηρεσία: ανίχνευση/εντοπισµός παρουσίας client ο χρήστης ενηµερώνει τον κεντρικό για τη διεύθυνση IP του κάθε φορά που συνδέεται ο χρήστης επικοινωνεί µε τον κεντρικό για να βρει τις διευθύνσεις IP των γνωστών του 2: Επίπεδο Εφαρµογής 8 2

Επικοινωνία διεργασιών ικτυακές εφαρµογές: ορολογία διεργασία (process): πρόγραµµα που τρέχει σε ένα host δύο διεργασίες στον ίδιο host επικοινωνούν µεταξύ τους µε διαδιεργασιακή επικοινωνία (interprocess communication) (ορίζεται από το OS) δύο διεργασίες σε διαφορετικούς hosts επικοινωνούν µεταξύ τους ανταλλάσσοντας µηνύµατα ιεργασία Client: η διεργασία που ξεκινάει την επικοινωνία ιεργασία Server: η διεργασία που περιµένει να επικοινωνήσουν µαζί της Σηµείωση: εφαρµογές µε αρχιτεκτονική P2P έχουν διεργασίες client & διεργασίες διεργασία (process): πρόγραµµα που τρέχει σε ένα host δύο διεργασίες στον ίδιο host επικοινωνούν µεταξύ τους µε διαδιεργασιακή επικοινωνία (interprocess communication) (ορίζεται από το OS) δύο διεργασίες σε διαφορετικούς hosts επικοινωνούν µεταξύ τους µε ένα πρωτόκολλο επιπέδου εφαρµογής πράκτορας χρήστη ( ): διεπαφή χρήστη-εφαρµογής υλοποιεί τη διεπαφή του χρήστη & πρωτόκολλο επιπέδου εφαρµογής Web: browser E-mail: mail reader streaming audio/video: media player 2: Επίπεδο Εφαρµογής 9 2: Επίπεδο Εφαρµογής 10 Μοντέλο πελάτη-εξυπηρέτη (client-) Οι δικτυακές εφαρµογές έχουν συνήθως δύο µέρη: πελάτη (client) και εξυπηρέτη () Πελάτης: κάνει το πρώτο βήµα στην επαφή µε τον εξυπηρέτη συνήθως ζητά υπηρεσία από τον εξυπηρέτη, Web: ο πελάτης υλοποιείται στον browser Εξυπηρέτης: εφαρµογής µεταφοράς δικτύου ζεύξης φυσικό παρέχει ζητούµενη υπηρεσία στον πελάτη π.χ. Web στέλνει ζητούµενη ιστοσελίδα (Web page) αίτηση απόκριση εφαρµογής µεταφοράς δικτύου ζεύξης φυσικό 2: Επίπεδο Εφαρµογής 11 Sockets socket: διεπαφή µεταξύ επιπέδου εφαρµογής και επιπέδου δικτύου διεργασία στέλνει/λαµβάνει µηνύµατα στο/από δικό της socket socket ανάλογο πόρτας αποστέλλουσα διεργασία σπρώχνει µήνυµα έξω από την πόρτα αποστέλλουσα διεργασία υποθέτει υποδοµή µεταφοράς πίσω από την πόρτα που µεταφέρει µήνυµα στο socket της λαµβάνουσας διεργασίας host διεργασία socket TCP µε buffers, µεταβλητές ελέγχεται από σχεδιαστή εφαρµογής ιαδίκτυο ελέγχεται από λειτουργικό σύστηµα API: (1) επιλογή πρωτοκόλλου µεταφοράς, (2) ορισµός τιµών παραµέτρων στο επίπεδο µεταφοράς host διεργασία socket TCP µε buffers, µεταβλητές 2: Επίπεδο Εφαρµογής 12 3

ιευθυνσιοδότηση διεργασιών Για να µπορεί µία διεργασία να λαµβάνει µηνύµατα πρέπει να έχει µία ταυτότητα (identifier) Κάθε host έχει µία µοναδική διεύθυνση IP των 32 bits Η διεύθυνση IP του host της διεργασίας δεν αρκεί για την αναγνώρισή της, αφού στον ίδιο host τρέχουν πολλές διεργασίες Η ταυτότητα περιλαµβάνει τη διεύθυνση IP του host και τον αριθµό θύρας (port number) της διεργασίας στο host Παραδείγµατα καλάγνωστών αριθµών θύρας: HTTP : 80 Mail : 25 Για να στείλουµε µήνυµα HTTP στον web www.telecom.tuc.gr ιεύθυνση ΙP: 147.27.8.1 Αριθµός θύρας: 80 Εφαρµογές και πρωτόκολλα επιπέδου εφαρµογής Εφαρµογή: κατανεµηµένες διεργασίες που επικοινωνούν µεταξύ τους τρέχουν στα τερµατικά συστήµατα (hosts) ανταλλάσσουν µηνύµατα ώστε να υλοποιήσουν την εφαρµογή Πρωτόκολλο επιπέδου εφαρµογής ένα κοµµάτι µίας εφαρµογής ορίζει τα µηνύµατα που ανταλλάσσονται µεταξύ διεργασιών και τις ενέργειες που εκτελούνται χρησιµοποιεί τις υπηρεσίες επικοινωνίας που παρέχονται από τα πρωτόκολλα κατωτέρων επιπέδων (TCP, UDP) application transport network data link physical application transport network data link physical application transport network data link physical 2: Επίπεδο Εφαρµογής 13 2: Επίπεδο Εφαρµογής 14 Ένα πρωτόκολλο επιπέδου εφαρµογής ορίζει Υπηρεσίες µεταφοράς που απαιτούν οι εφαρµογές είδη ανταλλασσοµένων µηνυµάτων, π.χ. αιτήσεις & αποκρίσεις σύνταξη µηνυµάτων: είδη πεδίων, τρόπος διαχωρισµού πεδίων µεταξύ τους σηµασιολογία πεδίων: σηµασία πληροφορίας που περιέχεται στα πεδία κανόνες που προσδιορίζουν πως και πότε µία διεργασία στέλνει µηνύµατα και αποκρίνεται σε αυτά πρωτόκολλα δηµοσίου τοµέα (public-domain): ορίζονται στα RFCs επιτρέπουν διαλειτουργικότητα (interoperability) π.χ. HTTP, SMTP ιδιοταγή πρωτόκολλα: π.χ. Skype 2: Επίπεδο Εφαρµογής 15 Απώλειες δεδοµένων εφαρµογές ανεκτικές στις απώλειες (loss-tolerant): εφαρµογές που ανέχονται κάποιες απώλειες π.χ. φωνή, βίντεο εφαρµογές ευαίσθητες στις απώλειες (loss-sensitive): εφαρµογές που απαιτούν απόλυτα αξιόπιστη µεταφορά δεδοµένων π.χ. e-mail, µεταφορά αρχείων Καθυστέρηση εφαρµογές ευαίσθητες στις καθυστερήσεις (delay-sensitive): εφαρµογές που απαιτούν µικρή καθυστέρηση π.χ. διαδραστικές εφαρµογές πραγµατικού χρόνου (real-time interactive), όπως ιαδικτυακή τηλεφωνία, διαδραστικά παιχνίδια Εύρος ζώνης εφαρµογές ευαίσθητες στο εύρος ζώνης (bandwidthsensitive): εφαρµογές που απαιτούν κάποιο ελάχιστο εύρος ζώνης για τη λειτουργία τους π.χ. εφαρµογές πολυµέσων ελαστικές: εφαρµογές που χρησιµοποιούν οσοδήποτε εύρος ζώνης είναι διαθέσιµο π.χ. e-mail, µεταφορά αρχείων 2: Επίπεδο Εφαρµογής 16 4

Υπηρεσίες µεταφοράς που απαιτούν συνήθεις εφαρµογές Υπηρεσίες παρεχόµενες από τα πρωτόκολλα µεταφοράς του ιαδικτύου Εφαρµογή Μεταφορά αρχείων Ηλεκτρονικό ταχυδροµείο Έγγραφα Web Φωνή/Βίντεο πραγµατικού χρόνου Αποθηκευµένη φωνή/βίντεο ιαδραστικά παιγνίδια Ευαισθησία σε απώλειες Καµία ανοχή σε απώλειες Καµία ανοχή σε απώλειες Καµία ανοχή σε απώλειες Ανοχή σε απώλειες Ανοχή σε απώλειες Ανοχή σε απώλειες Ευαισθησία σε εύρος ζώνης Ελαστική Ελαστική Ελαστική Φωνή: 5 kbps 1 Mbps Βίντεο: 10 kbps 5 Mbps Όπως παραπάνω Μερικά kbps 10 kbps Ευαισθησία σε καθυστερήσεις Ανοχή σε καθυστερήσεις Ανοχή σε καθυστερήσεις Ανοχή σε καθυστερήσεις Ανέχεται καθυστερήσεις της τάξης εκατοντάδων msec Ανέχεται καθυστερήσεις της τάξης µερικών sec Ανέχεται καθυστερήσεις της τάξης εκατοντάδων msec 2: Επίπεδο Εφαρµογής 17 υπηρεσία TCP: συνδεσιστρεφής: απαιτείται εγκαθίδρυση TCP σύνδεσης µεταξύ διεργασιών client και αξιόπιστη µεταφορά δεδοµένων µεταξύ διεργασιών αποστολής και παραλαβής έλεγχος ροής: αποστολέας δεν υπερφορτώνει παραλήπτη έλεγχος συµφόρησης: επιβράδυνση ρυθµού αποστολής όταν δίκτυο υπερφορτωµένο δεν παρέχει: εγγυήσεις ως προς καθυστέρηση, ελάχιστο bandwidth υπηρεσία UDP: ασυνδεσιστρεφής: δεν απαιτείται handshaking πριν από την έναρξη µεταφοράς δεδοµένων αναξιόπιστη µεταφορά δεδοµένων µεταξύ διεργασιών αποστολής και παραλαβής δεν παρέχει: εγκαθίδρυση σύνδεσης, αξιοπιστία, έλεγχο ροής, έλεγχο συµφόρησης δεν παρέχει: εγγυήσεις ως προς καθυστέρηση, ελάχιστο bandwidth 2: Επίπεδο Εφαρµογής 18 Εφαρµογές ιαδικτύου: πρωτόκολλα εφαρµογής, µεταφοράς Κεφάλαιο 2 Εφαρµογή Ηλεκτρονικό ταχυδροµείο E-mail Αποµακρυσµένη προσπέλαση τερµατικού Remote terminal access Παγκόσµιος ιστός Worldwide web Μεταφορά αρχείων File transfer Πολυµέσα συνεχούς ροής Streaming multimedia Πρωτόκολλο εφαρµογής SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] συχνά ιδιοταγές (π.χ. RealNetworks) Πρωτόκολλο µεταφοράς TCP TCP TCP TCP TCP ή UDP 2.1 Αρχές πρωτοκόλλων επιπέδου εφαρµογής 2.2 Web και HTTP 2.3 FTP 2.4 Ηλεκτρονικό ταχυδροµείο SMTP, POP3, IMAP 2.5 DNS 2.6 Προγραµµατισµός socket µε TCP 2.7 Προγραµµατισµός socket µε UDP 2.8 Κατασκευή ενός Web 2.9 ιανοµή περιεχοµένου Web caching ίκτυα διανοµής περιεχοµένου Τηλεφωνία µέσω ιαδικτύου Internet telephony συχνά ιδιοταγές (π.χ. DialPad) συνήθως UDP Κοινή χρήση αρχείων µεταξύ οµοτίµων 2: Επίπεδο Εφαρµογής 19 2: Επίπεδο Εφαρµογής 20 5

Μερικοί όροι στη γλώσσα του Web Μία ιστοσελίδα (Web page) ή έγγραφο (document) αποτελείται από αντικείµενα (objects) Είδη αντικειµένων: αρχεία HTML, εικόνες JPEG, αρχεία audio, µικροεφαρµογές (applets) Java Μία ιστοσελίδα αποτελείται από ένα αρχείο HTML βάσης το οποίο περιλαµβάνει αρκετά αντικείµενα που αναφέρονται µε το URL τους Κάθε αντικείµενο διευθυνσιοδοτείται µε ένα URL (Uniform Resource Locator) παράδειγµα URL: www.telecom.tuc.gr/courses/net2/index.html όνοµα host όνοµα διαδροµής (path name) 2: Επίπεδο Εφαρµογής 21 Γενική επισκόπηση του HTTP HTTP: HyperText Transfer Protocol (Πρωτόκολλο Μεταφοράς Υπερκειµένου) Πρωτόκολλο επιπέδου εφαρµογής του Web Μοντέλο client/ client: Web browser ζητεί, λαµβάνει, απεικονίζει αντικείµενα : Web στεγάζει αντικείµενα, στέλνει αντικείµενα αποκρινόµενος σε αιτήσεις HTTP 1.0: RFC 1945 HTTP 1.1: RFC 2616 PC που τρέχει Explorer Mac που τρέχει Navigator αίτηση HTTP απόκριση HTTP αίτηση HTTP απόκριση HTTP Server που τρέχει Apache Web 2: Επίπεδο Εφαρµογής 22 Γενική επισκόπηση του HTTP (συνέχεια) Συνδέσεις HTTP Χρησιµοποιεί TCP: ο client ξεκινά µία σύνδεση TCP µε τον, θύρα 80 ο αποδέχεται τη σύνδεσηtcp από client ανταλλάσσονται µηνύµατα HTTP µεταξύ HTTP client (browser) και HTTP (Web ) τερµατίζει η σύνδεση TCP Το HTTP είναι stateless ο δε διατηρεί καµία πληροφορία σχετικά µε προηγούµενες αιτήσεις παρένθεση Πρωτόκολλα που διατηρούν την κατάσταση ( state ) είναι πολύπλοκα πρέπει να διατηρείται ένα ιστορικό της κατάστασης εάν το σύστηµα καταρρεύσει, οι ενδεχοµένως ασυνεπείς απόψεις των client και ως προς την κατάσταση πρέπει να συµφιλιωθούν HTTP µε µη παραµένουσες συνδέσεις (Nonpersistent HTTP) Ένα µόνο αντικείµενο µπορεί να σταλεί µέσω µίας σύνδεσης TCP Η έκδοση HTTP/1.0 χρησιµοποιεί µη παραµένουσες συνδέσεις HTTP HTTP µε παραµένουσες συνδέσεις (Persistent HTTP) Πολλαπλά αντικείµενα µπορούν να σταλούν µέσω της ίδιας σύνδεσης TCP Η έκδοση HTTP/1.1 χρησιµοποιεί εκ προεπιλογής (default) παραµένουσες συνδέσεις HTTP 2: Επίπεδο Εφαρµογής 23 2: Επίπεδο Εφαρµογής 24 6

Nonpersistent HTTP Έστω ότι ένας χρήστης ζητά την ιστοσελίδα µε URL www.someschool.edu/somedepartment/home.index χρόνος 1a. Ο HTTP client εκκινεί σύνδεση TCP προς τον HTTP (διεργασία) που τρέχει στον host www.someschool.edu στη θύρα 80 2. Ο HTTP client στέλνει µήνυµα αίτησης (που περιέχει τη URL) στο socket της σύνδεσης TCP. Το µήνυµα υποδεικνύει ότι ο client θέλει το αντικείµενο somedepartment/home.index (περιέχει κείµενο, αναφορές σε 10 εικόνες jpeg) 1b. Ο HTTP στον host www.someschool.edu περιµένει συνδέσεις TCP στη θύρα 80, αποδέχεται σύνδεση, ενηµερώνει τον client 3. Ο HTTP λαµβάνει το µήνυµα αίτησης, δηµιουργεί ένα µήνυµα απόκρισης που περιέχει το αιτούµενο αντικείµενο και στέλνει το µήνυµα στο socket του 2: Επίπεδο Εφαρµογής 25 χρόνος Nonpersistent HTTP (συνέχεια) 5. Ο HTTP client λαµβάνει το µήνυµα απόκρισης που περιέχει το αρχείο html. Εξετάζοντας το αρχείο html, βρίσκει αναφορές σε 10 αντικείµενα jpeg 6. Τα βήµατα 1-4 επαναλαµβάνονται για καθένα από τα 10 αντικείµενα jpeg 4. Ο HTTP κλείνει τη σύνδεση TCP 2: Επίπεδο Εφαρµογής 26 Μοντελοποίηση του χρόνου απόκρισης Χρόνος διαδροµής µετ επιστροφής Round-trip time RTT: ο χρόνος που χρειάζεται ένα µικρό πακέτο για να ταξιδέψει από τον client στον και πίσω στον client Χρόνος απόκρισης: ένα RTT για την έναρξη της σύνδεσης TCP ένα RTT για αίτηση HTTP και επιστροφή πρώτων bytes της απόκρισης HTTP χρόνος µετάδοσης αρχείου σύνολο = 2RTT + χρόνος µετάδοσης έναρξη σύνδεσης TCP RTT αποστέλλεται αίτηση αρχείου RTT ολοκληρώνεται η λήψη αρχείου χρόνος χρόνος χρόνος µετάδοσης αρχείου 2: Επίπεδο Εφαρµογής 27 Persistent HTTP Μειονεκτήµατα nonpersistent HTTP: απαιτεί 2 RTT ανά αντικείµενο OS πρέπει να απονείµει σε κάθε σύνδεση TCP πόρους του host (buffers) οι browsers χρησιµοποιούν συχνά παράλληλες συνδέσεις TCP για τη µεταφορά αντικειµένων Persistent HTTP ο δεν κλείνει τη σύνδεση αφού στείλει απόκριση επόµενα µηνύµατα HTTP µεταξύ του ίδιου ζεύγους client/ στέλνονται µέσω της ίδιας σύνδεσης TCP Persistent χωρίς pipelining: ο client στέλνει ένα νέο µήνυµα αίτησης αφού ληφθεί το προηγούµενο µήνυµααπόκρισης ένα RTT ανά αντικείµενο Persistent µε pipelining: προεπιλεγµένο στο HTTP/1.1 ο client στέλνει µήνυµα αίτησης αµέσως µόλις αντιµετωπίσει ένα αναφερόµενο αντικείµενο ελάχιστη καθυστέρηση: ένα RTT για όλα τα αντικείµενα 2: Επίπεδο Εφαρµογής 28 7

Μήνυµα αίτησης HTTP Μήνυµα αίτησης HTTP: γενική µορφή δύο είδη µηνυµάτων HTTP: αίτηση (request), απόκριση (response) µήνυµα αίτησης HTTP: µέθοδος sp URL όνοµαπεδίου επικεφαλίδας : sp τιµή έκδοση cr lf cr lf γραµµή αίτησης (request line) ASCII (αναγνώσιµη µορφή) γραµµή αίτησης (request line) (εντολές GET, POST, HEAD) γραµµές επικεφαλίδας (header lines) GET /somedir/page.html HTTP/1.1 Host: www.someschool.edu User-: Mozilla/4.0 Connection: close Accept-language: fr όνοµαπεδίου επικεφαλίδας : cr lf τιµή cr Σώµα Οντότητας (Entity Body) lf γραµµές επικεφαλίδας (header lines) κενή γραµµή Χαρακτήρες επαναφοράς (carriage return), τροφοδότησης γραµµής (line feed) υποδεικνύουν το τέλος του µηνύµατος 2: Επίπεδο Εφαρµογής 29 2: Επίπεδο Εφαρµογής 30 Συµπλήρωση φόρµας και µεταφορά περιεχοµένου στο (Uploading form input) Είδη µεθόδων Μέθοδος POST: Η ιστοσελίδα συχνά περιλαµβάνει φόρµα προς συµπλήρωση Το περιεχόµενο των πεδίων της φόρµας φορτώνεται στον µε το entity body Μέθοδος URL: Χρησιµοποιεί µέθοδο GET Το περιεχόµενο των πεδίων της φόρµας προσαρτάται στο πεδίο URL της request line Παράδειγµα www.somesite.com/animalsearch?monkeys&banana HTTP/1.0 GET POST HEAD ζητά από τον να µην περιλάβει το ζητούµενο αντικείµενο στην απόκριση HTTP/1.1 GET, POST, HEAD PUT φορτώνει αρχείο που περιέχεται στο entity body στο path που καθορίζεται στο πεδίο URL DELETE διαγράφει το αρχείο που καθορίζεται στο πεδίο URL 2: Επίπεδο Εφαρµογής 31 2: Επίπεδο Εφαρµογής 32 8

Μήνυµα απόκρισης HTTP γραµµή κατάστασης (status line) (πρωτόκολλο, κώδικας κατάστασης, φράση κατάστασης) γραµµές επικεφαλίδας (header lines) δεδοµένα, π.χ. ζητηθέν αρχείο HTML HTTP/1.1 200 OK Connection: close Date: Thu, 06 Aug 1998 12:00:15 GMT Server: Apache/1.3.0 (Unix) Last-Modified: Mon, 22 Jun 1998... Content-Length: 6821 Content-Type: text/html data data data data data... 2: Επίπεδο Εφαρµογής 33 Κώδικες κατάστασης απόκρισης HTTP Στην πρώτη γραµµή (status line) του µηνύµατος απόκρισης από τον στον client Μερικά παραδείγµατα κωδίκων: 200 OK επιτυχής αίτηση, το αντικείµενο που έχει ζητηθεί έπεται στο ίδιο µήνυµα 301 Moved Permanently το αντικείµενο που έχει ζητηθεί µεταφέρθηκε, νέο URL καθορίζεται παρακάτω στο ίδιο µήνυµα (επικεφαλίδα Location:) 400 Bad Request το µήνυµα αίτησης δεν ήταν κατανοητό από 404 Not Found το ζητούµενο έγγραφο δε βρέθηκε σε αυτό τον 505 HTTP Version Not Supported 2: Επίπεδο Εφαρµογής 34 Εξουσιοδότηση (authorization) Εξουσιοδότηση: ελέγχει πρόσβαση στο περιεχόµενο του Χρησιµοποιεί γραµµές επικεφαλίδας & κώδικες κατάστασης διαπιστευτήρια εξουσιοδότησης: συνήθως όνοµα, password stateless: ο client πρέπει να παρουσιάζει εξουσιοδότηση σε κάθε µήνυµα αίτησης Authorization: γραµµή επικεφαλίδας σε κάθε µήνυµα αίτησης εάν λείπει η γραµµή επικεφαλίδας Authorization: ο αρνείται πρόσβαση, στέλνει γραµµή επικεφαλίδας WWW-authenticate: στο µήνυµα response client συνήθης αίτηση http 401 authorization req. WWW-authenticate: συνήθης αίτηση http + Authorization: <διαπ> συνήθης απόκριση http συνήθης αίτηση http + Authorization: <διαπ> συνήθης απόκριση http χρόνος 2: Επίπεδο Εφαρµογής 35 Cookies: διατήρηση κατάστασης (state) Πολλά µεγάλα Web sites χρησιµοποιούν cookies Τέσσερα στοιχεία: 1) γραµµή επικεφαλίδας Set-cookie: στο µήνυµα απόκρισης HTTP 2) γραµµή επικεφαλίδας Cookie: στο µήνυµα αίτησης HTTP 3) διατηρείται αρχείο µε cookies στον host του χρήστη το οποίο διαχειρίζεται ο browser 4) διατηρείται βάση δεδοµένων στο Web site Παράδειγµα: Ένας χρήστης χρησιµοποιεί πάντα το ίδιο PC για να συνδεθεί στο ιαδίκτυο Επισκέπτεται ένα συγκεκριµένο e-commerce site που χρησιµοποιεί cookies για πρώτη φορά Όταν η αρχική αίτηση HTTP φθάσει στο site, το site δηµιουργεί ένα µοναδικό ID και επίσης µία καταχώρηση στη βάση δεδοµένων για το ID αυτό 2: Επίπεδο Εφαρµογής 36 9

Cookies: διατήρηση κατάστασης (state) (συνέχεια) Cookie file ebay: 8734 Cookie file amazon: 1678 ebay: 8734 client µία εβδοµάδα αργότερα: Cookie file amazon: 1678 ebay: 8734 συνήθης αίτηση http συνήθης απόκριση http + Set-cookie: 1678 συνήθης αίτηση http + Cookie: 1678 συνήθης απόκριση http συνήθης αίτηση http + Cookie: 1678 συνήθης απόκριση http δηµιουργεί ID 1678 για χρήστη ενέργεια που εξαρτάται από cookie ενέργεια που εξαρτάται από cookie καταχώρηση στη βάση πρόσβαση πρόσβαση Cookies (συνέχεια) Τα cookies µπορούν να χρησιµοποιηθούν για: εξουσιοδότηση shopping carts συστάσεις Cookies και απόρρητο: τα cookies επιτρέπουν στα sites να συλλέγουν πληροφορίες για τους χρήστες ενδέχεται ο χρήστης να παρέχει όνοµα και e- mail στα sites 2: Επίπεδο Εφαρµογής 37 2: Επίπεδο Εφαρµογής 38 Conditional GET: caching στην πλευρά του client Κεφάλαιο 2 Στόχος: να µη σταλεί το αντικείµενο εάν ο client έχει ενηµερωµένη έκδοση στην cache client: καθορίζει ηµεροµηνία αντιγράφου στην cache στην αίτηση HTTP µε τη γραµµή επικεφαλίδας If-modified-since: <ηµεροµηνία> : απόκριση δεν περιέχει αντικείµενο εάν το αντίγραφο στην cache είναι ενηµερωµένο: HTTP/1.0 304 Not Modified client αίτηση HTTP If-modified-since: <ηµεροµηνία> απόκριση HTTP HTTP/1.0 304 Not Modified αίτηση HTTP If-modified-since: <ηµεροµηνία> απόκριση HTTP HTTP/1.0 200 OK <δεδοµένα> αντικείµενο δεν έχει τροποποιηθεί αντικείµενο έχει τροποποιηθεί 2.1 Αρχές πρωτοκόλλων επιπέδου εφαρµογής 2.2 Web και HTTP 2.3 FTP 2.4 Ηλεκτρονικό ταχυδροµείο SMTP, POP3, IMAP 2.5 DNS 2.6 Προγραµµατισµός socket µε TCP 2.7 Προγραµµατισµός socket µε UDP 2.8 Κατασκευή ενός Web 2.9 ιανοµή περιεχοµένου Web caching ίκτυα διανοµής περιεχοµένου Κοινή χρήση αρχείων µεταξύ οµοτίµων 2: Επίπεδο Εφαρµογής 39 2: Επίπεδο Εφαρµογής 40 10

FTP: File Transfer Protocol χρήστης στον host FTP interface FTP client τοπικό σύστηµα αρχείων µεταφορά αρχείων FTP αποµακρυσµένο σύστηµα αρχείων µεταφορά αρχείων προς/από αποµακρυσµένο host µοντέλο client/ client: host που ξεκινά τη µεταφορά (είτε από είτε προς αποµακρυσµένο host) : αποµακρυσµένος host χρησιµοποιεί TCP FTP port 21 (έλεγχος) FTP port 20 (δεδοµένα) FTP: RFC 959 2: Επίπεδο Εφαρµογής 41 FTP: διαδικασία µεταφοράς O χρήστης παρέχει στον FTP client το όνοµα του αποµακρυσµένου host O FTP client ξεκινά σύνδεση TCP µε τον FTP (θύρα 21) Ο client στέλνει την ταυτότητα (ID) και κωδικό πρόσβασης (password) του χρήστη µέσω της σύνδεσης ελέγχου µε εντολές FTP Ο εξουσιοδοτεί το χρήστη Ο client εξετάζει τον αποµακρυσµένο κατάλογο στέλνοντας εντολές µέσω της σύνδεσης ελέγχου Όταν ο λάβει εντολή για τη µεταφορά ενός αρχείου, ανοίγει µία σύνδεση TCP δεδοµένων µε τον client FTP client σύνδεση TCP ελέγχου θύρα 21 σύνδεση TCP δεδοµένων θύρα 20 FTP Ο κλείνει τη σύνδεση TCP µετά τη µεταφορά ενός αρχείου Ο ανοίγει δεύτερη σύνδεση TCP (δεδοµένων) για να µεταφέρει ένα άλλο αρχείο σύνδεση ελέγχου: παραµένουσα (persistent) σύνδεση δεδοµένων: µη παραµένουσα (nonpersistent) 2: Επίπεδο Εφαρµογής 42 FTP: Active Data Connection FTP: Passive Data Connection Εικόνα από το βιβλίο The TCP/IP Guide του C. Kozierok 2: Επίπεδο Εφαρµογής 43 Εικόνα από το βιβλίο The TCP/IP Guide του C. Kozierok 2: Επίπεδο Εφαρµογής 44 11

FTP: ξεχωριστές συνδέσεις για έλεγχο, δεδοµένα Το FTP χρησιµοποιεί δύο παράλληλες συνδέσεις TCP: ελέγχου (control connection, TCP port 21) δεδοµένων (data connection, TCP port 20) ηλαδή, το FTP στέλνει πληροφορία ελέγχου out-of-band Το HTTP στέλνει πληροφορία ελέγχου in-band Το FTP διατηρεί κατάσταση (state) κατά τη διάρκεια ενός FTP session πρέπει να παρακολουθεί την κίνηση του χρήστη στο αποµακρυσµένο directory περιορίζεται ο αριθµός των ταυτόχρονων FTP sessions To HTTP είναι stateless 2: Επίπεδο Εφαρµογής 45 FTP εντολές, αποκρίσεις Στο FTP οι εντολές (commands) και οι (responses) στέλνονται ως κείµενο ASCII µέσω της σύνδεσης ελέγχου είγµα εντολών: USER name PASS password LIST επιστρέφει τη λίστα των αρχείων στον τρέχοντα κατάλογο (directory) RETR filename ανάκτηση αρχείου (get) από τον τρέχοντα κατάλογο του αποµακρυσµένου host STOR filename αποθήκευση αρχείου (put) στον τρέχοντα κατάλογο του αποµακρυσµένου host είγµα αποκρίσεων: κώδικας και φράση κατάστασης όπως στο HTTP 331 Username OK, password required 125 data connection already open; transfer starting 425 Can t open data connection 452 Error writing file 2: Επίπεδο Εφαρµογής 46 Κεφάλαιο 2 Ηλεκτρονικό Ταχυδροµείο ουρά εξερχόµενων µηνυµάτων 2.1 Αρχές πρωτοκόλλων επιπέδου εφαρµογής 2.2 Web και HTTP 2.3 FTP 2.4 Ηλεκτρονικό ταχυδροµείο SMTP, POP3, IMAP 2.5 DNS 2.6 Προγραµµατισµός socket µε TCP 2.7 Προγραµµατισµός socket µε UDP 2.8 Κατασκευή ενός Web 2.9 ιανοµή περιεχοµένου Web caching ίκτυα διανοµής περιεχοµένου Κοινή χρήση αρχείων µεταξύ οµοτίµων Τρία κύρια στοιχεία: s mail s SMTP: simple mail transfer protocol User Agent ή mail reader σύνθεση, ανάγνωση µηνυµάτων ηλεκτρονικού ταχυδροµείου π.χ. Eudora, Outlook, Netscape Messenger, elm εισερχόµενα, εξερχόµενα µηνύµατα αποθηκεύονται στον mail mail SMTP mail SMTP SMTP mail mailbox χρήστη 2: Επίπεδο Εφαρµογής 47 2: Επίπεδο Εφαρµογής 48 12

Ηλεκτρονικό ταχυδροµείο: mail s Ηλεκτρονικό ταχυδροµείο: SMTP [RFC 2821] Mail Servers mailbox: περιέχει εισερχόµενα µηνύµατα χρήστη ουρά µηνυµάτων: περιέχει εξερχόµενα (προοριζόµενα για αποστολή) µηνύµατα email Πρωτόκολλο SMTP: αποστολή µηνυµάτων email µεταξύ mail s µοντέλο client/ client: αποστέλλων mail : παραλαµβάνων mail κάθε mail τρέχει και τη διεργασία του client και τη διεργασία του mail SMTP mail SMTP SMTP mail 2: Επίπεδο Εφαρµογής 49 Το SMTP χρησιµοποιεί TCP για τη µεταφορά µηνυµάτων ηλεκτρονικού ταχυδροµείου από τον client στον (θύρα 25) απευθείας µεταφορά µηνυµάτων από mail αποστολέα σε mail παραλήπτη µετά την εγκαθίδρυση σύνδεσης TCP ακολουθούν τρεις φάσεις µεταφοράς: χαιρετισµός (greeting) µεταφορά µηνυµάτων τερµατισµός αλληλουχία εντολών/αποκρίσεων εντολές (commands): κείµενο ASCII αποκρίσεις (responses): κώδικας και φράση κατάστασης τα µηνύµατα πρέπει να είναι σε 7-bit ASCII 2: Επίπεδο Εφαρµογής 50 Σενάριο: Η Alice στέλνει µήνυµα στον Bob 1) Η Alice χρησιµοποιεί τον (UA) για να συνθέσει µήνυµα µε διεύθυνση bob@someschool.edu 2) Ο UA της Alice στέλνει το µήνυµα στον mail της όπου τοποθετείται στην ουρά εξερχόµενων µηνυµάτων 3) Ο SMTP client ανοίγει σύνδεση TCP µε τον mail του Bob 1 mail 2 3 4 4) Ο SMTP client στέλνει το µήνυµα της Alice µέσω της σύνδεσης TCP 5) Ο mail του Bob τοποθετεί το µήνυµα στο mailbox του Bob 6) Ο Bob χρησιµοποιεί τον του για να διαβάσει το µήνυµα mail Εάν ο mail του Bob δεν είναι σε λειτουργία, τότε το µήνυµα παρα- µένει στον mail της Alice, ο οποίος επιχειρεί ξανά αργότερα 5 6 2: Επίπεδο Εφαρµογής 51 είγµα διαλόγουστο SMTP από mail crepes.fr σε mail hamburger.edu greeting µεταφορά µηνύµατος κλείσιµο 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: Επίπεδο Εφαρµογής 52 13

SMTP: παρατηρήσεις Μορφή µηνύµατος ηλεκτρονικού ταχυδροµείου (κείµενο) Το SMTP χρησιµοποιεί παραµένουσες (persistent) συνδέσεις Το SMTP απαιτεί το µήνυµα (επικεφαλίδα & σώµα) να είναι σε 7-bit ASCII Ο SMTP χρησιµοποιεί CRLF.CRLF για να προσδιορίσει το τέλος ενός µηνύµατος Σύγκριση µε HTTP: HTTP: pull SMTP: push αµφότερα έχουν διάλογο εντολών/αποκρίσεων, κώδικες κατάστασης σε ASCII HTTP: κάθε αντικείµενο ενθυλακώνεται σε ξεχωριστό µήνυµα απόκρισης SMTP: πολλαπλά αντικείµενα στέλνονται σε µήνυµα multipart 2: Επίπεδο Εφαρµογής 53 SMTP: πρωτόκολλο για την ανταλλαγή µηνυµάτων ηλεκτρονικού ταχυδροµείου RFC 822: πρότυπο για τη µορφή (format) µηνύµατος κειµένου: γραµµές επικεφαλίδας (header lines), π.χ. To: From: Subject: διαφορετικές από εντολές SMTP! σώµα (body) το κυρίως µήνυµα, χαρακτήρες ASCII µόνο επικεφαλίδα (header) σώµα (body) κενή γραµµή 2: Επίπεδο Εφαρµογής 54 Μορφή µηνύµατος: επεκτάσεις για πολυµέσα MIME: Multipurpose Internet Mail Extensions, RFC 2045, 2046 πρόσθετες γραµµές στην επικεφαλίδα (header) του µηνύµατος δηλώνουν το είδος του περιεχοµένου έκδοση 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 2: Επίπεδο Εφαρµογής 55 MIME types Content-Type: type/subtype; parameters (γενικό είδος/δευτερεύον είδος; παράµετροι) Text subtype: π.χ. plain, html Image subtype: π.χ. jpeg, gif Audio subtype: π.χ. basic, 32kadpcm Video subtype: π.χ. mpeg, quicktime Application άλλου είδους δεδοµένα τα οποία πρέπει να επεξεργασθεί µία εφαρµογή για να µπορούν να χρησιµοποιηθούν από το χρήστη subtype: msword, pdf 2: Επίπεδο Εφαρµογής 56 14

Multipart Type From: alice@crepes.fr To: bob@hamburger.edu Subject: Picture of yummy crepe. MIME-Version: 1.0 Content-Type: multipart/mixed; boundary=startofnextpart --StartOfNextPart Dear Bob, Please find a picture of a crepe. --StartOfNextPart Content-Transfer-Encoding: base64 Content-Type: image/jpeg base64 encoded data.........base64 encoded data --StartOfNextPart Do you want the recipe? --StartOfNextPart 2: Επίπεδο Εφαρµογής 57 Πρωτόκολλα προσπέλασης ταχυδροµείου (mail access) SMTP mail αποστολέα SMTP mail παραλήπτη πρωτόκολλο προσπέλασης SMTP: παράδοση/αποθήκευση στον mail του παραλήπτη Mail access protocol: ανάκτηση από τον mail POP: Post Office Protocol [RFC 1939] εξουσιοδότηση ( <-->) και download IMAP: Internet Mail Access Protocol [RFC 1730] περισσότερες δυνατότητες (πιο πολύπλοκο) διαχείριση αποθηκευµένων µηνυµάτων στον HTTP: Hotmail, Yahoo! Mail, κλπ 2: Επίπεδο Εφαρµογής 58 Πρωτόκολλο POP3 φάση εξουσιοδότησης (authorization) εντολές client: : name pass: password αποκρίσεις : +OK -ERR φάση συναλλαγής (transaction), client: list: παρέχει κατάλογο αριθµών µηνυµάτων retr: ανάκτηση µηνύµατος µε βάση τον αριθµό του dele: διαγραφή µηνύµατος quit φάση ενηµέρωσης (update): mail διαγράφει µηνύµατα S: +OK POP3 ready C: bob S: +OK C: pass hungry S: +OK successfully logged on 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 2 contents> S:. C: dele 2 C: quit S: +OK POP3 signing off 2: Επίπεδο Εφαρµογής 59 POP3 και IMAP POP3 Στο προηγούµενο παράδειγµα χρησιµοποιείται ο τρόπος download and delete Ο Bob δεν µπορεί να ξαναδιαβάσει το e-mail εάν αλλάξει client Download and keep : αντίγραφα των µηνυµάτων σε διαφορετικούς clients To POP3 είναι stateless από σύνοδο (session) σε σύνοδο IMAP ιατηρεί όλα τα µηνύµατα στο ίδιο µέρος: τον Επιτρέπει στον χρήστη να οργανώσει τα µηνύµατα σε φακέλους (folders) Το IMAP διατηρεί την κατάσταση του χρήστη µεταξύ συνόδων: ονόµατα φακέλων, ποια µηνύµατα σχετίζονται µε ποιους φακέλους 2: Επίπεδο Εφαρµογής 60 15

Κεφάλαιο 2 2.1 Αρχές πρωτοκόλλων επιπέδου εφαρµογής 2.2 Web και HTTP 2.3 FTP 2.4 Ηλεκτρονικό ταχυδροµείο SMTP, POP3, IMAP 2.5 DNS 2.6 Προγραµµατισµός socket µε TCP 2.7 Προγραµµατισµός socket µε UDP 2.8 Κατασκευή ενός Web 2.9 ιανοµή περιεχοµένου Web caching ίκτυα διανοµής περιεχοµένου Κοινή χρήση αρχείων µεταξύ οµοτίµων DNS: Domain Name System Για την αναγνώριση των hosts, routers στο ιαδίκτυο χρησιµοποιούνται: διεύθυνση IP (32 bits) χρησιµοποιείται για διευθυνσιοδότηση των datagrams π.χ. 147.27.8.1 όνοµα, π.χ. orion.telecom.tuc.gr διευκολύνει ανθρώπους Domain Name System: υπηρεσία καταλόγου που µεταφράζει hostname διεύθυνση IP κατανεµηµένη βάση δεδοµένων που υλοποιείται από µία ιεραρχία από πολλούς name s πρωτόκολλο επιπέδου εφαρµογής hosts και name s επικοινωνούν για την ανάλυση ονοµάτων σε διευθύνσεις IP και αντίστροφα σηµείωση: λειτουργία του πυρήνα του ιαδικτύου που υλοποιείται ως πρωτόκολλο του επιπέδου εφαρµογής πολυπλοκότητα στο άκρο του δικτύου χρησιµοποιεί UDP, port 53 µοντέλο client/ DNS χρησιµοποιείται από άλλα πρωτόκολλα εφαρµογών π.χ. HTTP, SMTP, FTP 2: Επίπεδο Εφαρµογής 61 2: Επίπεδο Εφαρµογής 62 DNS: Domain Name System Υπηρεσίες DNS Μετάφραση ονόµατος host σε διεύθυνση IP Ψευδώνυµο host κανονικό (canonical) όνοµα και ψευδώνυµα Ψευδώνυµο mail Κατανοµή φορτίου επαναληπτικοί web s: σε ένα κανονικό όνοµα αντιστοιχούν περισσότερες από µία διευθύνσεις IP εφαρµογή www.telecom.tuc.gr 147.27.8.1 Γιατί όχι κεντρικοποιηµένο DNS; µοναδικό σηµείο αστοχίας όγκος κίνησης κεντρικοποιηµένη βάση δεδοµένων σε µεγάλη απόσταση συντήρηση τεράστιας βάσης δεδοµένων µε συχνές ενηµερώσεις DNS client δεν έχει scalability ερώτηµα (query) απόκριση (response) δίκτυο 2: Επίπεδο Εφαρµογής 63 Κατανεµηµένη, ιεραρχική βάση δεδοµένων Root DNS Servers com DNS s org DNS s edu DNS s yahoo.com DNS s amazon.com DNS s pbs.org DNS s poly.edu umass.edu DNS sdns s Ένας client επιθυµεί τη διεύθυνση IP του host www.amazon.com (χονδρική προσέγγιση): Ο client στέλνει ερώτηµα σε έναν root αναζητώντας τον DNS του domain com O client στέλνει ερώτηµα σε έναν DNS του domain com αναζητώντας τον DNS του subdomain amazon.com Ο client στέλνει ερώτηµα στον DNS του amazon.com αναζητώντας τη διεύθυνση IP του host www.amazon.com 2: Επίπεδο Εφαρµογής 64 16

DNS name s Kανένας δεν γνωρίζει όλα τα ζεύγη hostnameδιεύθυνση IP Local Name εν ανήκει αυστηρά στην ιεραρχία των DNS s Κάθε ISP (οικιακός ISP, εταιρεία, πανεπιστήµιο) έχει ένα τοπικό name Καλείται επίσης default name Όταν ένας host κάνει ένα ερώτηµα (query) DNS, το ερώτηµα στέλνεται στον τοπικό του DNS Ο τοπικός name προωθεί το ερώτηµα στην ιεραρχία DNS: Root name s σ αυτούς απευθύνονται οι τοπικοί (local) name s που δεν µπορούν να µεταφράσουν ένα hostname a Verisign, Dulles, VA c Cogent, Herndon, VA (also Los Angeles) d U Maryland College Park, MD k RIPE London (also Amsterdam, g US DoD Vienna, VA Frankfurt) h ARL Aberdeen, MD i Autonomica, Stockholm (plus 3 j Verisign, ( 11 locations) other locations) m WIDE Tokyo e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 17 other locations) b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA 13 root name s παγκοσµίως 2: Επίπεδο Εφαρµογής 65 2: Επίπεδο Εφαρµογής 66 TLD Servers και Authoritative Servers Top-level domain (TLD) s: υπεύθυνοι για τα domains com, org, net, edu, κλπ. καθώς και για όλα τα top-level domains των κρατών: π.χ. gr, uk, fr, ca, jp Η εταιρεία Verisign Global Registry Services διαχειρίζεται τους s του TLD com Η εταιρεία Educause διαχειρίζεται τους s του TLD edu Authoritative DNS s: οι DNS s ενός οργανισµού, που παρέχουν τις αντιστοιχίες hostname σε διεύθυνση IP για τους s του οργανισµού (π.χ. Web και mail s). Μπορεί να διατηρούνται από τον οργανισµό τον ίδιο ή από service provider Local Name Server εν ανήκει αυστηρά στην ιεραρχία των DNS s Κάθε ISP (οικιακός ISP, εταιρεία, πανεπιστήµιο) έχει ένα τοπικό name Καλείται επίσης default name Όταν ένας host κάνει ένα ερώτηµα (query) DNS, το ερώτηµα στέλνεται στον τοπικό του DNS Ο τοπικός name προωθεί το ερώτηµα στην ιεραρχία 2: Επίπεδο Εφαρµογής 67 2: Επίπεδο Εφαρµογής 68 17

Παράδειγµα Ο host cis.poly.edu θέλει τη διεύθυνση IP του gaia.cs.umass.edu 2 local DNS dns.poly.edu 1 8 requesting host cis.poly.edu root DNS 3 4 5 7 TLD DNS 6 authoritative DNS dns.umass.edu gaia.cs.umass.edu 2: Επίπεδο Εφαρµογής 69 Recursive queries recursive query (αναδροµικό ερώτηµα): αναθέτει τη µετάφραση του ονόµατος στον name στον οποίο απευθύνεται υψηλό φορτίο; iterated query (επαναληπτικό ερώτηµα): ο ερωτηθείς name παραπέµπει σε άλλο name εν γνωρίζω αυτό το όνοµα, ρώτα αυτόν τον 2 local DNS dns.poly.edu 1 8 requesting host cis.poly.edu root DNS 7 6 5 3 TLD DNS 4 authoritative DNS dns.umass.edu gaia.cs.umass.edu 2: Επίπεδο Εφαρµογής 70 DNS: caching και ενηµέρωση records Για τη βελτίωση των καθυστερήσεων και του αριθµού DNS queries στο δίκτυο: όταν (οποιοσδήποτε) name λάβει ένα record, καταχωρεί αντίγραφο σε µία cache η καταχώρηση της cache εξαφανίζεται (timeout) µετά από κάποιο χρόνο καταχωρήσεις για τους TLD s υπάρχουν συνήθως στην cache του τοπικού name (οι root name s δεν δέχονται συχνές επισκέψεις) Η εισαγωγή δεδοµένων στη βάση γινόταν µέχρι πρόσφατα στατικά από το διαχειριστή Έχουν σχεδιασθεί δυναµικοί µηχανισµοί ενηµέρωσης που χρησιµοποιούν µηνύµατα DNS: RFC 2136 2: Επίπεδο Εφαρµογής 71 DNS records DNS: κατανεµηµένη βάση δεδοµένων αποθηκεύει resource records (RR) Type=A Type=NS RR format: (name, value, type, ttl) name: hostname (π.χ. dedalus.noc.tuc.gr) value: IP address (π.χ. 147.27.18.1) name:domain (π.χ. tuc.gr) value: όνοµα του authoritative name για το domain (π.χ. dedalus.noc.tuc.gr) Type=CNAME name: ψευδώνυµο (alias name) για κάποιο canonical name (πραγµατικό όνοµα) www.telecom.tuc.gr value: canonical name orion.telecom.tuc.gr Type=MX name: ψευδώνυµο mail mail.telecom.tuc.gr value: canonical name mail jolie.telecom.tuc.gr 2: Επίπεδο Εφαρµογής 72 18

Πρωτόκολλο DNS, µηνύµατα Πρωτόκολλο DNS: µηνύµατα query και reply έχουν το ίδιο format επικεφαλίδα µηνύµατος identification: αριθµός από 16 bits που προσδιορίζει το ερώτηµα (query), η απόκριση σε ένα ερώτηµα χρησιµοποιεί τον ίδιο αριθµό flags: query ή reply recursion desired recursion available reply is authoritative Πρωτόκολλο DNS, µηνύµατα Name, type fields for a query RRs in response to query records for authoritative s additional helpful info that may be used 2: Επίπεδο Εφαρµογής 73 2: Επίπεδο Εφαρµογής 74 Κεφάλαιο 2 Περιεχόµενο (content) 2.1 Αρχές πρωτοκόλλων επιπέδου εφαρµογής 2.2 Web και HTTP 2.3 FTP 2.4 Ηλεκτρονικό ταχυδροµείο SMTP, POP3, IMAP 2.5 DNS 2.6 Προγραµµατισµός socket µε TCP 2.7 Προγραµµατισµός socket µε UDP 2.8 Κατασκευή ενός Web 2.9 ιανοµή περιεχοµένου Web caching ίκτυα διανοµής περιεχοµένου Κοινή χρήση αρχείων µεταξύ οµοτίµων 2: Επίπεδο Εφαρµογής 75 Το Web είναι πλούσιο σε περιεχόµενο (content): ιστοσελίδες, αρχεία MP3, αποθηκευµένο audio/video, Ο χρόνος πρόσβασης στα ζητούµενα αντικείµενα περιορίζεται από: καθυστερήσεις µετάδοσης σε αργές ζεύξεις καθυστερήσεις αναµονής στην ουρά σε συµφορηµένες ζεύξεις υπερβολικό αριθµό αιτήσεων στο Web µε το ζητούµενο αντικείµενο Μέτρα για τη βελτίωση του χρόνου απόκρισης: ηµιουργία αντιγράφων του περιεχοµένου σε πολλαπλούς s ροµολόγηση αίτησης στον καλύτερο (µε µικρότερο χρόνο απόκρισης) 2: Επίπεδο Εφαρµογής 76 19

ιανοµή περιεχοµένου (content distribution) Η διανοµή περιεχοµένου αφορά µηχανισµούς: δηµιουργίας αντιγράφων του περιεχοµένου σε πολλαπλούς s προσδιορισµού καλύτερου από τερµατικά συστήµατα Μηχανισµοί: Web caching ίκτυα διανοµής περιεχοµένου (Content distribution networks) Κοινή χρήση αρχείων µεταξύ οµοτίµων (Peer-to-peer file sharing) Όροι: Πάροχος περιεχοµένου (content provider): οποιοσδήποτε (ιδιώτης, οργανισµός) διαθέτει περιεχόµενο στους χρήστες του ιαδικτύου Εξυπηρέτης προέλευσης (origin ): ο στον οποίο τοποθετείται αρχικά ένα αντικείµενο και στον οποίο υπάρχει πάντα αντίγραφό του 2: Επίπεδο Εφαρµογής 77 Web cache (proxy ) Web cache: ικανοποιεί αιτήσεις HTTP χωρίς την ανάµειξη του origin διατηρεί αντίγραφα πρόσφατα ζητηθέντων αντικειµένων µε κατάλληλο configuration, όλες οι αιτήσεις HTTP του browser διέρχονται από την web cache ζητούµενο αντικείµενο στη cache: παραδίδεται στον client αλλιώς, η cache ζητά το αντικείµενο από τον origin, µετά παραδίδει το αντικείµενο στον client (διατηρεί αντίγραφο αντικειµένου) client client αίτηση HTTP απόκριση HTTP αίτηση HTTP απόκριση HTTP proxy αίτησηhttp απόκρισηhttp origin origin 2: Επίπεδο Εφαρµογής 78 Web caching Η cache λειτουργεί και ως client και ως H cache µπορεί να χρησιµοποιήσει την επικεφαλίδα HTTP If-modified-since για έλεγχο Θα έπρεπε η cache να παραδώσει αντικείµενο χωρίς να ελέγξει αν είναι up-to-date; Χρησιµοποιούνται heuristics Η cache εγκαθίσταται συνήθως από τον ISP (πανεπιστήµιο, εταιρεία, οικιακός ISP) Web caching µπορεί: να µειώσει χρόνο απόκρισης στις αιτήσεις των clients να µειώσει την κίνηση στη ζεύξη πρόσβασης στο ιαδίκτυο να επιτρέψει σε φτωχούς παρόχους περιεχοµένου να διανείµουν το περιεχόµενο τους αποτελεσµατικά στο ιαδίκτυο 2: Επίπεδο Εφαρµογής 79 Παράδειγµα caching (1) Υποθέσεις µέσο µέγεθος αντικειµένου = 100,000 bits µέσος ρυθµός αιτήσεων από τους browsers του ιδρύµατος στους origin s = 15 αιτήσεις/sec καθυστέρηση µετ επιστροφής από το δροµολογητή Α σε οποιοδήποτε origin = καθυστέρηση ιαδικτύου = 2 sec Συνέπειες δίκτυο ιδρύµατος φορτίο LAN = 100,000 15/10 7 =15% φορτίο ζεύξης πρόσβασης = 100,000 15/(1.5 10 6 ) = 100% ολική καθυστέρηση = καθυστέρηση ιαδικτύου + καθυστέρηση πρόσβασης + καθυστέρηση LAN = 2 sec + minutes + msecs δηµόσιο ιαδίκτυο origin s δροµολογητής Α ζεύξη πρόσβασης 1.5 Mbps 10 Mbps LAN 2: Επίπεδο Εφαρµογής 80 20

Παράδειγµα caching (2) Πιθανή λύση αύξηση εύρους ζώνης ζεύξης πρόσβασης σε 10 Mbps Συνέπειες φορτίο LAN = 15% φορτίο ζεύξης πρόσβασης = 15% ολική καθυστέρηση = καθυστέρηση ιαδικτύου + καθυστέρηση πρόσβασης + καθυστέρηση LAN = 2 sec + msecs + msecs έχει κόστος αναβάθµισης ζεύξης δίκτυο ιδρύµατος δηµόσιο ιαδίκτυο ζεύξη πρόσβασης 10 Mbps 10 Mbps LAN origin s δροµολογητής Α 2: Επίπεδο Εφαρµογής 81 Παράδειγµα caching (3) Εγκατάσταση cache έστω hit rate = 0.4 Συνέπειες 40% των αιτήσεων ικανοποιούνται σχεδόν αµέσως 60% των αιτήσεων ικανοποιούνται από τους origin s φορτίο ζεύξης πρόσβασης =60%, έχοντας ως αποτέλεσµα αµελητέες καθυστερήσεις (έστω 10 msecs) ολική καθυστέρηση = καθυστέρηση ιαδικτύου + καθυστέρηση πρόσβασης + καθυστέρηση LAN =.6 2 sec +.6 10 msecs + msecs < 1.3 sec έχει κόστος cache δίκτυο ιδρύµατος δηµόσιο ιαδίκτυο 10 Mbps LAN origin s δροµολογητής Α ζεύξη πρόσβασης 1.5 Mbps cache ιδρύµατος 2: Επίπεδο Εφαρµογής 82 ίκτυα διανοµής περιεχοµένου - Content distribution networks (CDNs) Οι πάροχοι περιεχοµένου είναι οι πελάτες του CDN Επανάληψη περιεχοµένου Η εταιρεία CDN εγκαθιστά εκατοντάδες CDN s στο ιαδίκτυο σε ISP που είναι χαµηλά στην ιεραρχία, κοντά στους χρήστες Το CDN επαναλαµβάνει το περιεχόµενο των πελατών του στους CDN s. Όταν ο πάροχος ενηµερώσει το περιεχόµενο, το CDN ενηµερώνει τους s Το CDN παρέχει µηχανισµό ώστε ο χρήστης να λαµβάνει το ζητούµενο περιεχόµενο από τον CDN µε το µικρότερο χρόνο απόκρισης CDN στη Ν. Αµερική origin στη Βόρεια Αµερική κόµβος διανοµής CDN CDN στην Ευρώπη CDN στην Ασία 2: Επίπεδο Εφαρµογής 83 Παράδειγµα CDN Με ποιο τρόπο προσδιορίζεται ο (origin ή ένας από τους CDN s) από τον οποίο ο browser θα ανακτήσει το ζητούµενο αντικείµενο; origin (www.foo.com) διανέµει απευθείας αρχεία HTML Αντικαθιστά: http://www.foo.com/sports/ruth.gif µε http://www.cdn.com/www.foo.com/sports/ruth.gif Origin authoritative DNS του CDN Γειτονικός CDN εταιρεία CDN (cdn.com) διανέµει αρχεία gif χρησιµοποιεί τον authoritative DNS για να επανακατευθύνει τις αιτήσεις 2: Επίπεδο Εφαρµογής 84 21

Παράδειγµα CDN 1 2 3 αίτηση HTTP για www.foo.com/sports/sports.html origin authoritative DNS του CDN γειτονικός CDN ερώτηµα DNS για www.cdn.com αίτηση HTTP για www.cdn.com/www.foo.com/sports/ruth.gif 1. Ο browser στέλνει στον origin αίτηση HTTP για το αντικείµενο www.foo.com/sports/sports.html που περιέχει αναφορά στο αντικείµενο www.cdn.com/www.foo.com/sports/ruth.gif 2: Επίπεδο Εφαρµογής 85 2. Παράδειγµα CDN 1 2 3 αίτηση HTTP για www.foo.com/sports/sports.html origin authoritative DNS του CDN γειτονικός CDN ερώτηµα DNS για www.cdn.com αίτηση HTTP για www.cdn.com/www.foo.com/sports/ruth.gif Ο browser στέλνει ερώτηµα (query) DNS για το όνοµα www.cdn.com Ο root DNS απευθύνει κάθε τέτοιο ερώτηµα στον authoritative DNS για το www.cdn.com Ο authoritative DNS απαντά µε τη διεύθυνση IP του καλύτερου CDN αφού συµβουλευθεί ένα χάρτη του δικτύου 2: Επίπεδο Εφαρµογής 86 Παράδειγµα CDN 1 2 3 αίτηση HTTP για www.foo.com/sports/sports.html origin authoritative DNS του CDN γειτονικός CDN ερώτηµα DNS για www.cdn.com αίτηση HTTP για www.cdn.com/www.foo.com/sports/ruth.gif 3. Ο browser στέλνει αίτηση HTTP στον καλύτερο CDN Μελλοντικές αιτήσεις HTTP στο www.cdn.com στέλνονται στον ίδιο, όσο η διεύθυνση IP για το όνοµα www.cdn.com παραµένει στη DNS cache 2: Επίπεδο Εφαρµογής 87 CDN: DNS redirection δροµολόγηση αιτήσεων το CDN δηµιουργεί ένα χάρτη που υποδεικνύει τις αποστάσεις µεταξύ των ISP πρόσβασης και των κόµβων του CDN όταν ο authoritative DNS λάβει query: προσδιορίζει τον ISP από τον οποίο προέρχεται το ερώτηµα χρησιµοποιεί το χάρτη για να προσδιορίσει τον καλύτερο CDN όχι µόνο ιστοσελίδες συνεχούς ροής αποθηκευµένο audio/ video (streaming stored audio/video) συνεχούς ροής audio/ video πραγµατικού χρόνου (streaming real-time audio/video) 2: Επίπεδο Εφαρµογής 88 22

P2P file sharing Προσωπικοί υπολογιστές µπορούν να ανακτήσουν αντικείµενα απευθείας ο ένας από τον άλλο (peers) ιανοµή περιεχοµένου Παράδειγµα: Η Alice τρέχει την P2P εφαρµογή στον φορητό υπολογιστή της εν είναι µόνιµα συνδεδεµένη στο ιαδίκτυο (για κάθε νέα σύνδεση λαµβάνει νέα διεύθυνση IP) Ζητά ένα αρχείο MP3 Ηεφαρµογή παρουσιάζει κατάλογο των peers που είναι συνδεδεµένοι στο ιαδίκτυο και έχουν αντίγραφο αυτού του αρχείου Η Alice διαλέγει έναν από τους peers, τον Bob Το αρχείο αντιγράφεται από το PC του Bob στον φορητό της Alice: HTTP 2: Επίπεδο Εφαρµογής 89 P2P file sharing (συνέχεια) Παράδειγµα (συνέχεια) Όσο το αρχείο µεταφέρεται στον υπολογιστή της Alice, άλλοι χρήστες µπορούν να µεταφέρουν αρχεία από τον υπολογιστή της Alice Ο peer της Alice είναι ταυτόχρονα ένας Web client and ένας µεταβατικός (transient) Web Όλοι οι peers είναι s scalability Εντοπισµός περιεχοµένου: Ένας peer πρέπει να προσδιορίσει τη διεύθυνση IP των peers που είναι συνδεδεµένοι και έχουν το ζητούµενο αντικείµενο υσκολία: Οι peers δεν είναι µόνιµα συνδεδεµένοι Μέθοδοι: centralized directory decentralized directory query flooding 2: Επίπεδο Εφαρµογής 90 P2P: centralized directory Χρησιµοποιεί δυναµική, κεντρική βάση δεδοµένων για να παρέχει την υπηρεσία καταλόγου (π.χ. Napster) 1) Κατά τη σύνδεσή του ο peer πληροφορεί τον κεντρικό : διεύθυνση IP περιεχόµενο 2) Η Alice αναζητά το επιθυµητό αρχείο 3) Η Alice ζητά το αρχείο από τον Bob centralized directory 2 1 1 1 1 3 peers Alice Bob 2: Επίπεδο Εφαρµογής 91 P2P: centralized directory - Προβλήµατα Οι peers ενηµερώνουν τον κεντρικό ως προς το περιεχόµενό τους Ο ελέγχει εάν οι peers έχουν αποσυνδεθεί: περιοδική αποστολή µηνυµάτων στους peers µόνιµη σύνδεση TCP µε κάθε peer Προβλήµατα: Ο κεντρικός αποτελεί: µοναδικό σηµείο αστοχίας πιθανό σηµείο συµφόρησης (bottleneck) παραβίαση πνευµατικών δικαιωµάτων µεταφορά αρχείων: αποκεντρωµένη εντοπισµός περιεχοµένου: κεντρικοποιηµένος 2: Επίπεδο Εφαρµογής 92 23

P2P: decentralized directory Βάση δεδοµένων κατανεµηµένη µεταξύ των ίδιων των peers (π.χ. KaZaA/FastTrack) Κάθε peer είναι είτε ένας group leader είτε είναι στην αρµοδιότητα ενός group leader Οι peers πληροφορούν τον group leader σχετικά µε το περιεχόµενό τους Οι peer στέλνουν queries στον group leader - Ο group leader µπορεί να στείλει queries σε άλλους group leaders ordinary απλός peer group group-leader leader peer peer σχέσεις neighoring relationships γειτνίασης στο υπερκείµενο in overlay network δίκτυο 2: Επίπεδο Εφαρµογής 93 P2P: decentralized directory υπερκείµενο δίκτυο οι peers είναι κόµβοι ακµές µεταξύ peers και αντίστοιχων group leaders ακµές µεταξύ ορισµένων group leaders εικονικοί γείτονες κόµβος bootstrap συνδεόµενος peer είτε ανατίθεται σε έναν group leader ή ορίζεται ως group leader απλός ordinary peer group group-leader leader peer peer σχέσεις neighoring γειτνίασης relationships στο υπερκείµενο in overlay network δίκτυο 2: Επίπεδο Εφαρµογής 94 P2P: decentralized directory Πλεονεκτήµατα δεν χρησιµοποιεί έναν κεντρικό υπηρεσία εντοπισµού περιεχοµένου κατανέµεται στους group leaders µικρές βάσεις δεδοµένων δυσκολότερο να τεθεί εκτός λειτουργίας Μειονεκτήµατα απαιτείται κόµβος bootstrap βρίσκεται πάντα σε λειτουργία απαιτείται πολύπλοκο πρωτόκολλο δηµιουργίας & συντήρησης υπερκείµενου δικτύου π.χ. αποσύνδεση group leader όχι απόλυτα decentralized υπερφόρτωση group leaders 2: Επίπεδο Εφαρµογής 95 P2P: query flooding ιαδικασία εντοπισµού περιεχοµένου πλήρως κατανεµηµένη (π.χ. Gnutella) καµία ιεράρχηση στους peers κάθε συνδεόµενος peer χρησιµοποιεί τον κόµβο bootstrap για να µάθει τις διευθύνσεις IP των γειτόνων µήνυµα συνένωσης (join) join µήνυµα query στέλνεται σε όλους τους γείτονες οι γείτονες προωθούν το µήνυµα (πληµµύρα) εάν ένας ερωτώµενος peer έχει το αντικείµενο, στέλνει µήνυµα στον αποστολέα του query query 2: Επίπεδο Εφαρµογής 96 24

P2P: query flooding Chapter 2: Σύνοψη Πλεονεκτήµατα σχεδόν απόλυτα decentralized οι peers έχουν τις ίδιες ευθύνες (όχι group leaders) δεν χρησιµοποιείται βάση δεδοµένων κανένας peer δεν διατηρεί πληροφορίες καταλόγου Μειονεκτήµατα υπερβολική κίνηση από queries περιορισµός της ακτίνας πληµµύρας µε αντίτιµο να µη βρεθεί το ζητούµενο αντικείµενο απαιτείται κόµβος bootstrap απαιτείται πρωτόκολλο δηµιουργίας & συντήρησης υπερκείµενου δικτύου υπηρεσίες που απαιτούν οι εφαρµογές: αξιοπιστία, bandwidth, καθυστέρηση µοντέλο client- µοντέλο υπηρεσιών µεταφοράς στο ιαδίκτυο TCP: connection-oriented, αξιόπιστη υπηρεσία UDP: connectionless, αναξιόπιστη υπηρεσία συγκεκριµένα πρωτόκολλα HTTP FTP SMTP, POP, IMAP DNS διανοµή περιεχοµένου Web caching CDNs P2P 2: Επίπεδο Εφαρµογής 97 2: Επίπεδο Εφαρµογής 98 Chapter 2: Σύνοψη Πρωτόκολλα: συνήθης ανταλλαγή ερωταποκρίσεων (request/reply): client ζητά πληροφορία ή υπηρεσία αποκρίνεται µε δεδοµένα, status code format µηνυµάτων : headers: πεδία που παρέχουν πληροφορία γιαταδεδοµένα δεδοµένα: µεταφερόµενη πληροφορία αξιόπιστη έναντι αναξιόπιστης µεταφοράς µηνυµάτων πρωτόκολλα χωρίς κατάσταση έναντι πρωτοκόλλων µε κατάσταση centralized έναντι decentralized πολυπλοκότητα στα άκρα του δικτύου security: πιστοποίηση ταυτότητας (authentication) 2: Επίπεδο Εφαρµογής 99 25