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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Network Address Translation (NAT)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Δίκτυα Επικοινωνίας Υπολογιστών Ενότητα 2: Εισαγωγή. Μιχαήλ Λογοθέτης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

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

Εισαγωγή στο διαδίκτυο

Δίκτυα Επικοινωνίας Υπολογιστών Ενότητα 3: Εισαγωγή. Μιχαήλ Λογοθέτης Πολυτεχνική Σχολή Τμήμα Ηλεκτρολόγων Μηχανικών και Τεχνολογίας Υπολογιστών

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

Δίκτυα Η/Υ στην Επιχείρηση

ΕΠΛ 003: ΕΠΙΣΤΗΜΗ ΤΗΣ ΠΛΗΡΟΦΟΡΙΚΗΣ ΚΑΙ ΠΛΗΡΟΦΟΡΙΚΑ ΣΥΣΤΗΜΑΤΑ

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

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

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

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

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

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

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

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

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

Δίκτυα Υπολογιστών Ενότητα 7: Internet Control Message Protocol - ICMP

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

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

Ethernet Ethernet ΙΕΕΕ CSMA/CD

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

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

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

ΕΠΛ 012. Δίκτυα Τπολογιστών & Διαδίκτυο

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

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

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

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

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

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

Επίπεδο Εφαρμογής. 2.6 Εφαρμογές P2P 2.7 Προγραμματισμός socket με TCP 2.8 Προγραμματισμός socket με UDP

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

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

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

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

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

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

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

Transcript:

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

Δίκτυα Επικοινωνιών Ι Τμήμα Πληροφορικής και Τηλεπικοινωνιών Εθνικό & Καποδιστριακό Πανεπιστήμιο Αθηνών Συνιστώμενο Βιβλίο: Computer Networking: A Top-Down Approach, by Kurose & Ross, Addison-Wesley, 7 η Έκδοση Ελληνική Μετάφραση: Εκδόσεις : Μ. Γκιούρδας Θεματικές Ενότητες (ΘΕ) μαθήματος: ΘΕ1: Εισαγωγή (Κεφ. 1 του βιβλίου) ΘΕ2: Επίπεδο Εφαρμογής (Κεφ. 2 του βιβλίου) ΘΕ3: Επίπεδο Μεταφοράς (Κεφ. 3 του βιβλίου) ΘΕ4: Επίπεδο Δικτύου Επίπεδο Δεδομένων (Κεφ. 4 του βιβλίου) Επίπεδο Ελέγχου (Κεφ. 5 του βιβλίου) Οι περισσότερες από τις διαφάνειες αυτής της ενότητας αποτελούν προσαρμογή και απόδοση στα ελληνικά των διαφανειών που συνοδεύουν το βιβλίο Computer Networking : A Top-Down Approach, J.F Kurose and K.W. Ross, 7/E, Addison-Wesley. All material copyright 1996-2012 J.F Kurose and K.W. Ross, All Rights Reserved Προσαρμογή και επιμέλεια της απόδοσης των πρωτότυπων διαφανειών στα ελληνικά : Λάζαρος Μεράκος, Νάσος Βάιος

Κεφάλαιο 2: Επίπεδο 2.1 Αρχές δικτυακών εφαρμογών 2.2 Web και HTTP 2.3 Ηλεκτρονικό ταχυδρομείο SMTP, POP3, IMAP 2.4 DNS 2.5 Εφαρμογές P2P 2.6 Βίντεο Συνεχούς Ροής και Δίκτυα Διανομής Περιεχομένου 2.7 Προγραμματισμός Socket 3

Κεφάλαιο 2: Επίπεδο Οι στόχοι μας: Εννοιολογικά, σχεδιαστικά θέματα πρωτοκόλλων δικτυακών εφαρμογών Μοντέλα υπηρεσιών επιπέδου μεταφοράς Μοντέλο πελάτη εξυπηρετητή (clientserver) Μοντέλο ομότιμων (peer-to-peer) Μαθαίνουμε για τα πρωτόκολλα εξετάζοντας δημοφιλή πρωτόκολλα επιπέδου HTTP SMTP / POP3 / IMAP DNS 4

Μερικές δικτυακές εφαρμογές Ηλεκτρονικό ταχυδρομείο (e-mail) Ιστός (web) Μηνύματα κειμένου (instant messaging) Απομακρυσμένη σύνδεση Κοινή χρήση αρχείων μεταξύ ομότιμων(p2p file sharing) Δικτυακά παιχνίδια πολλών χρηστών (multi-user network games) Ροή αποθηκευμένου βίντεο (YouTube, Hulu, Netflix) IP τηλεφωνία (voice over IP, π.χ. Skype) Τηλεσυνδιάσκεψη πραγματικού χρόνου Κοινωνική δικτύωση Αναζήτηση... 5

Δημιουργώντας μια δικτυακή εφαρμογή Ανάπτυξη προγραμμάτων που τρέχουν σε (διαφορετικά) τερματικά συστήματα επικοινωνούν πάνω από το δίκτυο π.χ., το λογισμικό του εξυπηρέτη web επικοινωνεί με το λογισμικό του browser Δεν υπάρχει ανάγκη να γραφτεί λογισμικό για συσκευές του πυρήνα του δικτύου Οι συσκευές του πυρήνα του δικτύου δεν τρέχουν εφαρμογές χρήστη Το ότι οι εφαρμογές είναι στα τερματικά συστήματα επιτρέπει την ταχεία ανάπτυξη, διάδοσή τους application transport network data link physical application transport network data link physical application transport network data link physical 6

Κεφάλαιο 2: Επίπεδο 2.1 Αρχές δικτυακών εφαρμογών 2.2 Web και HTTP 2.3 Ηλεκτρονικό ταχυδρομείο SMTP, POP3, IMAP 2.4 DNS 2.5 Εφαρμογές P2P 2.6 Βίντεο Συνεχούς Ροής και Δίκτυα Διανομής Περιεχομένου 2.7 Προγραμματισμός Socket 7

Αρχιτεκτονικές εφαρμογών Πελάτη-εξυπηρέτη (Client-server) Μεταξύ ομότιμων (Peer-to-peer (P2P)) 8

Αρχιτεκτονική πελάτη-εξυπηρέτη client/server Εξυπηρέτης (server): Διαρκώς ενεργός υπολογιστής Μόνιμη διεύθυνση IP Κέντρα δεδομένων (data centers) για κλιμάκωση Πελάτες (clients): Επικοινωνούν με τον εξυπηρέτη Ενδεχομένως να έχουν διακοπτόμενη σύνδεση Ενδεχομένως έχουν δυναμική διεύθυνση IP Δεν επικοινωνούν απευθείας μεταξύ τους 9

Αρχιτεκτονική μεταξύ ομότιμων Δεν υπάρχει διαρκώς ενεργός εξυπηρέτης Τυχαία τερματικά συστήματα επικοινωνούν απευθείας μεταξύ τους Ομότιμοι ζητούν υπηρεσίες από άλλους ομότιμους, παρέχουν υπηρεσίες με τη σειρά τους σε άλλους ομότιμους Αυτοεπεκτασιμότητα νέοι ομότιμοι φέρνουν ικανότητα παροχής και ζήτησης νέων υπηρεσιών Διακοπτόμενη σύνδεση των ομότιμων και αλλαγή των διευθύνσεων IP Πολύπλοκη διαχείριση peer-peer 10

