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

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

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

 

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

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

ICMP با پروتکل های ارسال مانند TCP و UDP تفاوت دارد که در واقع برای تبادل اطلاعات بین سیستم ها به کار نمی رود. پیام های ICMP  به منظور تشخیص یا کنترل پروسه ها یا یافتن خطا های Ip ، ارور های ICMP مستقیما به سورس آدرس Ip در پاکت پیام منشا می رود.ضروری است که محتویات پیام های ICMP بازرسی شود و در مواقع ایجاد خطا پیغام مناسب نشان دهد . بسیاری از شبکه های مفید برپایه ICMP می باشند.

دستور  traceroute به این صورت است که با انتقال دیتاگرام Ip به وسیله یک رکورد مخصوص  TTL و جستجو به دنبال TTL ، ICMP  و پیغام  “Destination unreachable” در مواقعی نمایش داده می شود .

 

Screenshot (37)

 

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

ICMP header بعد از IPv4 header می آید که با شماره پروتکل Ip مشخص می شود. تمام بسته های ICMP 8 بیت برای Header دارند و بخش هایی با اندازه های مختلف دارد. 4 بیت ابتدایی همواره ثابت است ولی 4 بیت انتهایی به نوع بسته ICMP بستگی دارد .

 

 

پیغام ارور ICMP یک بخش داده ای دارد که شامل هدر IPV4 است، به علاوه ی 8 بیت ابتدایی داده ی بسته ی IPv4 که باعث ایجاد خطا شده است. سپس بسته ICMP به بسته ی IPv4 جدیدی کپسوله می شود. این پیغام توسط هاست استفاده می شود تا پیغام را به فرآیند مناسب وصل کند. اگر پروتکل سطح بالا از شماره های پورت ها استفاده کند، فرض بر این است که در 64 بیت ابتدایی داده های اصلی دیتاگرام قرار می گیرد. همچنین می توان از ICMP برای ایجاد کانال پنهانی ارتباطی استفاده کرد. که این کانال ها به نام ICMP Tunnel معروف هستند.

 

معرفی برخی پیغام های پروتکل ICMP:

 1- پیغام Echo: یکی از دستورات بسیار پرکاربرد در دنیای شبکه دستور Ping می باشد. قالب این دستور به صورت زیر است:

Ping 192.168.1.100

ping www.yahoo.com

این دستور را در CMD باید اجرا کرد.

اگر بخواهیم بدانیم ارتباط بین دو دستگاه در شبکه برقرار است یا نه، می توانیم از دستور ping استفاده کنیم. 

روش کار دستور Ping:

دستور ping چهار بسته به دستگاهی که در حال ping کردن آن هستیم ارسال می کند. این بسته حاوی هیچ متن خاصی نیستند. می توان این بسته ها را مانند یک "سلام " در نظر گرفت. به این بسته ها Request می گویند. در صورتی که این 4 بسته به مقصد برسند و مقصد هم قادر به پاسخگویی باشد، او هم 4 تا بسته Reply (همون "علیک سلام") به مبدا ارسال می کند. پس با مبادله یکسری بسته بین طرفین می توانیم متوجه شویم که ارتباط بین دو دستگاه در شبکه برقرار است یا خیر. برای متوجه شدن موضوع به مثال زیر نگاه کنید:

مثال: می خواهیم در شبکه ارتباط بین دو تا کامپیوتر را چک کنیم. (ببینیم آیا ارتباط فیزیکی بین آنها برقرار است یا خیر). برای انجام این کار بر روی یکی از کامپیوتر ها دستور ping را به صورت زیر بزنیم:

Ping 192.168.1.1

در دستور بالا آدرس  192.168.1.100 آدرس IP کامپیوتر دیگر (مقصد) می باشد. در صورتی که ارتباط بین دو کامپیوتر برقرار باشد خروجی زیر مشاهده خواهد شد:

C:\>ping 192.168.1.1

Pinging 192.168.1.1 with 32 bytes of data:
Reply from 192.168.1.1: bytes=32 time=1ms TTL=64
Reply from 192.168.1.1: bytes=32 time=1ms TTL=64
Reply from 192.168.1.1: bytes=32 time=1ms TTL=64
Reply from 192.168.1.1: bytes=32 time=1ms TTL=64

