میزبان کلود
CDN ابری

پروتکل کنترل پیام اینترنتی ( ICMP ) چیست و چه کاربردی دارد؟

میزبان کلود میزبان کلود
1013 بازدید 0 دیدگاه 13 اردیبهشت 1402 زمان مطالعه: 25 دقیقه
/storage/post-covers/1683116452_2023-05-03_05.png
پروتکل کنترل پیام اینترنتی ( ICMP ) چیست و چه کاربردی دارد؟

ICMP پروتکلی برای تعیین در دسترس بودن شبکه، کنترل جریان و ارورها در لایه شبکه است. اما در عمل منظور از ICMP چیست؟ در این مطلب در خصوص این پروتکل و نحوه عملکرد آن توضیحات جامعی در اختیار شما عزیزان قرار خواهیم داد. پروتکل کنترل پیام/پیغام اینترنت یک پروتکل لایه سوم ( لایه شبکه ) در مدل هفته لایه ای OSI است. این پروتکل اتصالات شبکه و مشکلات انتقال داده بین دستگاه ها را شناسایی کرده  و در جهت حل این مشکلات، پیغام های ICMP را ارسال، دریافت و پردازش می کند تا مسائل و مشکلات برقراری اتصال را  به دستگاه شبکه مبدا گزارش دهد.

به همین دلیل، هدف اولیه پروتکل ICMP، گزارش خطاها در لایه شبکه است. با این وجود، کاربران خراب کار ( هکرها ) می توانند با دستکاری عملیات این پروتکل، حملات مورد نظر خود از جمله DDoS و یا Ping of Death را پیاده سازی کنند.

در این مطلب شما با چیستی پروتکل ICMP، موارد کاربرد آن، و پارامترهایی که برای درک پیغام های ICMP لازم و ضروری هستند، آشنا خواهید شد.

ICMP چیست؟

ICMP یک پروتکل لایه شبکه است که توسط دستگاه های درون شبکه برای ردیابی خطاها و مشکلات ارتباطی مورد استفاده قرار می گیرد. ICMP برای این هدف ایجاد شده که از رسیدن داده ها به مقصد مورد نظر در یک بازه زمانی خاص اطمینان حاصل شود. بنابراین ICMP برای گزارش دهی و آزمایش خطاهای مهم در شبکه توسط دستگاه هایی از جمله روترها مورد استفاده قرار می گیرد. اما باید مراقب حملات DDoS نیز بود.

ICMP چطور عمل می کند؟

روترها از پروتکل ICMP برای مدیریت شبکه و شناسایی مشکلات و خطاها استفاده می کنند. زمانی که شبکه در انتقال بسته ها به سمت دستگاه مقصد با مشکل مواجه شود، این پروتکل پیغام های خطایی ایجاد کرده و آنها را به دستگاه ارسال کننده بسته می رساند.

این پیغام های ارور شامل مواردی از جمله عبور از حد زمانی، مشکل در پارامتر، در دسترس نبودن مقصد، ترافیک شبکه و امثالهم می شوند.

برای مثال، زمانی که یک ارسال کننده داده هایی را به سمت دستگاه مقصد در قالب یک داده نگار IP ارسال می کند، این داده ها از چندین روتر یا دستگاه میانی گذر می کنند. در مواقعی ممکن است هنگام هدایت کردن آن داده نگار IPV4 خطایی رخ دهد.

به همین دلیل، پیغام های ICMP به دو دسته کلی تقسیم می شوند: پیغام های خطا و پیغام های کوئری.

  • پیغام های گزارش دهنده خطا