Διεργασίες που επικοινωνούν Διεργασία (process): πρόγραμμα που τρέχει σε ένα υπολογιστή Στον ίδιο υπολογιστή, δύο διεργασίες επικοινωνούν χρησιμοποιώντας διαδιεργασιακή επικοινωνία (ορίζεται από το λειτουργικό). Οι διεργασίες σε διαφορετικούς υπολογιστές επικοινωνούν ανταλλάσσοντας μηνύματα clients, servers Διεργασία πελάτης: διεργασία που εκκινεί την επικοινωνία Διεργασία εξυπηρέτης: διεργασία που αναμένει να επικοινωνήσουν μαζί της Σημείωση: εφαρμογές με αρχιτεκτονικές P2P έχουν διεργασίες πελάτες και διεργασίες εξυπηρέτες 11

Sockets Socket / API (Application Programmer s Interface) : διεπαφή ανάμεσα στην εφαρμογή και το δίκτυο (επίπεδο μεταφοράς) της διεργασίας Η διεργασία στέλνει/λαμβάνει μηνύματα στο/από το socket της socket ανάλογο πόρτας Η διεργασία αποστολέας στέλνει μήνυμα έξω από την πόρτα Η διεργασία αποστολέας βασίζεται στην υποδομή μεταφοράς στην άλλη πλευρά της πόρτας για να παραδώσει το μήνυμα στο socket της διεργασίας παραλήπτη application process socket application process controlled by app developer transport transport network link Internet network link controlled by OS physical physical 12

Διευθυνσιοδότηση διεργασιών Για να λαμβάνει μία διεργασία μηνύματα πρέπει να έχει ένα αναγνωριστικό (identifier) Κάθε υπολογιστής έχει μία μοναδική 32-bit διεύθυνση IP Ε: Αρκεί η ΙΡ διεύθυνση του υπολογιστή που τρέχει η διεργασία για την αναγνώριση της διεργασίας; A: Όχι, πολλές διεργασίες μπορεί να τρέχουν στον ίδιο υπολογιστή Το αναγνωριστικό περιλαμβάνει τόσο τη διεύθυνση IP όσο και τον αριθμό θύρας που σχετίζεται με τη διεργασία στον υπολογιστή Παραδείγματα αριθμών θύρας: Εξυπηρέτης HTTP: 80 Εξυπηρέτης Mail: 25 Για να σταλεί μήνυμα HTTP στον εξυπηρέτη web gaia.cs.umass.edu: Διεύθυνση IP: 128.119.245.12 Αριθμός θύρας: 80 Περισσότερα σε λίγο 13

Ένα πρωτόκολλο επιπέδου ορίζει Τα είδη των μηνυμάτων που ανταλλάσσονται, π.χ. αίτηση, απόκριση Σύνταξη μηνύματος: τι πεδία στα μηνύματα & πώς αυτά διαχωρίζονται Σημασιολογία των πεδίων σημασία της πληροφορίας των πεδίων Κανόνες για το πότε και πώς οι διεργασίες στέλνουν και απαντούν σε μηνύματα Ανοιχτά πρωτόκολλα: ορίζονται στα RFCs επιτρέπουν τη διαλειτουργικότητα π.χ. HTTP, SMTP Ιδιοταγή πρωτόκολλα: π.χ. Skype 14

Τι υπηρεσίες μεταφοράς απαιτούν οι εφαρμογές; Ακεραιότητα δεδομένων κάποιες εφαρμογές (π.χ. ήχου), ανέχονται κάποιες απώλειες άλλες εφαρμογές (π.χ. μεταφορά αρχείου, διαδικτυακές συναλλαγές) απαιτούν 100% αξιόπιστη μεταφορά δεδομένων Χρονισμός κάποιες εφαρμογές (π.χ. τηλεφωνία Διαδικτύου, διαδραστικά παιχνίδια) απαιτούν χαμηλή καθυστέρηση για να είναι «αποτελεσματικές» Ρυθμαπόδοση (Throughput) Κάποιες εφαρμογές (π.χ., multimedia) απαιτούν κάποια ελάχιστη ρυθμαπόδοση για να είναι «αποτελεσματικές» Άλλες εφαρμογές («ελαστικές») «βολεύονται» με όση ρυθμαπόδοση πάρουν Ασφάλεια Κρυπτογράφηση, ακεραιότητα δεδομένων 15

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

Υπηρεσίες των πρωτοκόλλων μεταφοράς Υπηρεσία του TCP: συνδεσιστρεφής (connectionoriented): απαιτείται αρχικοποίηση μεταξύ διεργασιών πελάτη και εξυπηρέτη αξιόπιστη μεταφορά δεδομένων μεταξύ διεργασίας αποστολής και λήψης έλεγχος ροής: ο αποστολέας δεν υπερφορτώνει τον παραλήπτη έλεγχος συμφόρησης: επιβράδυνση αποστολέα όταν το δίκτυο είναι υπερφορτωμένο δεν παρέχει: συγχρονισμό, εγγυήσεις ως προς ελάχιστη ρυθμαπόδοση, ασφάλεια Υπηρεσία του UDP: αναξιόπιστη μεταφορά δεδομένων μεταξύ διεργασίας αποστολής και λήψης δεν παρέχει: αρχικοποίηση σύνδεσης, αξιοπιστία, έλεγχο ροής, έλεγχο συμφόρησης, εγγύηση ως προς τον χρόνο ή τη ρυθμαπόδοση Ε: Γιατί υπάρχει το UDP; 17

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

Κεφάλαιο 2: Επίπεδο 2.1 Αρχές δικτυακών εφαρμογών 2.2 Web και HTTP 2.3 Ηλεκτρονικό ταχυδρομείο SMTP, POP3, IMAP 2.4 DNS 2.5 Εφαρμογές P2P 2.6 Βίντεο Συνεχούς Ροής και Δίκτυα Διανομής Περιεχομένου 2.7 Προγραμματισμός Socket 19

Web και HTTP Μία ιστοσελίδα αποτελείται από αντικείμενα (objects) Το αντικείμενο μπορεί να είναι αρχείο HTML, εικόνα JPEG, Java applet, αρχείο ήχου,... Η σελίδα Web αποτελείται από ένα βασικό αρχείο HTML που περιλαμβάνει διάφορα αντικείμενα στα οποία γίνεται αναφορά Κάθε αντικείμενο διευθυνσιοδοτείται με ένα URL www.someschool.edu/somedept/pic.gif όνομα υπολογιστή όνομα διαδρομής 20

Επισκόπηση του HTTP HTTP: HyperText Transfer Protocol (Πρωτόκολλο Μεταφοράς Υπερκειμένου) Πρωτόκολλο επιπέδου του Web Μοντέλο πελάτη/εξυπηρέτη πελάτης: browser που ζητά, λαμβάνει, (χρησιμοποιώντας το HTTP πρωτόκολλο) και παρουσιάζει αντικείμενα του Web εξυπηρέτης: Web server στέλνει (χρησιμοποιώντας το HTTP πρωτόκολλο) αντικείμενα ως απόκριση σε αιτήσεις PC running Firefox browser iphone running Safari browser Server running Apache Web server 21

