ΗΜΥ 460/654: Προχωρημένα Δίκτυα Υπολογιστών. Εισαγωγή Διδάσκων: Γ. Έλληνας και Χρίστος Παναγιώτου
Γιατί Δίκτυα Υπολογιστών; Επιχειρησιακές Εφαρμογές Π.χ., εξ αποστάσεως πρόσβαση σε βάσεις δεδομένων. Εξοικονόμηση χρημάτων από τον καταμερισμό πόρων (research sharing) Βελτίωση αξιοπιστίας (reliability) Οικιακές Εφαρμογές Π.χ. πρόσβαση στο Διαδίκτυο Κινητοί Χρήστες Πρόσβαση σε πληροφορίες μέσω κινητού τηλεφώνου ή φορητού υπολογιστή. Επικοινωνιακό μέσο Ηλεκτρονικό ταχυδρομείο (Email), news-groups, chat-groups, instant messaging, τηλεδιάσκεψη (teleconferencing)
Πρόβλημα Θέλουμε να κτίσουμε ένα δίκτυο το οποίο Θα μπορεί να μεγαλώνει σε παγκόσμια κλίμακα (επεκτάσιμο - scalable). Θα μπορεί να υποστηρίζει ένα εύρος εφαρμογών από μεταφορά αρχείων (file transfer), τηλεδιάσκεψη (teleconferencing), ηλεκτρονικό εμπόριο (electronic commerce), ψηφιακές βιβλιοθήκες (digital libraries) Πως σχεδιάζουμε ένα τέτοιο δίκτυο (υλικό και λογισμικό hardware and software); Ο στόχος του μαθήματος είναι να: Μελετήσουμε πρωτόκολλα επικοινωνίας Μελετήσουμε και αναλύσουμε συστήματα ουρών Μελετήσουμε και αναλύσουμε συστήματα ελέγχου ροής και συμφόρησης Μελετήσουμε πρωτόκολλα και τεχνικές δρομολόγησης και σηματοδοσίας
Τι θα καλύψουμε; D. Bertsekas and R. Gallager, Data Networks Περίληψη μαθήματος Επιπρόσθετες Πληροφορίες www.eng.ucy.ac.cy/christos/courses/ece460_ece6 54
Απαιτήσεις από τα δίκτυα Ποιοι θέτουν τις απαιτήσεις και τους περιορισμούς του δικτύου; Προγραμματιστές (application programmers) θέλουν υπηρεσίες τις οποίες θα αξιοποιήσουν οι εφαρμογές τους, π.χ. παράδοση πακέτων μέσα σε δεδομένα χρονικά πλαίσια ή αξιόπιστη παράδοση πακέτων (reliable delivery). Σχεδιαστές (network designers) επιδιώκουν παραγωγική χρήση των πόρων του δικτύου Παροχέας υπηρεσιών (network provider) επιδιώκει δίκτυο το οποίο είναι εύκολο στη λειτουργία και στη συντήρηση.
Απαιτήσεις: Συνεκτικότητα (connectivity) Επικοινωνία μεταξύ συνόλου υπολογιστών Βασικές δομικές μονάδες Κόμβοι Υπολογιστές (computers, hosts, servers), δρομολογητές (routers), μεταγωγείς (switches) κλπ. Ζεύξεις Ομοαξονικές, ασύρματες, οπτικές κλπ. Σημείο προς σημείο (point-to-point) ή πολλαπλής πρόσβασης (multiple access) Σημείο προς σημείο Πολλαπλής πρόσβασης
Απαιτήσεις: Συνεκτικότητα (connectivity) Δίκτυα και Διαδίκτυα Δύο ή περισσότεροι συνδεδεμένοι κόμβοι Δύο ή περισσότερα συνδεδεμένα δίκτυα
Απαιτήσεις: Αποδοτικός καταμερισμός πόρων (resource sharing) Πολυπλεξία με διαίρεση χρόνου (Synchronous Time Division Multiplexing) Πολυπλεξία με διαίρεση συχνότητας (Frequency Division Multiplexing) L1 R1 L2 Switch 1 Switch 2 R2 L3 R3
Απαιτήσεις: Αποδοτικός καταμερισμός πόρων (resource sharing) Στατιστική πολυπλεξία (Statistical multiplexing) Κατανομή χρονο-διαστημάτων (time slots) βάση της ζήτησης
Απαιτήσεις: Υποστήριξη κοινών υπηρεσιών Κανάλια που να μπορούν να παρέχουν υπηρεσίες όπως Αξιόπιστη επικοινωνία (reliable communication) Επικοινωνία με μικρή καθυστέρηση (low delay) Το κανάλι κρύβει την πολυπλοκότητα του δικτύου από τους προγραμματιστές Host Host Application Host Application Channel Host Host
Απαιτήσεις: Αποδοτικότητα (Performance) Εύρος Ζώνης (bandwidth, throughput) Hz vs. bps Καθυστέρηση (latency or delay) Latency= Propagation + Transmission + Queue Propagation = Distance / Speed of light Transmission = Packet size / Bandwidth Throughput = TransferSize / TransferTime TranferTime = RTT + TransferSize / Bandwidth Απώλεια πακέτων (packet loss) Διακύμανση καθυστέρησης (jitter)
Παράδειγμα 1 Δύο υπολογιστές βρίσκονται σε απόσταση 100Km. Πόσος χρόνος χρειάζεται για τη μετάδοση 1ΜΒ από τον ένα στον άλλο δεδομένου ότι συνδέονται με ζεύξη χωρητικότητας 100Mbps στην οποία ηλεκτρομαγνητικά κύματα ταξιδεύουν με ταχύτητα 3x10 8 m/s t 0 = 0 A Αίτημα B t + t 0 propagation t 5 10 m = = 333μs 3 10 m/ s propagation 8 RTT = 2t = 666μs propagation t0 + RTT t0 + ttransmission + tpropagation t transmission 8 6 8 10 b = = 10 b/ s 80ms t0 + RTT + ttransmission 6 8 10 b Throughput= 99Mbps 80.667ms
Παράδειγμα 2 Δύο υπολογιστές βρίσκονται σε απόσταση 100Km. Πόσος χρόνος χρειάζεται για τη μετάδοση 1ΚΒ από τον ένα στον άλλο δεδομένου ότι συνδέονται με ζεύξη χωρητικότητας 100Mbps στην οποία ηλεκτρομαγνητικά κύματα ταξιδεύουν με ταχύτητα 3x10 8 m/s t 0 = 0 A Αίτημα B t + t 0 propagation t 5 10 m = = 333μs 3 10 m/ s propagation 8 RTT = 2t = 666μs propagation t0 + RTT t0 + ttransmission + tpropagation t transmission 8 3 8 10 b = = 10 b/ s 80μs t0 + RTT + ttransmission 3 8 10 b Throughput= 11Mbps 747μs
Απαιτήσεις: Αποδοτικότητα (Performance) Γινόμενο καθυστέρησης Εύρος Ζώνης (Delay Bandwidth product) Ο αριθμός των διαδίκων ψηφίων (bits) που χωρούν μέσα στο κανάλι. (Amount of data in flight or in the pipe ) Παράδειγμα: 100ms x 45Mbps = 560KB Delay Bandwidth
Μοντέλα Μεταγωγής Μεταγωγή Κυκλώματος (circuit switching) Πρώτα εξασφαλίζεται και προκρατείται (reserved) φυσική σύνδεση μεταξύ αποστολέα και παραλήπτη Μετά ξεκινά η μετάδοση των πληροφοριών Το κύκλωμα που συνδέει το αποστολέα και παραλήπτη χρησιμοποιείται αποκλειστικά για την επικοινωνία των δύο. Παρέχει προκαθορισμένη ποιότητα υπηρεσίας Μη αποδοτική χρήση των πόρων του δικτύου Μεταγωγή Πακέτου (packet switching) Δεν υπάρχει απευθείας σύνδεση μεταξύ αποστολέα και παραλήπτη. Ο αποστολέας ξεκινά αμέσως να στέλνει πληροφορίες. Κάθε πακέτο «βρίσκει το δρόμο του» μέσα στο δίκτυο Πιοαποδοτικήχρήσητωνπόρωντουδικτύου. Δύσκολη η παροχή εγγυήσεων για την ποιότητα υπηρεσίας.
Μοντέλα Μεταγωγής Μεταγωγή Πακέτου (packet switching) Υπάρχει καθυστέρηση σε κάθε κόμβο λόγω της ενδιάμεσης μνήμης που υπάρχει σε κάθε κόμβο Με τα δίκτυα μεταγωγής πακέτου πρέπει να μπορούμε να παρέχουμε σωστή, γρήγορη και αξιόπιστη παράδοση των πακέτων στον προορισμό. Γιαναταπετύχουμεόλααυτάχρησιμοποιούμε αρχιτεκτονικές επικοινωνίας με στρώματα (layered communication architectures (protocols)) Εικονική Μεταγωγή Κυκλώματος (virtual circuit switching)
Πρωτόκολλο (protocol) Η Συμφωνία ανάμεσα σε δύο επικοινωνούντα μέρη, ως προς τον τρόπο με τον οποίο θα προχωρήσει η επικοινωνία. (Codified rules of procedure)
Μοντέλο Πελάτη-Εξυπηρετητή (Client- Server model) Αίτημα Απάντηση
Μοντέλο Επικοινωνίας Ομότιμων Κόμβων (Peer-to-peer Communication) Ομότιμοι κόμβοι
Τι μπορεί να πάει λάθος; Λάθη στο φυσικό επίπεδο (bit errors) Απώλεια πακέτων εξ αιτίας συμφόρησης (congestion and buffer overflow) Απώλεια ζεύξεων ή κόμβων Πακέτα φτάνουν στον δέκτη καθυστερημένα Πακέτα φτάνουν στον δέκτη εκτός σειράς (out-oforder) Κάποιος τρίτος υποκλέπτει ή παρεμβαίνει στην συνδιαλλαγή μεταξύ δύο κόμβων.
Αρχιτεκτονική Δικτύου Στρώματα ή Επίπεδα Διεπαφή μεταξύ Στρωμάτων Στοίβα πρωτοκόλλων (protocol stack)
Γιατί Επίπεδα; Καταμερισμός του πολύπλοκου προβλήματος σε μικρότερα, πιο απλά προβλήματα. Κάθε επίπεδο είναι υπεύθυνο για την αντιμετώπιση κάποιων προβλημάτων που μπορεί να προκύψουν. Κάθε επίπεδο κρύβει την πολυπλοκότητα του από τα υπόλοιπα επίπέδα και τους χρήστες. Καλύτερη δομή αποτελούμενη από πολλά στοιχεία (modular). Μιακαινούργιαυπηρεσίαμπορείναυλοποιηθεί μετατρέποντας μόνο ένα επίπεδο (στρώμα).
Παραδείγματα Στοίβας Πρωτοκόλλων Host 1 Host 2 File application Digital library application Video application File application Digital library application Video application Data Data RRP Data RRP Data Πρωτόκολλο Αιτήματος- Απάντησης ΗΗP RRP Data ΗΗP RRP Data ΗΗP RRP Data Πρωτόκολλο ροής (streaming)
Παράδειγμα Ροής Μηνυμάτων μεταξύ Στρωμάτων Επικεφαλίδα (Header) Τεμαχισμός Μηνύματος
Μοντέλο Αναφοράς: OSI (Open System Interconnection) Εφαρμογής Παρουσίασης Συνόδου Μεταφοράς Δικτύου Ζεύξης Φυσικό
Μοντέλο OSI Φυσικό στρώμα (Physical Layer) Μετάδοση ακατέργαστων bits (0 ή 1) από τον αποστολέα στον δέκτη. (Gets the bits across) Στρώμα Ζεύξης Δεδομένων (Data Link Layer) Τεμαχίζει τα δεδομένα σε πλαίσια δεδομένων (frames) Επιβεβαιώνει ότι η επικοινωνία του Φυσικού στρώματος είναι αξιόπιστη (Πλαίσια επαλήθευσης -acknowledgement frames) Ανίχνευση και επιδιόρθωση λαθών (Error detection and correction). Έλεγχος ροής (flow control). (Provides correct error-free transmission of a block of data over a link)
Μοντέλο OSI Στρώμα Δικτύου (Network Layer) Δρομολόγηση πακέτων Έλεγχος συμφόρησης Έκδοση λογαριασμών (billing) (Carries out the basic function of routing. It also takes care in many cases congestion control) Στρώμα Μεταφοράς (Transport Layer) Τεμαχίζει τα μηνύματα σε μικρότερες μονάδες Επιβεβαιώνει ότι όλες οι μονάδες φτάνουν στο άλλο άκρο και επανασυναρμολογεί το μήνυμα. Πολυπλεξία συνδέσεων/συρμών Υπηρεσίες μεταφοράς πακέτων από άκρο σε άκρο (end-to-end). (π.χ., αξιόπιστη μεταφορά δεδομένων στον δέκτη). Έλεγχος συμφόρησης (congestion) και ροής πακέτων (Assures correct, sequenced delivery of information end-to-end)
Μοντέλο OSI Στρώμα Συνόδου (Session Layer) Αποκατάσταση συνόδων μεταξύ διαφόρων μηχανών (sessions) Διαχείριση σκυτάλης (token management) Συγχρονισμός (synchronization) (Handles the control of a session. For example, maybe two computers want to go one after the other, maybe we want them to send information simultaneously, maybe we want one to send all the information and then the other, maybe we want one to be able to stop the other, etc) Στρώμα Παρουσίασης (Presentation Layer) Κωδικοποίηση δεδομένων (Manages and transforms the syntax of the data units being exchanged between the end users) Στρώμα Εφαρμογή (Application Layer) Συμβατότητα μεταξύ εφαρμογών (Provides the appropriate semantics or meaning to the information being exchanged)
Μοντέλο Αναφοράς: TCP/IP Δεν έχουν υλοποιηθεί
Protocols Each layer has associated with it a protocol. A protocol works peer-to-peer: n n Does not know what s in-between Protocol Design: 1. Design protocol to carry out desired function (It is done be using formal specifications in the form of finite state machines, code, flow diagrams, etc) 2. Validate (verify): Is the protocol correct? Does it do what is expected?
Protocols 3. Conformance Testing: Run tests on products to ensure that the protocols are followed. Given layer n: Peers communicate by n-pdus (protocol data units) i.e., N-PDU (Network protocol data unit) (Packet in layer 3) DL-PDU (Data link protocol data unit) (frame in Layer 2) T-PDU (Transport data unit) Layers are not allowed to look at the layers above. They just take what s given to them and add headers.
Protocols When the information arrives at the other end the data link layer strips the first header, etc. Finally all the headers are gone and we are left with the application data units. For the OSI model: Layer below (layer n-1) provides service to the layer above (n) i.e, transport layer (layer 4) (service user) Network layer (layer 3) (service provider) The information exchanged between layers (n) and (n-1) are called primitives.
Protocols A primitive must contain n-sdu (layer n service data unit) (information passed down with address and other control information) OSI reference model defines 4 types of primitives (Request, Indication, Response, Confirm)
Κατηγοριοποίηση Δικτύων Απόσταση επεξεργαστών 1m 10m 100m 1Km 10Km 100Km 1000Km 10,000Km Σύμπλεγμα κτιρίων Πόλη Περιοχή υλοποίησης Τετραγωνικό μέτρο Δωμάτιο Κτίριο Χώρα Ήπειρος Πλανήτης Παράδειγμα Προσωπικά υπολογιστικά συστήματα (personal network) Τοπικά Δίκτυα (Local Area Networks) Μητροπολιτικό Δίκτυο (Metropolitan Network) Δίκτυο Ευρείας Περιοχής (Wide Area Network) Το Διαδίκτυο (The Internet)
Τοπικό Δίκτυο (Local Area Network) Ethernet Δακτύλιος (Ring) Δίκτυα Εκπομπής
Ασύρματο Τοπικό Δίκτυο (Wireless Local Area Network) Επικοινωνία με σταθερή βάση (base station) Απευθείας επικοινωνία με κινητούς δέκτες (Ad-hoc networks)
Μητροπολιτικό Δίκτυο (Metropolitan Network) Δίκτυο Καλωδιακής Τηλεόρασης
Δίκτυο Ευρείας Περιοχής (Wide Area Network) Υποδίκτυο (subnet) Δρομολογητής (router)
Packet Switching Connection Oriented: Connection between peers must be set-up (i.e., Virtual circuit layer 3) Connectionless: Transmit at will instead of relying on a connection (i.e., Datagram layer 3) From layer 2 to layer 7 we can have either between the layers For connection-oriented communications at a given layer there are 3 phases of operation: 1. Connection phase 2. Data phase (deliver to the peer receiver: a) a sequenced set of PDUs (received in order of transmission) and b) (most often) Correct PDUs (no errors) 3. Release phase Example: Telephony: Pick-up the phone, system send dial tone, punch digits, system sets up connection, notify the other end by ringing and the system sends ring back. Exchange information and hang up. System breaks up connection.