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



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

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

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

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

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

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

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

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

Network Address Translation (NAT)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Ethernet Ethernet ΙΕΕΕ CSMA/CD

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

Δίκτυα (2 ο μέρος) ΜΥΥ-106 Εισαγωγή στους Η/Υ και στην Πληροφορική

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

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

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

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

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

Δίκτυα Υπολογιστών I

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

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

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

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

Δίκτυα Επικοινωνίας και Υπολογιστών

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

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

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

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

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

Transcript:

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

Δίκτυα Επικοινωνιών Ι Τμήμα Πληροφορικής και Τηλεπικοινωνιών Εθνικό & Καποδιστριακό Πανεπιστήμιο Αθηνών Θεματικές Ενότητες (ΘΕ) μαθήματος: Συνιστώμενο Βιβλίο: Computer Networking: A Top-Down Approach, by Kurose & Ross, Addison-Wesley Ελληνική Μετάφραση: Εκδόσεις : Μ. Γκιούρδας ΘΕ1: Εισαγωγή (Κεφ. 1 του βιβλίου) ΘΕ2: Επίπεδο Εφαρμογής (Κεφ. 2 του βιβλίου) ΘΕ3: Επίπεδο Μεταφοράς (Κεφ. 3 του βιβλίου) ΘΕ4: Επίπεδο Δικτύου (Κεφ. 4 του βιβλίου) ΘΕ5: Επίπεδο Ζεύξης: Ζεύξεις, Δίκτυα Πρόσβασης, Δίκτυα Τοπικής Περιοχής (Κεφ. 5 του βιβλίου) Οι περισσότερες από τις διαφάνειες αυτής της ενότητας αποτελούν προσαρμογή και απόδοση στα ελληνικά των διαφανειών που συνοδεύουν το βιβλίο Computer Networking : A Top-Down Approach, J.F Kurose and K.W. Ross, 6/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.4 DNS 2.5 Εφαρμογές P2P 2.3 Ηλεκτρονικό ταχυδρομείο SMTP, POP3, IMAP 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.4 DNS 2.5 Εφαρμογές P2P 2.3 Ηλεκτρονικό ταχυδρομείο SMTP, POP3, IMAP 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.4 DNS 2.5 Εφαρμογές P2P 2.3 Ηλεκτρονικό ταχυδρομείο SMTP, POP3, IMAP 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 παρενθετικά Τα πρωτόκολλα που διατηρούν στο περιθώριο την κατάσταση (state) είναι πολύπλοκα Το HTTP είναι ακαταστατικό (stateless) ο εξυπηρέτης δε διατηρεί πληροφορία σχετικά με προηγούμενες αιτήσεις του πελάτη πρέπει να διατηρείται προηγούμενη ιστορία (κατάσταση) αν ο εξυπηρέτης /πελάτης καταρρεύσει, οι απόψεις τους για την κατάσταση μπορεί να μην είναι συνεπείς, και να πρέπει να συγκεραστούν 22

Συνδέσεις HTTP Mη παραμένον HTTP (Non-persistent HTTP) Στέλνετaι τo πολύ ένα αντικείμενο πάνω από μία σύνδεση TCP η σύνδεση μετά κλείνει η λήψη πολλαπλών αντικειμένων απαιτεί πολλαπλές συνδέσεις Παραμένον HTTP (Persistent HTTP) Πολλαπλά αντικείμενα μπορεί να σταλούν πάνω από την ίδια σύνδεση 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): ο χρόνος που απαιτείται για ένα μικρό πακέτο να ταξιδέψει από τον πελάτη στον εξυπηρέτη και na επιστρέψει πίσω Χρόνος απόκρισης: ένα RTT για την έναρξη της σύνδεσης TCP ένα RTT για την αίτηση HTTP και επιστροφή των πρώτων bytes της απόκρισης HTTP χρόνος μετάδοσης αρχείου μη παραμένον 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 για όλα τα αναφερόμενα αντικείμενα 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 Χαρακτήρας επιστροφής (carriage return), τροφοδότηση γραμμής (line feed) υποδεικνύει το τέλος του μηνύματος (extra carriage return, line feed) 28

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

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

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

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

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

Παράδειγμα Caching: εγκατάσταση τοπικής cache (συνέχεια) Υπολογισμός αξιοποίησης της ζεύξης πρόσβασης και καθυστέρησης με cache: έστω ότι το ποσοστό επιτυχίας της cache είναι 0.4 40% των αιτήσεων εηυπηρετούνται στην cache 60% των αιτήσεων εξυπηρετούνται στην προέλευση αξιοποίηση ζεύξης πρόσβασης: 60% των αιτήσεων χρησιμοποιούν τη ζεύξη πρόσβασης ρυθμός δεδομένων προς browsers μέσω της ζεύξης = 0,6*1,50 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 λιγότερο σε σχέση με τη ζεύξη 154 Mbps (και φθηνότερο!) 34

