دستور پینگ (Ping) یک ابزار خط فرمان است که تقریباً در هر سیستم عامل متصل به شبکه در دسترس بوده و به عنوان یک عملکرد آزمایشی فعالیت میکند تا بررسی کند آیا دستگاه مورد نظر در شبکه قابل دسترس است یا خیر، فرمان پینگ درخواستی را از طریق شبکه به دستگاه، سرور و یا سیستم مورد نظر ارسال کرده و نتیجهی موفقیتآمیز یا غیر موفقیتآمیز بودن آن در پاسخ از دستگاه مقصد به رایانه مبدا برگردانده میشود.
ماهیت ابزار Ping چیست؟
نام پینگ از اصطلاح Sonar آمده است، بعضی از افراد میگویند که پینگ مخفف Packet InterNet Groper است که صحیح نیست؛ نویسندهی ابزار ping میگوید نام این برنامه صرفاً از سونار گرفته شده است.
در سونار یا همان سیستم فاصلهیابی صوتی، پینگ یک انتشار موج صوتی شنیداری است که برای یافتن یک شی ارسال میشود، اگر صدا به جسم برخورد کند امواج صوتی منعکس شده و صداهای منعکس شده به مبدا باز میگردند، با اندازه گیری زمان و جهت موج بازگشت صدا، میتوان فاصله و مکان جسم را تعیین کرد.
این فناوری از روی قدرت تشخیص دلفینها و خفاشها در آب و تاریکی ساخته شده است، خفاشها به منظور حرکت کردن و تعیین مسیر و شکار در تاریکی مطلق، با فریاد زدن در فرکانسهای فراصوت (معمولاً بالای ۲۰ کیلوهرتز) صداهای منعکسشده از اشیای اطرافشان را تشخیص داده و آنها را به صورت «تصویر صوتی» تفسیر میکنند.
به همین ترتیب، فرمان پینگ یک درخواست اکو ارسال میکند، اگر سیستم مورد نظر را پیدا کند، به آن سیستم وارد شده و سیستم مورد نظر یک پاسخ اکو ارسال میکند، فاصلهی تعداد هاپها (Hop) تا سیستم مقصد را میتوان از پاسخ و همچنین شرایط پکتهای از دست رفته (Packet Loss) و همچنین زمان پاسخ (Time to Response) تعیین کرد.
فرمان Ping چطور کار میکند؟
ابزار Ping از Request یا درخواست echo برای برقراری ارتباط استفاده میکند و این پیامهای echo از طریق پروتکل ICMP یا Internet Control Message Protocol که بخشی جداییناپذیر از هر شبکهی IP Base است، ارسال و دریافت میشوند.
هنگامی که دستور پینگ صادر میشود، یک بستهی درخواست echo به آدرس مورد نظر شما ارسال شده و زمانی که سیستم مقصد درخواست echo را دریافت میکند، آن را با یک بسته echo پاسخ (Reply) میدهد.
دستور Ping بهطور پیش فرض چندین درخواست اکو ارسال میکند که به طور معمول ۴ یا ۵ درخواست هستند، نتیجه هر درخواست echo به صورت مجزا نمایش داده میشود و نشان میدهد که آیا درخواست، پاسخ موفقی دریافت کرده است یا خیر؛ اگر پاسخی دریافت کرده چه تعداد درخواست در چه بازهی زمانی دریافت شده است.
کاربرد دستور Ping چیست؟
دستور ping یک دستور Command Prompt است که معمولا در تست شبکه مورد استفاده قرار میگیرد. به بیان ساده این دستور برای تست توانایی کامپیوتر مبدا برای دستیابی به یک مقصد مشخص، استفاده میشود. دستور ping معمولاً به عنوان روشی ساده برای تأیید اینکه رایانهی مبدا میتواند از طریق شبکه با یک رایانه یا یک دستگاه دیگر در شبکه ارتباط برقرار کند یا خیر، استفاده میشود.
به عنوان مثال، میتوانید برای اطلاع از دسترسی به پرینتر در یک شبکه آن را ping کنید، اگر هنگام پینگ پرینتر هیچ پاسخی دریافت نمیکنید میتوانید حدس بزنید که پرینتر آفلاین است و یا کابل شبکه به آن متصل نشده، یا شاید برای بررسی اینکه آیا سیستم شما میتواند به آن متصل شود، نیاز به مسیریابی پینگ داشته باشید تا مشکلات احتمالی شبکه را مورد بررسی قرار دهید، این مسیریابی پس از کشف مشکل توسط ping و از طریق دستور traceroute انجام میشود.
نحوهی استفاده از دستور Ping
برای استفاده از دستور ping میتوانید از Windows PowerShell یا Terminal در macOS یا Linux استفاده کنید، اما معمولترین روش، استفاده از Windows Command Prompt است که در این مقاله آموزش داده میشود، البته قابل ذکر است که این دستور در همه جا یکسان میباشد، برای باز شدن پنجره Command Prompt یا cmd میتوانید آن را در پنجره start جستجو کرده و اجرا کنید یا در ویندوز کلیدهای ترکیبی Windows+R را بزنید و سپس در پنجره Run عبارت cmd را تایپ کرده و دکمه Enter را فشار دهید.
پس از باز شدن پنجره cmd میتوانید آدرس سایت یا ip مورد نظر خود را از طریق این دستور مورد بررسی قرار دهید، بهعنوان مثال برای تست در دسترس بودن سایت همیار آیتی دستور زیر را وارد نمایید:
با دریافت Reply از آدرس آیپی سایت مورد نظر مشخص میشود که این سایت توسط سیستم مبدا در دسترس است و مشکلی در برقراری ارتباط وجود ندارد.
بخشهای مختلف در پاسخ دستور Ping
برای بررسی پاسخ دستور ping کافیست بخش Reply از آیپی سایت، دستگاه یا سیستم مورد نظر را مورد بررسی قرار دهید، به عنوان مثال در تصویر بالا پاسخ ۴ درخواستِ ارسال شده به سایت را مشاهده میکنید که ۴ پاسخ از سایت با بازههای زمانی ۱۷۱ تا ۲۸۴ میلیثانیه دریافت شده است (برای درک بهتر دلیل نمایش رشتهای از اعداد به جای آدرس سایت بهتر است مقالات آیپی (IP) و سیستم نام دامنه (DNS) را مطالعه کنید.
بخش byte نمایانگر حجم بستههای ارسالی است و بخش TTL میزان طول عمر این درخواستها را نمایش میدهد، در بخش دوم نتیجه اطلاعات تکمیلی به صورت خلاصه نمایش داده میشود. برای مثال در دستور بالا Packets یا بستههای ارسال شده یا Sent تعداد ۴ عدد هستند و میزان دریافت یا همان Received برابر با ۴ است که این به معنای این است که هر ۴ درخواست ما پاسخ دریافت کردهاند و برقراری ارتباط مشکلی ندارد.
میزان Lost بستههای نرسیده به مقصد را به درصد نمایش میدهد. در بخش انتهایی نیز میانگین و بازهی دریافت پاسخ به میلی ثانیه نمایش داده میشود.
مقدار TTL یا Time to Live در دستور Ping چیست؟
مدت زمان عمر هر echo توسط مقدار TTL مشخص میشود، این کلمه از سرواژههای عبارت Time to Live به معنی “مدت زمان زندگی” هر بستهی ارسالی تشکیل میشود، این متغیر به صورت یک مقدار در یک بستهی پروتکل اینترنت (IP) است که به روتر شبکه میگوید آیا این بسته مدت زمان طولانیای در شبکه بوده است یا خیر، از طریق این مقدار روتر تصمیم میگیرد که این بسته باید به راه خودش ادامه دهد یا باید آن را دور ریخت، در IPv6 قسمت TTL در هر بسته به hop limit تغییر نام داده است نام جدید این مقدار بیانگر عملکرد روترها (هاپها) در مواجهه با بستهی دریافتی است.
فرض کنید TTL در یک ping معادل عدد ۱۰ باشد، این مقدار با رسیدن به هر هاپ یا روتر کاسته میشود و با به صفر رسیدن مقدار آن، بسته توسط روتر آخر حذف میشود!
به عبارت سادهتر یک اکوی پینگ با TTL معادل ۱۰ تنها ۱۰ روتر فرصت دارد که به مقصد برسد و اگر این اتفاق نیفتد، در روتر یازدهم حذف شده و اعلام ناموفق بودن نتیجه به سیستم مبدا توسط روتر حذف کننده ارسال خواهد شد، دلیل قرار دادن این مقدار در بستههای اکو جلوگیری از انتشار بینهایت و اشغال روترها و شلوغی شبکه است.
تفاوت TTL در سیستمعاملهای مختلف
مقدار TTL توسط سیستم عامل تعیین میشود و بر اساس نوع سیستم عامل بین ۱ تا ۲۵۵ متغیر است. یعنی اگر دستور ping توسط شما در سیستم عامل MacOS 2.0.x تنظیم شود این زمان برابر با ۶۰ خواهد بود و اگر در Windows 10 این درخواست ارسال شود این مقدار برابر با ۱۲۸ خواهد بود.
البته مقدار TTL، حجم و… توسط کاربر قابل تغییر است بنابراین ممکن است در سیستمهای مختلف بر اساس تنظیمات کاربر این مقادیر متفاوت باشند.
عملگرها یا سوییچهای دستور ping
دستور ping عملگرهای یا سوییچهای مختلفی برای افزودن ویژگیهای متفاوت دارد. به عنوان مثال سوییچ t- در صورتی که بخواهید عمل Ping کردن یک مقصد تا زمانی که شما به آن خاتمه دهید ادامه داشته باشد استفاده میشود. با این فرمان عمل Ping کردن متوقف نخواهد شد مگر اینکه دکمه ضربدر پنجره cmd را بزنید و یا دکمههای ترکیبی CTRL+C را به صورت همزمان فشار دهید. این سوییچ از طریق دستور زیر قابل اجراست:
Ping –t hamyarit.com
یا اگر بخواهید تعداد اجرای انجام دستور ping را به صورت دلخواه تغییر دهید میتوانید از سوییچ n- استفاده کنید برای درج تعداد دلخواه (برای مثال ۶ بار) در دستور ping، آن را به شکل زیر بنویسید:
Ping –n 6 hamyarit.com
عملگرهای زیادی برای این دستور پرکاربرد وجود دارد که برای دیدن آنها میتوانید از دستور زیر استفاده کنید:
Ping -?
مفهوم بالا بودن پینگ
منظور از بالا یا پایین بودن ping یا در اصطلاح ping time زمان لازم برای دریافت اطلاعات از سیستم یا سرور مقصد و بازگشت به سیستم شماست که نشان دهنده میزان تأخیر در ارتباط سیستم شما و مقصد است، بنابراین ping پایین، بهتر از ping بالاتر است زیرا به این معنی است که پاسخ سرور را سریعتر دریافت خواهید کرد و این یعنی تبادل اطلاعات سریعتر!
به عنوان مثال اگر قصد انجام یک بازی آنلاین دارید میتوانید ابتدا سایت ارائه دهنده بازی آنلاین را ping کنید؛ اگر پینگ بالایی دارید (برای مثال بیشتر از ۵۰۰ms) به این معنی است که برای رسیدن اطلاعات به سرور و بازگشت آن به بیش از نیم ثانیه زمان نیاز است. این بدان معناست که در هنگام بازی آنلاین متوجه وجود پرشهایی خواهید شد که گاهی بسیار آزار دهنده خواند بود و همین پینگ بالا (یا تأخیر در ارتباط) میتواند نتیجه بازی آنلاین را تحت تأثیر قرار دهد.
البته قابل ذکر است که موارد مختلفی وجود دارد که میتواند در ping time شما تأثیر بگذارند که مهمترین آنها شامل موارد زیر میشوند:
فاصله از سرور
به عنوان مثال، اگر شما در ایران زندگی میکنید و سعی میکنید به یک سرور در اتحادیه اروپا متصل شوید، پینگ بالاتر از زمانی خواهد بود که میخواهید به یک سرور در ایران و نزدیک به خود متصل شوید (البته باید توجه داشت که تفاوت سرعت و موارد دیگر نیز در میزان این زمان تاثیرگذار خواهند بود. برای مثال در ایالات متحده و اتحادیه اروپا که از نظر سرعت و غیره به طور مساوی و همسان هستند تنها فاصله تاثیر گذار خواهد بود)
اتصال اینترنتی شما
به عنوان مثال، اگر سرعت بسته اینترنتی شما ۵۶k باشد، دریافت پاسخ پینگ برای شما بیشتر از زمانی که اتصال پهن باند مناسبی داشته باشید طول میکشد.
تعداد هاپ و سرور در مسیر
تعداد هاپ و سرورهایی که در مسیر وجود دارند و پینگ برای رسیدن به مقصد و برگشت باید از آنها عبور کند تاثیر مستقیمی روی مدت زمان بازگشت پاسخ دارند. هرچه مقصد دورتر باشد، تعداد این هاپها بیشتر خواهد بود و مسیر طولانیتری برای رسیدن به مقصد و بازگشت وجود دارد.
برخی موارد دیگری که باید هنگام پینگ مورد توجه قرار دهید
علاوه بر مواردی که ذکر شد موضوعات دیگری نیز باید توسط شما مورد توجه قرار گیرند. در حقیقت تحلیل و تفسیر این دستور تنها به دریافت یا عدم دریافت پاسخ منتهی نمیشود و نیاز به تفسیر تخصصی دارد.
اگر تعداد پاسخ به درخواستها متفاوت است و برخی از آنها به مقصد نمیرسند و یا ping در زمانهای پشت سر هم به صورت یکی در میان پاسخ دریافت کند ممکن است به دلیل اتصال اینترنتی غیرقابل اطمینان بین رایانه و مقصد باشد که سبب از بین رفتن چندین بسته خواهد شد.
این غیرقابل اطمینان بودن میتواند در هر نقطهای از اتصال به اینترنت وجود داشته باشد، بنابراین مرحله بعدی انجام ردیابی از طریق traceroute و پیدا کردن محل ایجاد کننده مشکل خواهد بود.
اگر ping time شما در حالت minimum کمتر از ۲۰ms باشد، اما دارای نتایج متغیر بیش از ۱۰۰ms باشد، میتواند بسیار بدتر از پینگ با مدت زمان در رنج ۸۰ms باشد.
آیا شما نیز تابهحال از دستور پینگ استفاده کردهاید؟ تجربیات و نظرات خود را با ما و سایر کاربران همیار آیتی به اشتراک بگذارید.