# بروتوكول رسائل التحكم في الإنترنت

بروتوكول رسائل التحكم في الإنترنت أو ميفاق رسالة التحكم في الإنترنت أو بروتوكول رسائل التحكم في الإنترنت للإصدار الرابع من بروتوكول الإنترنت (بالإنجليزية: Internet Control Message Protocol for IPv4 اختصاراً ICMPv4)‏ هو بروتوكول مساعد للإصدار الرابع من بروتوكول الإنترنت وجزءٌ مدمج فيه. يُعرِّف البروتوكول عدداً من رسائل التحكم الَّتي تُغلَّف داخل رزم الإصدار الرابع من بروتوكول الإنترنت، وتنقل عبر الشبكة بهذا الشكل. طُوِّر البروتوكول بالتوازي مع تطوير الإصدار الرابع من بروتوكول الإنترنت، ووصف في وثيقة طلب التعليقات RFC 792.
تُصنَّف رسائل التحكم إلى صنفين: رسائل الأخطاء ورسائل الإعلام. أَمَّا رسائل الأخطاء فهي تُرسل لمصدر رزمة بيانات نتيجةً لحصول خطأ ما في أثناء معالجة الرزمة، وقد يُرسلها المُضيف الوجهة أو أي موجه يُعالِج الرزمة في أثناء عبورها للمسار بين المصدر والوجهة. وأمَّا رسائل الإعلام فهي تقسم إلى مجموعتين أيضاً: رسائل الطلب ورسائل الرد. وأمَّا رسائل الطلب فيُرسلها مُضيفٌ لوجهةٍ ما يطلب فيها الحصول على معلوماتٍ مُحددةٍ، مثل عنوان المُوجِّه المتصل مع الشبكة، وأَمَّا رسائل الردّ فهي ردُ تلك الوجهة على رسالة الإعلام، ولكل رسالة طلب رسالة ردٍ مُتوافِقة معها.
عرَّف المعيار الرسمي للبروتوكول عدداً من الرسائل، أهمها رسالة توليد الصدى والرد عليها ورسالة إعادة التوجيه ورسالة تعذُّر بلوغ الوجهة. وأضيفت إليها لاحقاً عدداً من الرسائل لأداء وظائِفَ مُختلِفة، مثل الإعلام عن قناع الشبكة، ولكن أغلب الرسائل المضافة وبعض الرسائل المُعرَّفة في المعيار الرسمي أبطلت فيما بعد لأسباب متنوعة ولم تعد مُستخدمةً.
اعتماداً على رسالة توليد الصدى والرد عليه، بنيت أداتان لتشخيص الأخطاء في الشبكة وتعقبها هما أداة التحقق من الاتصال، المشهورة باسم بينغ (بالإنجليزية: Ping)‏، وأداة تتبع المسار. ليس هناك معيارٌ محدد لتنفيذ هاتين الأداتين، ولذلك فقد تنوعت أساليب تنفيذهما في أنظمة التشغيل المختلفة مثل نظام ويندوز الخاصّ بمايكروسوفت وأنظمة التشغيل الخاصَّة بسيسكو وغير ذلك.
كانت رسائل البروتوكول سبباً في تطوير عدد من الهجمات الَّتي يمكن تصنيفها ضمن ثلاثة أنواع رئيسة هي: هجمات الغمر، مثل هجوم السنافر، والهجمات الانفجارية مثل هجوم أمر التحقق من الاتصال المميت، وهجمات تسريب المعلومات مثل شكل خاص من هجوم الوسيط طُوِّر اعتماداً على رسائل إعادة التوجيه التي يُعرِّفها البروتوكول.

## نبذة تاريخية

طُوِّر بروتوكول رسائل التحكم في الإنترنت بالتوازي مع تطوير الإصدار الرابع من بروتوكول الإنترنت، وطُرح أول معيار له شهر أبريل من العام 1981 في وثيقة طلب التعليقات RFC 777، ثُمَّ طُرحت وثيقة أخرى بعد 5 أشهر في سبتمبر من العام نفسه وهي وثيقة طلب التعليقات RFC 792، وهي المعيار الرسمي للبروتوكول حتى اليوم.
احتوى المعيار الرسميّ للبروتوكول توصيفاً مُقتضباً لإحدى عشرة رسالة تحكُّمٍ، تلا ذلك شرحٌ مُفصَّل عن كيفية عمل البروتوكول ومتى يَلزم إِرسال الرسائِل وتفاصيلُ دقيقةٌ أخرى صدرت في وثيقتين منفصلتين، الأولى موجهة لتوصيف عمل مُضيفي الإصدار الرابع من بروتوكول الإنترنت، وهي وثيقة طلب التعليقات RFC 1122 المعنونة:«متطلبات مُضيفي الإنترنت -- طبقات الاتصال» والَّتي صدرت في شهر أوكتوبر من العام 1989م، والثانية مُخصصةٌ لتوصيف عمل المُوجِّهات، وهي الوثيقة RFC 1812 المُعنونة:«مُتطلبات مُوجِّهات الإصدار الرابع من بروتوكول الإنترنت» والتي صدرت في شهر يونيو من العام 1995.
في السنوات اللاحقة لإصدار المعيار الرسميّ، وُسِّع البروتوكول تتابعاً بحسب ما اقتضاه التطور التقنيّ. فعلى سبيل المثال، في أغسطس من العام 1985م، صدر معيار تجزئة الشبكة، وعرَّف نوعاً جديداً من رسائِل التحكم هي رسائِل القناع، وتشمل نوعين من الرسائِل هُما رسالة طلب القناع ورسالة الردِّ على طلب القناع. وأيضاً في شهر سبتمبر من العام 1991، أي بعد قرابة 10 سنوات من اعتماد البروتوكول معياراً رسميّاً، صدرت الوثيقة RFC 1256 التي أضافت نوعاً جديداً من الرسائل هي رسائل اكتشاف الموجه، وتضمُّ رسالتين هما رسالة إِعلان المُوجِّه ورسالة التماس المُوجِّه. ولكنَّ أغلب هذه الرسائل أُبطلت في وقت لاحق لأسبابٍ مُختلفةٍ ولم تعد مُستعملة.
في عام 1995م، طُوِّر الإصدار السادس من بروتوكول الإنترنت، وبالتوازي مع هذا التطوير جرى العمل على إصدار جديد من بروتوكول رسائل التحكم متوافق مع الإصدار السادس، وُسمِّي بروتكول رسائل التحكم للإصدار السادس من بروتوكول الإنترنت (بالإنجليزية: Internet Control Message Protocol for the Internet Protocol Version 6 اختصاراً ICMPv6)‏ ووصف في وثيقة طلب التعليقات RFC 1885، طُوِّر معيار هذا البروتوكول لاحقاً، عُدِّل تباعاً، وأمَّا المعيار الأحدث فهو مَوصُوفٌ بالوثيقة RFC 4443.

