نماد سایتنماد سایت بلاگ ایران هاست

پروتکل icmp چیست؛ بررسی ساختار پروتکل کنترل پیام های اینترنتی

icmp چیستicmp چیست

پروتکل icmp یک بخش جدانشدنی از پروتکل ip است و از اساسی ترین و پایه ترین پروتکل های کاربردی میباشد. در این مقاله می خوانید که icmp چیست؟ و در مورد پورت icmp، فیلدهای مختلف icmp و وظیفه و کاربرد پروتکل icmp صحبت می کنیم.

 

پروتکل icmp چیست؟

پروتکل icmp که مخفف عبارت internet control message protocol است که در فارسی آن را پروتکل کنترل پیام های اینترنتی ترجمه می کنند. icmp جهت خطایابی در کامپیوتر‌ها ، روتر‌ها و هاست، بررسی وجود سیگنال و به طور کلی بررسی وضعیت ارتباطی بین روتر و سرور ها مورد استفاده قرار می گیرد.

در مدل ۵ لایه ای شبکه، این پروتکل همانند پروتکل ip در لایه ی network (شبکه) قرار می گیرد، اما نوع کارکرد آن شبیه پروتکل های لایه ی transport  (انتقال) می باشد.

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

وظیفه و کاربرد پروتکل icmp

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

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

ساختار پیغام های پروتکل icmp که در datagram و در بالای ip قرار می گیرند ، به صورت زیر می باشد:

فیلد type

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

فیلد code

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

 

بیشتر بخوانید: خطای ۵۰۳ چیست

 

 

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

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

 

پروتکل چیست؟

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

انواع type و code در یک پیغام پروتکل

 

بیشتر بخوانید: تست پینگ

 

انواع کدها و پیام های icmp

۱- پیام های echo reply و  echo request:

پیام  echo request وقتی صادر می شود که یک مسیریاب بخواهد بداند که آیا یک ماشین خاص در شبکه قابل دسترس و موجود است یا خیر. در پاسخ به دریافت echo request، مقصد با ارسال پیام echo reply به آن پاسخ می دهد. با این پرسش و پاسخ، یک ماشین می تواند از قابل دسترس بودن یک مسیریاب یا ماشین میزبان در شبکه مطلع شود.

۲- پیام destination unreachable :

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

۳- پیام source quench :

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

۴- پیام time exceeded :

این پیام زمانی صادر می شود که مهلت قانونی یک بسته منقضی شده باشد (یعنی TTL به صفر رسیده باشد) و یک مسیریاب مجبور به حذف آن شود; در چنین حالتی این پیام به آدرس فرستنده ی بسته ی IP برای آگاهی ارسال خواهد شد.

۵- پیام parameter problem :

این پیام زمانی صادر خواهد شد که مقدار نامعتبر در یکی از فیلدهای سرآیند در بسته ی IP قرار گرفته باشد و مسیریاب قادر به تشخیص و تفسیر سرآیند آن بسته ی IP نباشد. به عنوان مثال در فیلد version  از بسته ی IP عدد ۵ قرار گرفته باشد و یا checksum با سرآیند تناقض داشته باشد.

۶- Traceroute :

این دستور جهت بررسی وضعیت کلیه ی روتر ها ی میانی تا مقصد و همچنین خود مقصد استفاده می شود. در این دستور تعدادی UDP segmet با  تی تی ال ( time to live یا TTL ) های به ترتیب و صعودی و با شماره port  های رندوم و نا مشخص از مبدا به سمت مقصد ارسال می شوند.

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

Type = 11 , Code = 3 , TTL expired

ضمنا این پیغام حاوی ip و نام آن روتر و همچنین ip فرستنده  می باشد.به همین ترتیب packet های بعدی با TTL های بالاتر نیز ارسال خواهند شد تا packet با شماره n به روتر شماره ی n می رسد و با دور ریخته شدن packet ، پیغام  TTL expired به سمت فرستنده  ارسال می شود.در هر رفت و برگشت فرستنده با دریافت پیغام TTL expied می تواند زمان ارسال پکت تا روتر و برگشت آن ( round-trip time یا RTT ) را محاسبه کند.

این روند تا جایی ادامه پیدا می کند که packet به گره مقصد برسد. هنگام دریافت شدن packet در مقصد و با توجه به اینکه پورت  packet نامشخص است پیغام icmp با مشخصات زیر از سمت گیرنده به فرستنده ارسال شده و بدین ترتیب ارسال packet با TTL بالاتر متوقف خواهد شد.

 

بیشتر بخوانید: وظیفه روتر چیست

 

ttl در شبکه چیست

در پاسخ به این پرسش بایستی گفت که TTL مخفف time to live می باشد و در شبکه به زمان زندگی یک بسته در هنگام انتقال بین دو یا چند سیستم گفته می‌شود.

امیدواریم با خواندن این مقاله با مفهوم icmp protocol چیست در لایه ی network شبکه  آشنا شده باشید. پ

 

خروج از نسخه موبایل