9.2            ICMP: Πρωτόκολλο Ελέγχου Μηνυμάτων Διαδικτύου

 

 

Εδώ θα συζητήσουμε το Πρωτόκολλο Ελέγχου Μηνυμάτων Διαδικτύου (lnternet Control Message Protocol, ICMP), που χρησιμοποιείται από υπολογιστές υπηρεσίας, δρομολο­γητές και πύλες για επικοινωνία πληροφοριών επιπέδου δικτύου μεταξύ τους. Το ICMP καθορίζεται στο RFC 792. Η πλέον τυπική χρήση του ICMP είναι για αναφοράσφαλμάτων. Για παράδειγμα, όταν εκτελείτε μια σύνοδο Telnet, ΗΡ ή ΗΤΤΡ, ίσως νασυναντήσετε ένα μήνυμα σφάλματος σαν το "Destination network unreachable" (το δίκτυο προορισμού δεν μπορεί να προσπελαστεί). Αυτό το μήνυμα είχε την προέλευ­σή του στο ICMP. Σε κάποιο σημείο, ένας δρομολογητής ΙΡ δεν μπόρεσε να βρει μια διαδρομή προς τον υπολογιστή υπηρεσίας που καθορίζεται στην εφαρμογή Telnet, FTP ή ΗΤΤΡ. Αυτός ο δρομολογητής δημιούργησε και έστειλε ένα μήνυμα ICMP τύπου­ 3 στον υπολογιστή υπηρεσίας σας, δηλώνοντας το σφάλμα. Ο υπολογιστής υπηρε­σίας σας έλαβε το μήνυμα ICMP και επέστρεψε έναν κωδικό σφάλματος στο λογισμι­κό TCP που προσπαθούσε να συνδεθεί στον απομακρυσμένο υπολογιστή υπηρεσίας. Το TCP, με τη σειρά του, επέστρεψε τον κωδικό σφάλματος στην εφαρμογή σας.

Το ICMP συχνά θεωρείται τμήμα του ΙΡ, αλλά αρχιτεκτονικά βρίσκεται ακριβώς επάνω από το ΙΡ, επειδή τα μηνύματα ICMP μεταφέρονται μέσα σε πακέτα ΙΡ. Αυτό σημαίνει ότι τα μηνύματα ICMP μεταφέρονται σαν ωφέλιμο φορτίο ΙΡ, όπως τα τμή­ματα TCP ή υοΡ μεταφέρονται σαν ωφέλιμο φορτίο ΙΡ. Παρόμοια, όταν ένας υπολογι­στής υπηρεσίας δέχεται ένα πακέτο ΙΡ με το ICMP να καθορίζεται στο πρωτόκολλο ανώτερου επιπέδου, αποπολυπλέκει το πακέτο στο ICMP, όπως θα έκανε αποπολύ­πλεξη ενός πακέτου στο TCP ή στο UDP.

Τα μηνύματα ICMP έχουν ένα πεδίο τύπου και ένα πεδίο κωδικού και επίσης περιέ­χουν τα πρώτα οκτώ bytes του δεδομενογράμματος ΙΡ, που προκάλεσε την παραγωγή του μηνύματος ICMP αρχικά (έτσι ώστε ο αποστολέας να μπορεί να προσδιορίσει το πακέτο που προκάλεσε το σφάλμα). Επιλεγμένα μηνύματα ICMP φαίνονται στην Εικόνα 9.4.

 

            Εικόνα 9.4: Μηνύματα ICMP

 

Σημειώστε ότι τα μηνύματα ICMP χρησιμοποιούνται όχι μόνο για σηματοδοσία συνθηκών σφάλματος. Το γνωστό πρόγραμμα ping στέλνει ένα μήνυμα ICMP με τύπο 8, κωδικό Ο στον καθορισμένο υπολογιστή υπηρεσίας. Ο υπολογιστής υπηρεσίας προορι­σμού, βλέποντας την αίτηση ηχούς, στέλνει πίσω μια απόκριση με τύπο Ο, κωδικό Ο. Ένα άλλο ενδιαφέρον μήνυμα ICMP είναι το μήνυμα καταστολής προέλευσης. Αυτό το μήνυμα σπάνια χρησιμοποιείται πρακτικά. Ο αρχικός του σκοπός ήταν να κάνει έλεγχο συμφόρησης - να επιτρέπει σε ένα δρομολογητή με συμφόρηση να στέλνει ένα μήνυμα ICMP καταστολής προέλευσης σε έναν υπολογιστή υπηρεσίας για να υποχρεώνει τον υπολογιστή υπηρεσίας να μειώνει τον ρυθμό μετάδοσή ς του. Είδαμε ότι το TCP έχει το δικό του μηχανισμό ελέγχου συμφόρησης, που λειτουργεί στο επίπεδο μεταφοράς, χωρίς τη χρήση ανάδρασης από το επίπεδο μεταφοράς, όπως συμβαίνει με το μήνυμα ICMP καταστολής προέλευσης.