Ping statistics for 192.168.1.1:
    Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
    Minimum = 1ms, Maximum = 1ms, Average = 1ms

همانطور که می بینید کامپیوتر مقصد در جواب بسته های Request (که مبدا ارسال کرده) بسته های Reply دریافت کرده است. در صورتی که نتیجه دستور ping چیزی به غیر از مثال بالا باشد نشان دهنده این است که ارتباط بین طرفین مشکل دار است. 

 

 1- پيغام Destination Host Unreachable:

اگر جواب بسته Request در دستور ping (توسط مقصد) به مبدا داده نشود پيغام بالا نشان داده خواهد شد. مثلا اگر بسته Request بين راه توسط يك دستگاه (مثل فايروال) دور انداخته شود و مبدا منتظر جواب بسته Request‌ اي باشد كه ارسال كرده و جوابي نگيرد، پيغام بالا را به جاي جواب بسته Request خواهد گرفت.

 2- پیغام Destination Network Unreachable:

اگر بسته اي به روتر برسد كه مسير خروجي آن بسته در جدول مسيريابي (Routing Table) روتر نباشد، روتر آن بسته را دور انداخته و پيغام بالا را به دستگاهي كه بسته را ارسال كرده بوده ارسال مي كند.

 3- پيغام Fragmentation:

براي توضيح اين پيغام ابتدا با كلمه MTU آشنا شويم.

MTU : اين كلمه مخفف كلمات Maximum Transmission Unit مي باشد. حداكثر اندازه يك بسته در يك توپولوژي را MTU مي گويند. مثلا در تكنولوژي Ethernet (اترنت) حداكثر اندازه يك بسته 1518 بايت مي باشد. در تكنولوژي ATM حداكثر اندازه بسته 53 بايت مي باشد و ...

بنابراين با توجه به نوع تكنولوژي، ممكن است اندازه يك بسته متفاوت باشد. يكي از قابليت هاي روترها اتصال تكنولوژي هاي متفاوت است. يعني مي توانيم به يكي از اينترفيس هاي روتر يك شبكه با تكنولوژي اترنت وصل كنيم و به اينترفيس ديگر، شبكه اي با تكنولو‍ژي ATM وصل كنيم.

در صورتي كه يك بسته به روتر برسد كه روتر براي ارسال آن بسته مجبور باشد، آن بسته را به بسته هاي كوچكتري (اندازه هاي كوچكتري) خورد كند به اين عمل

اگر بسته اي به روتر برسد كه براي ارسال، روتر آن بسته را به بسته هاي كوچكتري خورد كند به اين عمل Fragmentation گويند.

مثل: فرض كنيم يك بسته از يك شبكه اترنت با اندازه 1518 بايت به روتر مي رسد. مقصد اين بسته شبكه اي از نوع تكنولوژي ATM مي باشد. مي دانيم كه حداكثر اندازه بسته در شبكه هاي ATM، 53 بايت مي باشد. بنابراين روتر براي اينكه بتواند اين بسته را ارسال كند بايد آن را به اندازه هاي كوچكتري خورد كند. (بسته با اندازه 1518 بايت را به چندين بسته با اندازه 53 بايت خورد كند). به عمل خورد كردن بسته در روتر Fragmentation گويند.

توضيح پيغام Fragmentation:

در صورتي كه يك بسته به روتر برسد كه روتر براي ارسال آن مجبور باشد كه آن بسته را به بسته هاي كوچكتري (اندازه هاي كوچكتري) خورد كند اما مبدا (كسي كه بسته را ارسال كرده) اجازه خورد شدن بسته را نداده باشد، روتر آن بسته را دور انداخته و به مبدا پيغام Can not Fragmentation مي دهد.

بنابراين دستگاهي كه يك بسته را ارسال مي كند به هر دليلي ممكن است اجازه تكه شدن بسته را به روترها ندهد. در اين حالت اگر بسته اي به روتر برسد كه نياز به خورد شدن داشته باشد، روتر آن بسته را دور مي اندازد و براي اينكه مبدا مطلع شود كه بسته ارسالي آن به مقصد نرسيد و در بين راه دور انداخته شد، روتري كه بسته را دور انداخت به مبدا يك پيغام Can't Fragment‌ مي دهد.

 

 

 

 

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

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

CDN چیست؟

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

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

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

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