Eπισκόπηση του HTTP (συνέχεια) Χρησιμοποιεί TCP: ο πελάτης ξεκινά σύνδεση TCP με τον εξυπηρέτη (δημιουργεί socket), θύρα 80 ο εξυπηρέτης αποδέχεται τη σύνδεση TCP από τον πελάτη ανταλλάσσονται μηνύματα HTTP (μηνύματα πρωτοκόλλου επιπέδου ) μεταξύ browser (πελάτης HTTP) και Web server (εξυπηρέτης HTTP) κλείνει η σύνδεση TCP Το HTTP είναι ακαταστατικό (stateless) ο εξυπηρέτης δε διατηρεί πληροφορία σχετικά με προηγούμενες αιτήσεις του πελάτη παρενθετικά Τα πρωτόκολλα που διατηρούν στο περιθώριο την κατάσταση (state) είναι πολύπλοκα πρέπει να διατηρείται προηγούμενη ιστορία (κατάσταση) αν οεξυπηρέτης/πελάτης καταρρεύσει, οι απόψεις τους για την κατάσταση μπορεί να μην είναι συνεπείς, και να πρέπει να συγκεραστούν 22

Συνδέσεις HTTP Mη παραμένον HTTP (Non-persistent HTTP) Παραμένον HTTP (Persistent HTTP) Στέλνετaι τo πολύ ένα αντικείμενο πάνω από μία σύνδεση TCP η σύνδεση μετά κλείνει η λήψη πολλαπλών αντικειμένων απαιτεί πολλαπλές συνδέσεις Πολλαπλά αντικείμενα μπορεί να σταλούν πάνω από την ίδια σύνδεση TCP μεταξύ πελάτη και εξυπηρέτη 23

Μη παραμένον HTTP Υποθέστε ότι ο χρήστης εισάγει το URL www.someschool.edu/somedepartment/home.index (περιέχει κείμενο, αναφορές σε 10 εικόνες jpeg) χρόνος 1a. Ο πελάτης HTTP ξεκινά σύνδεση TCP προς τη διεργασία του εξυπηρέτη HTTP στο www.someschool.edu στη θύρα 80 2. Ο HTTP client στέλνει HTTP μήνυμα αίτησης (request message) (που περιέχει το URL) στη socket της σύνδεσης TCP. Το μήνυμα υποδεικνύει ότι ο client θέλει το αντικείμενο somedepartment/home.index 1b. Ο εξυπηρέτης HTTP στον υπολογιστή www.someschool.edu περιμένει σύνδεση TCP στη θύρα 80, αποδέχεται τη σύνδεση, ειδοποιεί τον πελάτη 3. Ο εξυπηρέτης HTTP λαμβάνει το μήνυμα αίτησης, σχηματίζει μήνυμα απόκρισης (response message) που περιέχει το αντικείμενο που ζητήθηκε και στέλνει το μήνυμα στη socket του 24

Μη παραμένον HTTP (συνέχεια) 4. Ο εξυπηρέτης HTTP κλείνει τη σύνδεση TCP χρόνος 5. Ο πελάτης HTTP λαμβάνει το μήνυμα απόκρισης που περιέχει το html αρχείο, απεικονίζει την html. Επεξεργαζόμενος το html αρχείο, βρίσκει 10 αναφερόμενα αντικείμενα jpeg 6. Τα βήματα 1-5 επαναλαμβάνονται για καθένα από τα 10 αντικείμενα jpeg 25

Μη παραμένον HTTP: χρόνος απόκρισης RΤT (round trip time): ο χρόνος που απαιτείται για ένα μικρό πακέτο να ταξιδέψει από τον πελάτη στον εξυπηρέτη και νa επιστρέψει πίσω Χρόνος απόκρισης: ένα RTT για την έναρξη της σύνδεσης TCP ένα RTT για την αίτηση HTTP και επιστροφή των πρώτων bytes της απόκρισης HTTP χρόνος μετάδοσης αρχείου χρόνος απόκρισης = 2RTT + χρόνος μετάδοσης αρχείου initiate TCP connection RTT request file RTT file received time time time to transmit file 26

Παραμένον HTTP Θέματα με το μη παραμένον HTTP: απαιτεί 2 RTT ανά αντικείμενο το λειτουργικό επιβαρύνεται για κάθε σύνδεση TCP οι browsers ανοίγουν συχνά παράλληλες συνδέσεις TCP για να φέρουν αντικείμενα που αναφέρονται Παραμένον HTTP ο εξυπηρέτης αφήνει τη σύνδεση ανοιχτή αφού στείλει την απόκριση τα επόμενα HTTP μηνύματα μεταξύ του ίδιου πελάτη / εξυπηρέτη στέλνονται μέσω της ανοιχτής σύνδεσης ο πελάτης στέλνει αιτήσεις μόλις συναντήσει αναφερόμενο αντικείμενο ένα RTT για όλα τα αναφερόμενα αντικείμενα (pipelining) 27

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

Μήνυμα απόκρισης HTTP δύο είδη HTTP μηνυμάτων : αίτηση (request), απόκριση (response) μήνυμα HTTP απόκρισης : ASCII (μορφή αναγνώσιμη από τον άνθρωπο) γραμμή κατάστασης (status line) γραμμές κεφαλίδας (header lines) κυριώς περιεχόμενο (body) HTTP/1.1 200 OK Connection: close Date: Tue, 09 Aug 2011 15:44:04 GMT Server: Apache/2.2.3 (CentOS) Last-Modified: Tue, 09 Aug 2011 15:11:03 Content-Length: 6821 Content-Type: text/html [data, data, data.] 29

Διατηρώντας την κατάσταση (Cookies) client server ebay 8734 αρχείο cookie ebay 8734 amazon 1678 Αίτηση http Απόκριση http set-cookie: 1678 Αίτηση http cookie: 1678 Απόκριση http Amazon server Δημιουργία ID 1678 για χρήστη εγγραφήβάση δεδομένων Ενέργεια βάσει cookieπρόσβαση Μετά από 1 εβδομάδα: ebay 8734 amazon 1678 Αίτηση http cookie: 1678 Απόκριση http πρόσβαση Ενέργεια βάσει cookie- 30

Web caches (proxy server) Σκοπός: να εξυπηρετούνται κάποιες αιτήσεις πελατών χωρίς εμπλοκή του εξυπηρέτη προέλευσης Ο χρήστης παραμετροποιεί τον browser: πρόσβαση στο Web μέσω της cache Ο browser στέλνει όλες τις αιτήσεις HTTP στην cache Το αντικείμενο στην cache: η cache επιστρέφει το αντικείμενο client Proxy server origin server Διαφορετικά η cache ζητά το αντικείμενο από τον εξυπηρέτη προέλευσης, μετά επιστρέφει το αντικείμενο στον πελάτη client origin server 31

Περισσότερα για το Web caching Η cache δρα τόσο ως πελάτης όσο και ως εξυπηρέτης εξυπηρέτης για τον αρχικό αιτούντα πελάτη πελάτης για τον εξυπηρέτη προέλευσης Τυπικά η cache εγκαθίσταται από τον ISP (πανεπιστήμιο, εταιρία, περιφερειακός ISP) Γιατί Web caching ; Μείωση του χρόνου απόκρισης των αιτήσεων πελατών Μείωση της κίνησης στη ζεύξη πρόσβασης ενός οργανισμού Στο Διαδίκτυο, επιτρέπει σε «φτωχούς» πάροχους περιεχομένου να παραδίδουν αποτελεσματικά το περιεχόμενό τους (το ίδιο επιτυγχάνει και η P2P κοινή χρήση αρχείων) 32

