ژانویه 23, 2022

نحوه کارکرد پروتکل ICMP

نحوه کارکرد پروتکل ICMP

نحوه کارکرد پروتکل ICMP

 

ICMP

 

Internet Control Message Protocol

در پاسخ به پرسش پورت ICMP چیست بایستی گفت پروتکل ICMP جهت خطایابی در کامپیوتر ها، روتر ها و host ها، بررسی وجود سیگنال و به طور کلی بررسی وضعیت ارتباطی بین روتر و سرور ها مورد استفاده قرار می گیرد.

در مدل ۵ لایه ای شبکه، این پروتکل همانند پروتکل IP در لایه ی Network قرار می گیرد، اما نوع کارکرد آن شبیه پروتکل های لایه ی Transport می باشد.

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

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

 

منظور از ساختار در پروتکل ICMP چیست؟

ساختار پیغام های پروتکل ICMP که در Datagram و در بالای IP قرار می گیرند، به صورت زیر می باشد:

 

فیلد Type در پروتکل ICMP چیست؟

در این فیلد عددی قرار می گیرد که بیانگر نوع پیام می باشد و ساختار فیلدهای data و parameters بسته به عددی که در این فیلد قرار می گیرد ، متفاوت خواهد بود.

 

فیلد code در پروتکل ICMP چیست؟

گاهی خود پیغام به چند “زیرنوع” دیگر تقسیم می شود که کد زیرنوع در این فیلد قرار می گیرد.

 

نحوه کارکرد پروتکل ICMP

 

 فیلد checksum در پروتکل ICMP چیست؟

محتوای این فیلد برای سنجش اعتبار و سلامت بسته ICMP Port مورد استفاده قرار می گیرد. تمام بسته ICMP به صورت دو بایت دوبایت جمع شده و نهایتا از مکمل ۱ حاصل جمع، عددی ۱۶ بیتی به دست می آید که درون این فیلد قرار می گیرد.

 

انواع کد‌های ICMP

تعدادی از مهم‌ ترین پیام‌های ICMP عبارتند از:

 

Echo Request

دستور ping از این نوع پیام برای در دسترس بودن یک دستگاه در ساختار شبکه استفاده می‌کند.

 

 Echo Reply

این پیام در پاسخ به پیام Echo Request و از سمت دستگاه مورد پرسش در این پیام ارسال می‌شود. (نحوه کارکرد پروتکل ICMP) این پیام بیان‌گر آن است که دستگاه مورد پرسش در Echo Request در دسترس است.

Destination unreachable این پیام به این معنی است که دسترسی به مقصد به دلایل مختلفی امکان‌پذیر نیست. این دلایل می‌ تواند وجود نداشتن دستگاه مورد پرسش در پیام Echo Request در ساختار شبکه، از دسترس خارج شدن دستگاه به دلایل مختلف در زمان انجام پرسش، فعال نبودن پورت مورد نظر در دستگاه مقصد و … باشد.

 

نحوه کارکرد پروتکل ICMP

 

 Time Exceeded 

این پیام به این معنی است که مدت زمان اعتبار بسته (TTL) در حالی به پایان رسیده که بسته هنوز به مقصد نرسیده است. دستگاهی در فاصله‌ی میان مبدا و مقصد که بسته را به دلیل به پایان رسیدن TTL آن دور انداخته است، برای اطلاع مبدا از دور انداخته شدن بسته و نرسیدن آن به مقصد، این پیام را به مبدا ارسال بسته می‌فرستد.

 

Source Quench

این بسته زمانی برای یک ماشین ارسال می شود که از آن خواسته شود حجم ارسال بسته هایش را کاهش بدهد.

چرا که در غیر اینصورت ترافیک در سطح شبکه بالا می رودو سبب ایجاد مشکلات می شود.

در مجموع هرگاه از یک ماشین، میزبان تقاضای کاهش نرخ تولید و ارسال بسته های IP را داشته باشد این پیام را صادر می کند.

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

 

Traceroute

این دستور جهت بررسی وضعیت کلیه ی روتر ها ی میانی تا مقصد و (نحوه کارکرد پروتکل ICMP) همچنین خود مقصد استفاده می شود. در این دستور تعدادی UDP Segment با  TTL ( time to live یا TTL ) های به ترتیب و صعودی و با شماره Port  های Random و نا مشخص از مبدا به سمت مقصد ارسال می شوند.

 

First set has TTL =1

Second set has TTL=2

unlikely port number

 

TTL

با توجه به اینکه با عبور Packet از هر روتر یک واحد از TTL آن کم می شود و پکت اول با TTL =1 ارسال می شود ، هنگام رسیدن به روتر اول TTL =0 شده و پکت دور ریخته می شود و پیغام ICMP  با مشخصات زیر به سمت فرستنده برگشت داده خواهد شد.

 

Type = 11 , Code = 3 , TTL expired

 

ضمنا این پیغام حاوی IP و نام آن روتر و همچنین IP فرستنده  می باشد. به همین ترتیب Packet های بعدی با TTL های بالاتر نیز ارسال خواهند شد تا Packet با شماره n به روتر شماره ی n  می رسد.

 

round-trip time یا RTT

با دور ریخته شدن Packet ، پیغام  TTL expired به سمت فرستنده  ارسال می شود.در هر رفت و برگشت فرستنده با دریافت پیغام TTL Expired می تواند زمان ارسال پکت تا روتر و برگشت آن ( round-trip time یا RTT ) را محاسبه کند. این روند تا جایی ادامه پیدا می کند که Packet به Node مقصد برسد. هنگام دریافت شدن Packet در مقصد و با توجه به اینکه پورت Packet نامشخص است پیغام ICMP با مشخصات زیر از سمت گیرنده به فرستنده ارسال شده و بدین ترتیب ارسال Packet با TTL بالاتر متوقف خواهد شد.