پروتکل ICMP یا internet control message protocol چیست؟

یک سیستم می تواند از icmp  برای امتحان این که ایا سیستم دیگر فعال است یا نه؟

با فرستادن ping  که پیام پژواک ICMP Echo  است استفاده کند اگر سیستم  pinged فعال با شد به ping  ارسال شده جواب خواهد داد همچنین یک مسیر یاب می تواند از icmp اییتفاده کند تا به سیستم مبدا اطلاع دهد که راهی به مقصد مورد نیاز ندارد و یک میزان می تواند به سیستم دیکر بگوید که سرعت تعداد پیام هایی که مبدا ICMP  می فرستد را کاهش دهد.

 

تعریف پروتکل ICMP یا internet control message protocol :

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

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

 

Screenshot (37)

 

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

 

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

 

type, code plus first 8 bytes of IP datagram causing error

 

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

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

* فیلد checksum :محتوای این فیلد برای سنجش اعتبار و سلامت بسته icmp مورد استفاده قرار می گیرد. تمام بسته icmp به صورت دو بایت دوبایت جمع شده و نهایتا از مکمل 1 حاصل جمع ، عددی 16 بیتی به دست می آید که درون این فیلد قرار می گیرد.

 

مشاهده ی انواع type و code در یک پیغام icmp :

 

Type  Code  description

0        0         echo reply (ping)

3        0         dest. network unreachable

3        1         dest host unreachable

3        2         dest protocol unreachable

3        3         dest port unreachable

3        6         dest network unknown

3        7         dest host unknown

4        0         source quench (congestion

                     control – not used)

8        0         echo request (ping)

9        0         route advertisement

10      0         router discovery

11      0         TTL expired

12      0         bad IP header

 

مشاهده ی نوع و ساختار پیغام های 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 عدد 5 قرار گرفته باشد و یا 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 بالاتر متوقف خواهد شد.

Type = 3 , Code = 3 , dest port unreachable

 

 

 

لیست مطالب مرتبط

NAT چگونه کار می کند؟

CDN چیست؟

معرفی تکنولوژی NAS

 مسیریاب NAT  ترافیک ورودی و خروجی از شبکه private را ترجمه می کند، با استفاده مجدد از نشانی های IP به ما در بهبود امنیت کمک می کند

یکی از تکنولوژی های محبوب وبمسترها CDN که مخفف کلمات Content delivery network و به معنای شبکه توزیع محتوا است که با آن می توانند....

یکی از پیشرفته ترین آنها تکنولوژی nas می باشد که به شبکه های خانگی و تجاری اجازه می دهد تا حجم بالایی از اطلاعات را  ذخیره و بازیابی نمایند.


 

 

 
هاست لینوکس خرید هاست لینوکس خرید سرور مجازی خرید هاست لینوکس ارزان