پروتکل 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 های رندوم و نا مشخص از مبدا به سمت مقصد ارسال می شوند.
- first set has TTL =1
- second set has TTL=2, etc.
- unlikely port number
با توجه به اینکه با عبور 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 شبکه آشنا شده باشید. پ
سلام من یه icmp کلاینت اپ درست کردم و icmp هم با ارسال یه ریکوئست شروع میکنه به کار. همه چی درسته ولی میخواستم بدونم که چرا سرور دار ه ریجکت میکنه درخواست رو؟
پروتکل یعنی به خوبی توضیح داده شده است، منظور از پورت پینگ چیست و چه ping از چه پروتکلی استفاده میکند؟
icmp