Κεφάλαιο 4: Δικτύωση και Διαδίκτυο 4.1 Βασικές αρχές δικτύων 4.2 Το Διαδίκτυο 4.3 Ο Παγκόσμιος Ιστός 4.4 Διαδικτυακά πρωτόκολλα 4.5 Ασφάλεια Οι διαφάνειες βασίζονται σε μεγάλο βαθμό σε αυτές που συνοδεύονται με το προτεινόμενο σύγγραμμα, καθώς και στις διαφάνειες προηγούμενων ετών του κ. Κουρκουμπέτη. 1
Κατηγορίες Δικτύων Δίκτυα = διασυνδεδεμένα συστήματα υπολογιστών Εμβέλεια: Τοπικά δίκτυα (Local Area Network, LAN), κλίμακα κτιρίου Μητροπολιτικά δίκτυα (Metropolitan Area Network, MAN), κλίμακα μιας κοινότητας (γειτονιάς) Δίκτυα ευρείας περιοχής (Wide Area Network, WAN), κλίμακα πόλης ή ηπείρου Ιδιοκτησία: Κλειστά ή ιδιόκτητα (closed, proprietary) και ανοιχτά (open) Ίντερνετ: ανοικτό Τοπολογία (διευθέτηση) κόμβων Διαύλου (bus), Π.χ. Ethernet Αστέρα (star) π.χ Ασύρματα δίκτυα με κεντρικό σημείο πρόσβασης 2
Τοπολογίες Δικτύων Δακτύλιος Δίαυλος Αστέρας Άτακτη τοπολογία Στην τοπολογία αστέρα, ένας υπολογιστής μπορεί να επικοινωνήσει με έναν άλλον μόνο μέσω του κεντρικού (hub) Στην τοπολογία διαύλου, οι υπολογιστές μπορούν και επικοινωνούν απευθείας μέσω Του διαύλου 3
Τοπολογίες δικτύων (2) Σύνδεσμοι = ενσύρματοι, ασύρματοι Ethernet 4
Τοπολογίες δικτύων (3) Ethernet, WiFi Wireless mesh networks όχι απλός υπολογιστής αλλά δικτυακός κόμβος (όχι απαραίτητα κοινός υπολογιστής αλλά εξειδικευμένη δικτυακή συσκευή) 5
Γράφος δικτύου (network graph) Κόμβος (node) ή κορυφή (vertex) Ζεύξη (link) ή ακμή (edge) Δυο κόμβοι μπορεί να συνδέονται με μια ζεύξη αν μπορούν να μεταδώσουν πληροφορία ο ένας στον άλλον 6
Πρωτόκολλα δικτύων Δίκτυο = διασκορπισμένο σύστημα Όχι κεντρικός έλεγχος Επικοινωνία με μηνύματα μόνο! Κανόνες σύμφωνα με τους οποίους λειτουργεί ένα δίκτυο Π.χ. Πρωτόκολλο που να διευθετεί το πότε θα μεταδώσει ένας κόμβος πληροφορία Πακέτο = ομάδα από bits πληροφορίας που μεταδίδονται όλα μαζί Πρωτόκολλα: Κανόνες που πρέπει να ακολουθούν οι συσκευές για να λειτουργήσουν αρμονικά και να προσφέρουν μια συγκεκριμένη υπηρεσία (σαν ομάδα) Πως να ερμηνεύσουν εισερχόμενα μηνύματα (δομή + περιεχόμενο μηνυμάτων) Πως να αντιδράσουν σε αυτά (τι να υπολογίσουν) Τι μηνύματα να στείλουν στους γείτονες 7
Πρωτόκολλα Πολλαπλής Πρόσβασης (Multiple Access Protocols) Δεδομένα προβλήματος: k PCs συνδέονται εν- ή ασύρματα Θέλουμε k PCs να στέλνουν πακέτα πληροφορίας μεταξύ τους, π.χ. ανά 2 Δεν ξέρουμε πότε θέλει κάποιο PC να μεταδώσει Πολλαπλή Πρόσβαση με ανίχνευση φέροντος (Carrier Sense Multiple Access, CSMA) κάθε τερματικό έχει την δική του διεύθυνση όλα ακούνε και στέλνουνε στο ιδιο κανάλι (ενσύρματο ή ασύρματο) Carrier Sense CS: συνέχεια ακούνε όλοι το κανάλι (carrier) και καταλαβαίνουν αν κάποιος άλλος εκπέμπει (ανίχνευση σήματος του πομπού) Multiple Access MA: οποιοσδήποτε αποφασίζει να μεταδώσει, αρκεί το κανάλι να είναι ελεύθερο (τυχαία πολλαπλή πρόσβαση αντί για κεντρικό έλεγχο) 8
Πρωτόκολλα Πολλαπλής Πρόσβασης (Multiple Access Protocols) (2) Αντιμετώπιση συγκρούσεων (ταυτόχρονων μεταδόσεων από άλλους): Τις καταλαβαίνω εγκαίρως: σταματάω να εκπέμπω και ξαναστέλνω σε τυχαίο χρόνο (collision detection CD) περίπτωση ενσύρματου Ethernet: στέλνω και ακούω ταυτόχρονα, καταλαβαίνω αμέσως σύγκρουση Δέν τις καταλαβαίνω εγκαίρως ή και καθόλου: προσπαθώ με έξυπνο τρόπο να τις αποφύγω όσο γίνεται, ζητώ επιβεβαίωση από παραλήπτη (collision avoidance CA) περίπτωση ασύρματου Ethernet, δεν μπορώ να ακούω όταν στέλνω 9
Πρωτόκολλο CSMA/CD Carrier Sense Multiple Access / Collision Detection (CSMA/CD) Χρησιμοποιείται στο ενσύρματο Ethernet Ο κενός δίαυλος δίνει το δικαίωμα για εισαγωγή νέου μηνύματος Πριν μεταδώσει, ένας κόμβος Α ακούει τον δίαυλο Αν κανείς δεν μεταδίδει, τότε μεταδίδει ο Α (συνεχίζοντας να ακούει το δίαυλο) Αν κάποιος κόμβος Β αρχίζει μετάδοση ενώ μεταδίδει ο Α, και οι δυο σταματούν για ένα τυχαίο χρονικό διάστημα (διαφορετικό ο καθένας) πριν προσπαθήσουν και πάλι 10
Το κλασικό (ενσύρματο) Ethernet Λύση του Ethernet (1970): Ενσύρματος δίαυλος Πρωτόκολλο CSMA/CD (Carrier Sense Multiple Access with Collision Detection) Κάθε συσκευή ακούει συνέχεια τον δίαυλο (κανάλι) Μόλις είναι ελεύθερος στέλνει (όταν έχει κάτι να στείλει) Εάν υπάρχει σύγκρουση (δηλ. Κάποιος άλλος μεταδίδει ταυτόχρονα), το καταλαβαίνει έγκαιρα και κάνει back-off (φάση congestion avoidance) Back-off: διαλέγει ένα τυχαίο χρόνο T να περιμένει και ξαναστέλνει Βασική υπόθεση: κάθε συσκευή μπορεί να ακούει και να μεταδίδει ταυτόχρονα ανιχνεύει έγκαιρα τυχόν σύγκρουση 11
Ασύρματο Ethernet (WiFi) Carrier Sense Multiple Access Collision Avoidance (CSMA/CA) Χρησιμοποιείται στο WiFi (ασύρματο Ethernet) Πρόβλημα του κρυμμένου τερματικού (hidden terminal problem) Το πρόβλημα του κρυμμένου τερματικού Ασύρματα τερματικά επικοινωνούν με ένα σταθμό βάσης 12
Ασύρματο Ethernet (WiFi) (2) Πρόβληματα: (α) ασύρματη κάρτα δεν μπορεί να ακούει όταν στέλνει Δεν μπορεί να ανιχνεύσει σύγκρουση (π.χ. Ο Γ και ο Β) Λύση: πρωτόκολλο CSMA/CA (Collision Avoidance) Λογική: ελαχιστοποίησε τις συγκρούσεις Πριν μεταδώσεις ξεκίνησε ένα (τυχαίο) ξυπνητήρι με χρόνο Τ που μετράει χρόνο μόνο όσο το κανάλι είναι ελεύθερο (μετρητής που μετράει ανάποδα) Όταν χτυπήσει άρχισε να μεταδίδεις. Περίμενε επιβεβαίωση (ACK). Εάν δε λάβεις επιβεβαίωση (σημαίνει ότι υπάρχει σύγκρουση), επανέλαβε το ίδιο με ξυπνητήρι 2Τ 13
Ασύρματο Ethernet (WiFi) (3) Λόγοι για τους οποίους ένας κόμβος (Α) δεν μπορεί να ανιχνεύσει σύγκρουση (με έναν κόμβο Β) Ο Β βρίσκεται εκτός εμβέλειας του Α και ο Α δεν τον ακούει Το σήμα του Β είναι αρκετά ασθενέστερο από το σήμα που μεταδίδει ο Α Ο Α δεν μπορεί να λαμβάνει και να μεταδίδει ταυτόχρονα (λόγω περιορισμών του hardware της ασύρματης κάρτας) Σημείωση: Στον αλγόριθμο που περιγράψαμε παραπάνω, η κάθε πηγή μεταδίδει την πληροφορία πακέτο-προς-πακέτο (ένα πακέτο τη φορά) Το πακέτο περιέχει το ID της πηγής και το ID του προορισμού Αν λάβει το πακέτο ο προορισμός, στέλνει ACK Τότε, η πηγή μεταδίδει το επόμενο πακέτο 14
Ασύρματο Ethernet (WiFi) (4) Πρόβληματα: (β) πρόβλημα κρυμμένου τερματικού Λύση : πλήρης αποφυγή συγκρούσεων μετάδοσης πακέτων Όπως στο CSMA/CA, ξεκίνησε έναν μετρητή Αντί να στείλεις ολόκληρο πακέτο στείλε πρώτα ένα μικρό πακέτο Request to Send (RTS) (άδεια να μεταδώσεις), περίμενε πακέτο Clear to Send (CTS) από τον κόμβο προορισμού Τα RTS, CTS ουσιαστικά λένε σε όλους τους άλλους κόμβους στην εμβέλεια των Α,Β (πλην των Α,Β) να μην μεταδώσουν (κάνουν κράτηση του χώρου) CTS περιέχει το id του κόμβου προορισμού Εάν έγινε σύγκρουση (το CTS δεν λαμβάνεται), ξεκίνησε πάλι τον μετρητή με 2Τ Συγκρούσεις πιθανές πάλι, αλλά δεν έχουν μεγάλο κόστος: το μήκος του πακέτου RTS είναι πολύ μικρό 15
Σύνδεση Δικτύων Επαναλήπτης (repeater): Επεκτείνει ένα δίκτυο Γέφυρα (bridge): Συνδέει δύο συμβατά δίκτυα Μεταγωγέας (switch): Συνδέει πολλά συμβατά δίκτυα Π.χ. Ενσύρματα και ασύρματα Ο μεταγωγέας δρα σαν γέφυρα Δρομολογητής (router): Συνδέει δύο ασύμβατα δίκτυα, δημιουργώντας ένα δίκτυο δικτύων που ονομάζεται διαδίκτυο 16
Σύνδεση Δικτύων (2) Επαναλήπτης: απλά αναπαράγει το λαμβανόμενο σήμα Γέφυρα: δρα ως φίλτρο, περνάει μόνο τα σήματα που χρειάζεται (αυτά για τα οποία η πηγή και ο προορισμός βρίσκονται σε διαφορετικά τμήματα του δικτύου) 17
Παράδειγμα με Δρομολογητές Δρομολογητές που συνδέουν δύο δίκτυα WiFi και ένα δίκτυο Ethernet, διαμορφώνοντας ένα διαδίκτυο Κάθε δρομολογητής κατευθύνει τα μηνύματα μεταξύ δικτύων προς την κατάλληλη κατεύθυνση 18
Διασύνδεση LANs, internets Κρατάμε τα LANs όπως έχουν Ο δρομολογητής (router) συνδέει 2 LANs σχηματίζοντας ένα διαδίκτυο (inter-network, internet). LAN3 Τα αρχικά δίκτυα ενός διαδικτύου διατηρούν την ατομικότητα τους και συνεχίζουν να ενεργούν ανεξάρτητα B LAN2 LAN6 LAN4 data data LAN5 L AB AB KL LAN1 K A Ταχυδρομεία Παγκόσμια εμβέλεια Τοπική εμβέλεια LAN = τοπική μεταφορική εταιρία 19
Λειτουργία δρομολογητών Κάθε δρομολογητής περιέχει έναν πίνακα προώθησης (forwarding table) που έχει πληροφορίες σχετικά με την διεύθυνση προς την οποία πρέπει να προωθηθούν Κάθε συσκευή / ΗΥ έχει μια μοναδική διεύθυνση Κάθε δρομολογητής στον πίνακά του έχει: μια λίστα από διευθύνσεις συσκευών (πιθανούς προορισμούς) στους οποίους προωθεί μηνύματα (αυτές οι συσκευές ανήκουν στο δίκτυό του) Μια λίστα με διευθύνσεις συσκευών και τις διευθύνσεις άλλων δρομολογητών στους οποίους πρέπει να προωθήσει μηνύματα προς αυτές τις συσκευές (αυτές δεν ανήκουν στο δίκτυό του) 20
Διαδιεργασιακή Επικοινωνία (interprocess communication) Επικοινωνία μεταξύ διεργασιών στον ίδιο ή σε διαφορετικούς υπολογιστές Πελάτη-Διακομιστή (client-server) Ένας διακομιστής, πολλοί πελάτες Ο διακομιστής πρέπει να εκτελείται συνεχώς Ο πελάτης ξεκινά την επικοινωνία, κάνει αιτήσεις για εργασίες Ο διακομιστής (εξυπηρετητής) τις ικανοποιεί Παραδείγματα: Πελάτες ζητούν πρόσβαση σε αρχεία που υπάρχουν σε έναν διακομιστή Μακρυνοί υπολογιστές ζητούν πρόσβαση σε έναν εκτυπωτή 21
Διαδιεργασιακή Επικοινωνία (interprocess communication) (2) Ομότιμη (peer-to-peer, P2P) Δύο διεργασίες που επικοινωνούν ως ίσες Οι ομότιμες διεργασίες μπορεί να έχουν μικρό χρόνο ζωής Στις ομότιμες διεργασίες, ένας υπολογιστής παίζει το ρόλο και του πελάτη και του εξυπηρετητή (παράγει αιτήσεις προς άλλους, και ικανοποιεί αιτήσεις άλλων) Παραδείγματα: Ανταλλαγή αρχείων με συστήματα peer-to-peer Αλληλοδραστικά παιχνίδια 22
Συστήματα ανταλλαγής αρχείων P2P Π.χ. Gnutella, Emule, BitTorrent, Κάθε αρχείο (π.χ. Τραγούδι, ταινία) είναι πολλά μικρότερα κομμάτια (στο BitTorrent, 512 KB) Κόμβοι (Η/Υ) που ανταλλάσσουν ένα συγκεκριμένο αρχείο αποτελούν ένα σμήνος (swarm) Κάθε κόμβος του σμήνους δίνει (κάνει upload) σε άλλους κομμάτια του αρχείου που διαθέτει, ενώ ταυτόχρονα παίρνει (κάνει download) από άλλους κομμάτια του αρχείου που δεν έχει Η διαδικασία ξεκινά από έναν κόμβο που διαθέτει όλο το αρχείο (κόμβος-σπόρος, seed) Κατασκευάζει ένα αρχείο.torrent που δίνει λεπτομέρειες και πληροφορίες για το αρχείο Οι υπολοιποι κόμβοι που αρχίζουν να κατεβάζουν από αλλήλους κομμάτια του αρχείου λέγονται leechers Κάθε κόμβος x δίνει σε το πολύ 4 άλλους (σε αυτούς που κατεβάζουν από τον x με το μεγαλύτερο ρυθμό) 23
Σύγκριση μοντέλων P2P και πελάτη-διακομιστή 24
Κατανεμημένα Συστήματα Συστήματα με τμήματα που εκτελούνται σε διαφορετικούς υπολογιστές Η υποδομή μπορεί να παρέχεται από τυποποιημένα εργαλεία ανάπτυξης Παράδειγμα: Πλαίσιο εφαρμογών.net από τη Microsoft 25
Κατανεμημένα Συστήματα (2) Συσταδική Υπολογιστική (Cluster Computing) Πολλοί ανεξάρτητοι Η/Υ εργάζονται από κοινού για εργασίες υπολογισμού σαν να ήταν μια μεγάλη μηχανή Υπολογιστική Πλέγματος (Grid Computing) Παρόμοια λογική Μηχανές σε διαφορετικά μέρη μπορούν να συνεισφέρουν την υπολογιστική τους ισχύ (όταν αυτή δεν χρησιμοποιείται) προς εκτέλεση περίπλοκων εργασιών, π.χ. Επεξεργασία ιατρικών δεδομένων, επιστημονικών πειραματικών δεδομένων, κ.α. Υπολογιστική Νέφους (Cloud Computing) Ίδια λογική, μεγαλύτερη κλιμάκωση Π.χ. Amazon s Elastic Cloud, Apple s icloud, Google s GoogleDocs Εκτέλεση εργασιών ή αποθήκευση δεδομένων διαφανής στον χρήστη (χωρίς να ενδιαφέρεται για τον συγκεκριμένο Η/Υ όπου γίνεται η εργασία ή η αποθήκευση δεδομένων) 26
Το Διαδίκτυο Το Διαδίκτυο: Ένα διαδίκτυο που εκτείνεται σε όλο τον κόσμο Ο αρχικός στόχος ήταν η ανάπτυξη ενός τρόπου σύνδεσης δικτύων που δεν θα επηρεαζόταν από τοπικές καταστροφές. Ξεκίνησε από την Αμερική (DARPA, Defense Advanced Research Projects Agency), 1973 Σήμερα έχει μετατραπεί από ακαδημαϊκό ερευνητικό έργο σε εμπορική προσπάθεια Είναι μια συλλογή από διασυνδεδεμένα δίκτυα μέσω δρομολογητών 27
Αρχιτεκτονική του Διαδικτύου Παροχέας Υπηρεσιών Διαδικτύου (Internet Service Provider, ISP) Επιπέδου (tier) 1: πολύ υψηλής ταχύτητας, διεθνή WANs Επιπέδου (tier) 2: περισσότερο τοπικοί ISPs πρόσβασης (access ISPs): Παρέχουν συνδεσιμότητα με το Διαδίκτυο, Π.χ. ΟΤΕΝΕΤ, ΑOL, πανεπιστήμια κλπ μέσω: Παραδοσιακής τηλεφωνίας (σύνδεση μέσω τηλεφώνου) dial-up, με modem Καλωδιακών συνδέσεων DSL (συχνότητες ως 4KHz δεσμεύονται για μετάδοση φωνής, και από εκεί και πάνω για δεδομένα) Ασύρματης σύνδεσης (μέσω Σημείων Πρόσβασης - Access Points / APs) Η περιόχή εμβέλειας ενός AP λέγεται hotspot Τερματικά συστήματα (end systems) ή hosts Κινητά τηλέφωνα, laptops, H/Y, 28
Ιεραρχία του Διαδικτύου 29
Ιεραρχία του Διαδικτύου (2) Το Διαδίκτυο (Internet) είναι ένα διαδίκτυο που εκτείνεται σε ολόκληρο τον κόσμο. Ξεκίνησε από την DARPA to 1973. Σήμερα συνδέει αρκετά δισεκατομμύρια υπολογιστές. Εταιρικό διαδίκτυο (Ιντρανετ) gateway Πρόσβαση (access) 30
Διευθυνσιοδότηση στο Διαδίκτυο: διευθύνσεις IP Η διεύθυνση ΙΡ (IP address) είναι ένα σχήμα 4 bytes που χρησιμοποιείται για τον προσδιορισμό της φυσικής διεύθυνσης μιας μοναδικής μηχανής στο Διαδίκτυο (όπως ο τηλεφωνικός αριθμός +302104539009 προσδιορίζει μια μοναδική τηλεφωνική συσκευή) Οι τελείες δεκαδικού συμβολισμού αποτελούν το πρότυπο γραφής μίας ΙΡ διεύθυνσης, χωρίζοντας τα 4 bytes της διεύθυνσης (πχ: 192.207.177.133) Το κάθε byte παίρνει τιμές από 0 ως 255 Διεύθυνση δικτύου Α: 192.207.177.1xx Περιλαμβάνει όλες τις μηχανές που έχουν IP address που αρχίζει από 192.207.177.1 (πχ 192.207.177.145) Διαδικτυακός Οργανισμός για την Εκχώρηση Ονομάτων και Αριθμών (Internet Corporation for Assigned Names and Numbers, ICANN) Εκχωρεί διευθύνσεις IP στους ISP, οι οποίοι κατόπιν εκχωρούν αυτές τις διευθύνσεις μέσα στις περιοχές τους. 31
Μνημονικά ονόματα To όνομα ενός υπολογιστή (host name) (ή που προσφέρει μια υπηρεσία) είναι ένα μνημονικό όνομα, δομημένο ιεραρχικά σε περιοχές (domains) Όνομα υπολογιστή= υπηρεσία ή παρατσούκλι υπολογιστή όνομα περιοχής (π.χ. dias.econ.aueb.gr, ftp.aueb.gr, www.in.gr) Υπηρεσία: ftp, www, smtp, imap, pop3, sip, telnet, Το όνομα περιοχής (domain name) χαρακτηρίζει μια οντότητα όχι απαραίτητα γεωγραφικά ενιαία (εταιρία, ISP, πανεπιστήμιο, δημόσιο οργανισμό,...) Ιεραρχικό: www.cs.aueb.gr Η περιοχή ανώτατου επιπέδου (top-level domain) κατηγοριοποιεί τους ιδιοκτήτες των περιοχών: Κατά χρήστη π.χ..com = εμπορική περιοχή,.edu = πανεπιστήμιο,.gov = κυβερνητικός οργανισμός Κατά χώρα π.χ..gr = περιοχή Ελλάδας. Υποπεριοχές και ονόματα ιδιόκτητων υπολογιστών: Καταχωρημένες από ICANN, πρέπει να προηγηθεί δήλωσή τους Προσδιορίζονται από τον ιδιοκτήτη της περιοχής 32
Domain Name System (DNS) Σύστημα ονομάτων περιοχών Βασικό πρόβλημα: όνομα υπολογιστή -> δικτυακή διεύθυνση (IP address) Αντίστοιχο παράδειγμα : πως βρίσκω το τηλέφωνο της υπηρεσίας ΦΠΑ της εφορίας Α ; από τον τηλεφωνικό κατάλογο! Internet: Domain Name System = σύστημα που λύνει το παραπάνω πρόβλημα DNS: κατάλογος ονομάτων περιοχών με ιεραρχική δομή Κάθε domain πρέπει να τηρεί ένα διακομιστή ονομάτων (name server) Ένας name server ενός domain γνωρίζει: Τις IP διευθύνσεις των υπολογιστών που δίνουν τις διάφορες υπηρεσίες (ftp, smtp, www, ) εντός του domain, ή έχουν κάποιο παρατσούκλι Tις IP διευθύνσεις των name server των sub-domains του (πχ ο name server του aueb.gr γνωρίζει την IP address του name server του cs.aueb.gr) 33
Λειτουργία του DNS Εύρεση του IP address για diva.eecs.berkeley.edu stanford... Root name server IP = a...... com edu gr berkeley IP = b (4) (5) (2) (3) Local name server (1) (8) Host geo... asia IP = e IP = c eecs diva IP = d (6) (7) (1): diva.eecs.berkeley.edu =? (2): berkeley.edu =? (3): berkeley.edu = b (4): eecs.berkeley.edu =? (5): eecs.berkeley.edu = c (6): diva.eecs.berkeley.edu =? (7): diva.eecs.berkeley.edu = d (8): diva.eecs.berkeley.edu = d 34
Συνοπτικά Διεύθυνση IP: σχήματα των 32 ή 128 bit που συχνά αναπαριστάνονται σε δεκαδικό συμβολισμό με τελείες Μνημονικές διευθύνσεις: Ονόματα περιοχών (domain names) Περιοχές ανωτάτου επιπέδου (top-level domains) Σύστημα ονομάτων περιοχών (DNS) Διακομιστές ονομάτων (name servers) Αναζήτηση DNS (DNS look-up) 35
Παραδοσιακές Διαδικτυακές Εφαρμογές Ηλεκτρονική αλληλογραφία (email) Ο διακομιστής αλληλογραφίας (mail server) της περιοχής συλλέγει την εισερχόμενη αλληλογραφία και μεταδίδει την εξερχόμενη αλληλογραφία Ο διακομιστής αλληλογραφίας παραδίδει την εισερχόμενη αλληλογραφία στους πελάτες μέσω των πρωτοκόλλων POP3 ή IMAP Πρωτόκολλο Μεταφοράς Αρχείων (FTP) Κλασικό μοντέλο πελάτη-διακομιστή (client-server) Telnet και Secure Shell (SSH) Πρόσβαση σε μακρινό υπολογιστή 36
E-mail Μεταφορά μηνυμάτων μεταξύ mail servers: SMTP (Simple Mail Transfer Protocol) Πρόσβαση σε μηνύματα: POP3 (Post Office Protocol 3) ή IMAP (Internet Mail Access Protocol) POP3: τα μηνύματα σώζονται τοπικά, στον υπολογιστή του χρήστη IMAP: τα μηνύματα σώζονται στον mail server 37
user agent (Alice) (MS Outlook) Ηλεκτρονικό ταχυδρομείο mail to jane@ntua.gr from alice@aueb.gr Αποστολή email SMTP mail server 25 smtp.aueb.gr Port 25 Αποστολή e-mail: Simple Mail Transfer Protocol SMTP Πρόσβαση στον mail server mail server 25 143 IMAP smtp.ntua.gr, imap.ntua.gr Port 25 port 143 user agent (Jane) (Firefox) Λήψη email μέσω: POP3: port 110 IMAP: port 143 http: ένας browser απαιτείται για αποστολή και λήψη (webmail, hotmail, ) 38
File Transfer Protocol ftp client control connection port 21 data connection port 20 (one per file) ftp server 21 20 τοπικό σύστημα αρχείων μακρινό σύστημα αρχείων Control: user id, list, chdir, put, get,... 39
Πιο Πρόσφατες Εφαρμογές Πρωτόκολλο Διαδικτυακής Φωνητικής Επικοινωνίας (Voice over IP, VoIP) Μοντέλο P2P, π.χ. skype Διαδικτυακό ραδιόφωνο (Internet Radio) Μονο-εκπομπή (uni-cast): μετάδοση από μια πηγή σε έναν προορισμό Πολλαπλή Μονοεκπομπή-N (N-unicast): η πηγή μεταδίδει την ίδια πληροφορία παράλληλα σε Ν προορισμούς Σημαντικός φόρτος για τον εκπομπό και για τους κόμβους κοντά του που πρέπει να προωθούν τα μηνύματα Πολυεκπομπή (multi-cast): το πρόβλημα της μετάδοσης πληροφορίας μεταφέρεται στους δρομολογητές 40
Πολυ-εκπομπή (multi-cast) Η πηγή μεταδίδει το ίδιο μήνυμα σε πολλούς προορισμούς μέσω μιας διεύθυνσης (διεύθυνση πολυ-εκπομπής) η οποία αντικατοπτρίζει τους πολλούς προορισμούς Σύνολο προορισμών στους οποίους μεταδίδεται η ίδια πληροφορία: ομάδα πολυ-εκπομπής (multi-cast group) Η πηγή μεταδίδει μόνο μια φορά! Οι δρομολογητές αναγνωρίζουν τη διεύθυνση και προωθούν το μήνυμα ανάλογα για να φτάσει στους αντίστοιχους προορισμούς Δημιουργώντας αντίγραφα της πληροφορίας που λαμβάνουν Όταν κάποιος θέλει να ενταχθεί στην ομάδα, το δηλώνει στον κοντινότερο δρομολογητή ο οποίος με τη σειρά του προωθεί το αίτημα περαιτέρω σε άλλους δρομολογητές 41
O Παγκόσμιος Ιστός Ο Παγκόσμιος Ιστός (World Wide Web) είναι ένα διαδίκτυο που διαδίδει έγγραφα υπερκειμένου (hypertext) (ή υπερμέσα, hypermedia). Δεκέμβριος 1990: Tim-Berners-Lee (πατέρας του web) Τα έγγραφα υπερκειμένου στον Παγκόσμιο Ιστό ονομάζονται και ιστοσελίδες (web pages) Οι ιστοσελίδες συνδέονται μεταξύ τους με υπερσυνδέσμους (hyper-links) H τοποθεσία Ιστού (Web site) είναι μία συλλογή στενά συσχετισμένων ιστοσελίδων. Συνήθως είναι αποθηκευμένες όλες στην ίδια διεύθυνση ΗΤΜL: η γλώσσα σήμανσης των έγγραφων υπερκειμένου. Ο Παγκόσμιος Ιστός διαδίδει και άλλα στοιχεία και ψηφιακά μέσα Παράδειγμα : εικόνες 42
Υλοποίηση Ιστού O διακομιστής Ιστού (Web server) παρέχει πρόσβαση στα έγγραφα της μηχανής του σύμφωνα με τις αιτήσεις των πελατών. Ο φυλλομετρητής (browser) επιτρέπει την πρόσβαση του χρήστη στις ιστοσελίδες. Το Πρωτόκολλο Μεταφοράς Υπερκειμένου (Hyper-Text Transfer Protocol, HTTP) είναι το πρωτόκολλο επικοινωνίας που μεταφέρει έγγραφα υπερκειμένου μεταξύ φυλλομετρητή και διακομιστή Ιστού. Ο ενιαίος εντοπιστής πόρων (Uniform Resource Locator, URL) είναι η μοναδική διεύθυνση ενός εγγράφου στο δίκτυο 43
Ένα τυπικό URL 44
Μορφή εγγράφου υπερκειμένου Κωδικοποιείται ως έγγραφο κειμένου Περιέχει ετικέτες επικοινωνίας με το φυλλομετρητή Πληροφορίες που χρειάζεται ο φυλλομετρητής για να εμφανίσει σωστά την σελίδα στον χρήστη Εμφάνιση <h1> για ξεκίνημα επικεφαλίδας επιπέδου 1 <p> για ξεκίνημα νέας παραγράφου Σύνδεση με άλλα έγγραφα και περιεχόμενο <a href =... > Εισαγωγή εικόνων <img src =... > 45
Μια απλή ιστοσελίδα 46
Μια απλή ιστοσελίδα (2) 47
Μια βελτιωμένη ιστοσελίδα 48
4-49 Μια βελτιωμένη ιστοσελίδα (2)
Γράφος web (web graph) Κόμβος (node) = μια ιστοσελίδα Δυο ιστοσελίδες i και j συνδέονται με μια ζεύξη αν υπάρχει link (αναφορά) από την i στην j 50
Είναι μια μετρική σύμφωνα με την οποία η Google κατατάσσει τις ιστοσελίδες όταν τις εμφανίζει μετά από μια αναζήτηση ενός χρήστη Μια ιστοσέλίδα i έχει μεγάλη τιμή PageRank αν άλλες ιστοσελίδες j με μεγάλο PageRank «δείχνουν» στην i Όσο ψηλότερο Page Rank έχει μια σελίδα, τόσο ψηλότερα εμφανίζεται στα αποτελέσματα αναζήτησης Page Rank 51
Επεκτάσιμη Γλώσσα Σήμανσης (XML) XML (extensive Markup Language): Μια γλώσσα για κατασκευή γλωσσών σήμανσης όπως η HTML για συστηματική αναπαράσταση / κωδικοποίηση άλλης μορφής πληροφορίας (πέρα από κείμενο, π.χ. φύλλα με νότες μουσικής) σαν κείμενο Υπερσύνολο της HTML Απόγονος της SGML (Standard Generalized Markup Language) H XML χρησιμοποιεί ειδικά semantic tags (σημασιολογικές ετικέτες) Π.χ. <ingredient>.. </ingredient> Ανοίγει το δρόμο για τον Παγκόσμιο Σημασιολογικό Ιστό (semantic web) Κάθε πληροφορία συνοδεύεται από την σημασία της και είναι κάτι παραπάνω από ένα σύνολο από λέξεις Πολύ πιο αποδοτική αναζήτηση (search) στο web, για περιεχόμενο με συγκεκριμένη σημασία 4-52
Δραστηριότητες Πελάτη και Διακομιστή Δραστηριότητες πελάτη: Παραδείγματα: μικροεφαρμογές java, javascript, Macromedia Flash Προγράμματα γραμμένα σε javascript εντός του κώδικα HTML Ο φυλλομετρητής αντλεί πληροφορίες που χρειάζεται για την εμφάνιση του αρχείου Δραστηριότητες διακομιστή: Διασύνδεση Κοινής Πύλης (Common Gateway Interface, CGI) Σύνολο προγραμμάτων με τα οποία οι πελάτες ζητούν την εκτέλεση κάποιων προγραμμάτων στον διακομιστή Μικροεφαρμογές διακομιστή (servlets) Personal HyperText Processor (PHP): πλαίσιο ανοικτού κώδικα (open-source) για υλοποίηση λειτουργιών στην πλευρά του διακομιστή 53
Πρωτόκολλα Διαδικτύου: Παράδειγμα ταχυδρόμησης πακέτου 54
Επίπεδα Λογισμικού Διαδικτύου Πρωτόκολλο Διαδικτύου: προσδιορίζει πως μεταφέρεται η πληροφορία από μια μηχανή σε μια άλλη και μέσα στο Διαδίκτυο Προσέγγιση οργανωμένη σε επίπεδα (layers) Κάθε επίπεδο είναι μια μονάδα λογισμικού με μια συγκεκριμένη λειτουργία Επίπεδο Εφαρμογής (Application Layer): Κατασκευάζει ένα μήνυμα με διεύθυνση Επίπεδο Μεταφοράς (Transport Layer): Τεμαχίζει το μήνυμα σε πακέτα Επίπεδο Δικτύου (Network Layer): Χειρίζεται τη δρομολόγηση μέσω του Διαδικτύου Επίπεδο Συνδέσμου (Link Layer): Χειρίζεται την πραγματική μετάδοση των πακέτων 55
Eπίπεδα Διαδικτύου Κάτω από το επίπεδο συνδέσμου, υπάρχει και το Φυσικό Επίπεδο (Physical Layer) όπου η πληροφορία μεταδίδεται και νοείται ως bits 56
Πορεία ενός μηνύματος στο Διαδίκτυο 57
Διαδικτυακά πρωτόκολλα Web TCP UDP data AB IP data AB KL Ethernet 58
Επίπεδο Μεταφοράς και Δικτύου Επίπεδο Μεταφοράς: χωρίζει την πληροφορία σε πακέτα και τα δίνει στο επίπεδο δικτύου Το κάθε πακέτο νοείται από εδώ και πέρα ανεξάρτητα από τα άλλα πακέτα Π.χ. Πακέτα που έχουν τον ίδιο προορισμό μπορεί να ακολουθήσουν διαφορετικές διαδρομές προς αυτόν Επίπεδο Δικτύου: Δρομολόγηση (routing) Κάθε ενδιάμεσος δρομολογητής έχει έναν πίνακα με τις διευθύνσεις άλλων δρομολογητών Μπορεί να έχει και άλλες πληροφορίες, π.χ. πόση καθυστέρηση έχει καταμετρηθεί από αυτόν σε έναν άλλον δρομολογητή προωθεί τα πακέτα και τελικά καθορίζει το μονοπάτι που αυτά θα ακολουθήσουν στο Διαδίκτυο 59
Δρομολόγηση 60
Δρομολόγηση (2) Προτιμούμενη διαδρομή προς το Α: [Υ,Χ,Ζ,Α], καθυστέρηση: 15 Y 20 2 Χ 6 7 Α Ζ Προτιμούμενη διαδρομή προς το Α: [Ζ,Α], καθυστέρηση: 7 61
Διασύνδεση με δρομολογητή (1/2) s,r1 S,D S s a Ε1 data f k Ethernet E2 r1 Ε2 r2 Ethernet E1 Router R Πίνακας Δρομολόγησης Routing table: D, H: E3,... S: E1,... r3 r3,d S,D data Ε3 h Ethernet E3 Κάθε συσκευή έχει MAC διεύθυνση (π.χ. d) και network διεύθυνση (D) Κάθε δρομολογητής είναι μέρος ενός ή περισσοτέρων LANs 62 d H D
Διασύνδεση με δρομολογήτή (2/2) s,r1 S,D data S s f Ε1 k a Ethernet E1 w1 Router W r1 E2 Router R Routing table: D, H: W:E2,. S: E1,... w2 w4 r2 w3 r3 w3,d S,D data r2, w4 S,D data Ε3 h Ethernet E3 d H 63 D
Επίπεδο Συνδέσμου(link layer) Επίπεδο Δικτύου προσδιορίζει τον επόμενο κόμβο Επίπεδο Συνδέσμου: έχει την ευθύνη για την μετάδοση του πακέτο στον επόμενο κόμβο (δεν ενδιαφέρεται για το που θα πάει τελικά) Παράδειγμα πρωτοκόλλου σε επίπεδο συνδέσμου: CSMA/CA, CSMA/CD, Aloha Aloha: πιο απλό από CSMA/CA, CSMA/CD: όταν ένας εκπομπός έχει κάποιο πακέτο, το μεταδίδει (δεν ακούει αν το κανάλι είναι κατειλλημένο όπως στο CSMA/CD) Το επίπεδο Συνδέσμου στη λήψη ελέγχει αν το πακέτο έχει ληφθεί σωστά Αν όχι, ζητά επαναμετάδοση από τον εκπομπό 64
Σύνδεση εφαρμογών σε θύρες (ports) client C: N3.n port n N3 Εφαρμογές client-server IP address N1 N2 server A: διεύθυνση = N1.k port k server Β: διεύθυνση = N2.m port m Θύρα (port): είναι κατασκευή λογισμικού που είναι συγκεκριμένο για συγκεκριμένη εφαρμογή ή διεργασία και χρησιμεύει σαν σημείο επικοινωνίας μεταξύ μακρυνών υπολογιστών και ως αναγνωριστικό για την εκτέλεση της εφαρμογής 65
Σύνδεση με εφαρμογές client 1 2 80 Πλήρης διεύθυνση διαδικασίας = [IP address, port #] Web server ports (θύρες = εσωτερικά γραμματοκιβώτια γραφείων ) server A: διεύθυνση = N1,k IP address N1 client C: N3,n port k = υποδιεύθυνση IP port n κεντρικό γραμματοκιβώτιο κτιρίου = IP address N3 IP network N2 server Β: διεύθυνση = N2,m port m Servers: ακούν σε γνωστές θύρες Clients: συνδέονται στους servers, παίρνουν πληροφορία, την παρουσιάζουν στους χρήστες Αφού ληφθεί το μήνυμα στο επίπεδο μεταφοράς στον προορισμό, αυτό το Προωθεί στην κατάλληλη θύρα στο επίπεδο εφαρμογής (π.χ. Θύρα 80 για HTTP) 66
Πακέτο Πρωτοκόλλων TCP/IP Standard του OSI (Open systems Interconnection): παλαιότερα, είχε 7 επίπεδα Τώρα έχουν απλοποιηθεί σε 5 (προηγούμενες διαφάνειες) Πρωτόκολλα (standard) για το Επίπεδο μεταφοράς Transmission Control Protocol (TCP) User Datagram Protocol (UDP) Επιλογή ενός από τα 2: ανάλογη της επιλογής ταχυδρομικής υπηρεσίας Πρωτόκολλα (standard) για το Επίπεδο δικτύου Internet Protocol (IP), IPv4 και IPv6 67
Επιλογή μεταξύ TCP και UDP 68
Σύνδεση εφαρμογών με TCP, UDP Τύποι συνδέσεων: UDP, ΤCP : έλεγχος ροής πακέτων μεταξύ διευθύνσεων προγραμμάτων Αποτέλεσμα: «μικρο-ροές» χρειάζεται να τις ξεχωρίζουμε Α1 Β1 Β2 Α2 TCP/UDP header + Application ids Ν1 Ν2 Ν1,Ν2 B1,B2 data Ροή TCP Ν1,Ν2 A1,A2 data Ροή IP 69
Διαφορές TCP και UDP Αποκατάσταση σύνδεσης πριν την μετάδοση TCP: πριν την μετάδοση, το επίπεδο μεταφοράς της πηγής αποστέλλει μήνυμα προς το επίπεδο μεταφοράς του προορισμού και περιμένει επιβεβαίωση (acknowledgment, ACK) UDP: δεν κάνει κάτι αντίστοιχο, απλά μεταδίδει UDP = πρωτόκολλο χωρίς σύνδεση, connectionless Έλεγχος λήψης στον προορισμό TCP: πακέτα επιβεβαίωσης (ACK) από τον προορισμό TCP: Αν ένα πακέτο δεν έχει επιβεβαιωθεί, επαναμετάδοση (retransmission) από την πηγή UDP: δεν κάνει επαναμεταδόσεις (όχι αξιόπιστο πρωτόκολλο) 70
Διαφορές TCP και UDP (2) Έλεγχος Ροής (flow control) TCP: αυξομείωση ρυθμού μετάδοσης πακέτων από την πηγή προς διευκόλυνση του προορισμού Αν π.χ. ο προορισμός δεν επιβεβαιώνει τα αποσταλθέντα πακέτα UDP: δεν παρέχει έλεγχο ροής Έλεγχος συμφόρησης (congestion control) TCP: αυξομείωση ρυθμού μετάδοσης πακέτων από την πηγή για αντιμετώπιση συμφόρησης κίνησης σε κάποιο σημείο μεταξύ πηγής-προορισμού Σήμα ειδοποίησης για συμφόρηση (congestion notification signal) Αν π.χ. ένας κόμβος στείλει τέτοιο μήνυμα, ή αν η μετρούμενη καθυστέρηση λήψης είναι μεγάλη, μείωσε το ρυθμό μετάδοσης πακέτων στην πηγή UDP: δεν παρέχει έλεγχο συμφόρησης UDP: αποδοτικό, αν το επίπεδο εφαρμογής μπορεί να αντιμετωπίσει τα παραπάνω ζητήματα Και αν η εφαρμογή είναι ευαίσθητη σε χρόνο (time-sensitive), δηλ. χρειάζεται να διεκπεραιωθεί γρήγορα, π.χ. DNS αναζήτηση με UDP Email (όχι ευαίσθητο σε χρόνο): με TCP 71
Σενάριο συμφόρησης κίνησης 2 εκπομποί, 2 προορισμοί Host A λ in : original data λ out 1 δρομολογητής, μεγάλο μέγεθος buffer Host B unlimited shared output link buffers Υπάρχει ένα μέγιστο ποσό πληροφορίας που μπορεί να σταλεί σε μια ζεύξη Χωρητικότητα ζεύξης C Καθυστέρηση στην λήψη πακέτων λόγω συμφόρησης Μέγιστη δυνατή ρυθμοαπόδοση (throughput) 72
Σενάριο συμφόρησης κίνησης (2) 1 δρομολογητής, πεπερασμένο μέγεθος buffer Χαμένα πακέτα επαναμεταδίδονται Host A λ in : ρυθμός δεδομένων λ out Host B finite shared output link buffers 73
Σύνδεση εφαρμογών με TCP ή UDP A πρόγραμμα S1 S2 π i N, M : αριθμός θύρας : διεύθυνση π1 π2 π3 Ν π1 π2 π3 Μ Θύρες = Γραμματοκιβώτια για χρήση εφαρμογών Τύποι: TCP, UDP Έλεγχος ροής (Flow Control) : TCP : UDP N,Μ π1, π2 data Κεντρικό γραμματοκιβώτιο 74
Έλεγχος ροής: TCP data Αλγόριθμος: στέλνε όταν παραλάβεις επιβεβαίωση μην στέλνεις εάν k > W διάλεγε συνέχεια το σωστό W ξαναστείλε τα χαμένα πακέτα k TCP modules IP = πακέτα δεδομένων = επιβεβαιώσεις (acknowledgements, ACKs) k = # μη επιβεβαιωμένων πακέτων W: παράθυρο TCP RTT: round-trip time R = RTT 0 1 2 3 4 χρόνος W RTT 75
Έλεγχος Ροής: TCP (2) Round-trip time : χρόνος μέχρι να πάει ένα πακέτο στον προορισμό και να επιστρέψει στην πηγή επιβεβαίωση (ack) από τον προορισμό Παράθυρο TCP (TCP window) W: είναι ο αριθμός των πακέτων που μεταδίδονται Έστω τα πακέτα αριθμούνται 0,1,2,... k = (Αριθμός τελευταίου πακέτου που στάλθηκε) (Αριθμός τελευταίου πακέτου που επιβεβαιώθηκε) Στέλνε όσο k W, μη στέλνεις αν k > W (και ξαναστείλε τα μη επιβεβαιωμένα πακέτα) Αλλάζοντας το W, αυξομειώνω το ρυθμό μετάδοσης πακέτων W μικρό: Σημαίνει ότι σταματώ την μετάδοση πιο συχνά W μεγάλο: σημαίνει ότι σταματώ τη μετάδοση πιο σπάνια Ρυθμός μετάδοσης πακέτων = W / (RTT) (πακέτα ανά μονάδα χρόνου) 76
Πρωτοκόλλο IP Πρωτόκολλα (standard) για το Επίπεδο δικτύου IP: πρωτόκολλο δρομολόγησης Προώθηση (forwarding) πακέτων στον επόμενο κόμβο Τελικά, δρομολόγησή τους (routing) στον προορισμό Πρέπει να μπορεί να αλλάζει το μονοπάτι σε περίπτωση ανάγκης Κάθε φορά που μια πηγή στέλνει ένα πακέτο, βάζει σε αυτό: Διεύθυνση αποστολέα και προορισμού Δεδομένα Μετρητής αλμάτων (hop count) ή χρόνος ζωής (Time to Live, TTL) πακέτου Είναι ο μέγιστος αριθμός φορών που μπορεί να προωθηθεί ένα πακέτο πριν φτάσει στον προορισμό του Περιορίζει την άσκοπη κυκλοφορία πακέτων στο δίκτυο για πάντα Internet Protocol (IP), IPv4 και IPv6 IPv4: διευθύνσεις 32-bit IPv6: διευθύνσεις 128-bit: 8 ομάδες των 4 δεκαεξαδικών ψηφίων χωρισμένες με : Π.χ. 2001:0db8:85a3:0042:1000:8a2e:0370:7334. 77
Επιθέσεις και Ασφάλεια Υπολογιστών Κακόβουλο λογισμικό: Ιοί (viruses): λογισμικό που εισέρχεται σε προγράμματα που υπάρχουν στον Η/Υ, προκαλεί διάφορες δυσλειτουργίες Σκουλήκια (worms): πρόγραμμα που ταξιδεύει στο δίκτυο, εγκαθίσταται σε Η/Υ και προωθεί αντίγραφά του σε άλλους Η/Υ Δούρειοι ίπποι (Trojan horses): πρόγραμμα που εισέρχεται στον Η/Υ μεταμφιεσμένο σε κάποιο επιθυμητό λογισμικό Λογισμικό υποκλοπής (spyware ή sniffing software): λογισμικό που συλλέγει πληροφορίες για την δραστηριότητα σε έναν Η/Υ και τις αναφέρει στο αφεντικό του Λογισμικό ψαρέματος (phishing): απόκτηση πληροφορίας με το να ζητάς ρητά (π.χ. Μέσω δελεαστικών emails) Άρνηση υπηρεσιών (Denial of Service): υπερφόρτωση ενός server με πολλά (ψεύτικα) μηνύματα αίτησης από άλλα μηχανήματα Ενοχλητική ηλεκτρονική αλληλογραφία (spam) 78