## مبدأ العمل

يُقدِّم بروتوكول رسائل التحكم للإصدار الرابع من بروتوكول الإنترنت الخدمات التالية: الإبلاغ عن الأخطاء وآليةً للإعلام عن المعلومات في الشبكة وآليَّةً لإعادة التوجيه على مستوى المُوجِّه الأول المُتَّصِل مع مصدر رزم البيانات. لتحقيق ذلك، يُعرِّف البروتوكول عدداً من الرسائل التي يجري تبادلها عبر الشبكة بين مصدر رزم البيانات ووجهتها أو بين المصدر وعقد الشبكة الموجودة على المسار نحو الوجهة.
إِنَّ الإصدار الرابع من بروتوكول الإنترنت غير موثوق، ولا يَهدف استعمال بروتوكول رسائل التحكم إلى إضافة الموثوقية إليه، ولكن بروتوكول رسائل التحكم يعمل على إيصال رسائل تبليغ عن وقوع أخطاءٍ في الشبكة، أو عن حصول أحداثٍ مُعيَّنة تتطلب انتباهاً من مُشرفي الشبكة. وفقاً لنموذج الربط البيني للأنظمة المفتوحة، فإنَّ رسائل هذا البروتوكول توَّلد على مستوى طبقة الشبكة حيث يعمل، أو على مستوى طبقة النقل، أو حتى على مستوى طبقة التطبيق حيث تنشط تطبيقات المستخدمين.
تُغلَّف رزم بروتوكول رسائل التحكم داخل رزم الإصدار الرابع من بروتوكول الإنترنت. أي عند التغليف، يُعامل بروتوكولُ الإنترنت بروتوكولَ رسائل التحكم معاملة بروتوكول طبقة أعلى، ولكن بروتوكول رسائل التحكم هو جزءٌ مُدمَجٌ من بروتوكول الإنترنت، ويجب أن يُدعم في أي موقع يدعم بروتوكول الإنترنت. إذا كانت رزمة بروتوكول رسائل التحكم مُغلَّفة داخل رزمة بروتوكول الإنترنت، فإن قيمة حقل البروتوكول في ترويسة بروتوكول الإنترنت يجب أن تُضبط إلى القيمة 1.
تُصنَّف رسائل التحكم إلى صنفين وفقاً لآلية توليد الرسالة. الصَّنف الأول هو رسائل الأخطاء، وهي تُرسل من نتيجة لحصول خطأ في معالجة رزمة بيانات ما، وهي تُرسَل من المضيف الوجهة للرزمة أو من أحد المُوجِّهات على مسارها، إلى مصدر رزمة البيانات، ولا يُردّ أبداً على رسالة خطأ. أمَّا رسائل الإعلام، فتُرسل من مُضيف، إلى مُضيف آخر أو إلى موجه، ويمكن أن تستخدم لطلب معلومات مُحددة، مثل عنوان موجه أو قناع الشبكة، ولكل رسالة طلب رسالة ردٍّ مُتوافِقة معها من حيث النُّوع والبِنية، ويَلزم الردّ على كُلّ رسالة طلب ٍبرسالة الرد المُتوافِقة معها.

## بنية الترويسة

