ICMP چیست؟
پروتکل پیام کنترل اینترنت (ICMP) مجموعهای از قوانین ارتباطی است که دستگاهها برای اطلاعرسانی خطاهای انتقال داده در یک شبکه از آن استفاده میکنند. در تبادل پیام بین فرستنده و گیرنده، ممکن است خطاهای غیرمنتظرهای رخ دهد. به عنوان مثال، پیامها میتوانند خیلی طولانی باشند، یا بستههای داده ممکن است خارج از ترتیب برسند، به طوری که گیرنده نتواند آنها را جمعآوری کند. در چنین مواردی، گیرنده از ICMP برای اطلاعرسانی خطا به فرستنده و درخواست ارسال مجدد پیام استفاده میکند.
موارد استفاده ICMP چیست؟
پروتکل پیام کنترل اینترنت (ICMP) یک پروتکل مهم لایه شبکه در شبکههای کامپیوتری است. این پروتکل یک مکانیزم استاندارد برای دستگاههای شبکه فراهم میکند تا اطلاعات حیاتی مانند اتصال و وضعیت شبکه را منتقل کنند. همه دستگاههای متصل به شبکه، از جمله روترها و دستگاههای پایانی، میتوانند پیامهای ICMP را پردازش کنند. ICMP برای کار با هر دو IPv4 و IPv6 سازگار شده است.
در ادامه، به برخی از موارد رایج استفاده از ICMP میپردازیم.
گزارش خطا
پیامهای خطای ICMP خطاهای شبکه مانند مقاصد غیرقابل دسترس، تایماوتها یا مشکلات قطعهبندی را گزارش میدهند. این پیامها به ویژه برای پروتکل دادهنگار کاربر (UDP) که دارای مدل ارتباطی بدون اتصال است، مهم هستند.
UDP تحویل قابل اعتماد و مرتب بستهها را تضمین نمیکند. هنگامی که یک بسته UDP ارسال میشود، ممکن است بسته از بین برود یا با خطاهایی مانند خطاهای checksum تحویل داده شود. اگر این اتفاق بیفتد، گیرنده پیامهای گزارش خطای ICMP را به فرستنده ارسال میکند تا او را از مشکل مطلع کند.
تشخیص
میتوانید از ICMP برای تشخیص شبکه استفاده کنید. این پروتکل بیشتر برای دستورات ping و traceroute استفاده میشود.
دستور ping با ارسال بستههای درخواست بازتاب ICMP به یک دستگاه مقصد، دسترسی دستگاههای شبکه را آزمایش میکند. اگر دستگاه قابل دسترسی باشد، یک پاسخ بازتاب ICMP برمیگرداند. این دستور به طور قابل اعتماد تأخیر شبکه را بررسی میکند و از در دسترس بودن دستگاه اطمینان حاصل میکند.
دستور traceroute مسیری را که بستهها از مبدا به مقصد طی میکنند، ردیابی میکند. برای انجام این کار، این دستور پیامهای درخواست و پاسخ بازتاب را به مقصد مورد نظر ارسال میکند.
درخواستهای بازتاب شامل یک مقدار «زمان زنده ماندن» (TTL) است که هر بار که بسته از یک روتر عبور میکند، یک واحد کاهش مییابد. هنگامی که یک بسته به روتری با TTL صفر میرسد، روتر یک پیام ICMP به مبدا ارسال میکند.
این پیام حاوی اطلاعاتی در مورد مسیری است که بسته طی کرده است. Traceroute مسیر دقیق یک بسته را نشان میدهد که میتواند بینشهایی در مورد عملکرد شبکه به شما ارائه دهد.
امنیت شبکه
میتوانید از ICMP برای شناسایی ترافیک غیرمجاز شبکه و اجازه دادن فقط به ترافیک قانونی در یک شبکه استفاده کنید. فایروالها از ICMP برای اجازه یا مسدود کردن انواع خاصی از ترافیک استفاده میکنند. مدیران شبکه همچنین از ابزارهای نظارت بر ICMP برای پیگیری وضعیت و اتصال دستگاههای شبکه و شناسایی دستگاههای ناشناخته استفاده میکنند.
همچنین میتوانید از آن برای شناسایی الگوهای ترافیکی غیرعادی که ممکن است نشان دهنده فعالیت غیرمجاز باشد، استفاده کنید.
ICMP چگونه کار میکند؟
پروتکل پیام کنترل اینترنت (ICMP) معمولاً در کنار سایر پروتکلهای شبکه مانند TCP/IP یا پروتکل دادهنگار کاربر (UDP) کار میکند. میزبانها و روترها هنگام وقوع رویدادهای خاص شبکه، پیامهای ICMP یا بستههای ICMP را مبادله میکنند.
یک بسته ICMP شامل یک سربرگ بسته ICMP و یک بخش داده ICMP است.
سربرگ بسته ICMP
سربرگ ICMP حاوی اطلاعاتی در مورد نوع بسته، کد آن، checksum و یک شناسه است. هنگامی که بستههای ICMP ارسال میشوند، گیرنده پیام اطلاعات سربرگ را میخواند. بر اساس نوع بسته، اقدام مناسب را انجام میدهد.
به عنوان مثال، اگر نوع آن درخواست بازتاب باشد، گیرنده یک پاسخ بازتاب با همان داده ارسال میکند. اگر نوع آن مقصد غیرقابل دسترس باشد، گیرنده با یک پیام مقصد غیرقابل دسترس پاسخ میدهد.
بخش داده ICMP
بخش داده در یک پیام ICMP شامل اطلاعاتی مانند آدرس IP مقصد یا علت خرابی است. همچنین شامل کدهای خطا یا کدهای عددی است که خطاها را مشخص میکنند.
در اینجا چند مثال آورده شده است:
- کد مقصد غیرقابل دسترس (نوع ۳) نشان میدهد که دستگاه گیرنده در شبکه وجود ندارد.
- کد تغییر مسیر (نوع ۵) پیامی را به روتر دیگری ارسال میکند که نشان دهنده مسیر بهتری به مقصد است.
- کدهای درخواست و پاسخ بازتاب (انواع ۸ و ۱۰) اتصال بین دستگاهها را آزمایش میکنند.
- پیام «زمان منقضی شده» نشان میدهد که یک بسته از حداکثر زمان خود برای رسیدن به مقصد فراتر رفته است.
- پیام «مشکل پارامتر» نشان میدهد که روتر با مشکلی در سربرگ فیلد IP مواجه شده است.
- پیام «خاموش کردن منبع» هنگامی ارسال میشود که روتر با ازدحام مواجه میشود و نیاز به محدود کردن تعداد بستههای دریافتی خود دارد.
تفاوت بین ICMP و TCP چیست؟
TCP یک پروتکل اتصالگرا برای تحویل مطمئن داده با بررسی خطا است. معمولاً برای مرور وب، ایمیل، ورود از راه دور و برنامههای انتقال فایل استفاده میشود. TCP به دستدهی (handshaking) نیاز دارد، مجموعهای از پیامها که اعتماد و احراز هویت بین فرستنده و گیرنده را برقرار میکند. TCP تحویل پیام را تضمین میکند.
در مقابل، پروتکل پیام کنترل اینترنت (ICMP) یک پروتکل بدون اتصال است. تحویل پیام را تضمین نمیکند. از آنجا که ICMP فقط برای گزارش خطا استفاده میشود، پیامهای ICMP نیز از بستههای TCP کوچکتر هستند.
ICMP و TCP به طور مشترک برای تعیین علت عدم موفقیت تحویل TCP استفاده میشوند.
حملات سیلابی پینگ ICMP چیست؟
حملات سیلابی پینگ پروتکل پیام کنترل اینترنت (ICMP) رویدادهای منع سرویس (DoS) هستند که در آن کاربران غیرمجاز درخواستهای بازتاب ICMP متعددی را در مدت زمان کوتاهی ارسال میکنند. هر درخواست ICMP شامل یک شناسه منحصر به فرد و بار دادهای است که گیرنده را ملزم به پاسخ منحصر به فرد میکند. سرور دریافت کننده تلاش میکند به هر درخواست غیرمجاز پاسخ دهد که پاسخها به منابع مجاز را به تأخیر میاندازد یا کند میکند.
برای محافظت در برابر حمله سیلابی پینگ ICMP، باید اطمینان حاصل کنید که دستگاههای شبکه شما به گونهای پیکربندی شدهاند که میزان ترافیک ICMP که مایل به پذیرش آن هستند را محدود کنند. همچنین مهم است که شبکه خود را برای فعالیت غیرمجاز نظارت کنید و اقدامات امنیتی لازم مانند فایروالها و سیستمهای تشخیص نفوذ (IDS) را اعمال کنید.