Δίκτυα Υπολογιστών. Ενότητα 3: Εφαρμογές, υπηρεσίες και παγκόσμιος ιστός. Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών Τ.

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

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

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

ΤΕΙ Πειραιά, Τμήμα Ηλεκτρονικής. Δίκτυα P2P. Χαράλαμπος Ζ. Πατρικάκης

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

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

Δίκτυα Ηλεκτρονικών Υπολογιστών

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

Network Address Translation (NAT)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δίκτυα Υπολογιστών. Ενότητα 1: Εισαγωγή στα δίκτυα Η/Υ, τα πρωτόκολλα και τη μεταφορά πληροφορίας

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

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

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

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

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

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

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

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

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

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

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

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

Εργαλεία ανάπτυξης εφαρμογών internet Ι

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

α) η καταγραφή και η σύλληψη της δικτυακής κίνησης (capture) και β) η ανάλυση της δικτυακής κίνησης.

Τεχνολογία Πολυμέσων. Ενότητα # 17: Πρωτόκολλα μετάδοσης Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

Εισαγωγή σε βασικές έννοιες του Internet

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

Κεφάλαιο 7 Διαδικτύωση-Internet. 7.2 Τεχνολογία TCP/IP

Προχωρημένα Θέματα Προγραμματισμού Δικτύων

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

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

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

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

ΚΕΦΑΛΑΙΟ 1.7. Πρωτόκολλα και Αρχιτεκτονική Δικτύου

Κατανεμημένα Συστήματα. Ενότητα # 11: Μηνυματοστρεφές ενδιάμεσο λογισμικό Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

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

Το ηλεκτρονικό ταχυδρομείο: Aφορά στην αποστολή και λήψη μηνυμάτων με συγκεκριμένη δομή και με συγκεκριμένα πρωτόκολλα. Ο αποστολέας και ο παραλήπτης

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

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

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

Πρόσκληση 10: Προηγμένες Τηλεματικές Υπηρεσίες Τ.Ε.Ι. Ηπείρου Δίκτυο Τ.Ε.Ι. Ηπείρου ΙΙ

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

Εισαγωγή στις ΤΠΕ ΙΙ Γιάννης Βρέλλης ΠΤΔΕ-Πανεπιστήμιο Ιωαννίνων. World Wide Web. Παγκόσμιος Ιστός

Δίκτυα Υψηλών Ταχυτήτων Ενότητα 7: Διευθυνσιοδότηση Internet Protocol (IP) v4

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

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

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

ΕΡΓΑΣΤΗΡΙΟ 1: 1 Εισαγωγή, Χρήσιμες Εφαρμογές

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

ΕΠΛ 012 Εισαγωγή στο Παγκόσμιο Πλέγμα Πληροφοριών

Ειδικά Θέματα Προγραμματισμού

Κατανεμημένα Συστήματα: Θεωρία και Προγραμματισμός. Ενότητα # 1: Εισαγωγή Διδάσκων: Γεώργιος Ξυλωμένος Τμήμα: Πληροφορικής

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

Κεφάλαιο 2. Υπολογιστές και Τεχνολογία Επικοινωνιών Παρελθόν - Παρόν - Μέλλον

Δίκτυα Υπολογιστών Ενότητα 9: Dynamic Host Configuration Protocol- DHCP

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

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

Δίκτυα Υπολογιστών. Ενότητα 6: Δημιουργία δικτύων και υποδικτύων σε περιβάλλον πρωτοκόλλου ΙΡ

AEI Πειραιά Τ.Τ. Τμ. Μηχ/κων Αυτοματισμού ΤΕ. Δίκτυα Μετάδοσης Δεδομένων. Διάλεξη 1: Εισαγωγή στα δίκτυα υπολογιστών και βασικές αρχές

ΚΕΦΑΛΑΙΟ 10. Υπηρεσίες και εφαρμογές Διαδικτύου. ΚΕΦΑΛΑΙΟ 10 Υπηρεσίες και εφαρμογές Διαδικτύου. Α Γενικού Λυκείου

Transcript:

Δίκτυα Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 3: Εφαρμογές, υπηρεσίες και παγκόσμιος ιστός Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε Κάντε κλικ για να ξεκινήσετε

Άδειες Χρήσης Το παρόν εκπαιδευτικό υλικό υπόκειται σε άδειες χρήσης Creative Commons. Για εκπαιδευτικό υλικό, όπως εικόνες, που υπόκειται σε άλλου τύπου άδειας χρήσης, η άδεια χρήσης αναφέρεται ρητώς. 2

Χρηματοδότηση Το παρόν εκπαιδευτικό υλικό έχει αναπτυχθεί στα πλαίσια του εκπαιδευτικού έργου του διδάσκοντα. Το έργο «Ανοικτά Ακαδημαϊκά Μαθήματα στο Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα» έχει χρηματοδοτήσει μόνο τη αναδιαμόρφωση του εκπαιδευτικού υλικού. Το έργο υλοποιείται στο πλαίσιο του Επιχειρησιακού Προγράμματος «Εκπαίδευση και Δια Βίου Μάθηση» και συγχρηματοδοτείται από την Ευρωπαϊκή Ένωση (Ευρωπαϊκό Κοινωνικό Ταμείο) και από εθνικούς πόρους. 3

Ευχαριστίες Στην ανάπτυξη του υλικού βοήθησαν οι συνεργάτες του εργαστηρίου Δημήτρης Κόγιας, Μάνος Μιχαηλίδης και οι φοιτητές Λάζαρος Τουμανίδης, Στέφανος Μπογδάνης, Γιώργος Μπελτάος, Γιώργος Τσούκας. 4