تتكون ترويسة بروتوكول رسائل التحكم من مجموعتين من الحقول، أوَّلها هي الحقول الدائمة، وتوجد في ترويسات رسائل البروتوكول كُلِّها، بغض النظر عن نوع الرسالة، وثانيها هي حقول المُحتوى، وتتغير في العدد والبنية وفقاً لنوع الرسالة، ويمكن وصف حقول الرسالة وفقاً لما يأتي:
* حقل النوع: (8 بت) يحتوي مُعرِّفاً رقميَّاً يُشير إلى نوع رسالة التحكم. تُدير هيئة أرقام الإنترنت المُخصصة عملية الضبط المعياري لقيم هذا الحقل عالمياً، وهناك 43 قيمة محجوزة، ولكن عدداً كبيراً منها خُصص لرسائل مُبطلة لم تعد مستعملة.
* حقل الترميز: (8 بت) يحتوي مُعرِّفاً رقميَّاً يُخصص نوع الرسالة، ويختلف معنى الترميز باختلاف نوع الرسالة، فمعنى الترميز 0 من أجل أحد أنواع رسائل التحكم يختلف عن معناه في رسالةٍ أخرى، تُخصص قيم هذا الحقل من قبل هيئة أرقام الإنترنت المُخصصة.
* حقل التحقق الجمعي: (8 بت) ويحتوي ناتج خوارزميّة التحقق الجمعيّ التي تطبّق على رزمة البروتوكول كاملةً. تشرح مُحددات البروتوكول الخوارزميّة المُتبّعة لحساب قيمة هذا الحقل.
* المُحتوى (متغيِّر الطول) ويُمثِّل حقولاً تختلف في بنيتها وعددها ومحتواها بحسب نوع الرسالة، وقد تحتوي في بعض الأحيان على أجزاء من ترويسة بروتوكول إنترنت أو ترويسات بروتوكولات أخرى.
تُصنف رسائل التحكم إلى نوعين وفقاً لوظيفتها، فهي إمَّا رسائل إعلام أو رسائل إبلاغ عن خطأ، وفيما يأتي رسائل البروتوكول الَّتي ما تزال قيد الاستعمال:
جدول برسائل بروتوكول رسائل التحكم التي ما تزال قيد الاستعمال مُصنفةً وفقاً للنوع :
| حقل النوع | اسم الرسالة بالعربية | اسم الرسالة بالإنجليزية | تصنيف الرسالة |
| 0 | الصدى | Echo Replay | إعلام |
| 3 | تعذُّر بلوغ الوجهة | Destination unreachable | خطأ |
| 5 | إعادة التوجيه | Redirect | خطأ |
| 8 | توليد الصدى | Echo | إعلام |
| 9 | إعلان الموجه | Router Advertisement | إعلام |
| 10 | التماس الموجه | Router Solicitation | إعلام |
| 11 | نفاد الزمن | Time exceeded | خطأ |
| 12 | مشكلة في محدد | Parameter problem | خطأ |
| 13 | طلب وسمة زمنيَّة | Timestamp | إعلام |
| 14 | الردُّ على طلب الوسمة الزمنيَّة | Timestamp Reply | إعلام |
هناك العديد من الرسائل التي طُوِّرت لأغراض معينة، بعضها استعمل لفترة، وبعضها لم يتجاوز المرحلة التجريبية. وفيما يأتي سرد بهذه الرسائل المُبطلة مرتبةً وفقاً لقيمة حقل النوع فيها:
جدول برسائل بروتوكول رسائل التحكم المُبطَلِة :
| حقل النوع | اسم الرسالة بالعربية | اسم الرسالة بالإنجليزية | سبب الإبطال |
| 4 | تهدئة المصدر | Source Quench | بسبب عدم فعاليَّة الآلية في معالجة ظاهرة الازدحام. |
| 6 | عنوان المضيف البديل | Alternate Host Address | ليس هناك معلومات متوافرة عن هذا النوع من الرسائل |
| 15 | طلب معلومات | Information Request | بسبب ظهور تقنيَّات أخرى تقدِّم هذه الخدمات بكفاءة، مثل بروتوكول تهيئة المضيف الآلية |
| 16 | الرد على طلب المعلومات | Information Reply | بسبب ظهور تقنيَّات أخرى تقدِّم هذه الخدمات بكفاءة، مثل بروتوكول تهيئة المضيف الآلية |
| 17 | طلب قناع عنوان | Address Mask Request | بسبب ظهور تقنيَّات أخرى تقدِّم هذه الخدمات بكفاءة، مثل بروتوكول تهيئة المضيف الآلية |
| 18 | الرد على طلب قناع عنوان | Address Mask Reply | بسبب ظهور تقنيَّات أخرى تقدِّم هذه الخدمات بكفاءة، مثل بروتوكول تهيئة المضيف الآلية |
| 30 | تتبع المسار | Traceroute | عُرّّفت الرسالة بصفتها خياراً تجريبياً للإصدار الرابع من بروتوكول الإنترنت، ولم تُطبَّق أبداً على نطاق واسع. |
| 31 | خطأ في تحويل حزمة البيانات | Datagram Conversion Error | كان الهدف من تطوير هذه الرسالة هو الإبلاغ عن أخطاء تحويل حزم البيانات في الإصدار السابع من بروتوكول الإنترنت (TP/IX)، ولكن البروتوكول ولم يُطبَّق أبداً على نطاق واسع. |
| 32 | إعادة توجيه المُضيف المُتحرك | Mobile Host Redirect | طُوِّرت هذه الرسالة بالأصل لتكون جزءاً من بروتوكول تجريبي لمضيفي بروتوكول الإنترنت المتحركين، ولكن البروتوكول لم يُطبَّق أبداً على نطاق واسع. |
| 33 | الإصدار السادس، أين أنت | IPv6 Where-Are-You | طوِّرت هاتان الرسالتان كجزء من مشروع يهدف لتحديد العقد المجاورة التي تُشغِّل الإصدار السادس من بروتوكول الإنترنت، ولكن البروتوكول لم يُطبَّق أبداً على نطاق واسع. |
| 34 | الإصدار السادس، أنا هنا | IPv6 I-Am-Here | طوِّرت هاتان الرسالتان كجزء من مشروع يهدف لتحديد العقد المجاورة التي تُشغِّل الإصدار السادس من بروتوكول الإنترنت، ولكن البروتوكول لم يُطبَّق أبداً على نطاق واسع. |
| 35 | طلب التسجيل | Mobile Registration Request | طُوِّرت هاتان الرسالتان لدعم توجيه رزم بيانات الإصدار السادس من بروتوكول الإنترنت لدى العُقد المُتحركة، ولكن البروتوكول لم يُطبَّق أبداً على نطاق واسع. |
| 36 | الرد على طلب التسجيل | Mobile Registration Reply | طُوِّرت هاتان الرسالتان لدعم توجيه رزم بيانات الإصدار السادس من بروتوكول الإنترنت لدى العُقد المُتحركة، ولكن البروتوكول لم يُطبَّق أبداً على نطاق واسع. |
| 37 | طلب اسم النطاق | Domain Name Request | طُوِّرت هاتان الرسالتان ضمن آلية تسمح للمضيف بالحصول على اسم النطاق المؤهل المُكتَمل، ولكن البروتوكول لم يُطبَّق أبداً على نطاق واسع. |
| 38 | الرد على طلب اسم النطاق | Domain Name Reply | طُوِّرت هاتان الرسالتان ضمن آلية تسمح للمضيف بالحصول على اسم النطاق المؤهل المُكتَمل، ولكن البروتوكول لم يُطبَّق أبداً على نطاق واسع. |
| 39 | رسالة إدارة المفاتيح لبروتوكول الإنترنت | Simple Key-Management for Internet Protocol (SKIP) | طُوِّرت هذه الرسالة لدعم إدارة المفاتيح البسيطة لبروتوكولات الإنترنت $^{[الإنجليزية]}$، ولكن البروتوكول لم يُطبَّق أبداً على نطاق واسع. |

## الوظائف
### الإبلاغ عن الأخطاء

