ICMP چیست؟ پروتکل ICMP چه کاربردی دارد؟ Internet Control Messaging Protocol چیست؟ پروتکل IP برای سرویس دیتاگرام host-to-host در یک سیستم شبکه های بهم وصل شده یا interconnected که در اصطلاح Catenet گفته میشود مورد استفاده قرار میگیرد.دستگاه های متصل به شبکه را Gateway میگویند.این Gateway ها برای برقراری ارتباط بین خودشان برای کنترل اهداف خود از پروتکلی بنام GGP یا Gateway to Gateway Protocol استفاده میکنند.
بعضی اوقات یک Gateway یا سیستم مقصد از با استفاده از آدرس مبدأ ارتباط برقرار خواهد کرد.مثلا برای گزارش خطا در پردازش دیتاگرام.برای اهداف چنین پروتکل هایی Internet Control Message Protocol یا پروتکل ICMP مورد استفاده قرار میگیرد.ICMP با پشتیبانی اولیه از پروتکل IP اگر بعنوان پروتکل سطح بالا بود. در هر حال پروتکل icmp بخش جدائی ناپذیر از پروتکل IP است.
-------------------------------------------------
برای دسترسی به مجموعه بهترین دوره های آموزش شبکه های کامپیوتری ( مبانی شبکه ، نتورک پلاس ، مانیتورینگ و ... ) مقدماتی تا پیشرفته با ارائه گواهینامه و فیلم رایگان همین الان کلیک کن
--------------------------------------------------
و باید در هر مدلی از پروتکل IP پیاده سازی شود.پیام های ICMP در موقعیت های مختلفی ارسال میشوند برای مثال وقتی دیتاگرامی نمیتواند به مقصدش برسد،یا مثلا وقتی Gateway ای ظرفیت بافرش برای forward کردن دیتاگرام کافی نیست.و یا وقتی gateway به طور مستقیم و با کوتاهترین مسیر میتواند ترافیک را به مقصدش ارسال کند. پروتکل IP قطعا به طور reliable یا قابل اعتماد طراحی نشده است.هدف از این پیام های کنترلی فراهم آوردن واکنشی در برابر وجود چنین مشکلاتی در ارتباطات است.
که باز هم با وجود این پروتکل(ICMP) پروتکل IP قابل اعتماد نیست.بدین شرح که هیچ تضمینی برای به مقصد رسیدن دیتاگرام به مقصد و برگشت پیام ICMP به کاربر وجود ندارد.شاید برخی دیتاگرام ها بدون گزارش های مبنی بر loss شدن آنها به مقصد نرسند.
برخی از پروتکل های لایه بالاتر که از IP استفاده میکنند باید reliable ساخته شوند در صورتیکه ارتباطات مبتنی بر آن پروتکل نیازمند چنین ارتباطی هست.پیام های ICMP معمولا گزارش های مبتنی بر خطا در پردازش دیتاگرام را شامل میشوند.پیام های ICMP تنها برای بررسی فرگمنت صفر یا fragment zero در دیتاگرام فرگمنت شده ارسال میشوند.(fragment zero برابر offset ای برابر صفر است.)
پیام های ICMP بوسیله هدر اصلی پروتکل IP ارسال میشوند.اولین اکتت از اطلاعات قسمتی از دیتاگرام شامل field ای است که نشان دهنده نوع ICMP است.(icmp v4 یا icmp v6) ارزش این field تعیین کننده ی قالب اطلاعات باقی مانده میباشد.هر field ای که بعنوان "unused" مارک زده یا labal شده است برای extension های بعدی رزرو شده است و وقتی ارسال میشود باید صفر باشد اما گیرندگان نباید از این field استفاده کنند(بجز در فیلد checksum که شامل آن میشوند).مگر اینکه در غیر اینصورت توسط یک فرد به طور اختصاصی فرمتش ذکر شده باشد). مقادیر فیلد internet header به شرح زیر است:
*code:* 0=net unreachable 1 = host unreachable 2 = protocol unreachable 3 = port unreachable 4=fragmentation needed and DF set 5 = source route failed
توضیحات:در این توضیحات نمونه ها و شرایطی که باعث برگرداندن پیام destination host is unreachable به فرستنده پیام ICMP یا source host میشود را مورد بررسی قرار میدهیم:
نکته:code های 0 ، 1 ،4 و 5 ممکن است از طرف Gateway دریافت شوند.و code های 2 و 3 ممکن است از طرف host دریافت شوند.
icmp Field: Type 3 یا نوع سوم
code: 0 = time to live exceeded in transit:
1 = fragment reassembly time exceeded:این کد نشانگر منقضی شدن زمان Reassemble کردن دیتاگرام فرگمنت شده است.
checksum:مقدار این فیلد در Header برابر 16 بیت است.برای محاسبه ی فیلد checksum باید فیلد checksum برابر صفر باشد.این checksum ممکن است در دفعات بعدی جایگزین شود.
Internet Header + 64 bits of Original Data Datagram:این اطلاعات توسط host برای پردازش مناسب مورد مقایسه قرار میگیرد.اگر پروتکل های سطوح بالاتر از شماره port ها استفاده کنند آنها در 64 بیت اول از دیتاگرام اصلی(original datagram) در نظر گرفته میشوند.
توضیحات: در این توضیحات نمونه ها و شرایطی که باعث برگرداندن پیام Time Exceededبه فرستنده پیام ICMP یا source host میشود را مورد بررسی قرار میدهیم:
نکته: کد 0 (صفر) ممکن است از Gateway دریافت شود و کد 1 (یک)ممکن است از host دریافت شود.
ICMP Fields:
Type 12
Code:
0=Pointer نشانگر error میباشد.
Checksum:توضیح داده شده است.
Pointer:همانطور که اشاره شد،اگر code برابر 0 باشد اکتت نشانگر یک error است.
Internet Header + 64 bits of Data Datagram:توضیح داده شده است.
توضیحات: اگر Gateway یا Host در پردازش یک دیتاگرام نتوانست به خوبی دیتاگرام را مورد پردازش قرار دهد یا مشکلی در Header های وجود داشت آن دیتاگرام را Discard خواهد کرد.
gateway یا host ممکن است این مشکل را بخوبی اعلام کنند.این پیام تنها زمانی ارسال میشود که error باعث discard شدن دیتاگرام شود.
نکته:کد 0 ممکن است از سوی Gateway و یا Host دریافت شود.
ICMP Fields:
Type 4
Checksum: توضیح داده شده است.
Internet Header + 64 bits of Data Datagram:توضیح داده شده است.
توضیحات: یک Gateway شاید مجموعه ای از دیتاگرام ها را discard کند اگر فضای کافی برای buffer کردن دیتاگرام ها در صف یا queue برای فرستان به سایر روتر ها یا Gateway برای مسیریابی نداشته باشد.اگر Gateway یک دیتاگرام را discard کند ممکن است پیام source quench message را به host مبدا در دیتاگرام ارسال کند.host مقصد ممکن است پیام source quench را ارسال کند اگر دیتاگرام به سرعت پردازش شده باشد.
gateway ممکن است برای هر پیامی که Discard شده است پیام source quench message را بفرستد.در حالت کلی مضمون از پیام source quench message از یک کامپیوتر host به کامپیوتر دیگر به او میگوید که سرعت انتقال Packet را در هنگام ارسال کاهش بده.Host مبدا تا زمانی که پیام source quench message را دریافت نکرده سرعت ارسال ترافیک را به مقصد مورد نظر رفته رفته افزایش میدهد.Gateway و یا Host ، اگر ظرفیتشان محدود باشد ممکن است پیام source quench message را ارسال کنند.تا اینکه ظرفیتشان از حد مجاز تجاوز کند.
مدیر ارشد توسینسو و متخصص سرویس های مایکروسافت
امیرحسین کریم پور ، مدیر ارشد توسینسو ، متخصص در حوزه سیستم عامل های کلاینت و سرور مایکروسافت و سرویس های مربوطه ، سیستم عامل لینوکس ، مجازی سازی و ... سابقه کار با سازمان ها و شرکت های مختلف در زمینه سرویس های مایکروسافت در قالب پروژه ، مشاوره و آموزش. علاقه مند به حوزه امنیت اطلاعات و تست نفوذ سنجی
زمان پاسخ گویی روز های شنبه الی چهارشنبه ساعت 9 الی 18
فقط به موضوعات مربوط به محصولات آموزشی و فروش پاسخ داده می شود