Βιβλιογραφία James F. Kurose - Keith W. Ross, Δικτύωση Υπολογιστών, εκδ. Γκιούρδας. Tanenbaum, Wetherall, Δίκτυα Υπολογιστών, Εκδ. Κλειδάριθμος. Douglas E. Comer, Δίκτυα και διαδίκτυα υπολογιστών και εφαρμογές τους στο Internet, Κλειδάριθμος. Monteiro, J. M., Cruz, R. S., Patrikakis, C. Z., Papaoulakis, N. C., Calafate, C. T., & Nunes, M. S. (2013). Peer-to-Peer Video Streaming. In R. Farrugia, & C. Debono (Eds.), Multimedia Networking and Coding (pp. 254-313). Hershey, PA: Information Science Reference. doi:10.4018/978-1-4666-2660-7.ch010. Charalampos Z. Patrikakis, Angelos- Christos Anadiotis, Penetrating with DDoS Attacks, (διαθέσιμο στο διαδίκτυο: http://pentestmag.com), PenTest Magazine, vol2 no 5, Aug 2012, pp [16-22]. Pendegraft, N. (2003). The TCP/IP Game. In T. McGill (Ed.), Current Issues in IT Education (pp. 117-124). Hershey, PA: IRM Press. doi:10.4018/978-1- 93177-753-7.ch009. Τμήμα των σημειώσεων είναι βασισμένο σε συνοδευτικό υλικό του βιβλίου των James F. Kurose - Keith W. Ross, Computer Networking, Pearson publications 5

Περιεχόμενα 3.1 Υπηρεσίες και εφαρμογές στο δίκτυο. 3.2 Διαδίκτυο και ανάκτηση αντικειμένων πάνω από αυτό (Το πρωτόκολλο HTTP). 3.3 Βελτιστοποίηση ταχύτητας και εμπειρίας πρόσβασης στον παγκόσμιο ιστό (Cookies Web cache). 3.4 Από τις διευθύνσεις ΙΡ σε αναγνωρίσιμα ονόματα (Domain Name System, DNS ). 3.5 Δίκτυα ομότιμων κόμβων (Αρχιτεκτονικές και εφαρμογές). 3.6 Μεταφορά αρχείων και μηνυμάτων με χρήση των πρωτοκόλλων του διαδικτύου (FTP, SMTP, POP, IMAP). 6

Προσδοκώμενα Αποτελέσματα Στην ενότητα αυτή θα μάθετε για: Το στρώμα εφαρμογής στο διαδίκτυο, Βασικές εφαρμογές και τα πρωτόκολλα τους (HTTP, FTP, SMTP, POP/IMAP), Μοντέλα υπηρεσιών και δίκτυα ομότιμων κόμβων, Τη λειτουργία του παγκόσμιου ιστού. 7

3.1 Υπηρεσίες και εφαρμογές στο δίκτυο 8

Εφαρμογές υπηρεσίες δικτύου και όροι Ηλεκτρονικό ταχυδρομείο (email) Ιστός (web) Αποστολή άμεσων μηνυμάτων Απομακρυσμένη προσπέλαση ΗΥ (telnet) Διαμοιρασμός(κοινή χρήση) αρχείων μεταξύ ομότιμων (P2P file sharing) Δίκτυο παιχνιδιών πολλαπλών χρηστών Συνεχής ροή (streaming) αποθηκευμένων video clips Κοινωνικά δίκτυα (social networks) Μεταφορά φωνής πάνω από IP δίκτυο (VoIP) Video-συνδιάσκεψη (εικονοδιάσκεψη) σε πραγματικό χρόνο Yπολογιστικό πλέγμα (grid computing) Υπολογιστικό νέφος (cloud computing) 9

Πως δημιουργούμε μια εφαρμογή δικτύου; Δημιουργία προγραμμάτων τα οποία: Τρέχουν σε (διαφορετικά) τερματικά συστήματα. Επικοινωνούν πάνω από το δίκτυο. Παράδειγμα: το λογισμικό του εξυπηρετητή ιστού (web server) επικοινωνεί με το λογισμικό του περιηγητή (browser) στον Η/Υ υπηρεσίας του χρήστη. Δεν υπάρχει ανάγκη για δημιουργία λογισμικού για τις συσκευές του πυρήνα (core) του δικτύου (όσον αφορά στις εφαρμογές των χρηστών) Οι συσκευές του πυρήνα του δικτύου δεν τρέχουν εφαρμογές χρήστη. Η εκτέλεση των εφαρμογών μόνο πάνω στα τερματικά συστήματα επιτρέπει γρήγορη ανάπτυξη εφαρμογών και τη διάδοσή τους ανεξάρτητα από το δίκτυο. 10

Αρχιτεκτονικές εφαρμογών Αρχιτεκτονική πελάτη-εξυπηρετητή Αρχιτεκτονική ζεύξης μεταξύ ομότιμων (P2P) Υβριδικό μοντέλο αρχιτεκτονικής: πελάτηεξυπηρετητή και ζεύξης μεταξύ ομότιμων (P2P) 11

Αρχιτεκτονική πελάτη-εξυπηρετητή Εξυπηρετητές: Είναι υπολογιστές οι οποίοι βρίσκονται συνεχώς σε λειτουργία ( always-on ), ή τουλάχιστον ο χρόνος στον οποίο δεν μπορούν να παρέχουν υπηρεσίες (down time) είναι μικρός. Έχουν σταθερή(μόνιμη) διεύθυνση IP, ή έναν σταθερό τρόπο αναφοράς σε αυτούς (π.χ. cnlab.teipir.gr) Μπορεί να είναι οργανωμένοι σε ομάδες για αναβάθμιση της ικανότητάς τους (server farms) Πελάτες: Επικοινωνούν με τον εξυπηρετητή Μπορεί να συνδέονται διακεκομμένα Μπορεί να έχουν δυναμικές διευθύνσεις IP Δεν επικοινωνούν άμεσα ο ένας με τον άλλο 12

Αμιγής P2P αρχιτεκτονική Δεν υπάρχει εξυπηρετητής διαθέσιμος συνέχεια (24/7). Ανεξάρτητα, ομότιμα όσον αφορά την αρχιτεκτονική τερματικά συστήματα τα οποία επικοινωνούν απευθείας. Οι ομότιμοι συνδέονται ανά διαστήματα και συνήθως αλλάζουν διευθύνσεις IP. Κάθε τερματικό λειτουργεί και ως πελάτης, αλλά και ως εξυπηρετητής. Πλεονέκτημα: Εύκολα επεκτάσιμη αρχιτεκτονική Μειονέκτημα: Δύσκολα διαχείρίσιμη 13

Υβριδικό μοντέλο πελάτη-εξυπηρετητή και P2P Ύπαρξη ενός εξυπηρετητή, ο οποίος αποτελεί και το μόνο κεντρικοποιημένο στοιχείο της αρχιτεκτονικής. Συγκεντρωτική υπηρεσία: ανίχνευση/εύρεση παρουσίας πελάτη. Συγκεντρωτικός εξυπηρετητής: βρίσκει τη διεύθυνση του απομακρυσμένου μέρους/ομάδας. Τα τερματικά, στην μεταξύ τους επικοινωνία χρησιμοποιούν το μοντέλο P2P. Σύνδεση μεταξύ πελατών: άμεση (όχι διαμέσου εξυπηρετητή). Παράδειγμα: Skype - Μεταφορά φωνής και video πάνω από δίκτυο IP, και στιγμιαία/άμεση ανταλλαγή μηνυμάτων. Ο χρήστης εγγράφει την διεύθυνση IP του στον κεντρικό εξυπηρετητή όταν συνδέεται (μοντέλο πελάτη εξυπηρετητή). Ο χρήστης έρχεται σε επαφή με τον κεντρικό εξυπηρετητή για να βρει τις IP διευθύνσεις των φίλων του (μοντέλο πελάτη εξυπηρετητή). Η επικοινωνία των χρηστών γίνεται με το μοντέλο P2P. 14

Διεργασίες (λειτουργία τον υπολογιστή και πάνω από ένα δίκτυο) Μέσα στον ίδιο υπολογιστή, δύο διεργασίες (processes) επικοινωνούν χρησιμοποιώντας επικοινωνία τύπου ενδοδιεργασίας (inter-process), η οποία ρυθμίζεται και επιβλέπεται από το λειτουργικό σύστημα. Διεργασίες σε διαφορετικούς υπολογιστές οι οποίοι είναι συνδεδεμένοι πάνω από ένα δίκτυο επικοινωνούν ανταλλάσσοντας μηνύματα. Διεργασία πελάτη: η διεργασία η οποία εκκινεί την επικοινωνία και ζητά κάποια υπηρεσία. Διεργασία εξυπηρετητή: διεργασία η οποία περιμένει την επικοινωνία και παρέχει την υπηρεσία. Στο μοντέλο P2P, οι εφαρμογές διαθέτουν διεργασίες πελάτη & εξυπηρετητή οι οποίες εκτελούνται παράλληλα. 15

Sockets: τι είναι; Η επικοινωνία μίας διεργασίας με το επίπεδο μεταφοράς πραγματοποιείται μέσω του socket. H διεργασία αποστέλλει/λαμβάνει μηνύματα προς/από το socket της. Μπορούμε να παραλληλίσουμε το socket με μία πόρτα. Η διεργασία που θέλει να στείλει ένα μήνυμα, το «διώχνει» από την πόρτα. Χρησιμοποιεί την υποδομή μεταφοράς η οποία συνδέει την πόρτα της με μία αντίστοιχη πόρτα η οποία αντιστοιχεί στην απέναντι διεργασία με την οποία επικοινωνεί. API (Application Programmer s Interface): Ο τρόπος προγραμματισμού της επικοινωνίας, οποίος συνίσταται: Στην επιλογή του πρωτοκόλλου μεταφοράς. στη δυνατότητα αλλαγής ορισμένων παραμέτρων του επιπέδου μεταφοράς, όπως για παράδειγμα το μέγιστο μέγεθος του ενταμιευτή που χρησιμοποιεί το επίπεδο μεταφοράς. Το επίπεδο μεταφοράς ελέγχεται από το λειτουργικό σύστημα και όχι από τον προγραμματιστή. 16

Επικοινωνία διεργασιών πάνω από sockets Για να λάβει μηνύματα, η διεργασία πρέπει να έχει ένα αναγνωριστικό SocketID. Πρώτα όμως, χρειάζεται να μπορέσουμε να βρούμε το τερματικό στο οποίο τρέχει η διεργασία στο δίκτυο. Και αυτό έχει μία διεύθυνση δικτύου NetID. Στο διαδίκτυο, το NetID είναι η διεύθυνση IP, ενώ το SocketID, είναι το port number. Κάθε εφαρμογή η οποία έχει περιγραφεί σε ένα πρότυπο RFC, έχει και ένα προκαθορισμένο port number, το οποίο χρησιμοποιεί (και στο οποίο ακούει για εισερχόμενες κλήσεις όταν πρόκειται για την πλευρά του εξυπηρετητή). Για παράδειγμα: Ένας εξυπηρετητής web ακούει στην πόρτα 80. Ένας εξυπηρετητής FTP ακούσει στην πόρτα 21. Ένας εξυπηρετητής email ακούει στην πόρτα 25. Οι αριθμοί από τις πόρτες δεν είναι δεσμευτικοί, και μπορούν να αλλάξουν εάν το θελήσουμε. 17

Πρωτόκολλο επιπέδου εφαρμογής Ορίζει: Τους τύπους μηνυμάτων που ανταλλάσσονται Αίτηση, απόκριση, κ.λ.π. Τη σύνταξη του κάθε μηνύματος: Τι πεδία υπάρχουν στο μήνυμα & πώς τα πεδία αυτά οριοθετούνται. Τη σημασιολογία του μηνύματος Νόημα της πληροφορίας που περιλαμβάνεται στα πεδία. Τους κανόνες που αφορούν το πότε και πώς οι διεργασίες αποστέλλουν και απαντούν σε μηνύματα. Δύο τύποι πρωτοκόλλων: Πρωτόκολλα public domain: Καθορίζονται στα RFCs. Επιτρέπεται η διαλειτουργικότητα. Ανοικτά, άρα ο καθένας μπορεί να τα υλοποιήσει. Παραδείγματα:, HTTP, SMTP. Ειδικά (proprietary) πρωτόκολλα: Κλειστά πρωτόκολλα. Δε γνωρίζουμε πως λειτουργούν, και μπορούμε μόνο να δούμε τα αποτελέσματά τους. Δε μπορεί ο καθένας να τα υλοποιήσει. Παράδειγμα: Skype 18

Απαιτήσεις εφαρμογών από το πρωτόκολλο μεταφοράς Ανοχή ή όχι στην απώλεια δεδομένων Ευαισθησία όσον αφορά στο χρονισμό Εξάρτηση από το ρυθμό μετάδοσης (τη ρυθμαπόδοση) Ασφάλεια 19

Απαιτήσεις υπηρεσιών μεταφοράς, συνήθων εφαρμογών Εφαρμογή Μεταφορά αρχείου e-mail Έγγραφα Web Ήχος/video σε πραγματικό χρόνο Αποθηκευμ. ήχος/video Διαδραστικά παιχνίδια Στιγμιαία μηνύματα Απώλεια δεδ. Καμία απώλεια Καμία απώλεια Καμία απώλεια Ανεκτική σε απωλ. Ανεκτική σε απωλ Ανεκτική σε απωλ Καμία απώλεια Ρυθμοαπόδοση ελαστική ελαστική ελαστική ήχος: 5kbps-1Mbps video:10kbps-5mbps Όμοια με πριν Έως λίγα kbps ελαστική Ευαισθησία στο χρόνο όχι όχι όχι 100δες msec λίγα secs 100δες msec ναι και όχι 20

Παρεχόμενες υπηρεσίες από τα πρωτόκολλα μεταφοράς Διαδικτύου Υπηρεσία πάνω από TCP : Συνδεσιστρεφής (connection oriented): απαιτείται εγκαθίδρυση (setup) μεταξύ διεργασιών πελάτη και εξυπηρετητή Αξιόπιστη μεταφορά δεδομένων μεταξύ διεργασίας που στέλνει και διεργασίας που λαμβάνει Έλεγχος ροής: ο αποστολέας δεν κατακλύζει τον παραλήπτη Έλεγχος συμφόρησης: φρενάρει (throttle) τον αποστολέα όταν το δίκτυο είναι υπερφορτωμένο Δεν παρέχει: χρονισμό, εγγυήσεις ελάχιστης ρυθμαπόδοσης (throughput), ασφάλεια Υπηρεσία πάνω από UDP: Ασυνδεσιστρεφής (connectionless): δεν απαιτεί την εγκατάσταση σύνδεσης πριν την ανταλλαγή δεομένων. Αναξιόπιστη μεταφορά δεδομένων μεταξύ διεργασίας που στέλνει και διεργασίας που λαμβάνει Δεν παρέχει: εγκαθίδρυση σύνδεσης, αξιοπιστία, έλεγχο ροής, έλεγχο συμφόρησης, χρονισμό, εγγύηση ρυθμοαπόδοσης, ασφάλεια 21

Εφαρμογές Διαδικτύου: πρωτόκολλα επιπέδου εφαρμογής και αντίστοιχα πρωτόκολλα επιπέδου μεταφοράς Εφαρμογή Πρωτόκολλο Στρώματος εφαρμογής Υποκείμενο Πρωτόκολλο μεταφοράς e-mail Απομακρυσμ. σύνδεση τερμ. Web Μεταφορά ροής (Streaming) πολυμέσων Τηλεφωνία μέσω Διαδικτύου SMTP [RFC 2821] Telnet [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (πχ Youtube), RTP [RFC 1889] SIP, RTP, ειδικό πρωτόκολλο (π.χ., Skype) TCP TCP TCP TCP TCP ή UDP τυπικά UDP 22

Σύνοψη Μελετήσαμε: Πως δημιουργούμε μια εφαρμογή Αρχιτεκτονικές εφαρμογών: Μοντέλο Πελάτη Εξυπηρετητή Ομότιμοι Κόμβοι Υβριδικό Τι είναι sockets. 23

3.2 Διαδίκτυο και ανάκτηση αντικειμένων πάνω από αυτό Το πρωτόκολλο HTTP 24

Ιστός (web) και HTTP: ορισμοί Μια ιστοσελίδα (web page) αποτελείται από αντικείμενα. Ως αντικείμενο μπορεί να θεωρηθεί ένα HTML αρχείο, μια JPEG εικόνα, ένα Java applet,ένα αρχείο ήχου, Μια ιστοσελίδα αποτελείται από ένα HTML-αρχείο βάσης το οποίο περιλαμβάνει αρκετά αναφερόμενα αντικείμενα. Σε κάθε αντικείμενο αποδίδεται διεύθυνση μέσω ενός URL. Παράδειγμα URL: www.teipir.gr/departmentofelectronicsengineering/picture.gif Όνομα εξυπηρετητή Διαδρομή για εύρεση του αρχείου (πόρου) 25

Επικοινωνία με έναν εξυπηρετητή διαδικτύου Διαφορετικά υπολογιστικά συστήματα, λειτουργικά, εφαρμογές μπορούν να επικοινωνούν με έναν web server. Η δυνατότητα δίνεται από ένα απλό πρωτόκολλο: HTTP (HyperText Transport Protocol). Πρωτόκολλο στρώματος εφαρμογής του Web. Μοντέλο πελάτη/εξυπηρετητή. Βασίζεται στη λογική των αιτήσεων αποκρίσεων. Πελάτης: περιηγητής (web browser) ο οποίος ζητά, λαμβάνει και παρουσιάζει Web αντικείμενα. Εξυπηρετητής: Εξυπηρετητής ιστού (web browser) ο οποίος αποστέλλει αντικείμενα ως απάντηση στις αιτήσεις. Αίτημα HTTP Απάντηση HTTP 26

Επισκόπηση του HTTP Χρησιμοποιεί το TCP Ο πελάτης εκκινεί μια TCP σύνδεση (δημιουργεί socket) με τον εξυπηρετητή, στη θύρα 80. Ο εξυπηρετητής δέχεται την TCP σύνδεση από τον πελάτη. Στη συνέχεια, τα μηνύματα HTTP ανταλλάσσονται μεταξύ του περιηγητή ιστού (web browser) και του εξυπηρετητή ιστού (web server). Η TCP σύνδεση κλείνει. Είναι α-καταστατικό (stateless), δηλαδή ο εξυπηρετητής δεν διατηρεί πληροφορίες σχετικά με προηγούμενες αιτήσεις του πελάτη Είναι αρκετά απλό. Τα πρωτόκολλα που διατηρούν την κατάσταση της συνόδου είναι σύνθετα! Εάν δεν ήταν stateless, το ιστορικό της επικοινωνίας έπρεπε να διατηρηθεί. Εάν υπήρχε πρόβλημα στην επικοινωνία και ο συγχρονισμός χάνονταν, τότε θα είχαμε ασυμβατότητα καταστάσεων στις δύο πλευρές. Άρα ανάγκη για μηχανισμό επανασυγχρονισμού. Υπάρχει λοιπόν το θέμα της διατήρησης στοιχείων κατά τη διάρκεια μιας σύνδεσης (π.χ. τι έχω επιλέξει μέχρι τώρα σε ένα καλάθι αγορών. 27

Τύποι συνδέσεων HTTP Μη παραμένουσες HTTP συνδέσεις (Non persistent) Ένα αντικείμενο το πολύ αποστέλλεται πάνω από μια σύνδεση TCP. Απαιτούν 2 RTT ανά αντικείμενο. Επιβάρυνση στο λειτουργικό για κάθε σύνδεση TCP. Τα προγράμματα πλοήγησης συχνά ανοίγουν παράλληλες TCP συνδέσεις για να φέρουν τα αντικείμενα. Παραμένουσες HTTP συνδέσεις (Persistent) Πολλαπλά αντικείμενα μπορούν να αποσταλούν πάνω από μια και μόνο σύνδεση TCP μεταξύ πελάτη και εξυπηρετητή. Ο εξυπηρετητής αφήνει τη σύνδεση ανοιχτή, αφού στείλει την απόκριση (απάντηση). Τα επόμενα HTTP μηνύματα μεταξύ του ίδιου ζεύγους πελάτη/εξυπηρετητή στέλνονται πάνω από την ίδια ανοιχτή σύνδεση. Ο πελάτης στέλνει αίτηση από τη στιγμή που συναντά ένα αναφερόμενο αντικείμενο. Χρειάζεται μόνο τόσο λίγο χρόνο όσο το RTT για όλα τα αναφερόμενα αντικείμενα. 28

Χρόνος απόκρισης (Round Trip time) O χρόνος που χρειάζεται ένα πακέτο για να ταξιδέψει από το τερματικό που το στέλνει, έως να λάβει απάντηση. Στο μοντέλο client server, είναι ο χρόνος που χρειάζεται ένα μικρό μήνυμα για να πάει από τον πελάτη στον εξυπηρετητή, και να λάβει απάντηση ο πρώτος. Μιλάμε για μικρό μήνυμα, γιατί στην περίπτωση ενός μεγάλου μηνύματος, έχουμε και το χρόνο για τη λήψη όλου του μηνύματος να συνυπολογίσουμε, ο οποίος δε μας ενδιαφέρει. Ο χρόνος απόκρισης, εμπεριέχει και τις τέσσερεις καθυστερήσεις που είδαμε μέχρι τώρα (χρόνος μετάδοσης, διάδοσης, κομβικής επεξεργασίας και αναμονής σε ουρά), για όλο το μήκος της σύνδεσης. Η καθυστέρηση από το χρόνο μετάδοσης θεωρείται αμελητέα μια και μιλάμε για μικρό μήνυμα. 29

Χρόνος απόκρισης σε αίτημα HTTP Client RTT + RTT + Server Χρόνος μετάδοσης αρχείου T trans Χρόνος μετάδοσης αρχείου T total =T trans +2RTT 30

Παράδειγμα λειτουργίας (ανάκτηση ιστοσελίδας) index.html ιστοσελίδα Picture1.jpg On a network, a web browser can retrieve a web page from a remote web server. On a higher level, the web server may restrict access to only a private network such as a corporate intranet or it provide access to the World Wide Web. On a lower level, the web browser uses the Hypertext Transfer Protocol (HTTP) to make such requests. A web page (or webpage) is a web document that is suitable for the World Wide Web and the web browser. A web browser displays a web page on a monitor or mobile device. The web page is what displays, but the term also refers to a computer file, usually written in HTML or comparable markup language, whose main distinction is to provide hypertext that will navigate to other web pages via links. Web browsers coordinate web resources centered around the written web page, such as style sheets, scripts and images, to present the web page. Picture2.jpg 31

Non-persistent HTTP Client HTTP TCP TCP Close response TCP request connection (Picture2.jpg) (Index.html) (Picture1.jpg) established ack HTTP request (Index.html) Server 32

Persistent HTTP HTTP TCP TCP connection Close response request TCP connection (Picture1.jpg) (Picture2.jpg) (Index.html) established ack Client HTTP request (Index.html) Server 33

Persistent HTTP (βελτίωση επιδόσεων) Client HTTP TCP TCP connection Close response TCP request connection (Picture1.jpg) (Picture2.jpg) (Index.html) established ack HTTP request (Index.html) Server 34

Non-persistent HTTP (βελτίωση επιδόσεων) HTTP request (Picture1.jpg) HTTP TCP TCP connection response Close TCP connection (Picture1.jpg) established ack HTTP TCP Close connection TCP response TCP connection (Index.html) established ack Client HTTP TCP HTTP TCP connection Close response TCP request connection (Index.html) (Picture2.jpg) established ack HTTP request (Picture2.jpg) Server 35

Μήνυμα αίτησης HTTP: γενική μορφή 36

Μήνυμα αίτησης HTTP Γραμμή αίτησης (π.χ. εντολές GET, POST) γραμμές επικεφαλίδας 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 Carriage return, Line Feed (CR/LF) στην αρχή της γραμμης, υποδεικνύει το τέλος της γραμμής επικεφαλίδας 37

Μήνυμα απόκρισης HTTP γραμμή κατάστασης (πρωτόκολλο,κωδικός κατάστασης,μήνυμα κατάστασης) γραμμές επικεφαλίδας τέλος επικεφαλίδας 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... δεδομένα, (π.χ. αιτούμενο αρχείο HTML) 38

Εντολές (methods) και έκδοση του HTTP HTTP/1.0 GET (ζητάει ένα αντικείμενο από το web server) URL: Χρησιμοποιεί τη GET για να στείλει συγκεκριμένο περιεχόμενο ερώτησης στο web server www.teipir.gr/department?electronicsengineering POST (στέλνει ένα αντικείμενο στο web server για να αποθηκευτεί) HEAD (Ζητά από τον εξυπηρετητή να απαντήσει χωρίς να συμπεριλάβει το αιτούμενο αντικείμενο. Χρησιμοποιείται για αποσφαλμάτωση) HTTP/1.1 Υποστηρίζονται οι GET, POST, HEAD Επιπλέον υποστηρίζονται οι: PUT: Ανεβάζει το αρχείο στη διαδρομή (path) που καθορίζεται στο πεδίο του URL DELETE: (διαγράφει το αρχείο που καθορίζεται στο πεδίο του URL) Συνεπώς, υποστηρίζει πλήρη διαχείριση περιεχομένων (ανάκτηση, αποθήκευση, μεταφορά) 39

Μηνύματα απόκρισης HTTP και κωδικοί κατάστασης Κάθε απόκριση, περιέχει έναν κωδικό και το αντίστοιχο μήνυμα (π.χ. 200 OK). Ακολουθούν χαρακτηριστικά παραδείγματα: 200 OK : Πετυχημένη αίτηση, το αιτούμενο αντικείμενο επιστρέφεται μέσα σε αυτό το μήνυμα απόκρισης. 301 Moved Permanently: Το αιτούμενο αντικείμενο έχει μετακινηθεί μόνιμα. Το νέο URL καθορίζεται στην κεφαλίδα Location του μηνύματος απόκρισης. Το λογισμικό πελάτη θα επαναφέρει αυτόματα το URL. 400 Bad Request: Το μήνυμα της αίτησης δεν μπορεί να γίνει κατανοητό από τον εξυπηρετητή. 404 Not Found: Το ζητούμενο αντικείμενο δεν υπάρχει στον εξυπηρετητή. 505 HTTP Version Not Supported: Η ζητούμενη έκδοση του πρωτοκόλλου HTTP δεν υποστηρίζεται από τον εξυπηρετητή. 40

Σύνοψη Μελετήσαμε: Το πρωτόκολλο HTTP Τύποι συνδέσεων HTTP και χρόνους απόκρισης Persistent Non-persistent Μηνύματα απόκρισης HTTP και κωδικούς κατάστασης. 41

3.3 Βελτιστοποίηση ταχύτητας και εμπειρίας πρόσβασης στον παγκόσμιο ιστό Cookies Web cache 42

Τι είναι τα Cookies Μικρά τμήματα πληροφορίας τα οποία μπορούν να χρησιμοποιηθούν για να διατηρήσουν κατάσταση. Χρήσιμα για πιστοποίηση χρηστών, καλάθι αγορών, καταγραφή ενεργειών κατά τη διάρκεια σύνδεσης του χρήστη, εξατομίκευση εμπειρίας πρόσβασης κ.λ.π. Χρήση τους: Ο εξυπηρετητής στέλνει Set-Cookie, όπου μπορεί να ορίζει εκτός από το όνομα και την τιμή, το έως πότε θα είναι ενεργό, για ποιο σκοπό, τη χρήση σε ασφαλή σύνδεση κ.α. Παράδειγμα: Set-Cookie: HSID=AYQEVn.DKrdst; Domain=.foo.com; Path=/; Expires=Wed, 13 Jan 2021 22:23:01 GMT; HttpOnly Προσοχή: εάν συνδυαστούν με γνώσεις σχετικά με την ταυτότητα του χρήστη, μπορεί να αποτελέσουν κίνδυνο για την ανωνυμία του. Δεν είναι κώδικας, άρα δεν μπορούν να δημιουργήσουν άμεσα πρόβλημα. 43

Χρήση Cookies για παρακολούθηση κατάστασης σύνδεσης και ιστορικού Πελάτης Εξυπηρετητής (www.google.com) Cookie File Cookie Folder teipir 12 teipir 12 google 54 Usual HTTP Request Msg Usual HTTP Response Set-cookie: FG1K29E Usual HTTP Request Msg Cookie: FG1K29E Usual HTTP Response Msg Google server creates ID FG1K29E for user Cookiespecific action Access Backend Database Cookie Folder Μια εβδομάδα μετά: teipir 12 google 54 Usual HTTP Request Msg Cookie: FG1K29E Usual HTTP Response Msg Cookiespecific action 44

Web cache (χρήση προσωρινής μνήμης στον παγκόσμιο ιστό) Στόχος η ελαχιστοποίηση της μεταδιδόμενης πληροφορίας, με επαναχρησιμοποίηση προηγούμενης. Χρήση ενδιάμεσου εξυπηρετητή (web proxy) ο οποίος κρατά αντίγραφα σελίδων. Τα τερματικά στέλνουν τις αιτήσεις τους σε αυτόν. Εάν υπάρχει αντίγραφο από τα αντικείμενα που αιτούνται, τότε τα στέλνει ο proxy. Αλλιώς τα αιτείται από τον εξυπηρετητή ο οποίος τα έχει, και κρατά αντίγραφο για συγκεκριμένο χρονικό διάστημα. HTTP Request HTTP Request HTTP Response HTTP Response Πελάτης Εξυπηρετητής Proxy Πηγαίος εξυπηρετητής Πελάτης 45

Αποτελέσματα της χρήσης cache Μείωση της κίνησης στο διαδίκτυο. Ελαχιστοποίηση του χρόνου απάντησης. Αποδοτικότερη χρήση των πόρων του δικτύου. Επέκταση της τεχνικής με χρήση cache και σε τερματικά (στους web browsers). Πιθανότητα για εσφαλμένη εκτίμηση μη αλλαγής περιεχομένου (ανάγκη για καθαρισμό της cache). 46

To Conditional GET Με τη χρήση του conditional GET, ο πελάτης ζητάει από τον εξυπηρετητή να μη στείλει το αντικείμενο εάν αυτό δεν έχει ενημερωθεί μετά από το χρόνο που του υποδεικνύει. Χρήση ειδικού πεδίου στο HTTP request: If-modified-since: <date> Ο εξυπηρετητής, σε περίπτωση που δεν υπάρχει αλλαγή απαντά με : HTTP/1.0 304 Not Modified 47

Conditional GET Πελάτης Εξυπηρετητής Εάν το αιτούμενο αντικείμενο δεν έχει αλλάξει μετά από την ημερομηνία που αναφέρεται στην αίτηση Το αντικείμενο δε μεταφέρεται Εάν το αιτούμενο αντικείμενο έχει αλλάξει μετά από την ημερομηνία που αναφέρεται στην αίτηση Το αντικείμενο μεταφέρεται 48

Σύνοψη Μελετήσαμε: Τι είναι τα cookies. Την χρήση της Web cache. Το Conditional GET. 49

3.4 Από τις διευθύνσεις ΙΡ σε αναγνωρίσιμα ονόματα Domain Name System, DNS (Σύστημα Ονομάτων Τομέων ή Περιοχών) 50

Αντιστοιχία με συστήματα ταυτοποίησης ατόμων Κάθε άνθρωπος μπορεί να ταυτοποιηθεί με αρκετούς τρόπους: Αριθμός δελτίου αστυνομικής ταυτότητας, ΑΦΜ, ΑΜΚΑ Αντίστοιχα κάθε υπολογιστής μπορεί να έχει αρκετές ονομασίες στο διαδίκτυο. Όπως ο καθένας μας είναι μοναδικός, έτσι και κάθε υπολογιστής έχει μία μοναδική διεύθυνση στο διαδίκτυο. IP διεύθυνση (32 bit) χρησιμοποιείται για την δρομολόγηση των datagrams. Χρήση του DNS ώστε να γίνεται αυτή η αντιστοίχηση, μέσω ενός συστήματος κατανεμημένων βάσεων δεδομένων σε πολλούς εξυπηρετητές ονομάτων (name servers). Πρωτόκολλο του επιπέδου εφαρμογής, κατά το οποίο τα τερματικά και οι εξυπηρετητές ονομάτων επικοινωνούν για την αντιστοίχιση ονομάτων (μετάφραση/ απόδοση διευθύνσεων σε ονόματα). 51

Domain Name System: δομή και υπηρεσίες Μετάφραση από ένα όνομα (ανθρωποκεντρική προσέγγιση) σε μια διεύθυνση IP (μηχανοκεντρική). Δυνατότητα για χρήση ψευδωνύμων (aliases), οπότε έχουμε το κανονικό όνομα του συστήματος, αλλά και το ψευδώνυμο. Δυνατότητα για χρήση σε εξυπηρετητή ιστού και σε εξυπηρετητή ηλεκτρονικού ταχυδρομείου. Δυνατότητα ανακατεύθυνσης κίνησης για κατανομή του φόρτου σε πολλούς εξυπηρετητές μέσω της χρήσης αντιγράφων εξυπηρετητή, ώστε πολλές διευθύνσεις να αντιστοιχούν σε ένα όνομα. Μη κεντρικοποιημένη προσέγγιση, επιτρέπει την εύκολη κλιμάκωση, συντήρηση, κατανομή του φόρτου περιφερειακά και ασφάλεια στη λειτουργία. 52

DNS: κατανεμημένο, ιεραρχικό σύστημα Root DNSs TLD DNSs Root DNS Servers com DNS servers org DNS servers.gr DNS servers Authoritative DNSs yahoo.com DNS servers... wikipedia.org DNS servers... teipir.gr DNS servers... Ένας πελάτης ψάχνει την IP για τη διεύθυνση www.teipir.gr Ο πελάτης αναζητά στον root server να βρει τον.gr DNS server. Ο πελάτης αναζητά τον.gr DNS server για να βρει τον teipir.gr DNS server. Ο πελάτης αναζητά τον teipir.gr DNS server για να βρει την IP διεύθυνση του www.teipir.gr. 53

DNS: root εξυπηρετητές ονόματος Ο τοπικός εξυπηρετητής ονόματος όταν δεν μπορεί να αντιστοιχίσει ένα όνομα επικοινωνεί με τον root. Root εξυπηρετητής ονόματος: Επικοινωνεί με τον authoritative εξυπηρετητή ονόματος εάν δεν γνωρίζει την αντιστοίχιση ενός ονόματος. Ενημερώνεται για τις αντιστοιχίες. Επιστρέφει τις αντιστοιχίες στον τοπικό εξυπηρετητή ονόματος. c. Cogent, Herndon, VA (5 other sites) d. U Maryland College Park, MD h. ARL Aberdeen, MD j. Verisign, Dulles VA (69 other sites ) e. NASA Mt View, CA f. Internet Software C. Palo Alto, CA (and 48 other sites) 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) k. RIPE London (17 other sites) i. Netnod, Stockholm (37 other sites) m. WIDE Tokyo (5 other sites) Υπάρχουν 13 root «εξυπηρετητές ονόματος παγκοσμίως 54

Εξυπηρετητές TLD και Authoritative Εξυπηρετητές Top-Level Domain (TLD): Υπεύθυνοι για τα com, org, net, edu, και όλους τους ανωτέρου επιπέδου κρατικούς τομείς, π.χ.: uk, fr, ca, jp Παράδειγμα: Educause διατηρεί τους εξυπηρετητές για το.edu TLD Εξυπηρετητές authoritative : Παρέχουν έγκυρα ονόματα για τους εξυπηρετητές ενός οργανισμού, και είναι υπεύθυνοι για την αντιστοίχιση των ονομάτων αυτών με διευθύνσεις IP. Μπορούν να ανήκουν σε έναν οργανισμό ή σε πάροχο υπηρεσιών. 55

Τοπικός εξυπηρετητής ονόματος (Local DNS) Δεν ανήκει άμεσα στην ιεραρχία εξυπηρετητών. Κάθε ISP (κατοικία, εταιρία, πανεπιστήμιο) έχει από έναν Επίσης καλείται και «προκαθορισμένος εξυπηρετητή ονόματος». Όταν ένας host δημιουργεί μια αναζήτηση DNS, αυτή στέλνεται αρχικά στον τοπικό DNS εξυπηρετητή. Αυτός διαθέτει μια τοπική-προσωρινή μνήμη από πρόσφατες αντιστοιχίσεις/ μεταφράσεις ζευγαριών διευθύνσεων και ονομάτων. Λειτουργεί ως ενδιάμεσος (proxy), προωθώντας την αναζήτηση στην ιεραρχία. Παρέχει την τελική απάντηση. Χρησιμοποιεί πρωτόκολλο UDP και την πόρτα 53. 56

Επαναλαμβανόμενη (iterative) αναζήτηση Ο host στο cis.poly.gr θέλει την IP διεύθυνση του teipir.gr Επαναλαμβανόμενη αναζήτηση: Ο εξυπηρετητής που επικοινωνούμε στέλνει το όνομα του εξυπηρετητή που πρέπει να επικοινωνήσουμε στη συνέχεια? «Δεν γνωρίζω το όνομα αυτό, αλλά ρώτα αυτόν τον εξυπηρετητή»? Root DNS Server Local DNS Server dns.myisp.gr.gr TLD DNS Server?.org TLD DNS Server.com TLD DNS Server? Requesting Host mypc.myisp.gr teipir.gr Authoritative DNS Server dns.teipir.gr 57

Αναδρομική αναζήτηση (recursive) Αναδρομική αναζήτηση: Βάζει το βάρος της αντιστοίχισης του ονόματος στον εξυπηρετητή ονόματος με τον οποίον γίνεται η επικοινωνία Μεγάλος φόρτος στα ανώτερα επίπεδα της ιεραρχίας?? Root DNS Server Local DNS Server dns.myisp.gr.org TLD DNS Server.gr TLD DNS Server.com TLD DNS Server?? Requesting Host mypc.myisp.gr teipir.gr Authoritative DNS Server dns.teipir.gr 58

DNS: ενημέρωση, αποθήκευση εγγραφών Μόλις o εξυπηρετητής ονόματος μάθει μια αντιστοίχιση, την αποθηκεύει. Οι αποθηκευμένες εγγραφές λήγουν (και εξαφανίζονται) μετά από κάποιο χρονικό διάστημα (TTL). Οι διευθύνσεις των εξυπηρετητών TLD αποθηκεύονται τυπικά μέσα σε τοπικούς εξυπηρετητές ονόματος. Αποτέλεσμα: οι root εξυπηρετητές ονόματος να μη δέχονται συχνά επισκέψεις. Οι αποθηκευμένες εγγραφές μπορεί να μην είναι έγκυρες πλέον: Εάν ένας εξυπηρετητής στο οποίο έχει δοθεί ένα όνομα αλλάξει διεύθυνση IP, αυτή δεν θα είναι γνωστή σε όλο το Internet μέχρι να λήξουν όλοι οι μετρητές TTL οποίοι έχουν συνδεθεί με αυτή. 59

Εγγραφές DNS DNS Resource Records (DNS RR) Δομή RR : (name, value, type, ttl) type=a Name: To όνομα του εξυπηρετητή Value: H διεύθυνση IP type=ns Name: To όνομα του τομέα Value: To όνομα του authoritative εξυπηρετητή ονομάτων για τον τομέα αυτόν type=cname Name: Ένα ψευδώνυμο για κάποιο κανονικό (το πραγματικό) όνομα Value: Το κανονικό όνομα type=mx ttl = Time To Live Name: Ένα όνομα π.χ. domain Value: Το όνομα του εξυπηρετητή μηνυμάτων ηλ. ταχυδρομείου (mailserver) που σχετίζεται με αυτό το όνομα 60

Σύνοψη Μελετήσαμε: DNS: Δομή, Υπηρεσίες και Συστήματα. Εξυπηρετητές TLD και Authoritative. Επαναλαμβανόμενη και Αναδρομική Αναζήτηση. Εγγραφές DNS. 61

3.5 Δίκτυα ομότιμων κόμβων Αρχιτεκτονικές και εφαρμογές 62

Αμιγής Αρχιτεκτονική Ομότιμων Κόμβων Δεν υπάρχει κάποιος μόνιμα διαθέσιμος εξυπηρετητής. Ανεξάρτητα τερματικά συστήματα (ομότιμοι κόμβοι) τα οποία επικοινωνούν απ ευθείας μεταξύ τους. Οι ομότιμοι κόμβοι συνδέονται ανά διαστήματα κατά βούληση και μπορεί να αλλάζουν διευθύνσεις IP. Εύκολα επεκτάσιμη/κλιμακούμενη, αλλά δύσκολη στη διαχείριση αρχιτεκτονική. Παραδείγματα: Διαμοιρασμός αρχείων (BitTorrent) VoIP (Skype) 63

Διανομή αρχείων: διαφορετικές προσεγγίσεις Ζητούμενο: ελαχιστοποίηση του χρόνου διανομής αρχείου (μεγέθους F) από έναv εξυπηρετητή σε N κόμβους Παραδοχές: Το δίκτυο έχει άπειρη δυνατότητα μεταφοράς πληροφορίας H δυνατότητα για upload/download των κόμβων και του εξυπηρετητή είναι περιορισμένη. Client Server Δίκτυο με άπειρο εύρος ζώνης Client Client Μοντέλο Client-server Client 64

Διανομή αρχείων: διαφορετικές προσεγγίσεις Ζητούμενο: ελαχιστοποίηση του χρόνου διανομής αρχείου (μεγέθους F) από έναv εξυπηρετητή σε N κόμβους Παραδοχές: Το δίκτυο έχει άπειρη δυνατότητα μεταφοράς πληροφορίας H δυνατότητα για upload/download των κόμβων και του εξυπηρετητή είναι περιορισμένη. Client Επιπρόσθετα: Server Κάθε ομότιμος κόμβος συμμετέχει με τη μέγιστη δυνατότητα συνεισφοράς Δίκτυο με άπειρο εύρος ζώνης Όταν κάποιος κόμβος κατεβάσει το αρχείο συνεχίζει να συμμετέχει στη διανομή του Client Client Μοντέλο P2P Client 65

Χρόνος διανομής αρχείου: Το μοντέλο πελάτη-εξυπηρετητή Χρόνος Μετάδοσης εξυπηρετητή για αποστολή σε σειρά (upload) N αντιγράφων ενός αρχείου: Χρόνος αποστολής ενός αντιγράφου: F/u s Χρόνος αποστολής Ν αντιγράφων: NF/u s Χρόνος λήψης αρχείου dmin = Ο ρυθμός λήψης του πιο αργού πελάτη Ελάχιστος χρόνος λήψης πιο αργού πελάτη: F/dmin F u s Δίκτυο (με άπειρο εύρος ζώνης) Αυξάνει γραμμικά με το N d i u i Συνολικός χρόνος διαμοιρασμού του F σε N πελάτες D c-s > max{nf/u s,,f/d min } 66

Χρόνος διανομής αρχείου: Το μοντέλο ομότιμων κόμβων Χρόνος μετάδοσης εξυπηρετητή για αποστολή τουλάχιστον ενός αντιγράφου: F/u s Πελάτης: κάθε πελάτης πρέπει να ανακτήσει ένα αντίγραφο του αρχείου Μέγιστος χρόνος ανάκτησης ενός πελάτη: F/dmin Συνολικά πρέπει να ανακτηθούν NXF bits Μέγιστος ρυθμός upload: u s + Σu i F u s network Αυξάνουν γραμμικά με το N d i u i Χρόνος για να διαμοιραστεί το F σε N πελάτες D P2P > max{f/u s,,f/d min,,nf/(u s + Su i )} επειδή κάθε κόμβος συνεισφέρει στην ικανότητα διανομής της υπηρεσίας 67

Σύγκριση των δύο μοντέλων Έστω ρυθμός upload πελάτη = u, F/u = 1 ώρα, u s = 10u, d min u s 68

Διανομή Αρχείου σε P2P: BitTorrent Το αρχείο χωρίζεται σε τμήματα των256kb Οι κόμβοι στο torrent στέλνουν και λαμβάνουν τμήματα των αρχείων tracker: παρακολουθεί peers που συμμετέχουν σε torrent torrent: ομάδες από peers που ανταλλάσσουν τμήματα ενός αρχείου Όταν μπαίνει ένας νέος χρήστης, παίρνει την λίστα των peers από τον trackerκαι αρχίζει να μοιράζεται τμήματα του αρχείου με άλλους peers στο torrent 69

Διανομή Αρχείου σε P2P: BitTorrent Ο κάθε peer που μπαίνει σε ένα torrent: Δεν έχει κανένα τμήμα του αρχείου, αλλά θα τα συλλέξει σταδιακά από τους άλλους peers. Εγγράφεται σε έναν tracker για να αποκτήσει τη λίστα των peers και συνδέεται σε ένα υποσύνολο από γειτονικούς από αυτούς ( neighbors ). Στέλνει παράλληλα σε άλλους την ώρα που κατεβάζει. Μπορεί να αλλάξει τους peers με τους οποίους είναι συνδεδεμένος. Μόλις ολοκληρωθεί η απόκτηση ενός αρχείου, ο peer μπορεί (εγωιστικά) να φύγει ή (αλτρουιστικά) να μείνει στο torrent. 70

BitTorrent: αναζήτηση και αποστολή τμημάτων αρχείου Αναζήτηση Σε κάθε χρονική στιγμή, ο κάθε peer έχει διαφορετικά τμήματα του αρχείου Περιοδικά, κάθε κόμβος ζητά από κάθε peer την λίστα των τμημάτων που έχει στην κατοχή του Ο χρήστης ζητά τα τμήματα που του λείπουν, με προτεραιότητα στα πιο σπάνια Αποστολή(tit-for-tat) Ένας κόμβος στέλνει σε 4 peers που του στέλνουν τμήματα με το μέγιστο ρυθμό Οι υπόλοιποι δεν λαμβάνουν από την τον κόμβο κάποιο τμήμα (choking). Επαναπροσδιορισμός των 4 καλύτερων κάθε 10 secs. Κάθε 30 secs: τυχαία επιλογή κάποιου άλλου peer και έναρξη αποστολής τμημάτων Ιδανικά ο peer αυτός γίνεται optimistically unchoked. Μπορεί να γίνει ένας από τους 4 πρώτους. 71

BitTorrent: tit-for-tat Από τη στιγμή που κάποιος κόμβος γίνει optimistically unchoked, ο κόμβος που τον ξεμπλόκαρε, μπορεί να μπει και αυτός στη λίστα των 4 καλύτερων κόμβων του δεύτερου. Ο δεύτερος ανταποδίδει, και έτσι μπορεί να μπει και αυτός στη λίστα των 4 καλύτερων του πρώτου. Αυτή η ανταποδοτική λογική οδηγεί στην εύρεση των καλύτερων συνεργατών, και συνεπώς στην γρηγορότερη ανάκτηση ενός αρχείου. 72

Αμιγείς αρχιτεκτονικές δικτύων P2P Στο προηγούμενο παράδειγμα, παρατηρήσαμε τη χρήση ενός κεντρικού σημείου (tracker). Στο αμιγές P2P μοντέλο, δεν υπάρχει κάποιο κεντρικό σημείο. Οι κόμβοι οργανώνονται μόνοι τους, χρησιμοποιώντας μια κατανεμημένη λογική. Υπάρχει και η περίπτωση της χρήσης κατανεμημένων (distributed) trackers. 73

Κατανεμημένος Πίνακας Κατακερματισμού (Distributed Hash Table - DHT) DHT: κατανεμημένη βάση δεδομένων P2P, η οποία περιλαμβάνει ζευγάρια (κλειδιού, τιμής); Παραδείγματα: κλειδί: αριθμός / τιμή: ένα όνομα κλειδί: τίτλος ταινίας / τιμή: διεύθυνση IP Ύπαρξη μηχανισμού διαμοιρασμού των ζευγαριών (κλειδί, τιμή) στους peers. Ένας peer αναζητά μία τιμή στον DHT με χρήση του κλειδιού, και ο DHT επιστρέφει τις τιμές που ταιριάζουν με το κλειδί. Οι peers μπορούν επίσης να εισάγουν ζευγάρια (κλειδιού, τιμής). 74

Αντιστοίχιση κλειδιών σε peers Μετατροπή του κάθε κλειδιού σε ακέραιο. Αντιστοίχιση ενός ακεραίου με κάθε peer Τοποθέτηση του ζευγαριού (κλειδιού, τιμής) στον peer που βρίσκεται πιο κοντά στο κλειδί (π.χ. το επόμενο) Παράδειγμα: n=4 (δηλαδή έως 2 4 κόμβοι) Έστω ότι υπάρχουν οι peers: 1, 3,4,5, 8, 10, 12, 14 ; Αν κλειδί = 13, τότε ο επόμενος peer = 14 Αν κλειδί = 15, τότε ο επόμενος peer = 1 75

Κυκλικός DHT (1) 1 15 3 12 10 8 Κάθε κόμβος γνωρίζει μόνο τον γείτονα που προηγείται και έπεται. Δημιουργία υπερκείμενου δικτύου 5 4 76

Κυκλικός DHT (Ι1) Κατά μέσο όρο O(N) μηνύματα για την επίλυση μιας αναζήτησης, στην περίπτωση των N peers. 1111 0001 0011 Ποιος είναι υπεύθυνος για το κλειδί 1110? Εγώ είμαι 1110 1110 0100 1100 Προσδιορισμός κοντινότερου γείτονα 1110 1010 1110 1110 1000 1110 0101 77

Κυκλικός DHT με συντομεύσεις 15 12 10 8 1 Κάθε peer θυμάται την διεύθυνση IP του αμέσως προηγούμενου, επόμενου, και κάποιες σύντομες διαδρομές. Ελάττωση του αριθμού των μηνυμάτων. Είναι δυνατή η σχεδίαση συντομεύσεων έτσι ώστε O(log N) γείτονες να χρησιμοποιούν O(log N) μηνύματα αναζήτησης. 3 5 4 Ποιος είναι υπεύθυνος για το κλειδί 1110? 78

15 12 Μετακινήσεις των Peers 10 1 3 5 4 Οι peers έρχονται και φεύγουν Ο κάθε peer γνωρίζει τη διεύθυνση των δύο διπλανών του Ο κάθε peer ελέγχει περιοδικά αν οι γειτονικοί του είναι παρόντες. Εάν ο αμέσως επόμενος peer φύγει, επιλέγεται ο επόμενος του ως άμεσος γείτονας. 8 Παράδειγμα: ξαφνικά φεύγει ο peer 5 Ο peer 4 αντιλαμβάνεται την αναχώρηση του peer 5 και κάνει τον 8 άμεσο (πρώτο) γείτονα του. Ζητά από τον 8 τον δικό του άμεσο γείτονα τον οποίο και κρατάει στη λίστα σαν υποψήφιο επόμενο γείτονα, αν φύγει ο 8. 79

Σύνοψη Μελετήσαμε: Παραδείγματα διανομής αρχείου και χρόνου αναμονής σε κάθε παράδειγμα/ αρχιτεκτονική. Σύγκριση των 2 μοντέλων. BitTorrent Κατανεμημένους Πίνακες Κατακερματισμού Παραδείγματα περιπτώσεων. 80

3.6 Μεταφορά αρχείων και μηνυμάτων με χρήση των πρωτοκόλλων του διαδικτύου FTP, SMTP, POP, IMAP 81

Το πρωτόκολλο μεταφοράς αρχείων (FTP:File Transfer Protocol) Διεπαφή χρήστη TCP σύνδεση ελέγχου θύρα 21 χρήστης στο τερματικό σύστημα πελάτης TCP σύνδεση δεδομένων θύρα 20 εξυπηρετητής Χρησιμοποιείται για τη μεταφορά αρχείου προς/από απομακρυσμένο τερματικό σύστημα Ακολουθεί το μοντέλο πελάτη/εξυπηρετητή, όπου: ο πελάτης ξεκινά τη μεταφορά (προς/από τον εξυπηρετητή) ο εξυπηρετητής ικανοποιεί το αίτημα FTP: RFC 959 Πόρτα 21 για έλεγχο, πόρτα 20 για δεδομένα 82

FTP: ξεχωριστές συνδέσεις ελέγχου και δεδομένων Ο πελάτης συνδέεται με τον εξυπηρετητή στη θύρα 21, μέσω της χρήσης του πρωτοκόλλου TCP. Ακολουθεί διαδικασίας εξουσιοδότησης. Ο πελάτης περιηγείται στον απομακρυσμένο κατάλογο στέλνοντας εντολές πάνω από τη σύνδεση ελέγχου. Όταν ο εξυπηρετητής λαμβάνει εντολή μεταφοράς αρχείου, ανοίγει 2 η TCP σύνδεση (για το αρχείο) προς τον πελάτη. Μετά τη μεταφορά ενός αρχείου, ο εξυπηρετητής κλείνει τη σύνδεση δεδομένων. Ο FTP εξυπηρετητής διατηρεί την κατάσταση (stateful): (τρέχων κατάλογος, προγενέστερη εξουσιοδότηση πελάτη). 83

FTP: εντολές, αποκρίσεις Αποστολή ως κείμενο ASCII πάνω από το κανάλι ελέγχου, και απαντήσεις μέσω κωδικού και κειμένου Παραδείγματα εντολών: USER: όνομα χρήστη PASS: κωδικός εισόδου LIST: λίστα αρχείων του παρόντος φακέλου RETR όνομα αρχείου : εντολή ανάκτησης αρχείου STOR όνομα αρχείου: εντολή αποθήκευσης αρχείου στον εξυπηρετητή Κωδικοί επιστροφής και συνοδευτικό κείμενο 125 Data connection already open; transfer starting. 226 Closing data connection. Requested file action successful (for example, file transfer or file abort). 331 User name okay, need password. 426 Connection closed; transfer aborted. 84

FTP: user interface Ο χρήστης δίνει εντολές με πιο κατανοητό τρόπο Παραδείγματα εντολών: get αντί για retr, put, delete, mget, mput, open, close ls, mkdir 85

Ηλεκτρονικό Ταχυδρομείο (Electronic Mail) Στα τερματικά των χρηστών τρέχουν ειδικά προγράμματα (Πράκτορες χρηστών). Οι εξυπηρετητές ταχυδρομείου υλοποιούν ένα απλό πρωτόκολλο μεταφοράς ηλεκτρονικού ταχυδρομείου (Simple Mail Transfer Protocol) : SMTP. Οι πράκτορες χρηστών (π.χ., Outlook, Mozilla Thunderbird, iphone mail client) είναι υπεύθυνοι για τη σύνθεση και αποστολή στον εξυπηρετητή των μηνυμάτων ηλεκτρονικού ταχυδρομείου. Είναι όμως υπεύθυνοι και για την ανάγνωση (αλλά αυτό γίνεται με άλλο πρωτόκολλο). Τα εξερχόμενα και εισερχόμενα μηνύματα αποθηκεύονται στον εξυπηρετητή. SMTP SMTP SMTP SMTP SMTP SMTP SMTP 86

Εξυπηρετητές ηλεκτρονικού ταχυδρομείου Μailbox: περιλαμβάνει εισερχόμενα μηνύματα για το χρήστη. Ουρά εξερχόμενων μηνυμάτων: μηνύματα που περιμένουν να σταλούν. SMTP πρωτόκολλο μεταξύ εξυπηρετητών ταχυδρομείου για να στείλουν μηνύματα ηλεκτρονικού ταχυδρομείου (email). Λειτουργία εξυπηρετητών και ως πελάτες για την αποστολή μηνυμάτων σε άλλο εξυπηρετητή. 87

SMTP [RFC 2821] Χρησιμοποιεί το TCP για την αξιόπιστη μεταφορά ηλεκτρονικού μηνύματος από τον πελάτη στον εξυπηρετητή, μέσω της θύρας 25. Άμεση μεταφορά: ο εξυπηρετητής αποστολής στέλνει προς τον εξυπηρετητή λήψης. Τρεις φάσεις μεταφοράς: χειραψία (greeting) μεταφορά του μηνύματος τερματισμός Αλληλεπίδραση εντολής/απόκρισης: εντολές: ASCII text απόκριση: status code and phrase Τα μηνύματα πρέπει να είναι σε κώδικα ASCII των 7-bit. 88

Σενάριο: Η user1 στέλνει μήνυμα στον user2 1) Η user1 συνθέτει ένα μήνυμα προς τον user2@user2mailserver.gr χρησιμοποιώντας το πρόγραμμα (πράκτορα) ηλ. ταχυδρομείου της. 2) Το πρόγραμμα ηλ. στέλνει μήνυμα πάνω από SMTP προς τον αντίστοιχο εξυπηρετητή ταχυδρομείου, και αυτό τοποθετείται σε μια ουρά. 3) O εξυπηρετητής SMTP της user1, στέλνει το μήνυμα στον εξυπηρετητή ταχυδρομείου του user 2. 4) Ο εξυπηρετητής ταχυδρομείου του user 2 τοποθετεί το μήνυμα στο mailbox του user 2. 5) Ο user 2 καλεί τον πράκτορά του για να διαβάσει το μήνυμα. 6) O πράκτορας του user2 ανακτά το μήνυμα από τον εξυπηρετητή. 1 2 3 6 5 4 89