تُرسل رسائل الأخطاء نتيجةً لحصول خطأ ما في أثناء معالجة رزمة بيانات. يكون مصدر الرسالة وجهة الرزمة أو أحد المُوجِّهات التي تُعالِجُها في أثناء عبورها الشبكة نحو وجهتها. يجب أن تحتوي رسالة الخطأ على نسخة من ترويسة بروتوكول الإنترنت الخاصّة بالرزمة التي حصل الخطأ فيها بالإضافة لنسخة من أول ثمانية بايتات من حمولة الرزمة. يمكن أن تستخدم بعض رسائل الأخطاء لاكتشاف الأخطاء في الشبكة بهدف تصحيحها، مثل رسالتي إعادة التوجيه وتعذُّر بلوغ الوجهة.
تُحدد وثيقة طلب التعليقات RFC 1812 بعض الحالات التي لا يجب أن تُرسل رسائل الأخطاء فيها، وهي كالتالي:
* نتيجةً لاستقبال رسائل أخرى أخطاء أخرى للبروتوكول.
* نتيجةً للتخلُّص من رزمة بروتوكول إنترنت لم تتجازو اختبارات التحقق من صحة المحتوى، مثلاً: لم تتجاوز اختبار فحص التحقق الجمعي أو في الحالة التي تكون طول الرزمة المُحدد في الترويسة لا يتوافق مع طولها الفعلي ... إلخ.
* نتيجةً لاستقبال رزمة بثٍّ عام أو بثٍّ مجموعاتيّ.
* نتيجةً لاستقبال رزمة بيانات ذات عنوان مصدرٍ غير سليمٍ.
* نتيجةً لاستقبال أي قطعة ناتجة عن التقطيع، ما خلا القطعة الأولى.

#### تعذُّر بلوغ الوجهة

تُرسل هذه الرسالة إلى المُضيف المَصدر الذي أرسل رزمة بياناتٍ ما نحو مضيف وجهة، ولكن لسببٍ ما، تحدده هذه الرسالة تعذَّر إيصال الرزمة إلى وجهتها. وقد يكون مُرسِل هذه الرسالة مُوجِّهاً يُعالِج الرزمة في أثناء عبورها المسار نحو المضيف الوجهة الذي قد يكون هو نفسُه مرسل الرسالة في بعض الأحيان. تُرسل هذه الرسالة في الحالات التالية:
1. من مُوجِّه يُعالج الرزمة:
   * إذا لم يكن بالإمكان بلوغ الشبكة المُحدَدة وجهةً لرزمة بيانات ما وفقاً لبنود جدول التوجيه. في هذه الحالة، يتخلص الموجه من الرزمة، ويُرسل رسالة تعذُّر بلوغ الوجهة ويُحددها بحالة حالة تعذُّر بلوغ الشبكة.
   * إذا كان المُوجِّه مُتصِلاً مع الشبكة الوجهة بشكل مباشر، ولكن تعذَّر بلوغ المضيف المحُدد بعنوان الوجهة، كأن يكون المضيف في وضع التعطيل أو غير مُتصلٍ مع الشبكة أو قد يكون العنوان غير مستعملٍ أو خاطِئ. في هذه الحالة، يتخلص الموجه من الرزمة، ويُرسل رسالة تعذُّر بلوغ الوجهة ويُحددها بحالة تعذُّر بلوغ المضيف.
   * إذا كان علم عدم التقطيع مَرفُوعاً في رزمة البيانات، وكان حجمُها أكبر من وحدة النقل العظمى لطبقة الشبكة المُحددة في الخطوة التالية على مسار الرزمة نحو وجهتها، في هذه الحالة يتخلص المُوجه من الرزمة، ويُرسِل رسالة تعذُّر بلوغ الوجهة ويُحددها بحالة الحاجة للتقطيع ولكن علم عدم التقطيع مرفوع.
2. من المُضيف الوجهة:
   * إذا كانت قيمة حقل البروتوكول في ترويسة الإصدار الرابع من بروتوكول الإنترنت لا تتطابق مع أي قيمة مدعومة في وحدة بروتوكول الإنترنت في المضيف، فإِنَّ الوحدة تقوم بالتخلص من الرزمة عندها بالتخلص من رزمة البيانات وترسل رسالة تعذُّر بلوغ الوجهة وتحددها بحالة حالة تعذُّر بلوغ البروتوكول.
   * إذا كان رقم المنفذ في ترويسة بروتوكول النقل غير فعَّال في المُضيف الوجهة، فإنَّ وحدة بروتوكول الإنترنت تتخلص من الرزمة وترسل رسالة تعذُّر بلوغ الوجهة إلى مصدر الرزمة وتحددها بحالة تعذُّر بلوغ المنفذ.
قيم حقل الترميز في رسالة تعذُّر بلوغ الوجهة :
| حقل الترميز | الحالة | الوصف |
| 0 | تعذُّر بلوغ الشبكة | يُولِّدها مُوجِّه يعالج رزمة بيانات ما إذا كان المسار نحو الشبكة الوجهة غير مُتوافِر في جدول التوجيه. |
| 1 | تعذُّر بلوغ المضيف | يُولِّدها مُوجِّه يعالج رزمة بيانات ما إذا كان المُضيف الوجهة يقع في شبكةٍ مُتصِلةٍ بشكلٍ مُباشر معه، ولكن المسار نحو المُضيف الوجهة غير مُتوافِر. |
| 2 | تعذُّر بلوغ البروتوكول | تُولَّد في المضيف الوجهة إذا كان بروتوكول طبقة النقل الذي يجب أن يعالج محتوى رزمة البيانات غير مدعومٍ. |
| 3 | تعذُّر بلوغ المنفذ | تُولَّد في المضيف الوجهة إذا كان بروتوكول طبقة النقل الذي يجب أن يعالج محتوى رزمة البيانات لا يدعم رقم المنفذ الموجود في محتوياتها. |
| 4 | الحاجة للتقطيع وعلم عدم التقطيع مرفوع | يُولِّدها مُوجِّه يعالج رزمة بيانات ما إذا كانت يتوجب عليه تقطيع الرزمة ولكن علم عدم التقطيع مرفوعٌ فيها. |
| 5 | إخفاق مسار المصدر | يُولِّدها مُوجِّه لم يستطيع توجيه رزمة بيانات ما وفقاً لما يوجد في خيار المسار المُقيّد بالمصدر. |
| 6 | الشبكة الوجهة غير مَعرُوفة | لا يجب توليد رسالة تعذُّر بلوغ وجهة بهذا الترميز، لأنَّها تعطي المصدر انطباعاً بأنَّ الشبكة الوجهة غير مَوُجودة. عوضاً عن الرسالة، تُولَّد رسالةُ تعذُّر بلوغ وجهةٍ تكون قيمة حقل النوع فيها مساويةً للصفر. |
| 7 | المضيف الوجهة غير معروف | تولد هذه الرسالة في حالة محددة هي عندما يتمكَّن المُوجِّه، اعتماداً على معلومات طبقة الربط، من الجزم بصورة أكيدة بأنَّ المُضيف الوجهة غير موجود. |
| 8 | المضيف المصدر معزول | مُبطلَة، لا تُستعمل. |
| 9 | الاتصال مع الشبكة الوجهة مَحظُور إشرافيَّاً | لا يُسمح للمضيف المصدر بإرسال رزم البيانات إلى الشبكة حيث يُوجَد المُضيف الوجهة. |
| 10 | الاتصال مع المضيف الوجهة محظور إشرافيَّاً | لا يُسمح للمضيف المصدر بإرسال رزم البيانات إلى المُضيف الوجهة. |
| 11 | تعذُّر بلوغ الشبكة الوجهة بسبب نوع الخدمة | يُولِّدها مُوجِّه يعالج رزمة بيانات ما لم يكن هناك مسارٌ نحو الشبكة الوجهة متوافِقٌ مع نوع الخدمة الافتراضي. |
| 12 | تعذُّر بلوغ المضيف الوجهة بسبب نوع الخدمة | يُولِّدها مُوجِّه يعالج رزمة بيانات ما لم يكن هناك مسارٌ نحو المُضيف الوجهة متوافقٌ مع نوع الخدمة الافتراضي أو المطلوب وفقاً للرزمة. |
| 13 | الاتصال محظور إشرافيَّاً | تُولَّد في مُوجِّه إذا لم يكن باستطاعته توجيه رزمة بيانات ما بسبب عملية ترشيح إشرافيَّة. |
| 14 | انتهاك أحقيَّة المضيف | تُرسل من مُوجِّهٍ متصِلٍ بشكلٍ مُباشر مع شبكة المضيف المصدر لإخباره بأنَّه لا يحق له إنجاز عملية الإرسال لأغراض تتعلق بنوع الخدمة، مثلاً لا يحق للمُضيف إنشاء اتصال بين زوج عناوين المصدر والوجهة أو أرقام منافذ المصدر والوجهة أو غير ذلك. |
| 15 | أحقيَّة غير كافية | تُرسل من مُوجِّه مُتصِلٍ بشكلٍ مُباشرٍ مع شبكة المُضيف لإخباره بأنَّه لا يحقق درجة الأحقيَّة الدُنيا اللازمة لإتمام العملية. |