Το 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> 35

Κεφάλαιο 2: Επίπεδο 2.1 Αρχές δικτυακών εφαρμογών 2.2 Web και HTTP 2.4 DNS 2.5 Εφαρμογές P2P 2.3 Ηλεκτρονικό ταχυδρομείο SMTP, POP3, IMAP 36

Ηλεκτρονικό Ταχυδρομείο Τρία κύρια συστατικά μέρη: Πράκτορες χρήστη (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 37

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

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

Σενάριο: Η Alice στέλνει μήνυμα στον Bob 1) H Alice χρησιμοποιεί πράκτορα χρήστη (user agent-ua) για τη σύνθεση του μηνύματος προς bob@someschool.edu 2) Ο UA της Alice στέλνει το μήνυμα στον εξυπηρέτη ταχυδρομείου της, το μήνυμα τοποθετείται στην ουρά μηνυμάτων 3) Η πλευρά του πελάτη του SMTP ανοίγει TCP σύνδεση με τον εξυπηρέτη ταχυδρομείου του Bob 4) Ο πελάτης SMTP στέλνει το μήνυμα της Alice πάνω από τη σύνδεση TCP 5) Ο εξυπηρέτης ταχυδρομείου του Bob τοποθετεί το μήνυμα στην ταχυδρομική θυρίδα του Bob 6) Ο Bob χρησιμοποιεί το δικό του UA για να το διαβάσει 1 user agent mail server 2 3 4 mail server 5 6 user agent Alice s mail server Bob s mail server 40

Πρωτόκολλα προσπέλασης ταχυδρομείου 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, κτλ. 41

Πρωτόκολλο POP3 φάση εξουσιοδότησης (authorization) εντολές πελάτη: user: δήλωση username pass: password Ο εξυπηρέτης απαντά +OK -ERR φάση συναλλαγής, πελάτης: list: δώσε λίστα των αριθμών μηνυμάτων retr: ανάκτηση μηνύματος με βάση τον αριθμό dele: διέγραψε quit S: +OK POP3 server ready C: user bob S: +OK C: pass hungry S: +OK user successfully logged on C: list S: 1 498 S: 2 912 S:. C: retr 1 S: <message 1 contents> S:. C: dele 1 C: retr 2 S: <message 1 contents> S:. C: dele 2 C: quit S: +OK POP3 server signing off 42

POP3(συνέχεια) και IMAP Περισσότερα για το POP3 Το προηγούμενο παράδειγμα χρησιμοποιεί την POP3 φόρτωσε και διάγραψε λειτουργία Ο Bob δεν μπορεί να ξαναδιαβάσει το e-mail αν αλλάξει πελάτη Φόρτωσε και κράτα : αντίγραφα των μηνυμάτων σε διαφορετικούς πελάτες To POP3 δε διατηρεί κατάσταση μεταξύ συνόδων IMAP Διατηρεί όλα τα μηνύματα σε ένα μέρος: τον εξυπηρέτη Επιτρέπει στο χρήστη να οργανώσει τα μηνύματα σε φακέλους Το IMAP διατηρεί την κατάσταση του χρήστη μεταξύ συνόδων: ονόματα φακέλων και αντιστοιχίες μεταξύ ID μηνυμάτων και ονόματα φακέλων 43

Κεφάλαιο 2: Επίπεδο 2.1 Αρχές δικτυακών εφαρμογών 2.2 Web και HTTP 2.4 DNS 2.5 Εφαρμογές P2P 2.3 Ηλεκτρονικό ταχυδρομείο SMTP, POP3, IMAP 44

DNS: Domain Name System (Σύστημα Ονομασίας Τομέων) Άνθρωποι: πολλοί τρόποι αναγνώρισης: αριθμός κοινωνικής ασφάλισης, όνομα, αρ. διαβατηρίου Υπολογιστές, δρομολογητές Διαδικτύου: διεύθυνση IP (32 bit) χρησιμοποιείται για διευθυνσιοδότηση datagrams «όνομα», π.χ., ww.yahoo.com χρησιμοποιείται από τους ανθρώπους Ε: Αντιστοιχία ανάμεσα στη διεύθυνση IP και το όνομα και αντίστροφα; Σύστημα Ονομασίας Τομέων (Domain Name System): Κατανεμημένη βάση δεδομένων που υλοποιείται σε ιεραρχία πολλών εξυπερετών ονομάτων (name servers) Πρωτόκολλο επιπέδου για να επικοινωνούν υπολογιστές, δρομολογητές, εξυπηρέτες ονομάτων για επίλυση (resolve) ονομάτων (μετάφραση διεύθυνσης/ονόματος) Σημείωση: βασική λειτουργία του Διαδικτύου που υλοποιείται ως πρωτόκολλο επιπέδου Πολυπλοκότητα στο άκρο του δικτύου 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 servers DNS 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): υπεύθυνοι για 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 Αναδρομικό ερώτημα: 2 3 Εναποθέτει το βάρος της μετάφρασης ονόματος στον εξυπηρέτη που ρωτήθηκε Βαρύ φορτίο στα ανώτερα επίπεδα της ιεραρχίας local DNS server dns.poly.edu 1 8 7 6 5 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.4 DNS 2.5 Εφαρμογές P2P 2.3 Ηλεκτρονικό ταχυδρομείο SMTP, POP3, IMAP 57

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

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

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

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

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

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

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