Δείγμα αλληλεπίδρασης SMTP χειραψία (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 sending C: QUIT S: 221 hamburger.edu closing connection 90

SMTP To SMTP χρησιμοποιεί παραμένουσες συνδέσεις. Το SMTP χρειάζεται να είναι το μήνυμα (κεφαλίδα & σώμα) σε κώδικα ASCII των 7-bit. Ο εξυπηρετητής SMTP χρησιμοποιεί CRLF.CRLF για να καθορίσει το τέλος του μηνύματος. Σύγκριση με το HTTP: HTTP: πρωτόκολλο έλξης (pull) SMTP: πρωτόκολλο ώθησης (push) Και τα δύο διαθέτουν αλληλεπίδραση ASCII εντολής/απόκρισης, κωδικούς κατάστασης. HTTP: κάθε αντικείμενο ενθυλακώνεται στο δικό του μήνυμα απόκρισης. SMTP: πολλαπλά αντικείμενα στέλνονται σε πολλά μηνύματα (multipart). 91

Πρωτόκολλα πρόσβασης ηλ. ταχυδρομείου SMTP: αποστολή/αποθήκευση στον εξυπηρετητή του παραλήπτη. Πρωτόκολλα πρόσβασης ηλεκτρονικού ταχυδρομείου: ανάκτηση από τον εξυπηρετητή. POP: Post Office Protocol [RFC 1939] εξουσιοδότηση (πράκτορας<-->εξυπηρετητής) και download IMAP: Internet Mail Access Protocol[RFC 1730] Περισσότερες δυνατότητες (πιο πολύπλοκο) Διαχείριση αποθηκευμένων μηνυμάτων στον εξυπηρετητή HTTP: gmail, Hotmail, Yahoo! Mail, κλπ. 92

Πρωτόκολλο POP3 Φάση εξουσιοδότησης Εντολές πελάτη/χρήστη: user: δήλωση ονόματος χρήστη pass: κωδικός Αποκρίσεις εξυπηρετητή: +OK -ERR Φάση συναλλαγής list: λίστα αριθμών μηνυμάτων retr: ανακτά το μήνυμα από τον αριθμό dele: διαγραφή quit S: +OK POP3 server ready C: user username S: +OK C: pass password S: +OK user connected C: list S: 1 498 S: 2 912 S:. C: retr 1 S: < message 1 contents> S:. C: dele 1 C: retr 2 S: <message 1 contents> S:. C: dele 2 C: quit S: +OK POP3 server disconnect 93

POP3 και IMAP POP3 Το POP3 είναι α-καταστατικό κατά τη διάρκεια των συνόδων Ελαφρύ και απλό Με τη μέθοδο download and delete, ο χρήστης δεν μπορεί να ξαναδιαβάσει e-mails αν αλλάξει πελάτη Με τη μέθοδο Downloadand-keep μπορούμε να έχουμε αντίγραφα μηνυμάτων σε διαφορετικούς πελάτες IMAP Πιο βαρύ και σύνθετο Κρατά όλα τα μηνύματα στον εξυπηρετητή Επιτρέπει στο χρήστη να οργανώσει τα μηνύματα σε φακέλους Διατηρεί την κατάσταση του χρήστη κατά τη διάρκεια των συνόδων 94

Σύνοψη Μελετήσαμε: Το πρωτόκολλο FTP. Τα πρωτόκολλα για την αποστολή και λήψη email: SMTP POP3 IMAP 95

Σε αυτή την ενότητα μιλήσαμε για: 3.1 Υπηρεσίες και εφαρμογές στο δίκτυο. 3.2 Διαδίκτυο και ανάκτηση αντικειμένων πάνω από αυτό (Το πρωτόκολλο HTTP). 3.3 Βελτιστοποίηση ταχύτητας και εμπειρίας πρόσβασης στον παγκόσμιο ιστό (Cookies Web cache). 3.4 Από τις διευθύνσεις ΙΡ σε αναγνωρίσιμα ονόματα (Domain Name System, DNS ). 3.5 Δίκτυα ομότιμων κόμβων (Αρχιτεκτονικές και εφαρμογές). 3.6 Μεταφορά αρχείων και μηνυμάτων με χρήση των πρωτοκόλλων του διαδικτύου (FTP, SMTP, POP, IMAP). 96

Δίκτυα Υπολογιστών ΕΛΛΗΝΙΚΗ ΔΗΜΟΚΡΑΤΙΑ Ανώτατο Εκπαιδευτικό Ίδρυμα Πειραιά Τεχνολογικού Τομέα Ενότητα 3: Εφαρμογές, υπηρεσίες και παγκόσμιος ιστός Δρ. Χαράλαμπος Ζ. Πατρικάκης Τμήμα Ηλεκτρονικών Μηχανικών Τ.Ε