Το πρωτόκολλο αυτό είναι ένας μηχανισμός αναφοράς λαθών και μπορεί να αναφέρει την κατάσταση μόνο στην αρχική πηγή. Επιτρέπει σε δρομολογητές και εξυπηρετητές να στέλνουν μηνύματα ελέγχου ή λαθών σε άλλους δρομολογητές ή εξυπηρετητές.
Τα μηνύματα ICMP είναι εγκλωβισμένα στα πακέτα ΙΡ και περιλαμβάνουν ολόκληρη την επικεφαλίδα του πακέτου στο οποίο αναφέρονται καθώς και 64 bit (8 byte) από το τμήμα δεδομένων του πακέτου, για να βοηθάνε τον αποστολέα να αναγνωρίζει το πακέτο.
Στο παρακάτω σχήμα βλέπουμε τη λειτουργία του ICMP.
Ο δρομολογητής R1 παράγει ένα ICMP μήνυμα σε απάντηση του μηνύματος που στέλνει ο H0 στον Η1, το οποίο προωθείται από τον δρομολογητή R0. Το μήνυμα ICMP επιστρέφεται στον H0, αφού αυτή είναι η διεύθυνση του αποστολέα που φαίνεται στο ICMP πακέτο που έχει το πρόβλημα.
Το πρωτόκολλο IP είναι αυτό που βεβαιώνει ότι το ICMP μήνυμα στέλνεται στη σωστή διεύθυνση.