Παράδειγμα Caching Υποθέσεις Μέσο μέγεθος αντικειμένου = 100 Kbits Μέσος ρυθμός αιτήσεων από τους browsers προς τους εξυπηρέτες προέλευσης = 15/sec Μέσος ρυθμός δεδομένων προς τους browsers: 1,50 Mbps RTT από το δρομολογητή του ιδρύματος προς κάθε εξυπηρέτη προέλευσης και πίσω στο δρομολογητή = 2 sec Ρυθμός ζεύξης πρόσβασης: 1,54 Mbps Συνέπειες Αξιοποίηση του LAN = 0,15% Αξιοποίηση της ζεύξης πρόσβασης = 99% Συνολική καθυστέρηση = καθυστέρηση Διαδικτύου + καθυστέρηση πρόσβασης + καθυστέρηση LAN = 2 sec + minutes + μseconds πρόβλημα! institutional network public Internet 1,54 Mbps access link origin servers 1 Gbps LAN 33

Παράδειγμα Caching: ταχύτερη ζεύξη πρόσβασης Υποθέσεις Μέσο μέγεθος αντικειμένου = 100 Kbits Μέσος ρυθμός αιτήσεων από τους browsers προς τους εξυπηρέτες προέλευσης = 15/sec Μέσος ρυθμός δεδομένων προς τους browsers: 1,50 Mbps RTT από το δρομολογητή του ιδρύματος προς κάθε εξυπηρέτη προέλευσης και πίσω στο δρομολογητή = 2 sec Ρυθμός ζεύξης πρόσβασης: 1,54 Mbps Συνέπειες 15,4 Mbps Αξιοποίηση του LAN = 0,15% Αξιοποίηση της ζεύξης πρόσβασης = 99% Συνολική καθυστέρηση = καθυστέρηση Διαδικτύου + καθυστέρηση πρόσβασης + 9,9% καθυστέρηση LAN = 2 sec + minutes + μsecs institutional network public Internet 1,54 Mbps access link origin servers 1 Gbps LAN 15,4 Mbps Κόστος: αυξημένη ταχύτητα ζεύξης πρόσβασης (ακριβό!) msecs 34

Παράδειγμα Caching: εγκατάσταση τοπικής cache Υποθέσεις Μέσο μέγεθος αντικειμένου = 100 Kbits Μέσος ρυθμός αιτήσεων από τους browsers προς τους εξυπηρέτες προέλευσης = 15/sec Μέσος ρυθμός δεδομένων προς τους browsers: 1,50 Mbps RTT από το δρομολογητή του ιδρύματος προς κάθε εξυπηρέτη προέλευσης και πίσω στο δρομολογητή = 2 sec Ρυθμός ζεύξης πρόσβασης: 1,54 Mbps Συνέπειες Αξιοποίηση του LAN = 0,15% Αξιοποίηση της ζεύξης πρόσβασης = ; Συνολική καθυστέρηση = ; Κόστος: web cache (φθηνό!) institutional network public Internet πώς υπολογίζεται η αξιοποίηση της ζεύξης και η καθυστέρηση; 1,54 Mbps access link origin servers 1 Gbps LAN local web cache 35

Παράδειγμα Caching: εγκατάσταση τοπικής cache (συνέχεια) Υπολογισμός αξιοποίησης της ζεύξης πρόσβασης και καθυστέρησης με cache: έστω ότι το ποσοστό επιτυχίας της cache είναι 0.4 40% των αιτήσεων εξυπηρετούνται στην cache 60% των αιτήσεων εξυπηρετούνται στην προέλευση αξιοποίηση ζεύξης πρόσβασης: 60% των αιτήσεων χρησιμοποιούν τη ζεύξη πρόσβασης ρυθμός δεδομένων προς browsers μέσω της ζεύξης = 0,6*1,54 Mbps = 0,9 Mbps αξιοποίηση = 0,9/1,54 = 0,58 συνολική καθυστέρηση = 0,6 * (καθυστέρηση από εξυπηρέτες προέλευσης) + 0,4 * (καθυστέρηση από εξυπηρέτηση από cache) = 0,6 (2,01) + 0,4 (~msecs) = ~ 1,2 secs λιγότερο σε σχέση με τη ζεύξη 100 Mbps (και φθηνότερο!) 36

Το Get υπό συνθήκη (Conditional GET) Σκοπός: να μην στέλνεται το αντικείμενο αν η cache έχει ενήμερη (up-to-date) έκδοση χωρίς καθυστέρηση μετάδοσης του αντικειμένου χαμηλότερη χρήση ζεύξης cache: καθορίζει την ημερομηνία του αποθηκευμένου αντιγράφου στην αίτηση HTTP If-modified-since: <date> εξυπηρέτης: η απόκριση δεν περιέχει αντικείμενο αν το αντίγραφο στην cache δεν έχει τροποποιηθεί: HTTP/1.0 304 Not Modified client HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 304 Not Modified HTTP request msg If-modified-since: <date> HTTP response HTTP/1.0 200 OK <data> server object not modified before <date> object modified after <date> 37

Κεφάλαιο 2: Επίπεδο 2.1 Αρχές δικτυακών εφαρμογών 2.2 Web και HTTP 2.3 Ηλεκτρονικό ταχυδρομείο SMTP, POP3, IMAP 2.4 DNS 2.5 Εφαρμογές P2P 2.6 Βίντεο Συνεχούς Ροής και Δίκτυα Διανομής Περιεχομένου 2.7 Προγραμματισμός Socket 38

Ηλεκτρονικό Ταχυδρομείο Τρία κύρια συστατικά μέρη: Πράκτορες χρήστη (user agents) Εξυπηρέτες ταχυδρομείου (mail servers) simple mail transfer protocol: SMTP Πράκτορας Χρήστη (User Agent) Δηλ. mail reader (αναγνώστης ταχυδρομείου) Σύνθεση, επεξεργασία, ανάγνωση μηνυμάτων αλληλογραφίας π.χ., Outlook, Mozilla Thunderbird, iphone mail client Εξερχόμενα, εισερχόμενα μηνύματα αποθηκευμένα στον εξυπηρέτη mail server SMTP mail server user agent user agent SMTP SMTP user agent outgoing message queue mail server user mailbox user agent user agent user agent 39

Ηλεκτρονικό ταχυδρομείο: εξυπηρέτες ταχυδρομείου (mail servers) Εξυπηρέτες Ταχυδρομείου (Mail Servers) Η ταχυδρομική θυρίδα (mailbox) περιέχει τα εισερχόμενα μηνύματα του χρήστη Ουρά εξερχομένων μηνυμάτων αλληλογραφίας που πρέπει να σταλούν Πρωτόκολλο SMTP μεταξύ εξυπηρετών ταχυδρομείου για την αποστολή email πελάτης : εξυπηρέτης ταχυδρομείου αποστολέας «εξυπηρέτης»: εξυπηρέτης ταχυδρομείου παραλήπτης mail server SMTP mail server user agent user agent SMTP SMTP user agent mail server user agent user agent user agent 40

