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 καταστολής προέλευσης.