#### إعادة التوجيه

تُرسل رسالة إعادة التوجيه من مُوجِّه مُتصِلٍ بشكلٍ مباشر مع شبكة المضيف المصدر لرزمة بيانات من أجل إبلاغه باستحسان أن يُرسل رزم البيانات الموجهة لوجهة مُحددة إلى مُوجِّه آخر متصل بشكل مباشر مع الشبكة المحليَّة نفسها. أفضل لرزمة بيانات سبق وأرسلها. في هذه الحالة يكون هناك مُوجِّهان على الأقل مُتصِلان مع الشبكة المحلية حيث يُوجد المُضيف، وليكونا مثلاً R$_1$ وR$_2$. يُولِّد المُضيف رزمة بيانات نحو وجهة ما، ولتكن X، وأفضل مسار لبلوغ هذه الشبكة هو عبر الموجه R$_2$، ولكن المُضيف يُرسلها نحو الموجه R$_1$، وهنا يوجهها هذا الموجه نحو الموجه R$_2$، ثُمَّ يُرسل رسالة إعادة توجيه للمضيف الذي ولد الرزمة، يبلغه فيها بتوجيه الرزم المستقبلية التي تكون وجهتها هي X نحو الموجه R$_2$.
يُلزَم كُلُّ مُضيفٍ بتحديث جدول التوجيه خاصَته للتفاعل مع رسائل إعادة التوجيه التي يستقبلها، ويُستُثنى من ذلك الحالات التي يكون عنوان المُوجِّه فيها في شبكة جزئية أخرى مغايرة للشبكة الجزئية التي ينتمي عنوان المُضيف إليها. في هذه الحالة فقط، يُهمل المضيف رسالة إعادة التوجيه.
في رسالة إعادة التوجيه تكون قيمة حقل النوع 5 دائماً، وهناك 4 قيم مُمكِنة لحقل الترميز يُبيُّنها الجدول التالي:
قيم حقل الترميز في رسالة إعادة التوجيه :
| حقل الترميز | الحالة | الوصف |
| 0 | إعادة التوجيه نحو شبكة | إخبار مُضيف أرسل رزمة بيانات سابقة بإعادة توجيه أي رزمة مُستقبليَّة إلى العنوان المُرفَق بالرسالة، إذا تحقق الشرط التالي: كان عنوان وجهة الرزمة المستقبليَّة يقع في فضاء عناوين الشبكة الَّتي عُنونت بها الرزمة السابِقة. أُبطلت وفقاً للوثيقة. |
| 1 | إعادة التوجيه نحو مُضيف | إخبار مُضيف أرسل رزمة بيانات سابقة بإعادة توجيه أي رزمة مستقبلية إلى العنوان المُرفَق بالرسالة، إذا تحقق الشرط التالي: كان عنوان وجهة الرزمة المستقبلية هو عنوان وجهة الرزمة السابقة. |
| 2 | إعادة التوجيه نحو شبكة بسبب نوع الخدمة | مُطابِق لحالة الترميز 0، مع إضافة شرط أن تكون قيمة حقل نوع الخدمة في الرزمة المستقبليَّة مُطابِقة للقيمة في الرزمة السابقة. |
| 3 | إعادة التوجيه نحو مضيف بسبب نوع الخدمة | مُطابِق لحالة الترميز 1، ومع إضافة شرط أن تكون قيمة حقل نوع الخدمة في الرزمة المستقبليَّة مُطابِقة للقيمة في الرزمة السابِقة. أُبطلت وفقاً للوثيقة. |

#### نفاد الزمن

