آشنايي با دستور PING:

يكي از پيغام بسيار پر كاربرد پروتكل ICMP كه در شبكه استفاده مي شود، پيغام Echo مي باشد. ما به عنوان مدير شبكه مي خواهيم ارتباط بين دو دستگاه را چك كنيم. براي اين كار ميتوانيم از دستور ping استفاده كنيم.

دستور ping، به صورت پيش فرض 4 بسته‌ي Echo Request به دستگاه ديگر (جايي كه آدرس آن را مقابل دستور ping نوشته ايم) اسال مي كند و به ازاي هر بسته echo request منتظر دريافت يك پاسخ مي ماند. در صورتي كه ارتباط بين دو دستگاه سالم باشد، دستگاه ديگر نيز به ازاي هر بسته request يك بسته Echo Reply پاسخ مي دهد.

بسته هاي request و reply حاوي اطلاعات و ديتا نيستند.

خلاصه: اگر بخواهيم سالم بودن ارتباط بين دو دستگاه را تا لايه سوم چك كنيم از دستور ping استفاده مي كنيم. بنابراين دستور 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 چیزی به غیر از مثال بالا باشد نشان دهنده این است که ارتباط بین طرفین مشکل دار است.

نکته: بسته به اینکه مشکل بین دو دستگاه چه چیزی باشد ممکن است نتیجه دستور ping متفاوت باشد. برای آشنایی کامل با دستور ping مقاله ای جدا خواهم نوشت.

بررسي برقراري ارتباط با اينترنت از طريق ping:

يكي از كاربردهاي دستور ping استفاده از آن جهت تست كردن برقراري يك دستگاه با دنياي اينترنت است.

براي اينكه بفهيم كامپيوتر ما به اينترنت وصل است يا خير مي توانيم وارد محيط CMD شده و دستور زير را بزنيم:

ping 4.2.2.4

آدرس 4.2.2.4: آدرس يك سرور است كه هميشه روشنه و به اينترنت هم وصل است. در صورتي كه آدرس بالا رو ping كنيم و reply بگيريم (مانند مثال بالا) به اين معني است كه ما به اينترنت وصل هستيم. در صورتي كه جواب ping داده نشود (يعني بسته هاي reply نگيريم) به اين معني است كه به اينترنت وصل نيستيم.

البته براي چك كردن ارتباط اينترنت مي شه آدرس 8.8.8.8 رو هم ping كرد. آدرس هاي 4.2.2.4 و 8.8.8.8 مربوطه يكسري سرور هستند كه هميشه روشن و به اينترنت متصل هستند. مي تونيد اين دو تا آدرس رو به عنوان DNS Server هم انتخاب كنيد.

آشنايي با پارامترهاي دستور ping:

دستور ping يكسري پارامتر داره كه مي تونيم براي مقاصد و اهداف مختلف ازشون استفاده كنيم.

شكل كلي دستور ping به صورت زير است:

ping [-t] [-a] [-n Count] [-l Size] [-f] [-i TTL] [-v TOS] [-r Count] [-s Count] [{-j HostList | -k HostList}] [-w Timeout] [TargetName] fi

هر كدام از پارامترهاي دستور ping كاربردي داره. به عنوان مثال چندتا از اين پارامترها رو مي گم:

پارامتر t-:

اگر بعد از دستور ping علامت t- رو بزاريم مدام بسته هاي Echo request ارسال مي شود. به صورت پيش فرض تعداد 4 تا بسته request ارسال ميشه. اما اگر پارامتر بالا رو بزاريم اتومات شروع مي كند به ارسال بسته. براي متوقف كردن ارسال بسته كليد ميانبر ctrl+c را بايد بزنيم.

روش استفاده اين پارامتر:

مثال:

ping 192.168.1.1 -t

پارامتر  i- TTL:

 با اين پارامتر مي تونيم اندازه ttl رو مشخص كنيم. به صورت زير:


ping 192.168.1.1 -i 5

دستور بالا چهار تا بسته به مقصد 192.168.1.1 ارسال مي كند. در اين مثال اندازه ttl مقدار 5 در نظر گرفته شده است. يعني هر بسته request حداكثر از 5 تا روتر رد خواهد شد.

براي آشنايي كامل با پارامترها به آدرس زير مراجعه كنيد:

http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/sag_tcpip_pro_ping.mspx?mfr=true


نويسنده: علي گلي