هنگامی که اطلاعات از طریق اینترنت منتقل می شود، سیستم های کامپیوتری داده ها را با استفاده از پروتکل پروتکل کنترل انتقال / پروتکل اینترنت (TCP/IP) ارسال و دریافت می کنند. اگر مشکلی در اتصال وجود داشته باشد، پیام های خطا و وضعیت مربوط به اتصال با استفاده از ICMP که بخشی از پروتکل اینترنت است ارسال می شود.
زمانی که یک رایانه از طریق اینترنت به سیستم دیگری متصل می شود (مانند یک اتصال کامپیوتر خانگی به یک وب سرور برای مشاهده سایت اینترنتی (Website)، ممکن است فرآیندی سریع و آسان به نظر برسد. در حالی که اتصال ممکن است در عرض چند ثانیه انجام شود، اغلب اتصالات جداگانه زیادی وجود دارد که باید اتفاق بیفتد تا کامپیوترها با موفقیت با یکدیگر ارتباط برقرار کنند.
در واقع، اگر بخواهید تمام مراحل اتصال به اینترنت را با استفاده از دستور مسیر ردیابی (Traceroute) ردیابی کنید، ممکن است تعجب کنید که اتصالات اینترنتی به همان اندازه که هستند موفق هستند. این به این دلیل است که برای هر “پرش” در طول مسیر، شبکه باید عملکردی داشته باشد و بتواند درخواستهای رایانه شما را بپذیرد.
در مواردی که مشکلی در اتصال وجود دارد، ICMP میتواند کدهای برگشتی را به آن ارسال کند. سیستم شما توضیح می دهد که چرا اتصال ناموفق است.
این پیامها ممکن است پیامهایی مانند «شبکه غیرقابل دسترسی» برای سیستمی که از کار افتاده است، یا «دسترسی ممنوع است» برای یک سیستم امن و محافظتشده با رمز عبور باشد. ICMP همچنین ممکن است پیشنهادهای مسیریابی را برای کمک به دور زدن سیستمهای پاسخگو ارائه دهد. در حالی که ICMP می تواند انواع مختلفی از پیام ها را ارسال کند، اکثر آنها هرگز توسط کاربر دیده نمی شوند. حتی اگر پیام خطایی دریافت کردید، نرم افزاری که استفاده می کنید، مانند مرورگر وب، به احتمال زیاد قبلاً پیام را به زبان ساده (و امیدواریم با فنی کمتر) ترجمه کرده است که می توانید آن را درک کنید.
ICMP مخفف چیست؟
پروتکل پیام کنترل اینترنت یا “Internet Control Message Protocol.”
کاربردICMP چیست؟
کاربرد اصلی ICMP برای ارسال گزارش های خطا است. زمانی که دو دیوایس از طریق اینترنت یه یکدیگر متصل می شوند. ICMP در صورتی که داده های هر کدام از این دیوایس ها به مقصد نرسد، گزارش خطا مورد نظر را برای مبدا میفرستد. به عنوان مثال اگر اطلاعات ارسال شده برای یک روتر خیلی بزرگ باشد، روتر بسته را رها می کند و یک پیام ICMP مربوط به اطلاعات رها شده به مبدا ارسال می کند.
کاربرد دیگر ICMP برای تشخیص و عیب یابی مشکلات شبکه است و که در فرایند پشتیبانی شبکه به دفعات مورد استفاده قرار می گیرد. ابزار های رایج در شبکه نظیر ping و traceroute هر دو از پروتکل ICMP استفاده می کنند. ابزار Traceroute برای نمایش مسیر ارسالی اطلاعات مورد نظر به مقصد و تعداد روتر هایی که در مسیر است مورد استفاده قرار می گیرد، همان مسیر فیزیکی واقعی روتر های متصل که درخواست ارسالی قبل از رسیدن به مقصد باید از آن عبور کند. این دستور می تواند دلیل تاخیر پکت ارسالی به مقصد را مشخص کند.
ابزار پینگ نسخه ی ساده شده از Traceroute است. پینگ در حقیقت سرعت اتصال بین دو دستگاه را تست می کند و گزارشی مبنی بر اینکه چقدر طول می کشد تا اطلاعات مورد نظر از مبدا به مقصد برسد و سپس مقصد به مبدا پاسخ دهد را ارائه می دهد.اگر چه Ping اطلاعاتی در مورد مسیریابی و روتر های بین مبدا و مقصد را نمایش نمی دهد اما هنوز یک معیار بسیار مفید برای اندازه گیری تاخیر بین دو دستگاه است. echo-request و echo-reply پیام های ICMP برای انجام عملیات پینگ است.
متأسفانه حملات در شبکه می توانند از این فرآیند سوء استفاده کنند و اختلال هایی در شبکه مانند ICMP flood attack و حمله مرگ با پینگ ایجاد کنند.
ICMP چگونه کار می کند؟
برخلاف پروتکل IP، ICMP با پروتکل لایه Transport مانند TCP یا UDP مرتبط نیست. این موضوع باعث می شود ICMP یک پروتکل بدون نیاز به اتصال باشد. به عبارتی دیگر یک دستگاه نیازی به باز کردن پکت ارسالی برای ارسال پیام به مقصد ندارد.
این در حالی است که ترافیک معمولی توسط پروتکل IP با استفاده از پروتکل TCP انجام می شود، بدین گونه که هر دو دستگاه قبل از ارتباط و ارسال اطلاعات به یکدیگر باید با یکدیگر Handshake بکنند تا آمادگی هر دو دستگاه برای ارسال و دریافت اطلاعات سنجیده شود و قبل ارسال اطلاعات اصلی، اطلاعات دیگری را با یکدیگر به اشتراک می گذارند. همچنین ICMP یک پورت خاص را روی یک دستگاه را هدف قرار نمی دهد.