Ηλεκτρονικό Ταχυδρομείο: SMTP [RFC 2821] Χρησιμοποιεί TCP για την αξιόπιστη μεταφορά μηνυμάτων από τον πελάτη στον εξυπηρέτη, θύρα 25 Απευθείας μεταφορά: από τον εξυπηρέτη αποστολέα προς τον εξυπηρέτη παραλήπτη Τρεις φάσεις της μεταφοράς χειραψία (χαιρετισμός) μεταφορά μηνυμάτων τερματισμός Αλληλεπίδραση εντολής/απόκρισης (όπως το HTTP, FTP) εντολές: κείμενο ASCII απόκριση: κωδικός κατάστασης και φράση Τα μηνύματα πρέπει να είναι σε 7-bit ASCII 41

Σενάριο: Η Αλίκη στέλνει μήνυμα στον Βασίλη 1) H Αλίκη χρησιμοποιεί πράκτορα χρήστη (user agent-ua) για τη σύνθεση του μηνύματος προς vassilis@di.uoa.gr 2) Ο πράκτορας της Αλίκης στέλνει το μήνυμα στον εξυπηρέτη ταχυδρομείου της, το μήνυμα τοποθετείται στην ουρά μηνυμάτων 3) Η πλευρά του πελάτη του SMTP ανοίγει TCP σύνδεση με τον εξυπηρέτη ταχυδρομείου του Βασίλη 4) Ο πελάτης SMTP στέλνει το μήνυμα της Αλίκης πάνω από τη σύνδεση TCP 5) Ο εξυπηρέτης ταχυδρομείου του Βασίλη τοποθετεί το μήνυμα στην ταχυδρομική θυρίδα του Βασίλη 6) Ο Βασίλης χρησιμοποιεί το δικό του πράκτορα για να το διαβάσει 1 user agent mail server 2 3 4 mail server 5 6 user agent εξυπηρέτης Αλίκης εξυπηρέτης Βασίλη 42

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

Κεφάλαιο 2: Επίπεδο 2.1 Αρχές δικτυακών εφαρμογών 2.2 Web και HTTP 2.3 Ηλεκτρονικό ταχυδρομείο SMTP, POP3, IMAP 2.4 DNS 2.5 Εφαρμογές P2P 2.6 Βίντεο Συνεχούς Ροής και Δίκτυα Διανομής Περιεχομένου 2.7 Προγραμματισμός Socket 44

DNS: Domain Name System (Σύστημα Ονομασίας Τομέων) Άνθρωποι: πολλοί τρόποι αναγνώρισης: αριθμός κοινωνικής ασφάλισης, όνομα, αρ. διαβατηρίου Υπολογιστές, δρομολογητές Διαδικτύου: διεύθυνση IP (32 bit) χρησιμοποιείται για διευθυνσιοδότηση datagrams «όνομα», π.χ., www.yahoo.com χρησιμοποιείται από τους ανθρώπους Ε: Αντιστοιχία ανάμεσα στη διεύθυνση IP και το όνομα και αντίστροφα; Σύστημα Ονομασίας Τομέων (Domain Name System): Κατανεμημένη βάση δεδομένων που υλοποιείται σε ιεραρχία πολλών εξυπηρετών ονομάτων (name servers) Πρωτόκολλο επιπέδου για να επικοινωνούν υπολογιστές, δρομολογητές, εξυπηρέτες ονομάτων για επίλυση (resolution) ονομάτων (μετάφραση διεύθυνσης/ονόματος) Σημείωση: βασική λειτουργία του Διαδικτύου που υλοποιείται ως πρωτόκολλο επιπέδου Πολυπλοκότητα στο άκρο του δικτύου 45

DNS Υπηρεσίες DNS Μετάφραση ονόματος (hostname) σε διεύθυνση IP Ψευδώνυμα υπολογιστών (host aliasing) -ευκολομνημόνευτα Ψευδώνυμα Κανονικά ονόματα Ψευδώνυμα εξυπηρετών ταχυδρομείου (mail server aliasing) Κατανομή φορτίου Εξυπηρέτες-αντίγραφα Web: πολλές διευθύνσεις IP αντιστοιχούν σε ένα όνομα Γιατί όχι κεντρικοποιημένο; μοναδικό σημείο αποτυχίας όγκος κίνησης απομακρυσμένη κεντρικοποιημένη βάση δεδομένων συντήρηση A: δεν κλιμακώνει! 46

Κατανεμημένη, Ιεραρχική Βάση Δεδομένων Root DNS Servers com DNS servers org DNS servers edu DNS servers yahoo.com DNS servers amazon.com DNS servers pbs.org DNS servers poly.edu umass.edu DNS serversdns servers O πελάτης θέλει τη διεύθυνση IP για το www.amazon.com, 1 η προσέγγιση: Ο πελάτης ρωτά έναν εξυπηρέτη ρίζας (root server) για να βρει τον εξυπηρέτη DNS com (com DNS server) Ο πελάτης ρωτά τον εξυπηρέτη DNS com για να πάρει τον εξυπηρέτη DNS amazon.com (amazon.com DNS server) Ο πελάτης ρωτά τον εξυπηρέτη DNS amazon.com (amazon.com DNS server) για να πάρει τη διεύθυνση IP του www.amazon.com 47

DNS: Εξυπηρέτες ονομάτων ρίζας (Root name servers) έρχεται σε επαφή ο τοπικός εξυπηρέτης ονομάτων που δεν μπορεί να μεταφράσει το όνομα εξυπηρέτης ονομάτων ρίζας: έρχεται σε επαφή με τον αυθεντικό (authoritative) εξυπηρέτη ονομάτων, αν η αντιστοιχία του ονόματος δεν είναι γνωστή παίρνει την αντιστοιχία & την επιστρέφει στον τοπικό εξυπηρέτη ονομάτων Ή απλά παραπέμπει σε άλλον εξυπηρέτη e NASA Mt View, CA f Internet Software C. Palo Alto, CA (and 36 other locations) a Verisign, Dulles, VA c Cogent, Herndon, VA (also LA) d U Maryland College Park, MD g US DoD Vienna, VA h ARL Aberdeen, MD j Verisign, ( 21 locations) k RIPE London (also 16 other locations) i Autonomica, Stockholm (plus 28 other locations) m WIDE Tokyo (also Seoul, Paris, SF) b USC-ISI Marina del Rey, CA l ICANN Los Angeles, CA 13 εξυπηρέτες ονομάτων ρίζας παγκοσμίως 48

TLD και αυθεντικοί εξυπηρέτες Εξυπηρέτες τομέων ανώτατου επιπέδου (Top-level domain (TLD) servers): Yπεύθυνοι για com, org, net, edu, aero, jobs, museums και όλους τους ανώτατου επιπέδου τομείς χωρών, π.χ. uk, fr, ca, jp Η Network Solutions διατηρεί εξυπηρέτες για τους com TLD H Educause για τους edu TLD Αυθεντικοί εξυπηρέτες DNS (Authoritative DNS servers): Οι εξυπηρέτες DNS του οργανισμού που παρέχουν αυθεντικές αντιστοιχίσεις ονομάτων υπολογιστών σε διευθύνσεις IP για τους εξυπηρέτες του οργανισμού (π.χ., Web, mail) Μπορεί να διατηρείται από τον οργανισμό ή τον πάροχο υπηρεσιών 49