ممکن است دستگاه های میانی و یا روترها هنگام پردازش داده نگارها با مشکلات یا خطاهایی مواجه شوند:

  1. Time exceeded: بسته ICMP یک پارامتر به نام TTL یا مدت زمان فعال بودن دارد که زمانی که به صفر برسد، روتر یا دستگاه میانی داده نگار را نادیده گرفته و یک پیغام TIME EXEEDED به ارسال کننده می فرستد. این پیغام زمانی که مقصد در دریافت تمام بخش های داده ها ناکام بماند نیز، به مبدا ارسال می شود.
  2. Destination Unreachable: زمانی که دستگاه شروع کننده اتصال پیغامی مبنی بر خطای در دسترس نبودن مقصد دریافت می کند به این معناست که دستگاه میانی یا روتر در دریافت بسته نا توان هستند. این عدم دسترسی می تواند به دلایل مختلفی از جانب مقصد رخ داده باشد؛ پس در چنین شرایطی دستگاه های دریافت کننده، داده نگار را نادیده می گیرند.
  3. Source Quench: زمانی که دستگاه ها به دلیل ترافیک شبکه ای در دریافت داده نگار به مشکل برخورد می کنند، یک پیغام " source quench " ICMP به مبدا ارسال می کنند. پیغام گزارش دهنده خطا یک کنترل جریان به لایه شبکه اضافه کرده و مبدا را از ترافیک موجود در میان راه با خبر می کند؛ در نتیجه جریان داده های ارسالی با سرعت کمتری پیش گرفته خواهد شد.
  4. Redirection: یک روتر در یک مسیر بهینه نشده، بسته انتقالی را به سمت روتری با یک مسیر بهینه بین مبدا و مقصد ریدایرکت یا هدایت می کند. در همین حین، مبدا را از چنین تغییر مسیری مطلع می کند.
  5. مشکل پارامتری: دستگاه مبدا زمانی این پیغام را دریافت می کند که در هدر داده نگار یک مقدار جا افتاده وجود داشته باشد. برای مثال، تفاوت یا مغایرتی در مقادیر جمعی در سمت مقصد با مقادیر ایجاد شده سمت مبدا، باعث تناقض شده و این پیغام ICMP ارسال می شود.
  • پیغام های کوئری

پیغام های کوئری به صورت جفت نمایان شده و اطلاعات خاصی را از دستگاه های میانی به سمت دستگاه مبدا ارسال می کنند.

  1. پیغام Echo-request و Echo-reply: این پیغام ها به حل مشکلات و مسائل شبکه ای کمک می کنند.
  2. Timestamp request and reply: این درخواست های تایم استمپ و پیغام های پاسخ داده شده ( reply ) مشخص کننده زمان رفت و برگشتی یا round trip time (RTT) بین دستگاه ها هستند.

 

خرید سرور مجازی ابری

آشنایی با پارامترهای ICMP

داده های پیغام های ICMP درون هدر IP کپسوله ( Encapsulated )  می شوند که به این معناست که هدر داده نگار ICMP پس از اطلاعات IPV4/6 می آیند. اولین بخش هدر بسته ICMP شامل پارامترهایی است که به دستگاه های شبکه در شناسایی پیغام های خطا یا کوئری کمک می کند.

در میان 32 بیت اول، 8 بیت اول نوع پیغام را مشخص می کنند؛ 8 بیت بعدی کد پیغام را تعیین می کنند؛ و بیت های باقی مانده صحت داده ها را با اطلاعاتی به اثبات می رسانند.

بنابراین، سه فیلد اطلاعاتی شامل: انواع ICMP، کد ICMP و Checksum می شوند.

پس بگذارید در مورد این فیلدهای ICMP بیشتر توضیح دهیم...

  • انواع ICMP

این انواع مشخص کننده هدف بسته ICMP هستند؛ پس به طور خلاصه به دستگاه مقصد اطلاع می دهد که به چه دلیلی این پیغام را دریافت کرده است. حدودا بین 0 تا 255 نوع پیغام ICMP وجود دارد که هر نوع یک اطلاعات خاصی را ارائه می دهد. برخی از مهم ترین انواع ICMP عبارتند از:

  1. 0: Echo Request
  2. 3: Destination Unreachable
  3. 4: Source Quench
  4. 5: Redirect
  5. 8: Echo Reply
  6. 11: Time Exceeded
  7. 12: Parameter Problem
  8. 30: Traceroute
  • کد ICMP

کد ICMP اطلاعات جامع تری در خصوص پیغام های ارسالی فراهم می کند. برای مثال، ICMP نوع 3 با کد 0-15 مشخص می کند که چرا مقصد در دسترس نیست که یعنی اگر کد 0 باشد، به این دلیل است که شبکه در دسترس نیست.

