Κατανεμημένα Συστήματα και Υπηρεσίες Ιστού Δικτύωση & Επικοινωνία Client-Server
Κατανεμημένα Συστήματα Διεργασίες που τρέχουν σε ανεξάρτητες μηχανές και συνεργάζονται χωρίς την ύπαρξη κοινής μνήμης. Πρέπει με κάποιο τρόπο να επικοινωνούν Η διασύνδεσή τους είναι το δίκτυο
Τύποι σύνδεσης Circuit-switched Packet-switched δεσμευμένο κανάλι εγγυημένο bandwidth [σχεδόν] σταθερό latency Packet-switched κοινό κανάλι τα δεδομένα σπάνε σε κομμάτια που ονομάζονται πακέτα κάθε πακέτο περιέχει την διεύθυνση προορισμού διαθέσιμο bandwidth χωρητικότητα καναλιού μεταβλητό latency
Τι είναι τα δεδομένα; Για λειτουργική επικοινωνία Για υπολογιστές: κάποια γλώσσα, κάποιες συμβάσεις Για υπολογιστές: ηλεκτρική κωδικοποίηση των δεδομένων που είναι η αρχή του πακέτου; ποια bits περιγράφουν το μήκος; υπάρχει checksum; που; πως υπολογίζεται; ποιο είναι το format μιας διεύθυνσης; ποιο το byte ordering;
Πρωτόκολλα Αυτές οι εντολές και οι συμβάσεις είναι γνωστά ως πρωτόκολλα
Διαστρωμάτωση Διευκολύνει την ανάπτυξη λογισμικού και μεγιστοποιεί την ευελιξία: Τα πρωτόκολλα δικτύου οργανώνονται σε στρώμματα ή επίπεδα (layers) Μπορούμε να αντικαταστήσουμε ένα στρώμα χωρίς να απαιτηθεί αντικατάσταση και των γειτονικών Τα υψηλότερα στρώματα λογισμικού δεν χρειάζεται να γνωρίζουν πως θα κτίσουν ένα πακέτο Ethernet … ή ακόμη και να γνωρίζουν ότι χρησιμοποιείται το δίκτυο Ethernet
Διαστρωμάτωση λογισμικού πρωτοκόλλων
Ενσωμάτωση δεδομένων σε κάθε επίπεδο πρωτοκόλλου
Ενσωμάτωση πληροφορίας σε μήνυμα που μεταδίδεται μέσω TCP/IP σε Ethernet δίκτυο
Διαστρωμάτωση μοντέλο αναφοράς OSI Το δημοφιλέστερο μοντέλο για την διαστρωμάτωση μοντέλο αναφοράς OSI Δημιουργήθηκε από τον ISO 7 επίπεδα πρωτοκόλλων Open Systems Interconnection model (OSI model)
Μοντέλο Αναφοράς OSI : Επίπεδο 1 Μεταδίδει και λαμβάνει δεδομένα στο φυσικό μέσο επικοινωνίας. Δεν ενδιαφέρεται για το περιεχόμενο. επίπεδα τάσεων, ταχύτητα, σύνδεσμοι Physical 1 Παραδείγματα: RS-232, 10BaseT, 802.11, Bluetooth
Μοντέλο Αναφοράς OSI : Επίπεδο 2 Ανιχνεύει και διορθώνει λάθη. Οργανώνει τα δεδομένα σε πακέτα πριν τα περάσει προς τα κάτω στρώματα. Κρατά λογαριασμό για τη σειρά των πακέτων (αν χρειάζεται) Λαμβάνει acknowledgements από τον παραλήπτη. Data Link 2 Physical 1 Παραδείγματα : Ethernet MAC, PPP, SLIP
Μοντέλο Αναφοράς OSI : Επίπεδο 3 Αναμεταδίδει και δρομολογεί τα πακέτα πληροφορίας προς τον προορισμό. Διαχειρίζεται το ταξίδι των πακέτων και βρίσκει ενδιάμεσους σταθμούς (αν χρειάζεται). Network 3 Data Link 2 Physical 1 Παραδείγματα : IP (IPv4, IPv6), X.25
Μοντέλο Αναφοράς OSI : Επίπεδο 4 Παρέχει μια αξιόπιστη διεπαφή για end-to-end (εφαρμογή-προς-εφαρμογή) επικοινωνία. Διαχειρίζεται τον έλεγχο ροής. Μπορεί να εξασφαλίζει τη σωστή σειρά των πακέτων, και να αναμεταδίδει χαμένα πακέτα Η διεπαφή δικτύου μοιάζει με ένα mailbox. Transport 4 Network 3 Data Link 2 Physical 1 Παραδείγματα : TCP, UDP
Μοντέλο Αναφοράς OSI : Επίπεδο 5 Υπηρεσίες για τον συντονισμό διαλόγου και διαχείριση της ανταλλαγής δεδομένων. Λειτουργεί ως διακόπτης υλοποιημένος σε λογισμικό. Διαχειρίζεται πολλαπλές λογικές συνδέσεις. Κρατά λογαριασμό για το ποιος μιλάει: έναρξη και τερματισμός επικοινωνίας. Session 5 Transport 4 Network 3 Data Link 2 Physical 1 Παραδείγματα : HTTP 1.1, SSL, NetBIOS
Μοντέλο Αναφοράς OSI : Επίπεδο 6 Αναπαράσταση δεδομένων Ενδιαφέρει η σημασία των data bits Μετατροπή μεταξύ διαφορετικών αναπαραστάσεων σε επίπεδο μηχανής Presentation 6 Session 5 Transport 4 Network 3 Data Link 2 Physical 1 Παραδείγματα : XDR, ASN.1, MIME, MIDI
Μοντέλο Αναφοράς OSI : Επίπεδο 7 Συλλογή από πρωτόκολλα επιπέδου εφαρμογής Application 7 Presentation 6 Session 5 Transport 4 Network 3 Data Link 2 Παραδείγματα : email (SMTP, POP, IMAP) file transfer (FTP) directory services (LDAP) Physical 1
Ορολογία Δικτύων
Local Area Network (LAN) Δίκτυο επικοινωνίας μικρή περιοχή (κτίριο, ομάδα κτιρίων) κοινό (μερικές φορές και διαμοιραζόμενο) μέσο μετάδοσης υψηλός ρυθμός δεδομένων (συχνά): 1 Mbps – 1 Gbps μικρό latency ομότιμες συσκευές κάθε συσκευή μπορεί να αρχικοποιήσει μια μεταφορά δεδομένων όπως κάθε άλλη συσκευή Τα βασικά συστατικά ενός LAN είναι οι σταθμοί εργασίας οι υπολογιστικές μηχανές ενός LAN ονομάζονται κόμβοι (nodes)
Σύνδεση κόμβων σε LAN δίκτυο Υπολογιστής (=κόμβος) ?
Σύνδεση κόμβων σε LAN Adapter δίκτυο υπολογιστής Adapter expansion slot (PCI, PC Card, USB) συνήθως είναι ενσωματωμένο στο main board Οι adapters αναφέρονται και σαν Network Interface Cards (NICs) ή adapters ή Network Interface Component
Μέσο Σύρματα (ή RF, IR) συνδέουν τις συσκευές που απαρίζουν το LAN μεταξύ τους Twisted pair Πιο κοινά: STP: shielded twisted pair UTP: unshielded twisted pair (π.χ. τηλεφωνικό καλώδιο, Ethernet 10BaseT) Ομοαξονικό καλώδιο Thin (παρόμοιο με το καλώδιο της TV) Thick (π.χ. 10Base5, ThickNet) Οπτική ίνα Ασύρματο
Hubs, routers, bridges Hub Switch Concentrator ή repeater Bridge Συσκευή που λειτουργεί ως κεντρικός κόμβος για τα καλώδια του LAN Παίρνει δεδομένα από τη μια θύρα και τα στέλνει σε όλες τις άλλες θύρες Switch Μετακινεί δεδομένα από τη θύρα εισόδου στη θύρα εξόδου. Αναλύει τα πακέτα και προσδιορίζει τη θύρα προορισμού και δημιουργεί μια λογική σύνδεση μεταξύ των θυρών. Διασυνδέει διαφορετικά ομοειδή LANs, κυρίως τύπου Ethernet. Concentrator ή repeater Αναπαράγει τα δεδομένα που φθάνουν Bridge Συνδέει δύο LANs διαφορετικού τύπου Σύνδεση στο data link layer (επίπεδο 2) Router Προσδιορίζει το επόμενο σημείο του δικτύου προς το οποίο θα μετακινηθεί ένα πακέτο Συνδέει διαφορετικούς τύπους δικτύων LAN και WAN στο network layer (επίπεδο 3)
Τοπολογία δικτύου Bus Network
Τοπολογία δικτύου Tree Network
Τοπολογία δικτύου Star Network
Τοπολογία δικτύου Ring Network
Mesh (=Πλέγμα) Network Τοπολογία δικτύου Mesh (=Πλέγμα) Network
Παράδειγμα ενός internetwork
Δίκτυα μετάδοσης Baseband Broadband Όλοι οι κόμβοι μοιράζονται ισότιμα την πρόσβαση στο μέσον του δικτύου Τα δεδομένα χρησιμοποιούν το πλήρες bandwidth του μέσου μετάδοσης Broadband Τα δεδομένα χρησιμοποιούν τμήμα του μέσου μετάδοσης το οποίο διαιρείται σε κανάλια (μπάντες συχνοτήτων)
Baseband: Ethernet IEEE πρότυπο 802.3 standard Ταχύτητες: 100 Mbps - 1 Gbps σήμερα Ethernet: 10 Mbps Fast Ethernet: 100 Mbps Gigabit Ethernet: 1 Gbps 10 Gbps, 100 Gbps Η μέθοδος πρόσβασης στο δίκτυο είναι Carrier Sense Multiple Access with Collision Detection (CSMA/CD) Ο κόμβος ακούει πρώτα αν το δίκτυο είναι κατηλειμένο Αποστέλλει δεδομένα Ελέγχει αν υπάρχει σύγκρουση Αναμεταδίδει σε περίπτωση σύγκρουσης
Ασύρματο Ethernet Ασύρματο (τοπολογία αστέρι) 802.11 (1-2 Mbps) 802.11b (11 Mbps - 4-5 Mbps πρακτικά) 802.11a (54 Mbps - 22-28 Mbps πρακτικά) 802.11g (54 Mbps - 32 Mbps πρακτικά) 802.11n (108 Mbps - 30-47 Mbps πρακτικά) ethernet Access Point
Σύνδεση στο Internet DSL router Modem Ethernet μετατρέπεται σε ATM data stream Μέχρι 20 Mbps έως ~ 2 km. POTS περιορίζεται σε 300-3400 Hz DSL λειτουργεί > 3500 Hz Modem Δεδομένα διαμορφώνονται επάνω από το εύρος ζώνης της φωνής (300-3400 Hz) Σειριακό interface στο τερματικό V.92: 48 kbps download, περίπου 56 kbps upload Χρήση του PPP ή SLIP για τη γεφύρωση με IP πρωτόκολλο
Σύνδεση στο Internet Οπτική ίνα Wireless: Ethernet interface E.g., Verizon’s FiOS 30 Mbps Wireless: WiMax GPRS (<32 Kbps)
Clients και Servers Αποστολή μηνυμάτων στις εφαρμογές όχι απλά στις μηχανές Ο client πρέπει να στείλει δεδομένα στην διεργασία που επιθυμεί Η server διεργασία πρέπει να στείλει τα δεδομένα απάντησης πίσω στην διεργασία πελάτης. Για να προσφέρει μια υπηρεσία, ένας server πρέπει να έχει μια διεύθυνση μεταφοράς για μια συγκεκριμένη υπηρεσία.
έναντι διεύθυνση μεταφοράς Διεύθυνση μηχανής έναντι διεύθυνση μεταφοράς
Επίπεδο Μεταφοράς (Transport Layer) Το στρώμα του λογισμικού που δέχεται ένα μήνυμα για αποστολή στο δίκτυο και πιο συγκεκριμένα σε μια απομακρυσμένη μηχανή (= διεργασία). Δύο κατηγορίες πρωτοκόλλων: connection-oriented πρωτόκολλα connectionless πρωτόκολλα
Connection-oriented Πρωτόκολλα εγκαθίδρυση σύνδεσης [διαπραγμάτευση] ανταλλαγή δεδομένων τερματισμός σύνδεσης
Connection-oriented Πρωτόκολλα αναλογία με τηλεφωνική κλήση εγκαθίδρυση σύνδεσης [διαπραγμάτευση] ανταλλαγή δεδομένων τερματισμός σύνδεσης κλήση αριθμού [επιλογή γλώσσας] ομιλία τερματισμός virtual circuit υπηρεσία παρέχει την ψευδαίσθηση ενός αποκλειστικού καναλιού Παρέχεται εγγύηση άφιξης μηνυμάτων σε ορθή σειρά η εφαρμογή δεν χρειάζεται να προμηθεύει τη διεύθυνση παράδοσης σε κάθε μήνυμα έναντι circuit-switched υπηρεσία
Connectionless Πρωτόκολλα - χωρίς αποκατάσταση σύνδεσης - αποστολή/λήψη δεδομένων (διεύθυνση παραλαβής πακέτο) - χωρίς τερματισμό σύνδεσης
Connectionless Πρωτόκολλα αναλογία με ταχυδρομείο χωρίς αποκατάσταση σύνδεσης - αποστολή/λήψη δεδομένων (διεύθυνση παραλαβής πακέτο) - χωρίς τερματισμό σύνδεσης ρίψη γράμματος στο ταχ. κουτί (διεύθυνση γράμμα) datagram υπηρεσία ο client δεν είναι σίγουρος εάν το μήνυμα έφθασε στον προορισμό δεν διατηρείται κάποια κατάσταση επικοινωνίας στον client ή server φθηνότερη αλλά λιγότερο αξιόπιστη έναντι της virtual circuit υπηρεσίας
Ethernet Επίπεδα 1 & 2 του OSI μοντέλου Physical (1) Καλώδια: 10Base-T, 100Base-T, 1000Base-T, κτλ. Data Link (2) Ethernet γεφύρωση Data frame ανάλυση Data frame μετάδοση Ανίχνευση λαθών Αναξιόπιστο, connectionless επικοινωνία
Ethernet 48-bit ethernet address Πακέτο μεταβλητού-μεγέθους 1518-byte MTU 18-byte header, 1500 bytes data Πακέτο γίγας για Gigabit ethernet 9000-byte MTU dest addr src addr frame length data (payload) CRC 6 bytes 6 bytes 2 46-1500 bytes 4 18 bytes + data
IP – Internet Protocol Στόχος: Γεννήθηκε το 1969 ως ένα ερευνητικό δίκτυο για 4 μηχανές Χρηματοδοτήθηκε από το υπουργείο άμυνας (ARPA) Στόχος: Να δημιουργηθεί ένα αποδοτικό και αξιόπιστο δίκτυο που θα μπορεί να συνδέσει ετερογενείς μηχανές και να συνδέσει διαφορετικά δίκτυα μεταξύ τους.
Internet Protocol Connectionless πρωτόκολλο που σχεδιάστηκε για να διαχειρισθεί τη διασύνδεση μεγάλου αριθμού τοπικών και ευρείας κλίμακας δίκτυα που απαρτίζουν σήμερα το internet Το IP μπορεί να δρομολογήσει μηνύματα από το ένα φυσικό δίκτυο στο άλλο.
IP διευθυνσιοδότηση Κάθε υπολογιστής σε ένα IP δίκτυο έχει μια μοναδική διεύθυνση μήκους 32 bit που χαρακτηρίζει το network layer interface: IP διεύθυνση διεύθυνση μηχανής (π.χ. Ethernet address) Ένας υπολογιστής που συνδέεται σε πολλά φυσικά δίκτυα θα έχει πολλές IP διευθύνσεις Μια για κάθε δίκτυο
IP χώρος διευθύνσεων 32-bit διευθύνσεις > 4 δισεκατ. διευθύνσεις! Οι routers όμως θα χρειάζονται πίνακες με ισάριθμες εγγραφές Σχεδίαση των πινάκων δρομολόγησης ώστε μια εγγραφή να μπορεί να καλύψει πολλαπλές διευθύνσεις Ιεραρχία: διευθύνσεις που είναι γεωγραφικά κοντά (π.χ. στον ίδιο οργανισμό) θα μοιράζονται ένα κοινό πρόθεμα
IP διευθυνσιοδότηση : δίκτυα & κόμβοι icsd.aegean.gr 195.251.4.2 C3 FB 04 02 math.aegean.gr 195.251.13.3 C3 FB 0D 03 network # host # τα πρώτα 16 bits αναγνωρίζουν το Παν. Αιγαίου εξωτερικοί routers χρειάζονται μόνον μια εγγραφή Δρομολόγηση των 195.251.*.* στο Παν. Αιγαίου
IP διευθυνσιοδότηση : δίκτυα & κόμβοι network #: αριθμός δικτύου που ανήκει ο υπολογιστής host #: αριθμός κόμβου (υπολογιστή) στο δίκτυο χρησιμοποιούμε το network # για να δρομολογήσουμε τα πακέτα στο σωστό δίκτυο χρησιμοποιούμε το host # για να μιλήσουμε με έναν συγκεκριμένο υπολογιστή
IP διευθυνσιοδότηση Πρόβλεψη: λίγα μεγάλα δίκτυα και πολλά μικρά δημιουργία διαφορετικών κλάσεων (classes) δικτύων τα πρώτα bits μιας IP διεύθυνσης προσδιορίζουν την κλάση class leading bits bits for net # bits for host # A 7 (128) 24 (16M) B 10 14 (16K) 16 (64K) C 110 21 (2M) 8 (256) Για να είναι εφικτή η υποστήριξη επιπλέον δικτύων σ’ έναν οργανισμό : χρησιμοποιούμε μερικά από τα high bits του host number για να ορίσουμε ένα “δίκτυο εντός δικτύου – subnet
IP διευθυνσιοδότηση IBM: 9.0.0.0 – 9.255.255.255 00001001 xxxxxxxx xxxxxxxx xxxxxxxxx network # 8 bits host # 24 bits Subnet within IBM (internal routers only) 00001001 10101010 11 xxxxxx xxxxxxxxx network # 8 bits host # 14 bits subnet # 10 bits
IP ειδικές διευθύνσεις All bits 0 Έγκυρη μόνο ως διεύθυνση πηγής Αναφέρεται ως “όλες οι διευθύνσεις για αυτή τη μηχανή” Δεν είναι έγκυρη διεύθυνση για αποστολή στο δίκτυο All host bits 1 Έγκυρη μόνο ως διεύθυνση προορισμού Broadcast στο δίκτυο All bits 1 Broadcast σε όλα τα απ’ ευθείας συνδεδεμένα δίκτυα Leading bits 1110 Class D network (multicast group) 127.0.0.0: δεσμευμένη για τοπική μετάδοση 127.0.0.1 loopback στον ίδιο τον υπολογιστή (localhost)
Domain Name Server (DNS) Σ’ ένα IP δίκτυο οι υπολογιστές ονομάζονται ιεραρχικά, π.χ. hra.icsd.aegean.gr Για να βρούμε μια IP διεύθυνση με βάση το όνομα γίνεται αναζήτηση σε μια ΒΔ. Τα ερωτήματα στην ΒΔ τα διαχειρίζεται μια κατανεμημένη υπηρεσία που είναι γνωστή ως Domain Name Server ή DNS
Εξάντληση των διευθύνσεων Τεράστια ανάπτυξη του Διαδικτύου Η πολιτική των κλάσεων οδηγεί σε σπάταλη κατανομή των δικτύων Πολλές αχρησιμοποίητες διευθύνσεις εντός του δικτύου Κάθε υπολογιστής που συνδέεται στο Διαδίκτυο χρειάζεται μια μοναδική σε όλον τον κόσμο διεύθυνση (IP address) Λύσεις: CIDR, NAT, IPv6
Classless Inter-Domain Routing (CIDR) Εγκατάλειψη των class A, B, C διευθύνσεων: Επί τούτου προσδιορισμός του # of bits για το network number έναντι των προκαθορισμένων 8 (A), 16 (B), 24 (C) bits Αποδοτικότερη κάλυψη των αναγκών ενός οργανισμού Οργανισμός που χρειάζεται 1000 διευθύνσεις : ζητά έναν 22-bit network number (1024 hosts) αντί για class B address (64K hosts)
Classless Inter-Domain Routing Πως ένας router μπορεί να ξέρει # bits για το network? Μια CIDR address πρέπει να το προσδιορίζει: 32-bit-address/bits-for-network-prefix 128.6.13.3/16 /27 : 1/8 of a class C (32 hosts) /24 : class C /16 : class B Η διαχείριση των CIDR addresses & prefixes μπορεί να είναι επίπονη!
IPv6 vs. IPv4 IPv4 IPv6: 4 byte (32 bit) addresses 16-byte (128 bit) addresses 3.6 x 1038 possible addresses Αρκετό για 7 x 1023 IP διευθύνσεις / m2 επί της γης! 8 x 1028 times more addresses than IPv4 8-bit hop limit (Time To Live) Flow label (20-bits)
Network Address Translation (NAT) External IP address 24.225.217.243 External address Virtual port Internal address Int port 24.225.217.243 17 192.168.1.1 3455 8 192.168.1.2 11231 24 12489 20 192.168.1.3 21908 Internal IP address 192.168.1.x .1 .2 .3 .4 .5
Network Address Translation (NAT) Όταν ένας υπολογιστής στο εσωτερικό δίκτυο ενός οργανισμού στέλνει ένα UDP/TCP πακέτο σ’ έναν υπολογιστή στο Διαδίκτυο, ο router του οργανισμού που λαμβάνει το πακέτο, αποθηκεύει την source IP address και port number σε μια διαθέσιμη εγγραφή του πίνακα μετάφρασης διευθύνσεων. Ο router αντικαθιστά την source IP address με την δικιά του IP στο πακέτο και το source port number με ένα virtual port number το οποίο είναι δείκτης στην εγγραφή του πίνακα που περιέχει τα στοιχεία διεύθυνσης του υπολογιστή αποστολέα. Το πακέτο με τα αλλαγμένα IP και port number προωθείται από τον router προς τον παραλήπτη. Ο πίνακας μετάφρασης διευθύνσεων περιέχει μια απεικόνιση από το virtual port number στην πραγματική IP address και port number του αποστολέα υπολογιστή στο εσωτερικό δίκτυο. Όταν ο router λαμβάνει ένα UDP/TCP πακέτο από το Διαδίκτυο χρησιμοποιεί το destination port number στο πακέτο για να βρει την κατάλληλη εγγραφή στον πίνακα μετάφρασης. Αντικαθιστά την διεύθυνση και port number προορισμού στο πακέτο με αυτά που κρατά ο πίνακας για τον εσωτερικό υπολογιστή παραλήπτη του πακέτου.
Φθάνοντας το μήνυμα στον υπολογιστή Το IP είναι ένα λογικό δίκτυο που κτίζεται πάνω από διάφορα φυσικά δίκτυα Υποστήριξη ΛΣ για IP: IP driver receive data send data IP driver receive packet send packet network driver from wire to wire
IP driver αρμοδιότητες Λαμβάνει λειτουργικές παραμέτρους από τον device driver Maximum packet size (MTU) Λειτουργίες για την αρχικοποίηση των HW headers Μήκος του HW header Δρομολόγηση πακέτων Από το ένα φυσικό δίκτυο στο άλλο Κατακερματισμός πολύ μεγάλων πακέτων Send operations για λογαριασμό υψηλότερων επιπέδων Λήψη δεδομένων από τον device driver Απόρριψη bad/expired data MTU = Maximum Transmission Unit
Device driver αρμοδιότητες Ελέγχει το network interface card Επεξεργάζεται διακοπές από το network interface Λαμβάνει πακέτα Τα στέλνει στον IP driver Λαμβάνει πακέτα από τον IP driver Τα στέλνει στο hardware Εξασφαλίζει την αποστολή των πακέτων χωρίς συγκρούσεις
Network device Η Network card εξετάζει τα πακέτα που ταξιδευουν στο καλώδιο Συγκρίνει την destination address Πριν αποστείλει ένα πακέτο πρέπει να το φακελώσει (enveloped) για το φυσικό δίκτυο device header IP header IP data payload
Device addressing IP address ethernet address Address Resolution Protocol (ARP) Έλεγχος της τοπικής ARP cache Αποστολή broadcast μηνύματος με αίτημα την εύρεση ethernet address για μια μηχανή με συγκεκριμένη IP address Αναμονή για απάντηση (με timeout)
Routing Router Ένας κόμβος μεταγωγής που συνδέει δύο ή περισσότερες γραμμές μετάδοσης (π.χ. Ethernet) Δρομολογεί πακέτα από το ένα δίκτυο στο άλλο (OSI επίπεδο 3) Υλικό ειδικού σκοπού ή Η/Υ γενικού σκοπού με δύο ή περισσότερες κάρτες δικτύου
Routing σε WAN
Πίνακες δρομολόγησης
Δρομολόγηση Τα πακέτα περνούν από διάφορους ενδιάμεσους σταθμούς (hops) πριν καταλήξουν στον προορισμό τους Εύρεση μονοπατιού σε γράφο Λειτουργία router έλεγχος διεύθυνσης προορισμού If destination = local address, deliver locally else Increment hop count (discard if hop # = TTL) Use destination address to search routing table Each entry has address and netmask. Match returns interface Transmit to destination interface Στατικό routing
Δυναμικό Routing Κλάση πρωτοκόλλων μέσω των οποίων οι κόμβοι μπορούν να προσαρμόσουν τους πίνακες δρομολόγησης ώστε να είναι ενημερωμένοι σε σχέση με αλλαγές στο φορτίο του δικτύου ή αποτυχίες κόμβων του δικτύου Κόστος διαδρομής: Hop count (# routers στο μονοπάτι) Time: Tic count – time in 1/18 second intervals
Πρωτόκολλα Δυναμικού Routing RIP (Routing Information Protocol) Ανταλλαγή routing tables με γειτονικούς routers σε εσωτερικά δίκτυα Επιλογή καλύτερου route εάν υπάρχουν πολλές εναλλακτικές επιλογές OSPF (Open Shortest Path First) Έλεγχος της κατάστασης του καναλιού σύνδεσης σε κάθε γείτονα. Αποστέλλει την κατάσταση διαθεσιμότητας καναλιού στους γείτονες. Το κόστος μπορεί να ορισθεί ως προς την αξιοπιστία και χρόνο BGP (Border Gateway Protocol) TCP σύνδεση μεταξύ ζευγαριών μηχανών Επιλογή διαδρομής βασισμένη σε distance vector Ανταλλαγή πληροφορίας για προσβάσιμα δίκτυα Περιοδικά keep-alive μηνύματα
RIP routing algorithm Περιοδικά, και όταν το τοπικό routing table αλλάζει, κάθε router, αποστέλλει τον πίνακά του σε όλους τους προσπελάσιμους γείτονες. Δηλαδή, στέλνει ένα RIP πακέτο που περιέχει ένα αντίγραφο του πίνακα σε κάθε λειτουργικό κανάλι (link) στο οποίο συνδέεται. Όταν ένας γειτονικός router λαμβάνει ένα RIP πακέτο, εάν περιέχει μια διαδρομή σ’ έναν καινούριο προορισμό (router), ή μια καλύτερη (μικρότερου κόστους) διαδρομή σε γνωστό προορισμό, τότε ενημερώνει κατάλληλα τον πίνακα. Εάν το πακέτο παραλήφθηκε από το κανάλι n και περιέχει διαφορετικό κόστος από τον τοπικό πίνακα για μια διαδρομή που ξεκινά από το κανάλι n, τότε αντικαθιστά το τοπικό κόστος με το νέο κόστος. Το παραπάνω γίνεται επειδή το RIP πακέτο ήρθε από έναν router o οποίος είναι εγγύτερα στον σχετικό προορισμό και συνεπώς είναι πιο έγκυρος για να προσδιορίσει κόστος διαδρομών που περνούν από αυτόν.
RIP routing algorithm
RIP routing algorithm Στον προηγούμενο ψευδοκώδικα Tr είναι ο πίνακας που λαμβάνεται από άλλον router και Τl είναι ο τοπικός πίνακας. Η συχνότητα t με την οποία οι πίνακες μεταδίδονται από τον έναν router στον άλλο, ακόμη και εάν δεν έχει συμβεί κάποια αλλαγή, έχει προβλεφθεί για εξασφάλιση, για παράδειγμα στην περίπτωση που κάποιο πακέτο RIP χαθεί. Η τιμή t για το Διαδίκτυο είναι 30 seconds. Κάθε router παρακολουθεί τα κανάλια στα οποία συνδέεται για σφάλματα. Όταν αναγνωρίσει ένα ελαττωματικό κανάλι n, τότε θέτει το κόστος του ίσο με για όλες τις εγγραφές στον τοπικό πίνακα που αναφέρονται στο κανάλι αυτό και εκτελεί την λειτουργία Send. Όταν αυτή η πληροφορία διαδοθεί στους γειτονικούς routers τότε θα επεξεργασθεί σύμφωνα με την λειτουργία Receive (ισχύει ότι +1=) και σιγά σιγά θα διαδοθεί και σε άλλους κόμβους μέχρι να φθάσει σε κάποιον, εάν υπάρχει, που έχει έγκυρη σύνδεση με τους προορισμούς που είχαν πρόβλημα.
Transport-layer protocols πάνω από IP Δεν παρέχεται μηχανισμός για τον προσδιορισμό της εφαρμογής που στέλνει ή λαμβάνει Το Transport layer χρησιμοποιεί ένα port number για τον προσδιορισμό της εφαρμογής TCP – Transmission Control Protocol UDP – User Datagram Protocol
TCP – Transmission Control Protocol Virtual circuit service (connection-oriented) Αποστέλλει acknowledgement για κάθε πακέτο που λαμβάνεται Checksum για την εγκυροποίηση των δεδομένων Τα δεδομένα μπορεί να μεταδίδονται ταυτόχρονα και προς τις δύο κατευθύνσεις
UDP – User Datagram Protocol Datagram service (connectionless) Τα δεδομένα μπορεί να χαθούν Τα δεδομένα μπορεί να φθάσουν εκτός σωστής σειράς Υποστηρίζεται checksum για τα δεδομένα, αλλά όχι επαναμετάδοση Απόρριψη των μη-ακέραιων πακέτων (bad packets)
IP header device header 20 bytes IP header TCP/UDP header IP data payload vers hlen svc type (TOS) total length fragment identification flags fragment offset TTL protocol header checksum 20 bytes source IP address destination IP address options and pad
Headers: TCP & UDP device header UDP header TCP header 20 bytes IP header TCP/UDP header IP data payload TCP header UDP header src port dest port seq number ack number hdr len flags checksum urgent ptr options and pad - window src port dest port seg length checksum 20 bytes 8 bytes
Device header (Ethernet II) IP header TCP/UDP header IP data payload dest addr src addr frame type data CRC 6 bytes 6 bytes 2 46-1500 bytes 4 18 bytes + data
Προβλήματα QoS στο IP Μεγάλη κυκλοφορία στο δίκτυο Συμφόρηση Μη-αποδοτική μετάδοση πακέτου 59 bytes για την αποστολή 1 byte μεTCP/IP! 20 bytes TCP + 20 bytes IP + 18 bytes ethernet Αναξιόπιστη παράδοση Λογισμικό για διάσωση – TCP/IP Μη-προβλέψιμη παράδοση πακέτου
IP ανίχνευση ροής Ανίχνευση ροής στους routers: Ροή: σύνολο πακέτων από μια εφαρμογή (address:port) σε μια άλλη (address:port) που μεταδίδονται με το ίδιο πρωτόκολλο Το δίκτυο ελέγχει το ρυθμό ροής πακέτων είτε καθυστερώντας τη μετάδοση πακέτων, είτε με την απόρριψη πακέτων Με την τεχνική της ανίχνευσης ροής: απόρριψη TCP πακέτων υπέρ UDP Εγκατάλειψη της UDP ροής για να εξασφαλισθεί QoS για άλλες ροές Με την ανίχνευση ροής επιτυγχάνεται: Traffic Shaping Αναγνώριση κυκλοφοριακής ροής Αποθήκευση πακέτων σε ώρες αιχμής και απελευθέρωση αργότερα Κανάλι υψηλού-bandwidth με Κανάλι χαμηλού-bandwidth Traffic Policing Απόρριψη κυκλοφορίας που υπερβαίνει το όριο του δικτύου
Αντιμετώπιση συμφόρησης FIFO ουρές Ουρές προτεραιότητας Flow-based weighted fair queuing Ομαδοποίηση όλων των πακέτων μιας κοινής ροής Class-based weighted fair queuing Βάσει πρωτοκόλλου, λίστας ελέγχου πρόσβασης, κτλ. Άλλες ουρές A flow-based queuing algorithm used in Quality of Service (QoS) network applications that schedules low-volume traffic first, while letting high-volume traffic share the remaining bandwidth. This is handled by assigning a weight to each flow, where lower weights are the first to be serviced. A stream of packets within a single session of a single application is known as flow. Weighted Fair Queuing is a flow based method that sends packets efficiently over the network and ensures packets transmission efficiency which is critical to the system. This method automatically stabilizes network congestion between individual packet transmission lines. This method combines the source Internet Protocol (IP), destination IP, source Transmission Control Protocol (TCP), destination TCP, User Datagram Protocol (UDP) port numbers and the IP protocol field value and forms a hash number. These packets are queued and sorted by these hash numbers. If two packets have the same source and destination address, TCP, UDP port numbers, IP protocol field values then they belong to the same flow.
Διαφοροποίηση υπηρεσιών (soft QoS) Κάποια κυκλοφορία πακέτων έχει περισσότερα προνόμια από κάποια άλλη Στατιστική επιβεβαίωση – όχι εγγυημένη TOS bits & Diff-Serv στο IP header Η χρήση τους είναι περιορισμένη στο Διαδίκτυο διότι απαιτεί την σύμπνοια των επικοινωνούντων μερών σε κάθε περίπτωση.
TOS bits Ετικέτα στο IP header που χρησιμοποιούν οι routers TOS: Type Of Service, 4 bits Minimum Delay [0x10] FTP, telnet, ssh Maximum Throughput [0x08] ftp-data, www Maximum reliability [0x04] SNMP, DNS Minimum cost [0x02] NNTP, SMTP Simple Network Management Protocol (SNMP) Network News Transfer Protocol (NNTP) RFC 1349, July, 1992
Διαφοροποίηση υπηρεσιών (Diff-Serv) Αναθεώρηση ερμηνείας των ToS bits ToS πεδίο στο IP header Differentiated Sevices Control Point (DSCP) p p p d t r - - Reliability: normal/high Priority: 0-7 Throughput: normal/high Delay: normal/low RFC 2475, December 1998
Εγγυημένο QoS (hard QoS) Εγγύηση μέσω end-to-end δέσμευσης πόρων
Reservation & Delivery Protocol RSVP: ReSerVation Protocol Οι κόμβοι αιτούνται συγκεκριμένο quality of service Οι routers δεσμεύουν πόρους RFC 2205
Media Delivery Protocols Real-Time Control Protocol (RTCP) Παρέχει ενημέρωση για QoS (jitter, loss, delay) RFC 3550 RTP: Real-Time Transport Protocol Δεν είναι routing πρωτόκολλο Δεν παρέχει εγγυήσεις Παρέχει: Payload identification sequence # time stamp RTP/RTCP δεν παρέχουν QoS ελέγχους
ATM: Asynchronous Transfer Mode Τέλη δεκαετίας 1980 Στόχος: Κοινό δίκτυο για φωνή & δεδομένα networking Χαμηλό bandwidth σε σταθερή βάση Υψηλό bandwidth κατά κύματα
ATM Παραδοσιακό φωνητικό δίκτυο ATM Circuit switching Ακριβό Φτωχή αξιοποίηση των πόρων Δεν επιτρέπει multicasting ATM Βασίζεται σε fixed-size πακέτα πάνω από virtual circuits Fixed-size cells παρέχουν την δυνατότητα για predictive scheduling Μεγάλα cells δεν θα καθυστερούν μικρότερα Γρήγορο switching
ATM Τρέχον πρότυπο: 53-byte cell: 48-byte data, 5-byte header Ο αποστολέας προσδιορίζει το είδος της κυκλοφορίας κατά την σύνδεση : CBR Constant bit-rate bandwidth Uncompressed video, voice VBR Variable bit-rate Avg, peak bandwidth Compressed video, voice ABR Available bit-rate -none- ftp, web access
ATM Μικρά cells πολλά interrupts σε κάθε υπολογιστή >100,000/second ATM hardware υποστηρίζει ATM Adaptation Layer (AAL) Μετατρέπει cells σε variable-sized (μεγαλύτερα) πακέτα: AAL 1: for CBR AAL 2: for VBR AAL 3/4: ABR data AAL 5: ABR data, simplified AAL 6: MPEG-2 video
Ερωτήσεις;