Τοπικός Εξυπηρέτης Ονομάτων (Local DNS Name Server) δεν ανήκει αυστηρά στην ιεραρχία κάθε ISP (περιφερειακός ISP, εταιρία, πανεπιστήμιο) έχει έναν καλείται επίσης προεπιλεγμένος εξυπηρέτης ονομάτων όταν ένας υπολογιστής πραγματοποιεί ένα ερώτημα DNS, το ερώτημα στέλνεται στον τοπικό εξυπηρέτη DNS έχει τοπική cache των πρόσφατων ζευγαριών μετάφρασης όνομα-σε-διεύθυνση (μπορεί να μην είναι ενημερωμένη!) Λειτουργεί ως proxy, προωθεί το ερώτημα στην ιεραρχία 50

Παράδειγμα μετάφρασης ονόματος DNS root DNS server Ο υπολογιστής στο cis.poly.edu θέλει τη διεύθυνση IP του gaia.cs.umass.edu 2 3 4 5 TLD DNS server Επαναληπτικό ερώτημα: Ο εξυπηρέτης που ρωτήθηκε απαντά με το όνομα του εξυπηρέτη που πρέπει να ερωτηθεί Δεν ξέρω το όνομα αλλά ρώτα αυτόν τον εξυπηρέτη local DNS server dns.poly.edu 1 8 requesting host cis.poly.edu 7 6 authoritative DNS server dns.cs.umass.edu gaia.cs.umass.edu 51

Παράδειγμα μετάφρασης ονόματος DNS root DNS server Αναδρομικό ερώτημα: Εναποθέτει το βάρος της μετάφρασης ονόματος στον εξυπηρέτη που ρωτήθηκε Βαρύ φορτίο στα ανώτερα επίπεδα της ιεραρχίας local DNS server dns.poly.edu 1 2 8 7 6 5 3 4 TLD DNS server requesting host cis.poly.edu authoritative DNS server dns.cs.umass.edu gaia.cs.umass.edu 52

DNS: προσωρινή αποθήκευση (caching) και ενημέρωση εγγραφών Όταν ο (οποιοσδήποτε) εξυπηρέτης ονομάτων μάθει μια αντιστοιχία, την αποθηκεύει προσωρινά Τα περιεχόμενα της προσωρινής μνήμης (cache) λήγουν (εξαλείφονται) μετά από κάποιο χρόνο (TTL) Οι εξυπηρέτες TLD τυπικά αποθηκεύονται προσωρινά σε τοπικούς εξυπηρέτες ονομάτων Έτσι οι εξυπηρέτες ρίζας δε δέχονται συχνά επισκέψεις Οι προσωρινά αποθηκευμένες εγγραφές μπορεί να μην είναι ενημερωμένες (μετάφραση ονόματος-σεδιεύθυνση βέλτιστης προσπάθειας!) αν ο name host αλλάξει IP διεύθυνση, μπορεί να μην γίνει γνωστό στο Διαδίκτυο μέχρι να λήξουν όλα τα TTLs Μηχανισμοί ενημέρωσης/ειδοποίησης υπό σχεδιασμό από IETF RFC 2136 53

Εγγραφές DNS DNS: κατανεμημένη βάση δεδ. που αποθηκεύει εγγραφές πόρων [resource records (RR)] RR format: (name, value, type, ttl) Type=A name είναι το όνομα του υπολογιστή value είναι η διεύθυνση IP Type=NS name είναι τομέας (domain) (π.χ., foo.com) value είναι το όνομα υπολογιστή (hostname) του αυθεντικού εξυπηρέτη ονομάτων για αυτόν τον τομέα Type=CNAME name είναι ψευδώνυμο για κάποιο κανονικό (πραγματικό) όνομα www.ibm.com είναι στην πραγματικότητα servereast.backup2.ibm.com value είναι το κανονικό όνομα Type=MX value είναι το όνομα του εξυπηρέτη mail που σχετίζεται με το name 54

Εισαγωγή εγγραφών στο DNS Παράδειγμα: νέα startup εταιρία Network Utopia Εγγράφει το όνομα networkuptopia.com στον DNS registrar (π.χ., Network Solutions) Παρέχει ονόματα, διευθύνσεις IP του αυθεντικού εξυπηρέτη ονομάτων (κύριου και δευτερεύοντα) Ο registrar εισάγει δύο RRs στον εξυπηρέτη TLD com: (networkutopia.com, dns1.networkutopia.com, NS) (dns1.networkutopia.com, 212.212.212.1, A) Δημιουργεί εγγραφή αυθεντικού εξυπηρέτη Type A για το www.networkuptopia.com, εγγραφή Type MX για το networkutopia.com 55

Επιθέσεις στο DNS DDoS επιθέσεις Βομβαρδισμός των εξυπηρετών ρίζας με κίνηση Ανεπιτυχής έως τώρα Φιλτράρισμα κίνησης Οι τοπικοί DNS εξυπηρέτες αποθηκεύουν προσωρινά τις IP τωνtld εξυπηρετών, επιτρέποντας την παράκαμψη των εξυπηρετών ρίζας Βομβαρδισμός TLD εξυπηρετών Πιθανώς πιο επικίνδυνο Ανακατεύθυνση επιθέσεων Man-in-middle Παρεμποδίζει ερωτήματα DNS poisoning Εικονικές αποστολές στηρίζονται στον DNS εξυπηρέτη, ο οποίος αποθηκεύει προσωρινά Εκμετάλλευση DNS για DDoS Στέλνει ερωτήματα με πλαστή διεύθυνση πηγής: στοχεύει IP Απαιτεί ενίσχυση 56

Κεφάλαιο 2: Επίπεδο 2.1 Αρχές δικτυακών εφαρμογών 2.2 Web και HTTP 2.3 Ηλεκτρονικό ταχυδρομείο SMTP, POP3, IMAP 2.4 DNS 2.5 Εφαρμογές P2P 2.6 Βίντεο Συνεχούς Ροής και Δίκτυα Διανομής Περιεχομένου 2.7 Προγραμματισμός Socket 57

Αμιγώς P2P αρχιτεκτονική Δεν υπάρχει διαρκώς ενεργός εξυπηρέτης Τυχαία τερματικά συστήματα επικοινωνούν απευθείας Οι ομότιμοι είναι συνδεδεμένοι διακοπτόμενα και αλλάζουν διευθύνσεις IP Παραδείγματα: Διανομή αρχείου (BitTorrent) Μετάδοση(streaming) (KanKan) VoIP(Skype) 58

Διανομή αρχείου: Server-Client vs P2P Ερώτηση : Πόσος χρόνος απαιτείται για τη διανομή αρχείου (μεγέθους F) από έναν εξυπηρέτη σε Ν ομότιμους; Αρχείο, μεγέθους F η upload/download χωρητικότητα του ομότιμου είναι περιορισμένος πόρος u s : χωρητικότητα upload εξυπηρέτη Εξυπηρέτης u i : χωρητικότητα upload ομότιμου i d N u N u 1 d 1 u 2 u d 2 s Δίκτυο (με άπλετο εύρος ζώνης) d i : χωρητικότητα download ομότιμου i 59

