Πανεπιστήμιο Πειραιώς Τμήμα Ψηφιακών Συστημάτων Πρωτόκολλα Διαδικτύου 2 η Διάλεξη Δημοσθένης Κυριαζής Παρασκευή 13 Μαρτίου 2015
Σημερινή διάλεξη Σύνοψη 1ης διάλεξης Διαδίκτυο Ασφάλεια Επίπεδο εφαρμογής Διεργασίες Sockets Πρωτόκολλα επιπέδου εφαρμογής Υπηρεσίες επιπέδου μεταφοράς Πρωτόκολλο HTTP Συνδέσεις HTTP
Πρωτόκολλο διαδικτύου Ανθρώπινο πρωτόκολλο: Τι ώρα είναι? Έχω μια ερώτηση εισαγωγή αποστολή συγκεκριμένων μηνυμάτων συγκεκριμένες ενέργειες όταν λαμβάνονται άλλα μηνύματα ή γεγονότα Πρωτόκολλο διαδικτύου: Μηχανήματα αντί ανθρώπων Κάθε επικοινωνία στο διαδίκτυο διέπεται από πρωτόκολλα Τα πρωτόκολλα ορίζουν τη μορφή (format) και τη σειρά (order) των μηνυμάτων που στέλνονται και λαμβάνονται μεταξύ δικτυακών οντοτήτων καθώς και τις ενέργειες που γίνονται κατά τη λήψη και αποστολή μηνυμάτων Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 3
Δομή δικτύου Τερματικά σημεία (hosts) Πελάτες και εξυπηρετητές Κέντρα δεδομένων Δίκτυα πρόσβασης, φυσικά μέσα Ζεύξεις επικοινωνίας Το δίκτυο που συνδέει το τερματικό σημείο στον πρώτο δρομολογητή (edge router) Πυρήνας δικτύου (core) Διασυνδεδεμένοι δρομολογητές Δίκτυο από δίκτυα Ασύρματο δίκτυο Δίκτυο σπιτιού Παγκόσμιος ISP Τοπικός ISP Εταιρικό δίκτυο Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 4
Πυρήνας δικτύου Σύνολο διασυνδεδεμένων δρομολογητών Μεταφορά δεδομένων μέσω δικτύου Μεταγωγή κυκλώματος (circuit switching): ένα ξεχωριστό κύκλωμα ανά κλήση Μεταγωγή πακέτου (packet switching): τα δεδομένα στέλνονται μέσω του δικτύου σε ξεχωριστά τμήματα Πολλαπλές συνδέσεις επιτυγχάνονται μέσω πολυπλεξίας (διαίρεση χρόνου, συχνότητας, κωδικών ή στατιστική πολυπλεξία) 5
Δυο βασικές λειτουργίες των δικτύων Προώθηση (forwarding): μεταφέρει πακέτα από την είσοδο του δρομολογητή στην έξοδό του Δρομολόγηση (routing): καθορίζει τη διαδρομή πηγήςπροορισμού για τα πακέτα routing algorithm local forwarding table header value output link 0100 0101 0111 1001 3 2 2 1 3 2 1 Διεύθυνση Πρωτόκολλα στο Διαδικτύου, πακέτο 2η Διάλεξη 6
Αποστολή πακέτων δεδομένων Λειτουργία Ο αποστολέας λαμβάνει το μήνυμα από την εφαρμογή Δημιουργεί κομμάτια δεδομένων, τα πακέτα (packets), μήκους L bits Μεταδίδει το πακέτο στο δίκτυο πρόσβασης με ρυθμό μετάδοσης (transmission rate) R 2 1 2 πακέτα, L bits το καθένα R: ρυθμός μετάδοσης μέσου Αποστολέας Καθυστέρηση μετάδοσης πακέτου Χρόνος μετάδοσης πακέτου L-bit στο μέσο = = L (bits) R (bits/sec) 7
4 πηγές καθυστέρησης (1/2) A Μεταγωγή Μεταφορά / προώθηση B Επεξεργασία κόμβου Ουρά d proc : Καθυστέρηση επεξεργασίας κόμβου (nodal processing) Έλεγχος bit σφαλμάτων Καθορισμός εξερχόμενης ζεύξης Συνήθως < msec d nodal = d proc + d queue + d trans + d prop d queue : Καθυστέρηση ουράς (queueing delay) Αναμονή στην εξερχόμενη ζεύξη για μεταφορά Εξαρτάται από τη συμφόρηση Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 8
4 πηγές καθυστέρησης (2/2) A Μεταγωγή Μεταφορά / προώθηση B Επεξεργασία κόμβου Ουρά d nodal = d proc + d queue + d trans + d prop d trans : Καθυστέρηση μεταγωγής (transmission delay) Χρόνος για την έξοδο L: μήκος πακέτου (bits) R: εύρος ζεύξης (bps) d trans = L/R d trans και d prop πολύ διαφορετικά d prop : Καθυστέρηση μεταφοράς (propagation delay) d: μήκος φυσικής ζεύξης s: ταχύτητα μεταφοράς (~2x108 m/sec) d prop = d/s 9
Throughput throughput: ρυθμός (bits/μονάδα χρόνου) μεταφοράς δεδομένων μεταξύ αποστολέα και παραλήπτη τρέχων: σε συγκεκριμένη χρονική στιγμή μέσο: για συγκεκριμένη διάρκεια Αποστολή server, with ροής δεδομένων file of F bits (bits) to send to client link Ζεύξη capacity που εξυπηρετεί R s bits/sec ροή με ρυθμό R s bits/sec Ζεύξη link capacity που εξυπηρετεί ροή R c bits/sec με ρυθμό R c bits/sec Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 10
Διαστρωμάτωση πρωτοκόλλων διαδικτύου (Inter protocol stack) Εφαρμογή (application): υποστηρίζει διαδικτυακές εφαρμογές Π.χ. FTP, SMTP, HTTP Μπορεί να είναι κατανεμημένο μεταξύ διαφορετικών συστημάτων Πακέτο = μήνυμα (message) Μεταφορά (transport): μεταφορά μηνυμάτων Π.χ. TCP, UDP Πακέτο = τεμάχιο (segment) Δικτύου (work): μεταφορά segments σε διευθύνσεις προορισμού (υπολογιστές) Π.χ. IP Πακέτο = datagram Ζεύξης (link): μεταφορά δεδομένων μεταξύ δικτυακών πόρων / κόμβων Π.χ. Ether, 802.111 (WiFi), PPP Πακέτο = πλαίσιο (frame) Φυσικού μέσου (physical): μεταφορά bits στο καλώδιο application transport work link physical 11
Επίπεδο εφαρμογής (application) Υλοποιεί τις κατανεμημένες εφαρμογές File Transfer Protocol (FTP) Send Mail Transport Protocol (SMTP) HTTP... Οδηγεί τις καινοτομίες σε άλλα επίπεδα Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 12
Επίπεδο μεταφοράς (transport) Είναι υπεύθυνο για τη μεταφορά δεδομένων από τον ένα κόμβο στον άλλο Τροφοδοτεί το επίπεδο εφαρμογής με ένα socket API (connect, send, receive) Όταν τα δεδομένα φτάσουν στον προορισμό από το δίκτυο, αποφασίζει ποια διεργασία εφαρμογής θα τα λάβει Οι εφαρμογές συνήθως χρησιμοποιούν ένα από τα παρακάτω: TCP UDP Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 13
Επίπεδο δικτύου (work) Καθορίζει τη διαδρομή που θα πάρει ένα πακέτο μέσω των δρομολογητών για να φτάσει τον προορισμό του Inter Protocol (IP) Καμία εγγύηση εάν και πότε θα φτάσει στον προορισμό Συμφόρηση μπορεί να προκληθεί στους δρομολογητές λόγω περιορισμένου μεγέθους buffer Όταν υπάρχει συμφόρηση οι δρομολογητές «χάνουν» πακέτα Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 14
Επίπεδο ζεύξης (link) Καθορίζεται από την τεχνολογία της ζεύξης επικοινωνίας των γειτονικών στοιχείων Χειρίζεται μεταφορές δεδομένων μεταξύ γειτονικών στοιχείων του δικτύου Παραδείγματα Ether (ΙΕΕΕ802.3) Wireless LAN (e.g., ΙΕΕΕ802.11) Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 15
Μοντέλο ISO/OSI Παρουσίαση (presentation): οι εφαρμογές «ερμηνεύουν» τα δεδομένα π.χ. κρυπτογράφηση, συμπίεση Σύνοδος (session): για συγχρονισμό, checkpointing, και ανάκτηση δεδομένων Αυτά δεν υπάρχουν στη διαστρωμάτωση του Inter Υλοποιούνται από την εφαρμογή αν χρειάζονται application presentation session transport work link physical Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 16
Ενθυλάκωση Encapsulation segment datagram frame message H l H t H n H t H n H t source M M M M application transport work link physical link physical switch H l H n H n H t H t H t M M M M destination application transport work link physical H l H n H n H t H t M M work link physical H n H t M router Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 17
Παραδείγματα πρωτοκόλλων στο διαδίκτυο Τα πρωτόκολλα ελέγχου συμφόρησης ελέγχουν το ρυθμό με τον οποίο τα πακέτα στέλνονται μεταξύ του αποστολέα και του παραλήπτη Τα πρωτόκολλα στους δρομολογητές καθορίζουν τη διαδρομή των πακέτων από τον αποστολέα στον παραλήπτη Τα πρωτόκολλα του «φυσικού μέσου» ελέγχουν τη ροή των bits στη γραμμή που ενώνει δύο φυσικά συνδεδεμένους υπολογιστές Τα πρωτόκολλα στο MAC ενός broadcast ασύρματου μέσου καθορίζουν πότε η συσκευή θα μεταδώσει Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 18
Σημερινή διάλεξη Σύνοψη 1ης διάλεξης Διαδίκτυο Ασφάλεια Επίπεδο εφαρμογής Διεργασίες Sockets Πρωτόκολλα επιπέδου εφαρμογής Υπηρεσίες επιπέδου μεταφοράς Πρωτόκολλο HTTP Συνδέσεις HTTP
Δομή διαδικτύου: Δίκτυο από δίκτυα (1/9) Ιεραρχική δομή Τα τερματικά σημεία συνδέονται μέσω παρόχων ISPs (Inter Service Providers) Οικιακοί, εταιρικοί και ακαδημαϊκοί ISPs Οι πάροχοι πρέπει επίσης να διασυνδεθούν Ώστε 2 σημεία να μπορούν να στέλνουν πακέτα το ένα στο άλλο Το αποτέλεσμα είναι ένα πολύπλοκο δίκτυο δικτύων Που οδηγείται από πολιτικές οικονομικές και εθνικές Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 20
Δομή διαδικτύου: Δίκτυο από δίκτυα (2/9) Ερώτηση: Έστω εκατομμύρια παρόχων. Πως θα διασυνδεθούν? 21
Δομή διαδικτύου: Δίκτυο από δίκτυα (3/9) Επιλογή: Διασύνδεση όλων μεταξύ τους? Δημιουργεί προβλήματα κλιμάκωσης: O(N 2 ) συνδέσεις 22
Δομή διαδικτύου: Δίκτυο από δίκτυα (4/9) Επιλογή: Διασύνδεση κάθε παρόχου με έναν παγκόσμιο πάροχο (με οικονομική συμφωνία)? global ISP 23
Δομή διαδικτύου: Δίκτυο από δίκτυα (5/9) Εάν όμως υπάρχει κέρδος, θα προκύψουν ανταγωνιστές! ISP A ISP B ISP C 24
Δομή διαδικτύου: Δίκτυο από δίκτυα (6/9) Εάν όμως υπάρχει κέρδος, θα προκύψουν ανταγωνιστές! Οι οποίοι όμως πρέπει να διασυνδεθούν! Inter exchange point ISP A IXP IXP ISP B ISP C peering link 25
Δομή διαδικτύου: Δίκτυο από δίκτυα (7/9) Οπότε θα δημιουργηθούν και τοπικά δίκτυα για τη διασύνδεση των δικτύων πρόσβασης σε ISPs ISP A IXP IXP ISP B ISP C regional 26
Δομή διαδικτύου: Δίκτυο από δίκτυα (8/9) Δίκτυα παρόχων δεδομένων (π.χ. Google, Microsoft, Akamai) μπορεί να δημιουργήσουν το δικό τους δίκτυο ISP A IXP Content provider work IXP ISP B ISP B regional 27
Δομή διαδικτύου: Δίκτυο από δίκτυα (9/9) Κεντρικά: μικρός αριθμός μεγάλων δικτύων tier-1 εμπορικοί ISPs (π.χ. Sprint, AT&T, NTT), εθνική & διεθνής πρόσβαση δίκτυο παροχής δεδομένων (π.χ. Google): ιδιωτικό δίκτυο που συνδέει κέντρα στο διαδίκτυο, χωρίς τη χρήση tier-1, εθνικών ISPs Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 28
29
Ιστορία των δικτύων Οι δικτυακές εφαρμογές αντικαθιστούν τις μη δικτυακές : Ταχυδρομείο και ενδοεταιρικά mail, fax email, IM Μεταδόσεις: τηλεόραση, ράδιο Διαδραστική επικοινωνία μέσω φωνής, video VOIP Πρόσβαση πληροφοριών web, P2P Πρόσβαση δίσκων iscsi, Fiberchannel-over-IP Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 30
Βασικές ιστορικές στιγμές του Διαδικτύου 1962: Ο Paul Baran (Rand Corporation) προτείνει την μεταγωγή πακέτων 1969: Το Defense Advanced Research Projects Agency των ΗΠΑ χρηματοδοτεί ένα πρόγραμμα σε δίκτυα μεταγωγής πακέτων Δημιουργείται το ARPANET με τέσσερεις κόμβους 1974: Οι Vint Cerf και Bob Kahn δημοσιεύουν τους βασικούς μηχανισμούς του Transmission Control Protocol (TCP) 1982: Η ιεραρχία πρωτοκόλλων TCP/IP ορίζεται για το ARPANET 1984: Σύστημα καταλόγου ονομάτων (Domain Name System) 1986: Δημιουργείται το NSFNET (56 Kbps) 1992: Ο Tim Berners-Lee (CERN) σχεδιάζει τον Παγκόσμιο Ιστό (World Wide Web) 31
Εξέλιξη διαδικτύου & δικτύων στον χρόνο Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 32
Σημερινή διάλεξη Σύνοψη 1ης διάλεξης Διαδίκτυο Ασφάλεια Επίπεδο εφαρμογής Διεργασίες Sockets Πρωτόκολλα επιπέδου εφαρμογής Υπηρεσίες επιπέδου μεταφοράς Πρωτόκολλο HTTP Συνδέσεις HTTP
Ασφάλεια διαδικτύου (1/4) Κακόβουλο λογισμικό (malware) μπορεί να είναι: virus: αναπαράγεται μέσω ενός αντικειμένου που αποστέλλεται / λαμβάνεται (π.χ. e-mail attachment) worm: αναπαράγεται παθητικά μέσω αντικειμένων που εκτελούνται μόνα τους Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 34
Ασφάλεια διαδικτύου (2/4) Denial of Service (DoS): πόροι (εξυπηρετητές, πόροι δικτύου) μη διαθέσιμοι λόγω φόρτου δικτύου 1. Επιλογή στόχου 2. Χρήση υπολογιστών (bot) 3. Αποστολή πακέτων στο στόχο target Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 35
Ασφάλεια διαδικτύου (3/4) Packet sniffing : Μέσω δικτύων (π.χ. ether, wireless) Συγκεκριμένη διεπαφή δικτύου που διαβάζει και καταγράφει τα πακέτα A C src:b dest:a payload B Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 36
Ασφάλεια διαδικτύου (4/4) IP spoofing: αποστολή πακέτου με εσφαλμένη διεύθυνση αποστολής A C src:b dest:a payload B Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 37
Σημερινή διάλεξη Σύνοψη 1ης διάλεξης Διαδίκτυο Ασφάλεια Επίπεδο εφαρμογής Διεργασίες Sockets Πρωτόκολλα επιπέδου εφαρμογής Υπηρεσίες επιπέδου μεταφοράς Πρωτόκολλο HTTP Συνδέσεις HTTP
Δικτυακές εφαρμογές Ηλεκτρονικό ταχυδρομείο Μηνύματα κειμένου Απομακρυσμένο login Διαμοιρασμός αρχείων Δικτυακά παιχνίδια Streaming video (YouTube, Hulu, Netflix) Διαδίκτυο Voice over IP (π.χ. Skype) Video conferencing Κοινωνικά δίκτυα Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 39
Δημιουργία δικτυακής εφαρμογής Υλοποίηση εφαρμογών Εκτελούνται σε (διαφορετικά) end systems Επικοινωνούν μέσω του δικτύου Π.χ. web server που επικοινωνεί με browser Δεν απαιτείται η υλοποίηση προγραμμάτων για τον πυρήνα του δικτύου Οι συσκευές του πυρήνα δεν εκτελούν εφαρμογές χρηστών application transport work data link physical application transport work data link physical application transport work data link physical Πρωτόκολλα Διαδικτύου, 2η Διάλεξη
Αρχιτεκτονικές δικτυακών εφαρμογών Πιθανές δομές client-server peer-to-peer (P2P) υβριδικές (hybrid) Μηνύματα μεταξύ χρηστών Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 41
Client-server αρχιτεκτονική client/server Server Πάντα σε λειτουργεία (alwayson) Μόνιμη διεύθυνση IP Χρήση data centers για κλιμάκωση Client(s) Επικοινωνούν με το server Δεν είναι πάντα σε λειτουργία Μπορεί να έχουν δυναμικές διευθύνσεις IP Δεν επικοινωνούν απευθείας μεταξύ τους Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 2-42
P2P αρχιτεκτονική Δεν υπάρχει κάποιος server που είναι πάντα σε λειτουργία Διάφορα end systems επικοινωνούν απευθείας Οι peers ζητούν υπηρεσίες από άλλους peers, και παρέχουν υπηρεσίες σε άλλους peers Αυτό-κλιμάκωση (self scalability): Οι νέοι peers προσθέτουν χωρητικότητα καθώς και απαιτήσεις Οι peers δεν είναι μόνιμα συνδεδεμένοι και αλλάζουν διευθύνσεις peer-peer Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 43
Σημερινή διάλεξη Σύνοψη 1ης διάλεξης Διαδίκτυο Ασφάλεια Επίπεδο εφαρμογής Διεργασίες Sockets Πρωτόκολλα επιπέδου εφαρμογής Υπηρεσίες επιπέδου μεταφοράς Πρωτόκολλο HTTP Συνδέσεις HTTP
Διεργασίες Διεργασία (process): Το πρόγραμμα που εκτελείται σε κάποιον κόμβο (host) Σε έναν κόμβο, 2 διεργασίες επικοινωνούν μέσω interprocess communication (καθορίζεται από το ΛΣ) Διεργασίες σε διαφορετικούς κόμβους επικοινωνούν με ανταλλαγή μηνυμάτων (messages) clients, servers client process: η διεργασία που αρχίζει την επικοινωνία server process: η διεργασία που αναμένει επικοινωνία Οι εφαρμογές με αρχιτεκτονικές P2P έχουν διεργασίες client & διεργασίες server Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 45
Sockets (1/2) Κάθε διεργασία αποστέλλει / λαμβάνει μηνύματα μέσω του socket της (διεπαφή λογισμικού software interface) Το socket είναι ανάλογο της πόρτας Η διεργασία αποστολής ωθεί το μήνυμα στην πόρτα Η διεργασία αποστολής βασίζεται στην υποδομή μεταφοράς (transport) εκτός της πόρτας για να παραδώσει το μήνυμα στο socket (πόρτα) της διεργασίας λήψης application process socket application process Διαχειρίζονται από τον προγραμματιστή transport transport work link Inter work link Διαχειρίζονται από το ΛΣ physical physical Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 46
Sockets (2/2) Socket: interface μεταξύ επιπέδου εφαρμογής και επιπέδου μεταφοράς Πλευρά socket επιπέδου μεταφοράς ελέγχεται από το επίπεδο μεταφοράς Προγραμματιστής εφαρμογών ελέγχει την πλευρά του socket επιπέδου εφαρμογής Επιλογή πρωτοκόλλου Ορισμός παραμέτρων επιπέδου πρωτοκόλλου (μέγιστο buffer, μέγιστο μέγεθος segment) Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 47
Διεργασίες διευθύνσεων Για τη λήψη μηνυμάτων, η διεργασία πρέπει να έχει ένα αναγνωριστικό (identifier) Κάθε κόμβος έχει μια μοναδική 32-bit διεύθυνση IP Αρκεί η διεύθυνση IP του κόμβου ώστε να αναγνωριστούν οι διεργασίες του? Όχι καθώς μπορεί να εκτελούνται πολλές διεργασίες στον ίδιο κόμβο O identifier περιλαμβάνει τόσο τη διεύθυνση IP όσο και τα port numbers που σχετίζονται με τη διεργασία Παράδειγμα port numbers HTTP server: 80 mail server: 25 48
Σημερινή διάλεξη Σύνοψη 1ης διάλεξης Διαδίκτυο Ασφάλεια Επίπεδο εφαρμογής Διεργασίες Sockets Πρωτόκολλα επιπέδου εφαρμογής Υπηρεσίες επιπέδου μεταφοράς Πρωτόκολλο HTTP Συνδέσεις HTTP
Πρωτόκολλα επιπέδου εφαρμογής Καθορίζουν Τύπο των μηνυμάτων Π.χ. request, response Σύνταξη μηνυμάτων Πεδία μηνυμάτων Περιγραφή πεδίων Σημασιολογία μηνυμάτων Σημασία των πεδίων Κανόνες Χρόνο και τρόπο που οι διεργασίες αποστέλλουν και απαντούν σε μηνύματα Ανοιχτά πρωτόκολλα Καθορίζονται μέσω RFC Επιτρέπουν τη διαλειτουργικότητα Π.χ. HTTP, SMTP «Ιδιόκτητα» πρωτόκολλα Π.χ. Skype Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 50
Σημερινή διάλεξη Σύνοψη 1ης διάλεξης Διαδίκτυο Ασφάλεια Επίπεδο εφαρμογής Διεργασίες Sockets Πρωτόκολλα επιπέδου εφαρμογής Υπηρεσίες επιπέδου μεταφοράς Πρωτόκολλο HTTP Συνδέσεις HTTP
Υπηρεσίες επιπέδου μεταφοράς Ακεραιότητα (integrity) δεδομένων Εφαρμογές (π.χ. μεταφορά αρχείων) απαιτούν 100% αξιόπιστη μεταφορά δεδομένων Εφαρμογές (π.χ. audio) που «ανέχονται» κάποιες απώλειες (loss-tolerant) Χρόνος Εφαρμογές (π.χ. τηλεφωνία, διαδραστικά παιχνίδια) απαιτούν μικρή καθυστέρηση Throughput Εφαρμογές (π.χ. πολυμέσων) θέτουν ελάχιστα όρια throughput (bandwidth sensitive) Εφαρμογές ( ελαστικές ) χρησιμοποιούν ότι throughput παρέχεται Ασφάλεια Κρυπτογράφηση, Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 52
Παράδειγμα απαιτήσεων διαφορετικών εφαρμογών Εφαρμογή Απώλεια δεδομένων Throughput Σημασία χρόνου Μεταφορά αρχείων e-mail Αρχεία διαδικτύου Audio/video πραγματικού χρόνου Αποθ. audio/video Διαδρ. παιχνίδια Μηνύματα κειμένου Χωρίς Χωρίς Χωρίς Ανοχή Ανοχή Ανοχή Χωρίς Ελαστικό Ελαστικό Ελαστικό audio: 5kbps-1Mbps video:10kbps-5mbps ομοίως Λίγα kbps Ελαστικό Όχι Όχι Όχι Ναι, ~100s msec Ναι, λίγα secs Ναι, ~100s msec Ναι / όχι Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 53
TCP: Transmission Control Protocol Με-σύνδεση (connection-oriented) υπηρεσία του Διαδικτύου Handshaking: προετοιμασία για την μεταφορά δεδομένων Εφάμιλλο του ανθρώπινου πρωτοκόλλου -Γεια!, -Γεια και σε σένα! Full-duplex: οι διεργασίες μπορούν να ανταλλάσσουν μηνύματα τον ίδιο χρόνο μέσω της ίδιας σύνδεσης Αξιόπιστο, μεταφορά πακέτων σε σωστή σειρά Χαμένα δεδομένα: επιβεβαιώσεις και επανεκπομπές Έλεγχος ροής (flow control) Ο αποστολέας δεν κατακλύζει τον δέκτη Έλεγχος συμφόρησης (congestion control) Ο αποστολέας μειώνει το ρυθμό αποστολής, όταν το δίκτυο έχει συμφόρηση Χρήση: HTTP (WWW), FTP (μεταφορά αρχείων), Tel (απομακρυσμένο login), SMTP (email) Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 54
UDP: User Datagram Protocol Χωρίς-σύνδεση υπηρεσία του Διαδικτύου Δεν χρησιμοποιεί handshaking Αναξιόπιστη μεταφορά δεδομένων Δεν κάνει έλεγχο ροής Δεν κάνει έλεγχο συμφόρησης Λιτή και απέριττη υπηρεσία Χρήση: Streaming media, τηλεδιασκέψεις, DNS, τηλεφωνία μέσω Διαδικτύου Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 55
TCP / UDP Συνοπτικά TCP Αξιόπιστη μεταφορά δεδομένων μεταξύ διεργασιών αποστολής και λήψης Έλεγχος ροής (flow control) Έλεγχος συμφόρησης (congestion control) Δεν παρέχει: εγγυήσεις χρόνου, εγγύηση ελάχιστου throughput, ασφάλεια Απαιτεί σύνδεση (connection-oriented) UDP Μη αξιόπιστη μεταφορά δεδομένων Δεν παρέχει: flow control, congestion control, εγγυήσεις χρόνου, εγγύηση ελάχιστου throughput, ασφάλεια Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 56
Δικτυακές εφαρμογές: Πρωτόκολλα εφαρμογής και μεταφοράς Εφαρμογή Ηλ. ταχυδρομείο Απομακρ. πρόσβαση Διαδίκτυο Μεταφορά αρχείων Streaming πολυμέσα Τηλεφωνία Πρωτόκολλο εφαρμογής SMTP [RFC 2821] Tel [RFC 854] HTTP [RFC 2616] FTP [RFC 959] HTTP (π.χ. YouTube), RTP [RFC 1889] SIP, RTP, ιδιόκτητα (π.χ. Skype) Πρωτόκολλο μεταφοράς TCP TCP TCP TCP TCP ή UDP TCP ή UDP Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 57
Ασφάλεια στο TCP TCP & UDP Δεν παρέχουν κρυπτογράφηση (encryption) Οι κωδικοί (passwords) αποστέλλονται μέσω του socket ως απλό κείμενο Secure Sockets Layer (SSL) Έχει το δικό του socket API Παρέχει κρυπτογραφημένη σύνδεση TCP Ακεραιότητα δεδομένων Πιστοποίηση τελικού σημείου Το SSL είναι στο επίπεδο εφαρμογής Οι εφαρμογές χρησιμοποιούν βιβλιοθήκες SSL, οι οποίες μιλάνε με το TCP SSL socket API Οι κωδικοί αποστέλλονται στο κρυπτογραφημένοι Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 58
Σημερινή διάλεξη Σύνοψη 1ης διάλεξης Διαδίκτυο Ασφάλεια Επίπεδο εφαρμογής Διεργασίες Sockets Πρωτόκολλα επιπέδου εφαρμογής Υπηρεσίες επιπέδου μεταφοράς Πρωτόκολλο HTTP Συνδέσεις HTTP
Διαδίκτυο και HTTP Διαδίκτυο Κάθε σελίδα (web page) αποτελείται από αντικείμενα (objects) Αντικείμενα μπορεί να είναι αρχεία HTML, εικόνες JPEG, applet, αρχεία ήχου, Κάθε σελίδα αποτελείται από το βασικό αρχείο HTML το οποίο περιλαμβάνει διάφορα αντικείμενα Κάθε αντικείμενο είναι προσβάσιμο μέσω ενός URL www.someschool.edu/somedept/pic.gif host name path name Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 60
Πρωτόκολλο HTTP (1/2) HyperText Transfer Protocol Το πρωτόκολλο επιπέδου εφαρμογής του διαδικτύου Ακολουθεί το μοντέλο client/server client: Ο browser που ζητάει, λαμβάνει (μέσω του πρωτοκόλλου HTTP) και παρουσιάζει τα αντικείμενα server: Ο web server που αποστέλλει (μέσω του πρωτοκόλλου HTTP) αντικείμενα σε απάντηση των αιτημάτων PC με Firefox browser iphone με Safari browser server με Apache Web server Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 61
Πρωτόκολλο HTTP (2/2) Χρησιμοποιεί το TCP Ο client ξεκινάει τη σύνδεση TCP στο server, port 80 Ο server αποδέχεται τη σύνδεση TCP από τον client Μηνύματα HTTP (μηνύματα πρωτοκόλλου επιπέδου εφαρμογής) ανταλλάσσονται μεταξύ του browser (HTTP client) και του Web server (HTTP server) Η σύνδεση TCP κλείνει Το HTTP είναι stateless Ο server δεν διατηρεί πληροφορία σχετικά με προηγούμενα αιτήματα των clients (αν ξαναζητηθεί το ίδιο object o server το ξαναστέλνει) Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 62
Σημερινή διάλεξη Σύνοψη 1ης διάλεξης Διαδίκτυο Ασφάλεια Επίπεδο εφαρμογής Διεργασίες Sockets Πρωτόκολλα επιπέδου εφαρμογής Υπηρεσίες επιπέδου μεταφοράς Πρωτόκολλο HTTP Συνδέσεις HTTP
Συνδέσεις HTTP Non-persistent HTTP Το πολύ 1 object αποστέλλεται πάνω από τη σύνδεση TCP Στη συνέχεια κλείνει η σύνδεση Η λήψη πολλών αντικειμένων απαιτεί πολλές συνδέσεις Persistent HTTP Πολλά objects μπορούν να αποσταλούν πάνω από 1 σύνδεση TCP μεταξύ client και server Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 64
Non-persistent HTTP (1/2) Έστω ότι ο χρήστης εισάγει το URL: (περιλαμβάνει κείμενο, www.someschool.edu/somedepartment/home.index και αναφορές σε 10 αντικείμενα εικόνων) 1a. Ο HTTP client ξεκινάει τη σύνδεση TCP προς το server (process) στη πόρτα 80 του www.someschool.edu 2. Ο HTTP client στέλνει HTTP request message (που περιλαμβάνει το URL) στο socket της σύνδεσης TCP. Το μήνυμα Message υποδεικνύει ότι ο client θέλει το object somedepartment/home.index time 1b. Ο HTTP server στον κόμβο www.someschool.edu αναμένει συνδέσεις TCP στην πόρτα 80. Αποδέχεται τη σύνδεση, ενημερώνοντας τον client 3. Ο HTTP server λαμβάνει το request message, δημιουργεί ένα response message που περιλαμβάνει το ζητούμενο αντικείμενο και στέλνει το μήνυμα στο socket του Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 65
Non-persistent HTTP (2/2) time 5. Ο HTTP client λαμβάνει το response message που περιλαμβάνει το αρχείο html, και παρουσιάζει το html. Καθώς αναλύει (parse) το αρχείο html, βρίσκει 10 αναφερόμενα αντικείμενα jpeg 6. Τα βήματα 1-5 επαναλαμβάνονται για καθένα από τα 10 jpeg αντικείμενα 4. Ο HTTP server κλείνει τη σύνδεση TCP. Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 66
Non-persistent HTTP: Χρόνος απόκρισης Round Trip Time (RTT) Ο χρόνος που χρειάζεται ένα μικρό πακέτο να φθάσει από το client στο server και να επιστρέψει στο client Χρόνος απόκρισης (response time) HTTP ( three-way handshake ) 1 RTT για την έναρξη της σύνδεσης TCP 1 RTT για το HTTP request και τη λήψη των πρώτων bytes του HTTP response Χρόνος μεταφοράς αρχείου Χρόνος απόκρισης non-persistent HTTP = 2RTT + χρόνος μεταφοράς αρχείου Έναρξη σύνδεσης TCP RTT Αίτηση αρχείου RTT Λήψη αρχείου χρόνος χρόνος Χρόνος μεταφοράς αρχείου Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 2-67
Persistent HTTP (1/2) Προβλήματα non-persistent HTTP Απαιτούνται 2 RTT για κάθε αντικείμενο (object) Πρόσθετος φόρτος στο ΛΣ για κάθε σύνδεση TCP Οι browsers συχνά «ανοίγουν» παράλληλες (5-10) συνδέσεις TCP για να λάβουν τα αναφερόμενα αντικείμενα Persistent HTTP O server αφήνει «ανοιχτή» τη σύνδεση αφού στείλει το response Επόμενα μηνύματα HTTP μεταξύ του ίδιου client/server στέλνονται μέσω της ίδιας σύνδεσης Ο client στέλνει requests όποτε βρίσκει κάποιο αναφερόμενο αντικείμενο Χρειάζεται 1 RTT για όλα τα αναφερόμενα αντικείμενα Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 68
Persistent HTTP (2/2) Αιτήσεις για αντικείμενα από ένα client μπορούν να γίνονται συνεχόμενα χωρίς αναμονή απαντήσεων από το server σχετικά με εκκρεμείς αιτήσεις (pipelining) Η σύνδεση κλείνει από το server όταν δε χρησιμοποιείται για κάποιο χρονικό διάστημα (μπορεί να καθοριστεί) Default για HTTP: Persistent με pipelining! Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 69
HTTP request message Υπάρχουν 2 τύποι μηνυμάτων HTTP messages: request, response HTTP request message ASCII Request line (εντολές GET, POST, HEAD) Header lines carriage return, line feed στην αρχή της γραμμής δηλώνει το τέλος των header lines!!! Χαρακτήρας carriage return (CR) Χαρακτήρας line-feed (LF) GET /index.html HTTP/1.1\r\n Host: www-.cs.umass.edu\r\n User-Agent: Firefox/3.6.10\r\n Accept: text/html\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 Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 70
HTTP request message: Γενική μορφή method sp URL sp version cr lf header field name value ~~ ~ ~ cr lf request line header lines header field name value cr lf cr lf entity body ~ ~ ~ body Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 71
Αποστολή δεδομένων φόρμας Μέθοδος POST Οι σελίδες συχνά περιλαμβάνουν περιεχόμενα σε φόρμες Τα περιεχόμενα αποστέλλονται στο server μέσα στο entity body Λαμβάνει τελικά περιεχόμενο ο client? Μέθοδος GET ή URL Χρήση της μεθόδου GET Τα περιεχόμενα αποστέλλονται μέσω του πεδίου URL www.somesite.com/animalsearch?monkeys&banana Πρωτόκολλα Διαδικτύου, 2η Διάλεξη 72