تُرسَل هذه الرسالة في حالتين اثنتين، تحصل الأولى بعد معالجة رزمة بيانات في مُوجِّه ما، فإذا وجد المُوجِّه أن قيمة حقل زمن حياة الرزمة في ترويسة الإصدار الرابع من بروتوكول الإنترنت مُساوٍ للصفر، فإنَّه يتخلص من الرزمة مباشرةً ويُرسِل رسالة نفاد الزمن إلى مَصدرها. أمَّا الحالة الثانيَّة، فتحصل عند تجميع قطع رزمة بيانات في الوجهة، فإذا نفد مُؤقِّت التجميع ولمّا تصل كل القطع بعدُ، فإِنَّ المُضيف الوجهة يتخلَّص من القطع التي جمعها كلِّها، ويُرسِل رسالة نفاد الزمن إلى مصدرها.
تكون قيمة حقل النوع في رسالة نفاد الزمن هي 11 دائماً، أما قيمة حقل الترميز فتكون إما 0 أو 1 وفقاً للجدول التالي:
قيم حقل الترميز في رسالة نفاد الزمن :
| حقل الترميز | الحالة | الوصف |
| 0 | نفاد زمن حياة الرزمة | قيمة حقل زمن حياة الرزمة في ترويسة الإصدار الرابع من بروتوكول الإنترنت بلغت الصفر. |
| 1 | نفاد زمن التجميع | انتهى زمن الانتظار لتجميع قطع رزمة بيانات، وبعض القطع لم تصل بعدُ. |

#### مشكلة في محدِد

قد يصادف مُضيف وجهة أو مُوجِّه في أثناء معالجة رزمة بيانات ما مُشكلةً في أحد حقول ترويسة الإصدار الرابع من بروتوكول الإنترنت، ومثالها أن تحتوي حقول الترويسة على قيمةٍ غير صحيحةٍ، أو غير مَدعُومةٍ في الوجهة. إذا مَنعت هذه المشكلة استمرار معالجة الرزمة، فلا بد عندها من التخلُّص مِنها ثُمَّ إرسال رسالة مُشكلةٍ في مُحدِد إلى مصدرها. تحتوي الرسالة على حقلٍ يُسمَّى حقل المُؤشِّر، يستعمله مُولِّد الرسالة للإشارة إلى موقع البايت الذي سبب المشكلة في ترويسة الرزمة، بالإضافة إلى نسخة عن الترويسة التي سببت المُشكلة.
يجب أن يولد كل مُوجِّه رسالة مُشكلةٍ في مُحدد من أجل أي خطأ معالجة غير مَشمُول برسائل الإبلاغ عن الأخطاء الأُخرى الخاصّة بالبروتوكول. في هذه الرسالة تكون قيمة حقل النوع 12 دائماً، أمَّا قيمة حقل الترميز فتكون إمَّا 0 أو 1 وفقاً للجدول التالي:
قيم حقل الترميز في رسالة نفاد الزمن :
| حقل الترميز | الحالة | المرجع |
| 0 | حقل المُؤشِّر يُشير إلى موقع الخطأ | |
| 1 | هناك خيارٌ مَطلُوب في الترويسة، ولكنَّه غير موجودٍ فيها | |

### الإعلام
#### توليد الصدى والصدى

يجري تبادل هاتين الرسالتين بين مُضيفين اثنين لعنوانين من الإصدار الرابع من بروتوكول الإنترنت، يُرسِل الأول رسالة توليد الصدى إلى الآخر الذي يرد، بعد استقبالها، بإرسال رسالة الصدى. تحتوي رسالة توليد الصدى على عدد من البايتات التي تُمثِّل حمولة الرسالة، ويجب على رسالة الصدى أن تحمل نفس حمولة رسالة توليد الصدى. هناك حقلان في ترويسة الرسالة هما رقم التتابع والمُعرِّف، ويمكن أن يُستخدما من قبل مُرسل رسالة توليد الصدى للمساعدة في مطابقة رسالة الصدى القادمة مع رسالة توليد الصدى المُرسلة، في حال أُرسلت أكثر من رسالة توليد في الوقت نفسه.
يجب أن تكون عناوين المصدر والوجهة في رسالتي توليد الصدى والصدى مُتعاكسة، أي يكون عنوان المصدر في رسالة التوليد هو عنوان الوجهة في رسالة الصدى، وعنوان الوجهة في رسالة التوليد هو عنوان المصدر في رسالة الصدى.
تكون قيمة حقل النوع هي 8 في رسالة توليد الصدى و0 في رسالة الصدى. أمَّا قيمة حقل الترميز، فهي 0 دائماً في كلتا الرسالتين.

#### اكتشاف الموجه

رسائل اكتشاف المُوجه هي توسِعة لبروتوكول رسائل التحكم للإصدار الرابع من بروتوكول الإنترنت، وهي تُمكِّن مضيفين متصلين بشبكات تدعم البثَّ المجموعاتي أو البثَّ العامّ اكتشاف عنوان بروتوكول الإنترنت الخاصّ بالمُوجِّهات الجيران. صدرت هذه التوسِعة بشكل مُستقلٍ ووصفت في وثيقة طلب التعليقات RFC 1256.
تُعرِّف هذه التوسعة رسالتي إعلام، هما رسالة إعلان المُوجِّه ورسالة التماس المُوجِّه. يرسل كُلُّ مُوجِّهٍ يدعم البثَّ المجموعاتي رسالة بثٍّ مجموعاتيّ هي إعلان الموجه بشكل دوريَّ عبر كل منفذ يدعم البثّ المجموعاتيّ فيه، وتتضمن الرسالة التي تُبثُّ عبر كل منفذ، عناوين البثّ المجموعاتيّ المَدعُومة فيه، ويُمكن للمضيفين أن يَكتشفوا المُوجِّهات الجيران بالاستماع إلى هذه الإعلانات. ويُمكن أيضاً لمُضيف عنوان بثّ مجموعاتيّ أن يُرسِل رسالة التماس، وهي رسالة بثٍّ مجموعاتي تطلب من أيّ مُوجِّه يستقبلها أن يُرسل مباشرةً رسالة إعلان على المنفذ الذي استقبلت منه، أي أنها تُعرِّف آليَّةً يمكن للمضيفين من خلالها طلب المعلومات من الموجهات عند الحاجة عوضاً عن انتظار رسائل الإعلان. تتضمَّن رسائِل الإعلان حقلاً هو زمن الحياة، وهو يُحدد المدة العظمى التي تكون العناوين المُعلَن عنها صالحةً للاستعمال، ويبدأ أي مضيف يستقبل رسالة الإعلان بتشغيل مُؤقِّت تنازلي تُضبَط قيمته العليا وفقاً لقيمة زمن الحياة في رسالة الإعلان، ويُعيد المُضيف ضبط هذا المؤقت إلى قيمته العُليا كلما استقبل رسالة إعلانٍ جديدة، فإذا بلغت قيمة المؤقت الصفر، فإنَّ العناوين المَوجُودة في رسالة الإعلان تُصبح غير صالحةٍ للاستعمال. وسبب استعمال هذا المؤقت هو ضمان أن يمتلك المُضيفون آليَّةً لاكتشاف إخفاق المُوجِّهات.
تُرسل رسائل الإعلان بشكل دوريٍّ بفواصل زمنيَّة تتراوح بين 7 و10 دقائق، وتكون مدة زمن الحياة هي 30 دقيقة افتراضيَّاً.

