)Internet Control Message Protocol پروتکل کنترل پیام اینترنت (
یا همان ICMP یکی از پروتکل های اصلی مجموعه پروتکل اینترنت است که توسط دیوایس های تحت شبکه مانند روتر برای نمایش ارور های پیام های ارسال شده استفاده می شود. ارور هایی مانند عدم برقراری اتصال به روتر یا هاست.
ICMP با پروتکل های ارسال مانند TCP و UDP تفاوت دارد که در واقع برای تبادل اطلاعات بین سیستم ها به کار نمی رود. پیام های ICMP به منظور تشخیص یا کنترل پروسه ها یا یافتن خطا های Ip ، ارور های ICMP مستقیما به سورس آدرس Ip در پاکت پیام منشا می رود.ضروری است که محتویات پیام های ICMP بازرسی شود و در مواقع ایجاد خطا پیغام مناسب نشان دهد . بسیاری از شبکه های مفید برپایه ICMP می باشند.
دستور traceroute به این صورت است که با انتقال دیتاگرام Ip به وسیله یک رکورد مخصوص TTL و جستجو به دنبال TTL ، ICMP و پیغام “Destination unreachable” در مواقعی نمایش داده می شود .
ساختار سگمنت ICMP
ICMP header بعد از IPv4 header می آید که با شماره پروتکل Ip مشخص می شود. تمام بسته های ICMP 8 بیت برای Header دارند و بخش هایی با اندازه های مختلف دارد. 4 بیت ابتدایی همواره ثابت است ولی 4 بیت انتهایی به نوع بسته ICMP بستگی دارد .
پیغام ارور ICMP یک بخش داده ای دارد که شامل هدر IPV4 است، به علاوه ی 8 بیت ابتدایی داده ی بسته ی IPv4 که باعث ایجاد خطا شده است. سپس بسته ICMP به بسته ی IPv4 جدیدی کپسوله می شود. این پیغام توسط هاست استفاده می شود تا پیغام را به فرآیند مناسب وصل کند. اگر پروتکل سطح بالا از شماره های پورت ها استفاده کند، فرض بر این است که در 64 بیت ابتدایی داده های اصلی دیتاگرام قرار می گیرد. همچنین می توان از ICMP برای ایجاد کانال پنهانی ارتباطی استفاده کرد. که این کانال ها به نام ICMP Tunnel معروف هستند.