Κατανεμημένος Πίνακας Κατακερματισμού (Distributed Hash Table DHT) DHT: μία κατανεμημενη P2P βάση δεδομένων η βάση έχει ζεύγη (key, value), παραδείγματα: key: αριθμός ασφάλισης; value: ονοματεπώνυμο key: τίτλος ταινίας; value: IP διεύθυνση Κατάνειμε τα ζεύγη (key, value) στα εκατομμύρια των ομότιμων Ένας ομότιμος ρωτάει τη DHT με το κλειδί Η DHT επιστρέφει τα values που ταιριάζουν στο κλειδί Οι ομότιμοι μπορούν να εισάγουν ζεύγη (key, value) 67

Ε: πώς ανατίθενται κλειδιά στους ομότιμους; κεντρικό θέμα: ανάθεση ζευγών (key, value) στους ομότιμους βασική ιδέα: μετατροπή κάθε κλειδιού σε ακέραιο ανάθεσε έναν ακέραιο σε κάθε ομότιμο βάλε το ζεύγος (key, value) στον ομότιμο που είναι πιο κοντά στο κλειδί 68

DHT αναγνωριστικά ανάθεσε ακέραιο αναγνωριστικό σε κάθε ομότιμο σε εύρος [0, 2 n 1] για δοσμένο n κάθε αναγνωριστικό αναπαρίσταται από n bits κάθε κλειδί πρέπει να είναι ένας ακέραιος στο ίδιο εύρος για να πάρεις το ακέραιο κλειδί, κατακερμάτισε το αυθεντικό κλειδί π.χ., key = hash( Led Zeppelin IV ) γι αυτό αναφέρεται ως κατανεμημένος πίνακας κατακερματισμού 69

Ανάθεση κλειδιών στους ομότιμους Κανόνας: ανάθεσε το κλειδί στον ομότιμο με το κοντινότερο ID Σύμβαση για τη διδασκαλία: κοντινότερος είναι ο άμεσος διάδοχος του κλειδιού π.χ., n = 4, ομότιμοι: 1,3,4,5,8,10,12,14 key = 13, τότε ομότιμος διάδοχος = 14 key = 15, τότε ομότιμος διάδοχος = 1 70

Κυκλικό DHT (1) 1 15 3 4 12 5 10 κάθε ομότιμος γνωρίζει μόνο τον άμεσο διάδοχο και προκάτοχο δίκτυο επικάλυψης ( overlay network ) 8 71

Κυκλικό DHT (2) O(N) μηνύματα κατά μέσο όρο για την επίλυση του ερωτήματος, όταν υπάρχουν Ν ομότιμοι 1111 Όρισε κοντινότερο τον κοντινότερο διάδοχο 1100 Εγώ 1110 1110 1010 1110 0001 1110 0011 1110 1110 Ποιός είναι υπεύθυνος για το key 1110; 0100 0101 72

Κυκλικό DHT με συντομεύσεις 15 12 10 8 κάθε ομότιμος παρακολουθεί τις IP διευθύνσεις του προκατόχου, διαδόχου και των συντομεύσεων μειώνεται από 6 σε 2 μηνύματα 1 3 5 4 Ποιός είναι υπεύθυνος για το key 1110; πιθανό να σχεδιαστούν συντομεύσεις ώστε Ο(logN) γείτονες, O(logN) μηνύματα στο ερώτημα 73

Σύνολο ομότιμων (peer churn) 15 1 3 4 Διαχείριση του peer churn: ομότιμοι μπορεί να πηγαινοέρχονται κάθε ομότιμος στέλνει περιοδικά pings στους 2 διαδόχους του για να ελέγξει αν είναι ζωντανοί 12 10 8 5 αν ο άμεσος διάδοχος φύγει, επέλεξε τον επόμενο διάδοχο ως νέο άμεσο διάδοχο παράδειγμα: ομότιμος 5 φεύγει αιφνίδια ο ομότιμος 4 ανιχνεύει την αποχώρηση του ομότιμου 5; κάνει τον 8 άμεσο διάδοχό του; ρωτάει τον 8 ποιος είναι ο άμεσος διάδοχός του; κάνει τον άμεσο διάδοχο του 8, δικό του δευτερεύον διάδοχο αν ο ομότιμος 13 θέλει να συμμετάσχει; 74

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

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