#### الوسمة الزمنية

الوسمة الزمنية هي عدد طوله 32 بت يعبر عن الزمن المنقضي بأجزاء ألفيَّة من الثانية منذ منتصف الليل وفقاً للتوقيت العالمي. تؤمن رسائل الوسمة الزمنية آلية لقياس الزمن المنقضي بين زمن إرسال الرسالة من مصدرها وزمن وصولها إلى وجهتها وزمن إرسال الرد عليها، وهذه الأزمنة هي حقول في رسالة الوسمة الزمنية والرد عليها. يملأ المضيف المصدر حقل وسمة الإرسال الزمنية في رسالة الوسمة، وينسخ المضيف الوجهة قيمة هذا الحقل إلى رسالة الرد ثُمَّ يضيف إليها وسمتي الاستقبال وإعادة الإرسال ويُرسلها إلى مصدر رسالة الوسمة. هناك حقلان إضافيان في الرسالة هما رقم التتابع والمُعرِّف، ويمكن أن يُستخدما من قبل مُرسل رسالة الصدى للمساعدة في مطابقة رسالة الصدى مع رسالة توليد الصدى، في حال أُرسلت أكثر من رسالة توليد تتابعاً.
تكون قيمة حقل النوع في رسالة الوسمة الزمنية هي 13 وفي رسالة الرد عليها 14، أمَّا قيمة حقل الترميز فهي 0 دائماً في الرسالتين.

## التطبيقات
### أمر التحقق من الاتصال

أمر التحقق من الاتصال (بالإنجليزية: Ping)‏ هو أمر برمجي مدعوم في شبكات البيانات التي تُشغِّل حزمة بروتوكولات الإنترنت، يهدف إلى التحقق مِن القدرة على الاتصال مع مضيف لعنوان من الإصدار الرابع من بروتوكول الإنترنت عن طريق تبادل رسائل توليد الصدى والصدى معه. تُرسل رسالة توليد الصدى إلى المضيف الهدف، فإذا ردّ برسالة الصدى فإن هناك إمكانيَّة لإنشاء اتصال معه.
طُوِّرت هذا الأمر أساساً في مختبرات أبحاث الجيش الأمريكي $^{[الإنجليزية]}$ على يد مايك موس (بالإنجليزية: Mike Muss)‏ في عام 1983م، وقد سمُيَّ بهذا الاسم كنايةً عن صوت السونار عندما ترتطم أمواجه الصوتيَّة بجسم ما وترتد بعد ذلك عائدةً إلى المصدر، وهذا هو مبدأ عمل هذا الأمر. لاحقاً، دعمت أشهر أنظمة التشغيل هذا الأمر ومنها على سبيل المثال: لينكس وويندوز وسيسكو.

### أمر تتبع المسار

أمر تتبع المسار (بالإنجليزية: Traceroute أو Tracert)‏ هو أمر برمجيٌّ مَدعُومٌ في شبكات البيانات التي تُشغِّل حزمة بروتوكولات الإنترنت، يهدف إلى تعقب المسار الذي تسلكه رزم البيانات عند انتقالها من مصدرها إلى وجهتها. يُقدِّم الأمر بياناتٍ عن عدد القفزات على طول المسار والزمن الذي استغرقه كل منها.
جرت محاولات لجعل هذه الأداة جزءاً من الإصدار الرابع من بروتوكول الإنترنت من خلال تعريف خيارٍ خاصٍّ بها حمل مُعرِّفه الرقم 82، وإضافته إلى خيارات الإصدار البروتوكول، بالإضافة لتعريف رسالة إعلام إضافيَّة لبروتوكول رسائل التحكم، مع قيمة مُميَّزة لحقل النوع هي 30، ولكن المحاولات السابقة ظلت تجريبية ولم تُطبَّق على نطاقٍ واسِع، ثم أُبطلت في وقت لاحق.
نتيجةً لذلك، طُوِّر هذا الأمر انطلاقاً من بروتوكول رسائل التحكم بشكل منفصل وبطرق متنوعةٍ في أنظمة التشغيل المختلفة، ومنها نظام لينكس وويندوز ووسيسكو.

## المُشكلات

