ICMP (Internet Control Message Protocol) المعرّف في RFC 792، هو بروتوكول يعمل جنباً إلى جنب مع IP في طبقة الشبكة، ووظيفته نقل رسائل التحكم والأخطاء. فبروتوكول IP نفسه لا يخبر المرسل بأي شيء عند فشل التسليم، وICMP هو من يقول: “الوجهة غير قابلة للوصول” أو “انتهى عمر الحزمة”. تُغلّف رسائل ICMP داخل حزم IP برقم البروتوكول 1، لكنه لا يحمل بيانات تطبيقات ولا يستخدم منافذ.
أهم أنواع الرسائل
| Type | الرسالة | الاستخدام |
|---|---|---|
| 8 / 0 | Echo Request / Echo Reply | أمر ping |
| 3 | Destination Unreachable | الكود 0 الشبكة، 1 الجهاز، 3 المنفذ، 4 الحاجة للتجزئة مع ضبط DF |
| 11 | Time Exceeded | انتهاء TTL، وعليه يعتمد traceroute |
| 5 | Redirect | إبلاغ الجهاز ببوابة أفضل |
كيف تعمل ping و traceroute؟
يرسل ping رسائل Echo Request وينتظر Echo Reply ويقيس زمن الذهاب والعودة. أما traceroute فيرسل حزماً بقيم TTL متزايدة 1 ثم 2 ثم 3، فيسقطها كل راوتر على الطريق ويرد بـ Time Exceeded، فتنكشف القفزات واحدة تلو الأخرى. وفي ويندوز يرسل tracert رسائل ICMP Echo، بينما ترسل أجهزة سيسكو ولينكس حزم UDP إلى منافذ عالية وتعرف الوصول عند استلام Port Unreachable.
R1# ping 10.2.2.2 source Loopback0
!!!!!
Success rate is 100 percent (5/5)
R1# traceroute 8.8.8.8
في مخرجات سيسكو تعني ! نجاح الرد، و. انتهاء المهلة دون رد، وU وصول رسالة Destination Unreachable.
هل يجب حجب ICMP؟
من الأخطاء الشائعة حجب ICMP بالكامل في الجدار الناري بحجة الأمان. هذا يعطل آلية Path MTU Discovery التي تعتمد على رسالة Type 3 Code 4، فتظهر مشكلات غامضة مثل مواقع تفتح جزئياً أو أنفاق VPN تتوقف مع الحزم الكبيرة. الأسلوب الصحيح هو السماح بالأنواع الضرورية وتحديد معدل Echo Request من الخارج لمنع هجمات الإغراق. أما في IPv6 فإن ICMPv6 أساسي لعمل الشبكة نفسها، لأن NDP واكتشاف الراوترات مبنيان عليه، وحجبه يعني توقف IPv6.
تنبيه في التشخيص
فشل ping لا يعني دائماً انقطاع الاتصال؛ فقد تحجب الوجهة ICMP بينما تعمل خدماتها. ونجاحه لا يعني أن التطبيق يعمل، لذا اختبر المنفذ المطلوب أيضاً.