Χρόνος διανομής αρχείου: εξυπηρέτηςπελάτης (server-client) Ο εξυπηρέτης στέλνει (upload) σειριακά N αντίγραφα: Χρόνος αποστολής ενός αντίγραφου: F/u s Χρόνος αποστολής Ν αντίγραφων: NF/u s Κάθε πελάτης πρέπει να κατεβάσει (download) το αντίγραφο d min = ελάχιστος ρυθμός download πελάτη ελάχιστος χρόνος download πελάτη: F/d min Εξυπηρέτης F d N u N u u 2 1 d 1 u d s 2 Δίκτυο (με άπλετο εύρος ζώνης) Χρόνος για να διανεμηθεί το F σε N πελάτες χρησιμοποιώντας την προσέγγιση client/server D c-s max { NF/u s, F/d min ) } Αυξάνει γραμμικά με το N 60

Χρόνος διανομής αρχείου: P2P Ο εξυπηρέτης πρέπει να ανεβάσει τουλάχιστον ένα αντίγραφο: χρόνος F/u s Κάθε πελάτης πρέπει να κατεβάσει το αντίγραφο: ελάχιστος χρόνος κατεβάσματος για τον πελάτη F/d i Οι πελάτες πρέπει να κατεβάσουν NF bits (αθροιστικά) Εξυπηρέτης Μέγιστος ρυθμός ανεβάσματος (περιορίζοντας τον μέγιστο ρυθμό κατεβάσματος) είναι: u s + u i χρόνος διανομής του F σε Ν πελάτες με την P2P προσέγγιση F d N u N u u 2 1 d 1 u d s 2 Δίκτυο (με άπλετο εύρος ζώνης) D P2P > max{f/u s,,f/d min,,nf/(u s + u i )} αυξάνει γραμμικά με το Ν ομοίως και αυτό, καθώς κάθε ομότιμος φέρει ικανότητα παροχής υπηρεσιών 61

Server-client vs. P2P: Παράδειγμα Ρυθμός upload πελάτη = u, F/u = 1 ώρα, u s = 10u, d min u s 3.5 Ελάχιστος χρόνος Διανομής Minimum Distribution Time 3 2.5 2 1.5 1 0.5 P2P Client-Server 0 0 5 10 15 20 25 30 35 N 62

P2P διανομή αρχείου: BitTorrent το αρχείο διαιρείται σε τμήματα (chunks) των 256Kb οι ομότιμοι στο torrent στέλνουν/λαμβάνουν τμήματα ενός αρχείου tracker: παρακολουθεί τους ομότιμους που μετέχουν στο torrent torrent: ομάδα ομότιμων που ανταλλάσσουν τμήματα (chunks) ενός αρχείου Η Αλίκη μπαίνει βρίσκει τη λίστα των ομότιμων από τον tracker και ξεκινά την ανταλλαγή τμημάτων του αρχείου με τους ομότιμους στο torrent peer trading chunks 63

BitTorrent Ομότιμος που συνδέεται στο torrent: Δεν έχει chunks, αλλά θα τα συσσωρεύσει με την πάροδο του χρόνου από άλλους ομότιμους Εγγράφεται στον tracker για να πάρει τη λίστα των ομότιμων, συνδέεται σε υποσύνολο των ομότιμων («γείτονες»( neighbors )) Ενώ κατεβάζει, ο ομότιμος ανεβάζει chunks σε άλλους ομότιμους Ο ομότιμος μπορεί να αλλάξει τους ομότιμους με τους οποίους ανταλλάσσει chunks Ομότιμοι ενδέχεται να έρχονται και να φεύγουν Όταν ο ομότιμος έχει ολόκληρο το αρχείο, ενδέχεται (εγωϊστικά) να φύγει ή (αλτρουϊστικά) να παραμείνει στο torrent 64

BitTorrent: αίτηση,αποστολή chunks αρχείων Ζητώντας Chunks Κάθε χρονική στιγμή, διαφορετικοί ομότιμοι έχουν διαφορετικό υποσύνολο chunks του αρχείου Περιοδικά, ένας ομότιμος (Αλίκη) ρωτά κάθε ομότιμο σχετικά με τη λίστα των chunks που έχει Η Αλίκη στέλνει αίτηση για τα chunks που της λείπουν, πρώτα το σπανιότερο Στέλνοντας Chunks: tit-for-tat Η Αλίκη στέλνει chunks στους τέσσερις ομότιμους που στέλνουν στον υψηλότερο ρυθμό Άλλοι ομότιμοι αγνοούνται από την Αλίκη (δε λαμβάνουν chunks από αυτή) Επαναξιολογεί τους top 4 κάθε 10 secs κάθε 30 secs: διαλέγει τυχαία άλλον ομότιμο, ξεκινά να στέλνει chunks Ο νέος ομότιμος που επιλέχτηκε ενδέχεται να συμμετάσχει στους top 4 Σταματάει να αγνοεί (optimistically unchoke) αυτόν τον ομότιμο 65

BitTorrent: Tit-for-tat (1) Η Αλίκη optimistically unchokes τον Βασίλη (2) Η Αλίκη γίνεται ένας από τους top-four προμηθευτές του Βασίλη, ο Βασίλης ανταποδίδει (3) Ο Βασίλης γίνεται ένας από τους top-four προμηθευτές της Αλίκης Με υψηλότερο upload rate, μπορεί να βρει καλύτερους εταίρους ανταλλαγής και να πάρει γρηγορότερα το αρχείο 66

Κεφάλαιο 2: Επίπεδο 2.1 Αρχές δικτυακών εφαρμογών 2.2 Web και HTTP 2.3 Ηλεκτρονικό ταχυδρομείο SMTP, POP3, IMAP 2.4 DNS 2.5 Εφαρμογές P2P 2.6 Βίντεο Συνεχούς Ροής και Δίκτυα Διανομής Περιεχομένου 2.7 Προγραμματισμός Socket 67

Βίντεο Συνεχούς Ροής και CDNs Κίνηση Βίντεο: βασικός καταναλωτής Internet Netflix, YouTube: > 37%, 16% της κίνησης στην Β. Αμερική ~1B YouTube χρήστες, ~75M Netflix χρήστες Πρόκληση 1: κλιμάκωση σενάριο μοναδικού mega-video server δεν θα δούλευε (γιατί;) Πρόκληση 2: ετερογένεια διαφορετικοί χρήστες διαφορετικές δυνατότητες (π.χ., ενσύρματες σε σχέση με ασύρματες συσκευές)) Λύση: κατανεμημένη υποδομή επιπέδου 68

Βίντεο διαδικτύου βίντεο: αλληλουχία εικόνων που εμφανίζονται με σταθερό ρυθμό π.χ., 24 εικόνες/δευτ ψηφιακή εικόνα: πίνακας από pixels κάθε pixel μια σειρά από bits (φωτεινότητα, χρώμα) Κωδικοποίηση/συμπίεση: χρήση πλεονασμού εντός και ανάμεσα από εικόνες για να μειωθεί # bits που απαιτείται για την κωδικοποίηση.... εικόνα i temporal: αντί να σταλεί ολόκληρη η εικόνα στέλνονται μόνο οι αλλαγέςi spatial: αντί για Ν τιμές τού ίδιου χρώματος (μωβ), στείλε μόνο δύο τιμές: τιμή χρώματος (μωβ) και αριθμός επαναλήψεων της ίδια τιμής (N) εικόνα i+1 69

Σενάριο αποθηκευμένου βίντεο Στην πιο απλή περίπτωση: Internet video server (αποθηκευμένο βίντεο) πελάτης 70