به همین شکل برای نوع 3 کد 1 ، پیغام مشخص کننده این است که هاست در دسترس نیست.

به همین ترتیب، کد 0 نوع 8 و کد 0 نوع 0 نمایانگر پیغام های echo-request  و  echo reply هستند. به همین دلیل، هر نوع پیغام با کد یکسان می تواند اطلاعات شبکه ای متفاوتی را بیان کند.

  • Checksum

مجموع یا checksum یک مکانیزم شناسایی خطاست که از صحت داده ها اطمینان حاصل می کند. مقدار checksum نمایانگر بیت های موجود در پیغام انتقالی است. ارسال کننده در پیغام خود مجموع داده ها را شمارش کرده و دریافت کننده نیز هنگام دریافت این مجموع را می شمارد. این فرآیند برای مقایسه مجموع اصلی با مجموع دریافتی است.

بخش دوم هدر به مقدار بایت ها که باعث ایجاد مشکل در پیغام اصلی شده اند، اشاره می کند. و در آخر، بخش نهایی یک بسته ICMP، داده نگار اصلی است.

موارد کاربرد و مثالهایی از ICMP

در ادامه به چند مورد از مثال های پروتکل ICMP در شبکه های مختلف اشاره خواهیم کرد...

  • PING

پینگ یک دستور است که برای در دسترس بودن شبکه و تأخیرات بین دو دستگاه از پیغام های echo-request و echo-reply ICMP استفاده می کند. این کارکرد به سادگی با تخمین تعداد کل بسته های ارسالی و دریافتی و درصد Packet loss ها، در دسترس بودن سرور مقصد را مشخص می کند.

این کارکرد علاوه بر این به شناسایی حداکثر حجم واحد های انتقالی (MTU) نیز کمک می کند.

برای مثال کافیست برای چک کردن در دسترس بودن یک سایت تایپ کنید : ping <ip_address>

که باید آدرس مورد نظر خود را جای ip-address وارد کنید.

  • Traceroute

Traceroute نیز یک کامند لاین دیگر است که از پیغام های echo-request و echo-reply ICMP و یک متغیر TTL برای ردیابی مسیر بین مبدا و مقصد استفاده می کند. این روش برای شناسایی تأخیرات پاسخ دهی نیز مناسب بوده و با ارسال کوئری های متعدد به هر پرش ( Hop ) از دقت آن اطمینان حاصل می کند.

خرید CDN

ICMP چطور بدون پورت کار می کند؟

بر اساس توضیحات بالا، ICMP یک پروتکل بدون اتصال است که داده ها را مستقل از داده نگار اصلی ارسال می کند و هدرهای آن پس از جزئیات IPV4 می آید. با این حال، می توانید نبود یک شماره پورت را نیز احساس کنید که این سوال را بر می انگیزد که دستگاه ها چطور داده های ICMP را دریافت می کنند و از هر گونه اتصالی مطلع می شوند؟

پاسخ بسیار ساده است؛ پروتکل ICMP برای کار کردن در لایه شبکه ی مدل OSI طراحی شده و برای به اشتراک گذاری اطلاعات، بین روترها و هاست ها ارتباط برقرار می کند.

شماره های پورت بخشی از لایه انتقال ( Transport layer ) هستند و ICMP نه یک پروتکل TCP است و نه یک پروتکل UDP.

در آخر، نوع ICMP و ترکیب کدها به دستگاه ها در شناسایی پیغام ها و دریافت اطلاعات در خصوص شبکه کمک می کنند.

کنترل جریان و خطاها با ICMP

جزئیات بالا در خصوص ICMP نمایانگر این هستند که چطور این پروتکل از کنترل جریان و خطاهای داده ها در لایه سوم مدل OSI اطمینان حاصل می کند.

پیغام های این پروتکل و پارامترهای موجود در هدر بسته های ICMP ، تمام جنبه های مدیریت شبکه و شناسایی خطاها را پوشش می دهند.

لازم به ذکر است که تنظیمات ضعیف فایروال ها می تواند به رخنه اطلاعاتی و نفوذ هکرها به شبکه سازمانی را ممکن ساخته و آن را در معرض حملات DDoS قرار دهد.