تُصنَّف المُشكلات التي تنتج عن استعمال البروتوكول تحت ثلاث أنواع: الغمر (بالإنجليزية: Flood attack)‏، والهجوم الانفجاري (بالإنجليزية: Bomb attack)‏ وتسريب البيانات (بالإنجليزية: Information disclosure)‏. أمَّا الغمر فهو شكل من أشكال هجوم حجب الخدمة، وفيه تُوَلَّد كمية كبيرة من البيانات لغمر الشبكة بها بحيث يتعذَّر استعمال الشبكة. وأمَّا الهجوم الانفجاري، فهو يستهدف إيقاف عمل وحدة البروتوكول من خلال إرسال رسالةٍ ذات بنيةٍ مُحددةٍ تسبب معالجتها خطأً في الوحدة. وأَمَّا تسريب البيانات، فهو لا يُلحق ضرراً بحدة ذاته، لكنَّه يكشف عن بيانات يمكن أن تُستعمل في هجمات أخرى.
في ما يأتي، تصنيفٌ للهجمات التي يمكن شنها باستعمال البروتوكول وفقاً لنوع الرسالة:
أولاً: رسالتا توليد الصدى والصدى:
* هجوم السنافر: وهو أحد هجمات الغمر عن طريق حجب الخدمة، وفيه يرسل مُضيفٌ بعيدٌ رسالة صدى مُوجَّهة إلى شبكة محليَّة مع عنوان وجهة هو عنوان البث العام في تلك الشبكة، وتسبب هذه الرسالة عند انتشارها في الشبكة المحليَّة ردَّالمضيفين كُلِّهم عليها، ما يسبب غمر الشبكة المحلية بكميةٍ كبيرةٍ من الرسائل في وقت صغير، ويؤدي ذلك إلى خروجها من الخدمة، تُعالَج هذه المُشكلة بمنع رسائل البث العام المُوجَّهة والقادمة من خارج الشبكة المحلية.
* هجوم أمر التحقق من الاتصال المميت: وهو هجوم غمر انفجاريٍّ في الوقت نفسه، ويعتمد على حقيقة عدم وجود حجمٍ مُحددٍ لرسائل توليد الصدى، ويجري فيه إرسال رسائل توليد صدى بأعظم حجم ممكن وهو 65336 بايت إلى المُضيف المُستهدَف، وبسبب حجمها الكبير، فإنَّ هذه الرسائل تُقطَّع أثناء عبورها الشبكة، ولا يستطيع المضيف المستهدف الرد على أيِّ مِنها قبل إعادة تجميع الرسالة كاملةً، ويُسبب هذا الهجوم غمر المضيف بكمية بياناتٍ كبيرة لا يقدر على معالجتها فينهار ويتوقف عن العمل.
* هجوم حجب الشبكة المحلية عن المضيف $^{[الإنجليزية]}$: وهو شكلٌ من أشكال حجب الخدمة، ولكنَّه يحصل على مستوى مضيف واحد، ويكمن أن ينجز بأكثر من طريقة، إحداهما هي باستعمال رسائل الصدى. في هذه الحالة، يُغمر المضيف الهدف بعدد كبير من رسائل توليد الصدى التي يكون عنوان مصدرها هو عنوان وجهتها نفسه وهو عنوان المضيف الهدف، وعندها يبدأ المضيف المُستهدَف بإرسال رسائل لنفسه واستقبالها مباشرة عبر الوصلة المحليَّة دون إِرسالها إلى الشبكة، ويسبب ذلك غمر المُضيف بهذه الرسائل وعزله عن الشبكة.
ثانياً: رسالة إعادة التوجيه:
* هجوم الوسيط: وهو هجوم تسريب بيانات، وفيه تُوجَّه رزم البيانات التي يُولِّدها المُضيف المُستهدَف كلُّها نحو وسيط، يطَّلِع عليها وقد ينسخها، قبل أن يُوجِّهها إلى هدفها. ويمكن إعداد هذا الهجوم بواسطة رسائل إعادة التوجيه.
هناك أيضاً وثيقة طلب التعليقات تصفُ الهجمات التي يمكن أن تُشن على بروتوكول التحكم بالنقل باستعمال بروتوكول رسائل التحكم، هي الوثيقة ذات الاسم الرمزي RFC 5927.

## هوامش

1. يُمكن تبيُّن العلاقة الوثيقة مع الإصدار الرابع بروتوكول الإنترنت بتتبع الأسماء الرمزية للمعايير الرسمية، فقد حمل معيار الإصدار الرابع من بروتوكول الإنترنت الاسم الرمزي RFC 791، وتلاه مباشرةً معيار بروتوكول رسائل التحكم في الإنترنت الذي حمل الاسم الرمزي RFC 792.
2. العنوان الأَصل هو: (بالإنجليزية: Requirements for Internet Hosts -- Communication Layers)‏.
3. العنوان الأَصل هو: (بالإنجليزية: Requirements for IP Version 4 Routers)‏.
4. يُمكن تبين العلاقة الوثيقة بين بروتوكول رسائل التحكم والإصدار السادس من بروتوكول الإنترنت بتتبع الأسماء الرمزية للمعايير الرسمية، فقد حمل المعيار الأول للإصدار السادس من بروتوكول الإنترنت الاسم RFC 1883، في حين خُصصت الوثيقة RFC 1884 للعنونة باستعمال هذا الإصدار، وتلاهما معيار بروتوكول رسائل التحكم للإصدار السادس من بروتوكول الإنترنت الذي حملت وثيقته الاسم الرمزي RFC 1885.
5. كانت إدارة الازدحام من وظائف هذا البروتوكول أيضاً عند تطويره، وذلك عن طريق رسالة تهدئة المصدر. ولكن هذه الرسالة أُبطلت لاحقاً، ولم يعد البروتوكول يدعم هذه الوظيفة.
6. الصدى لغةً هو الصوت المجيب من الجبل ونحوه على صوت المنادي. وفي هذا السياق، فالرسالة الأولى تمثل صوت المنادي والرسالة الثانية العائدة هي الصدى. في المعيار الأصلي، سُميت الرسالة الأولى بالصدى (بالإنجليزية: Echo)‏ والثانية بالرد على الصدى (بالإنجليزية: Echo Reply)‏، أما عند التعريب، فقد عُكست الأسماء لتتماشى مع المعنى في العربية.
7. عند تطوير هذا البروتوكول، كان الإصدار الخامس من البروتوكول تجريبياً، وكان يجري العمل على تطوير إصدار محسن منه، ظنَّ مطور البروتوكول أنه سيحمل الرقم 6، لذلك اختار الرقم 7 بشكل استباقي، ولكن العمل توقف في تطوير الإصدار الخامس ، ثم طُوِّر الإصدار السادس بشكل منفصل بعد عدة سنوات.
8. انظر خيار المسار المُقيَّد بالمصدر في الإصدار الرابع من بروتوكول الإنترنت.
9. بخصوص مفهوم الأحقية، انظر حقل جودة الخدمة في ترويسة الإصدار الرابع من بروتوكول الإنترنت.
10. في زمن تطوير البروتوكول كانت خدمة التوقيت في الإنترنت (بالإنجليزية: Internet Clock Service اختصاراً ICS)‏ تحت إشراف مختبرات كومسات (بالإنجليزية: COMSAT Laboratories)‏.
11. السنفور (الجمع: السنافر) هو شخصية خيالية صغيرة الحجم، زرقاء اللون، وتعيش في غابة في أوروبة في العصور الوسطى، ابتكرها الرسام البلجيكي بيير كوليفور (بالفرنسية: Pierre Culliford)‏ في العام 1958م، وسبب تسمية الهجوم هو كناية عن صغر حجم الرسائل المستعملة في هذا الهجوم مع كثرة عددها.