Πολυμέσα συνεχούς ροής: DASH DASH: Dynamic, Adaptive Streaming over HTTP εξυπηρέτης (server): διαιρεί το αρχείο βίντεο σε πολλαπλά κομμάτια κάθε κομμάτι αποθηκεύεται και κωδικοποιείται σε διαφορετικούς ρυθμούς αρχείο manifest: παρέχουν URLs για διαφορετικά κομμάτια πελάτης (client): περιοδικά υπολογίζει το εύρος ζώνης ανάμεσα σε πελάτη και εξυπηρέτη βάσει του αρχείου manifest, αιτείται ένα κομμάτι κάθε φορά επιλέγει μέγιστο ρυθμό κωδικοποίησης ανάλογα με το εύρος ζώνης της σύνδεσής του δυναμική εναλλαγή ανάμεσα στις διαθέσιμες επιλογές κωδικοποίησης (ανάλογα με τις δυνατότητες) 71

Πολυμέσα συνεχούς ροής: DASH DASH: Dynamic, Adaptive Streaming over HTTP εξυπνάδα πελάτη: ο πελάτης επιλέγει πότε να αιτηθεί κομμάτι (αποφυγή συμφόρησης), τον ρυθμό κωδικοποίησης που θα αιτηθεί (υψηλότερη ποιότητα σε συνθήκες περισσότερου διαθέσιμου εύρους ζώνης) και πού να αιτηθεί το κομμάτι (είτε έναν URL εξυπηρέτη πλησιέστερό του ή με υψηλότερο διαθέσιμο εύρος ζώνης) 72

Δίκτυα Διανομής Περιεχομένου Content Delivery Networks (CDNs) πρόκληση: πώς να διανείμω (stream) περιεχόμενο (ανάμεσα σε εκατομμύρια βίντεο) σε εκατοντάδες χιλιάδες ταυτόχρονους χρήστες; επιλογή 1: μοναδικός, μεγάλος mega-server μοναδικό σημείο αποτυχίας σημείο συμφόρησης δικτυακής συμφόρησης μακρύ μονοπάτι προς απομακρυσμένους πελάτες πολλαπλά αντίγραφα δημοφιλών βίντεο στέλνονται από τις ίδιες ζεύξεις απλά: αυτή η λύση δεν μπορεί να κλιμακώσει 73

Δίκτυα Διανομής Περιεχομένου επιλογή 2: αποθήκευση/προσφορά πολλαπλών αντιγράφων των βίντεο σε πολλαπλά γεωγραφικά κατανεμημένα σημεία εξυπηρέτησης (CDN) βαθειά εισχώρηση (enter deep): εγκατάσταση CDN εξυπηρετών σε πολλά δίκτυα προσπέλασης κοντά σε χρήστες π.χ., Akamai, 1700 τοποθεσίες κοντά στη βάση (bring home): μικρότερος αριθμός (δεκάδες) μεγαλύτερων συμπλεγμάτων εξυπηρετών σε IXP (Points of Presence) κοντά (αλλά όχι μέσα) στα δίκτυα προσπέλασης π.χ., Limelight 74

Δίκτυα Διανομής Περιεχομένου CDN: αποθηκεύει αντίγραφα του περιεχομένου στους κόμβους CDN π.χ., το Netflix έχει αντίγραφο από την ταινία MadMen ο χρήστης αιτείται περιεχόμενο από το CDN κατευθύνεται στον πλησιέστερο κόμβο μπορεί να επιλέξει διαφορετικό αντίγραφο αν ένα μονοπάτι υποστεί συμφόρηση where s Madmen? manifest file 75

Δίκτυα Διανομής Περιεχομένου προκλήσεις: πώς να αντιμετωπίσεις την συμφόρηση; από ποιόν κόμβο να αντλήσω το περιεχόμενο; συμπεριφορά θεατή όταν υπάρχει συμφόρηση; πώς να τοποθετήσω τα περιεχόμενα στους κόμβους; 76

Δίκτυα Διανομής Περιεχομένου: Παράδειγμα NetCinema Ο Bob (πελάτης) αιτείται το βίντεο http://video.netcinema.com/6y7b23v Το βίντεο είναι αποθηκευμένο στο CDN στη θέση http://kingcdn.com/netc6y&b23v 1. O Bob λαμβάνει το URL για το βίντεο http://video.netcinema.com/6y7b23v από τη σελίδα netcinema.com 1 netcinema.com netcinema s authoratative DNS 6. Αίτηση από τον εξυπηρετητή του KingCDN, που διανέμεται μέσω HTTP 3. Ο DNS του netcinema επιστρέφει το URL http://kingcdn.com/netc6y&b23v 3 KingCDN.com 2 5 2. Ο σύνδεσμος http://video.netcinema.com/6y7b23v επιλύεται μέσω του τοπικού DNS (του Bob) Ο τοπικός DNS εξυπηρέτης του Bob 4 Αυθεντικός εξυπηρέτης KingCDN 4&5. Ο σύνδεσμος http://kingcdn.com/netc6y&b23 επιλύεται μέσω του KingCDN (αυθεντικός DNS εξυπηρέτης), που επιστρέφει την IP διεύθυνση του KingCDN εξυπηρέτη με βίντεο 77

Παράδειγμα Netflix Netflix servers (διαχείριση λογαριασμών, τιμολόγηση) 1 2. Ο Bob περιηγείται στα διαθέσιμα Netflix βίντεο 2 3 Amazon νέφος 3.Το αρχείο manifest επιστρέφει για κάθε αιτούμενο βίντεο Ανεβαίνουν αντίγραφα πολλαπλών εκδόσεων των βίντεο στους CDN servers CDN server CDN server 1. Ο Bob διαχειρίζεται τον λογαριασμό του Netflix CDN server 4. DASH διανομή περιεχομένου 78

Κεφάλαιο 2: Σύνοψη Η επισκόπησή μας των δικτυακών εφαρμογών τώρα ολοκληρώθηκε! Αρχιτεκτονικές Πελάτης-εξυπηρέτης P2P Απαιτήσεις υπηρεσίας μιας : αξιοπιστία, εύρος ζώνης, καθυστέρηση Μοντέλο υπηρεσίας μεταφοράς Διαδικτύου συνδεσιστρεφής (connectionoriented), αξιόπιστη: TCP μη αξιόπιστη, δεδομενογράμματα (datagrams): UDP συγκεκριμένα πρωτόκολλα: HTTP SMTP, POP, IMAP DNS P2P: BitTorrent, DHT 79

Σύνοψη Το πιο σημαντικό: μάθαμε για τα πρωτόκολλα! Τυπική ανταλλαγή μηνυμάτων αιτήματος/απόκρισης: Ο πελάτης ζητά πληροφορία ή υπηρεσία Ο εξυπηρέτης αποκρίνεται με δεδομένα, κωδικό κατάστασης Μορφές μηνυμάτων: Κεφαλίδες: πεδία που δίνουν πληροφορία σχετικά με τα δεδομένα Δεδομένα : πληροφορία που επικοινωνείται Σημαντικά θέματα: Μηνύματα ελέγχου -Μηνύματα δεδομένων Ενδοζωνική, εξωζωνική (in-band, out-of-band) Κεντρικοποιημένο - κατανεμημένο (centralized vs. decentralized ) ακαταστατικό - με κατάσταση (stateless vs. stateful) αξιόπιστη - μη αξιόπιστη μεταφορά μηνύματος πολυπλοκότητα στα άκρα του δικτύου 80

Τέλος Ενότητας