چطور از ICMP برای ایجاد یک حمله DDoS استفاده می شود؟

در ادامه به سه مورد از انواع حملات DDoS که توسط ICMP ایجاد می شوند، اشاره خواهیم کرد:

  • ICMP flood attack

یک سیل پینگ یا ping flood، زمانی است که یک مهاجم در تلاش است تا دستگاه قربانی را با ارسال بسته های بی شمار Echo-request از کار بیاندازد. به صورتی که دستگاه مجبور است تمام این بسته ها را پردازش کرده و به آنها پاسخ دهد.

این موضوع باعث مصرف بیش از حد منابع پردازشی شده و دسترسی کاربران مجاز و عادی را مخدوش می کند.

  • Ping of death attack

یک حمله ping of death زمانی رخ می دهد که مهاجم یک پینگ بزرگ تر از حد مجاز یک بسته به سمت دستگاه قربانی ارسال می کند. این موضوع دستگاه را کند کرده و یا باعث هنگ کردن آن می شود. این بسته در مسیر خود به سمت مقصد، به قسمت های کوچک تری تقسیم می شود؛ اما زمانی که مقصد آن را مجددا کنار هم قرار می دهد، سایز بسته باعث وقوع یک buffer overflow می شود.

این نوع حملات در حال حاضر بسیار متداول هستند، اما دستگاه های مدرن جلوی اینگونه حملات مقاوم هستند.

  • Smurf attack

در یک حمله smurf مهاجم با یک آدرس IP سرقت رفته یک بسته ICMP ارسال می کند. تجهیزات شبکه به بسته پاسخ می دهند. که پاسخ ها را به سمت IP سرقت رفته ارسال می کنند؛ این موضوع قربانی را با حجم وسیعی از بسته های ناخواسته مواجه می کند.

ICMP تنها پروتکلی نیست که در حملات لایه 3 مورد استفاده قرار می گیرد؛ مهاجمین از بسته های GRE نیز در گذشته استفاده می کردند.

به طور کلی حملات DDoS در صدد از کار انداختن تجهیزات و زیرساخت های شبکه ای هستند؛ البته بجز حملات لایه اپلیکیشن که تنظیمات وب را مورد هدف قرار می دهند.

راهکار میزبان کلود

به کمک سرویس های امنیت ابری میزبان کلود می توانید هر گونه حمله سایبری را در لحظه دفع کنید. برای استفاده از این سرویس ها کافیست در پنل میزبان کلود ثبت نام کرده و پس از اتصال دامنه خود به سرویس ها، از قابلیت های بی نظیر این ابزارهای امنیتی بهره مند شوید. پیشنهاد می کنیم حتما به صفحات امنیت ابری میزبان کلود و CDN ابری را مشاهده و بررسی کنید.

جمع بندی

ICMP به پروتکل کنترل انتقالی یا داده نگار کاربری ( UDP & TCP ) مربوط نبوده و در لایه شبکه ی مدل OSI مورد استفاده قرار می گیرد. در صورت نبود این پروتکل، هیچ دو دستگاه قادر به برقراری ارتباط با یکدیگر نمی بودند. ICMP برای شناسایی و معرفی خطاها و راه های حل آنها طراحی شده و مشکلات ارتباطی بین دو دستگاه را مرتفع می سازد. در این مطلب به چیستی پروتکل ICMP، نحوه کارکرد آن، موارد کاربرد و مثالهای گوناگون، بهمراه انواع، کدها، و حتی حملات DDoS احتمالی اشاره کردیم. امیدواریم از این مطلب نهایت استفاده را برده باشید.

پیشنهاد ویژه

CDN ابری میزبان کلود

میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

میزبان کلود

سرعت در بارگذاری و تحویل محتوای سایت

مشاهده پلانها
میزبان کلود میزبان کلود
میزبان کلود
برچسب‌ها :
میزبان کلود
نویسنده مطلب میزبان کلود

ارائه دهنده خدمات زیرساخت یکپارچه ابری

پروتکل کنترل پیام اینترنتی ( ICMP ) چیست و چه کاربردی دارد؟ 0 دیدگاه