ΔΙΚΤΥΑ (23-26) Π. Φουληράς
Μηχανισμός Αναφοράς Σφαλμάτων (ICMP) Πρωτόκολλο Μηνυμάτων Ελέγχου Διαδικτύου (Internet Control Message Protocol) Απαραίτητο για κάθε τυπική υλοποίηση του IP Το ότι το IP προσφέρει υπηρεσία βέλτιστης προσπάθειας (best-effort) δεν σημαίνει ότι αδιαφορεί, αλλά συνδυάζεται με το ICMP ώστε να παρέχεται κάποια υπηρεσία ενημέρωσης για σφάλματα Αμφότερα (IP και ICMP) αλληλοεξαρτώμενα, επειδή το IP χρησιμοποιεί το ICMP για μηνύματα σφάλματος, και το ICMP το IP για την μεταφορά των μηνυμάτων του
ICMP Μηνύματα Κάποια παραδείγματα: Source Quench: O δρομολογητής δεν έχει πλέον χώρο αποθήκευσης πακέτων Time Exceeded: Το πεδίο TTL μηδενίσθηκε ή εξαντλήθηκε ο χρόνος ανασυναρμολόγησης IP στον Η/Υ προορισμού
ICMP Μηνύματα 2...και κάποια ακόμα: Destination Unreachable: Ένας δρομολογητής διαπιστώνει ότι δεν μπορεί να παραδώσει ένα πακέτο στον προορισμό του διευκρινίζεται εάν το πρόβλημα εντοπίζεται στο δίκτυο ή στον τελικό υπολογιστή Redirect: Ο δρομολογητής διαπιστώνει ότι το πακέτο που πήρε δεν έπρεπε να είχε σταλεί μέσω του ιδίου, ενημερώνει τον Η/Υ-αποστολέα να αλλάξει δρομολόγιο Echo Request/Reply: Γνωστό το τι κάνουν και από το ping. Address Mask Request/Reply: Ένας Η/Υ αποστέλλει μία τέτοια αίτηση και οι δρομολογητές απαντούν με την ορθή τιμή subnet mask 32 bit.
Μεταφορά Μηνυμάτων ICMP
Χρήση του ICMP για Παρακολούθηση Δρομολογίου (traceroute) Το πρόγραμμα αυτό αποστέλλει μία σειρά από πακέτα προς τον τελικό προορισμό και περιμένει απόκριση από κάθε ένα ως εξής: Στο πεδίο TTL θέτει τιμή 1 για το πρώτο πακέτο, ο πρώτος δρομολογητής θέτει την τιμή στο 0, απορρίπτει το πακέτο και απαντά με ένα μήνυμα ICMP Time Exceeded Από την αφετηρία του παραπάνω ICMP μηνύματος το πρόγραμμα γνωρίζει ποια είναι η διεύθυνση του πρώτου δρομολογητή Στην συνέχεια στέλνει ένα δεύτερο πακέτο με τιμή 2 στο πεδίο TTL, οπότε τα ίδια με τα παραπάνω κάνει ο δεύτερος δρομολογητής, κλπ. Δεν είναι τέλειο λόγω πιθανής αλλαγής δρομολογίων, χρόνου απόκρισης, κλπ.
Χρήση του ICMP για Παρακολούθηση Δρομολογίου (traceroute) 2 Δύο τρόποι υλοποίησης: Αποστολή Echo Request/Reply του ICMP tracert από την Microsoft Αποστολή IP πακέτου σε ανύπαρκτη εφαρμογή στον τελικό προορισμό, ο οποίος απαντά με το ICMP μήνυμα Destination Unreachable Οι περισσότερες εκδόσεις του traceroute στο Unix χρησιμοποιούν τον δεύτερο τρόπο και μάλιστα στέλνουν UDP datagrams για αυτόν τον σκοπό
Χρήση του ICMP για Ανεύρεση Διαδρομής MTU Οι κατατμήσεις και ανασυγκρότηση πακέτων IP κοστίζουν Σε μερικές εφαρμογές μπορεί να αποφευχθεί η κατάτμηση εάν ο αρχικός αποστολέας μικρότερο μέγεθος πακέτου IP Επίτευξη μέσω βολιδοσκόπισης με IP πακέτο όπου η σημαία DF (Don t Fragment) υποδηλώνει ότι δεν επιτρέπεται η κατάτμησή του Όταν κάποιος δρομολογητής διαπιστώσει ότι χρειάζεται κατάτμηση (αλλά δεν είναι δυνατή), θα το απορρίψει και θα απαντήσει με κατάλληλο μήνυμα σφάλματος ICMP (Destination Unreachable, Code = 4, δηλαδή Fragmentation required, and DF set) Η διαδικασία επαναλαμβάνεται από την αρχή με μικρότερο μέγεθος πακέτου IP
UDP: Υπηρεσία Μεταφοράς Αυτοδυνάμων Πακέτων User Datagram Protocol Χαρακτηριστικά: Από Άκρο σε Άκρο(διακρίνει διαφορετικές διεργασίες στον ίδιο υπολογιστή) Ασυνδεσμικό Μηνυματοστραφές (μεμονωμένα μηνύματα όχι τμήματα) Βέλτιστης προσπάθειας Πολυεπίπεδης Αλληλεπίδρασης Αναξάρτητο Λειτουργικού Συστήματος
Πολυεπίπεδη Αλληλεπίδραση Το UDP επιτρέπει τέσσερις τύπους αλληλεπίδρασης: Αμφιμονοσήμαντη (1-προς-1) Μονοσήμαντη 1-προς-πολλά Μονοσήμαντη πολλά-προς-1 Πολυσήμαντη (πολλά-προς-πολλά) Συνεπώς υποστηρίζει τρεις τύπους εκπομπών και μάλιστα με αποδοτικό τρόπο: Unicast, Multicast, Broadcast
Αριθμός Θύρας Πρωτοκόλλου Τα ακραία σημεία επικοινωνίας δεν είναι άμεσα οι διεργασίες, αλλά οι αριθμοί θυρών πρωτοκόλλου (protocol port numbers) Άρα για το UDP υπάρχει μία ανάλογη αντιστοίχηση μεταξύ εφαρμογών που το χρησιμοποιούνκαιτωναριθμώνθυρών(που είναι αφηρημένοι αριθμοί) που τηρείται από το λογισμικό του UDP σε συνεργασία με το τοπικό λειτουργικό σύστημα
Άθροισμα Ελέγχου UDP - Ψευδοκεφαλίδα ΗκεφαλίδαUDP περιέχει ένα πεδίο 16 bit (UDP CHEKSUM) Η χρήση του είναι προαιρετική (εάν 0, δεν χρησιμοποιείται) Ο παραλήπτης επιβεβαιώνει το περιεχόμενό του, μόνον εφόσον δεν είναι μηδενικό Κατά τον υπολογισμό συμπεριλαμβάνει όχι μόνον το UDP datagram, αλλά και μία ψευδοκεφαλίδα με τα παρακάτω πεδία του IP πακέτου: Source Address Destination Address Μηδενικά Protocol UDP Length Source Port Length Data Destination Port Checksum
Ενθυλάκωση του UDP
TCP: Υπηρεσία Αξιόπιστης Μεταφοράς Transport Control Protocol Επτά κύρια χαρακτηριστικά: Συνδεσμικότητα (Connection Orientation) Επικοινωνία σημείου προς σημείο: (Point-to-point) Πλήρης αξιοπιστία Πλήρως αμφίδρομη επικοινωνία Διασύνδεση ρεύματος (Stream Interface) Αξιόπιστη έναρξη σύνδεσης Ομαλό κλείσιμο σύνδεσης
Συνδέσεις TCP Λέγονται εικονικές (virtual) επειδή επιτυγχάνονται με λογισμικό στους ακραίους υπολογιστές
TCP: Επίτευξη Αξιοπιστίας με Επαναμετάδοση Επαναμετάδοση σε περίπτωση διαπίστωσης απώλειας (πραγματικής ή φαινομενικής) Χρησιμοποιούνται segments επιβεβαίωσης και χρονομετρητής
Προσαρμόσιμη Επαναμετάδοση Η επαναμετάδοση στο TCP είναι προσαρμόσιμη (adaptive) Το TCP εκτιμά την καθυστέρηση μετάβασης ενός πακέτου και της επιστροφής επιβεβαίωσης για αυτό (RTT = Round Trip Time) και έτσι δημιουργεί μία εκτίμηση για αυτήν στο προσεχές διάστημα Επίσης και μία εκτίμηση για την διακύμανση αυτού του χρόνου στο προσεχές διάστημα Συνεπώς πιθανώς ορθή εκτίμηση για το χρονόμετρο αναμονής επιβεβαίωσης για το(α) επόμενο(α) πακέτο(α) με προσαρμόσιμο τρόπο
Έλεγχος Ροής και Παράθυρα Χρησιμοποιείται ένας μηχανισμός παραθύρου (window) για τον έλεγχο ροής δεδομένων Window Advertisement η σχετική ειδοποίηση που προσδιορίζει το μέγεθός του από τον παραλήπτη Έτσι μπορούμε να έχουμε έλεγχο της ροής από τον παραλήπτη (μηδενικό μέγεθος αντιστοιχεί σε παύση αποστολής)
Τριπλή Χειραψία 3-way handshake για δημιουργία σύνδεσης Ανταλλάσσονται τρία μηνύματα Αναγκαία και επαρκής μέθοδος για εξασφάλιση σαφούς συμφωνίας παρά τις απώλειες, επαναλήψεις ή καθυστερήσεις πακέτων Synchronization Segment (SYN) για τα μηνύματα τριπλής χειραψίας Ο αριθμός ακολουθίας 32-bit επιλέγεται τυχαία και από τις δύο πλευρές (θυμηθείτε η σύνδεση είναι αμφίδρομη) Αντίστοιχα 3-way FIN μηνύματα για τερματισμό και από τις 2 πλευρές (εκτός εάν η δεύτερη δεν επιθυμεί να κλείσει αμέσως την σύνδεση)
Έλεγχος Συμφόρησης (Congestion Control) Πλέον μεγαλύτερη η πιθανότητα απώλειας πακέτων λόγω συμφόρησης, παρά λόγω βλάβης υλικού Υπερβολική συμφόρηση οδηγεί σε συμφορητική κατάρρευση (congestion collapse) Προς αποφυγήν το TCP χρησιμοποιεί ως μέτρο της συμφόρησης την απώλεια πακέτων και μειώνει τον ρυθμό εκπομπής Αρχικά στέλνει 1 segment. Εάν έλθει ACK, χωρίς απώλειες, κλπ, τότε στέλνει 2 segment, αντίστοιχα 4 segment, έως το 1/2 του αναγγελομένου παραθύρου του παραλήπτη, οπότε αυξάνει γραμμικά το πλήθος των segment που αποστέλλει. Σε περίπτωση απώλειας, μειώνει τον ρυθμό εκπομπής στο 1/2 (τριπλό ACK για το ίδιο segment) ήστο1 segment (time-out), κ.ο.κ.
Μορφή TCP Segment
NAT Network Address Translation (Μετάφραση Διευθύνσεων Δικτύου) Τεχνολογίαπουεπιτρέπεισεμίατοποθεσίαναέχειμία έγκυρη IP διεύθυνση, πολλούς υπολογιστές, και καμία σύγκρουση ως προς τις διευθύνσεις Χρησιμοποιούνται οι μη δρομολογήσιμες (ιδιωτικές) διευθύνσεις για όλους τους υπολογιστές Οι δρομολογητές μέσα στην τοποθεσία είναι διευθετημένοι ώστε να προωθούν πακέτα με τέτοιες διευθύνσεις Η συσκευή NAT βρίσκεται στο σύνορο μεταξύ τοποθεσίας και Διαδικτύου χρησιμοποιώντας ιδιωτική διεύθυνση για το εσωτερικό της τοποθεσίας και την έγκυρη προς το Διαδίκτυο
Πιθανές Υλοποιήσεις της ΝΑΤ Μέσω Υλικού Μόνον σε Δίκτυα υψηλής ταχύτητος και μεγάλου όγκου πακέτων Μέσω Λογισμικού Συνηθέστερο, ενσωματωμένο σε δρομολογητές ή με την βοήθεια απλού Η/Υ με πολλαπλές δικτυακές συνδέσεις
ΝΑΤ Μετατροπή Διευθύνσεων Παράδειγμα παρακάτω: Αριστερά το Διαδίκτυο, δεξιά το ιδιωτικό δίκτυο Η συσκευή ΝΑΤ αλλάζει τις διευθύνσεις αφετηρίας και προορισμού Ο Πίνακας Μετάφρασης φαίνεται δεξιά. Διευθέτηση: Από κάποιον διαχειριστή Αυτόματα
NAPT και Συνένωση TCP Όταν δύο ή περισσότεροι υπολογιστές της ιδιωτικής τοποθεσίας επικοινωνούν με τον ίδιο προορισμό; NAPT (Network Address and Port Translation) Μεταφράζονται IP αριθμοί, αλλά και port numbers Ο Πίνακας μετάφρασης είναι πιο πολύπλοκος Επιτρέπεται και συνένωση TCP (TCP splicing) μια και μπορεί να παίξει τον ρόλο συσκευής συνένωσης 2 TCP συνδέσεων με διαφανή τρόπο (1 προς το Διαδίκτυο και 1 προς το ιδιωτικό )
Άλλες Παραλλαγές ΗδιπλήNAT (twice NAT) Επιτρέπει την λειτουργία διακομιστών Ιστού (web services) σε ένα τέτοιο ιδιωτικό δίκτυο, αλλά απαιτείται η αλληλεπίδραση με DNS, ώστε να δημιουργείται κατάλληλη εγγραφή στην συσκευή ΝΑΤ Αποτυγχάνει φυσικά εάν χρησιμοποιηθεί από πελάτη απευθείας η (έγκυρη) διεύθυνση IP που ανήκει μόνον στην συσκευή ΝΑΤ CAT (Cable Address Translation) Μετάφραση καλωδιακής διεύθυνσης. Είναι παραλλαγή για δίκτυα καλωδιακής τηλεόρασης (ΗΠΑ) Λογισμικό και συστήματα ΝΑΤ για οικιακή χρήση Στο Unix, το πρόγραμμα slirp Στο Linux, το πρόγραμμα Masquerade Στα Windows, από το ICS (Internet Connection Sharing) της Microsoft Αλλά και φθηνό υλικό για NAT (π.χ., από την εταιρεία Linksys)