پینگ یک ابزار کاربردی برای مدیران شبکه است که توسط Michael John Muuss در سال 1983 با چیزی حدود هزار خط کد پیاده سازی شد. اسم پینگ از کلمات Packet Internet Groper برداشته شده است که از نحوه کار دستگاه های ردییاب صوتی الهام گرفته شده است.
دستور پینگ (ping) برای حصول اطمینان از کارکرد صحیح هاست مقصد که قصد برقراری ارتباط با ان را داریم و همچنین وجود آن در شبکه استفاده میشود.
در ابتدا پینگ برای ایجاد یک سیگنال در شبکه به کار میرفت که نشان میداد که آیا کامپیوتر مقصد وجود دارد یا خیر و اگر وجود داشت سرعت ارتباط بین دو کامپیوتر را نشان میداد.
نرخ پینگ (ping rate) که به آن Latency هم گفته میشود نشان دهنده زمان تاخیر در شبکه به میلی ثانیه میباشد به عنوان مثال 30 میلی ثانیه. هر چقدر نرخ پینگ عدد بیشتری را نشان دهد به این معنی خواهد بود که ارسال اطلاعات زمان بیشتری طول خواهد کشید.
معمولا نرخ پینگ بالای 100 میلی ثانیه قابل قبول است اما در برخی کاربرد ها مانند بازی های آنلاین که نیاز به سرعت بیشتری در ارتباط وحود دارد نرخ پینگ باید کمتر از 30 میلی ثانیه باشد.
کاربردهای پینگ
در ابتدا پینگ برای حصول اطمینان از برقراری ارتباط پایدار بین دو هاست قبل از شروع به ارسال فایل از طریق پروتکل FTP استفاده میشد.
پینگ برای حصول اطمینان از دیده شدن دو کامپیوتر بر روی شبکه استفاده میشود به این صورت که داده هایی که packet خوانده میشوند از کامپیوتر مبدا به سمت کامپیوتر مقصد ارسال میشود در صورتی که کامپیوتر مقصد این packet ها را دریافت کند جواب خود را به سمت کامپیوتر مبدا برمیگرداند و کامپیوتر مبدا با اندازه گیری زمان بین ارسال و دریافت بسته های داده فاصله زمانی بین خود و کامپیوتر مقصد را مشخص میکند.
همچنین اگر تعدادی از این داده ها از کامپیوتر مقصد به سمت کامپیوتر مبدا بر نگردند نشان دهنده ارتباط ناپایدار بین این دو کامپیوتر است که دستور پینگ به شما آمار تعداد بسته های ارسال شده و تعداد بسته های با موفقیت دریافت شده و تعداد بسته هایی که دریافت نشده اند یا اصطلاحا loss شده اند را به شما دقیق خواهد داد.
پینگ چه اطلاعاتی به ما میدهد؟
مهم ترین اطلاعاتی که از پینگ به دست میاید ارتباط یا عدم اتباط با کامپیوتر مقصد میباشد. همچنینی زمان لازم برای ارسال و دریافت هر بسته اطلاعات بین دو کامپیوتر مبدا و مقصد با استفاده از دستور پینگ مشخص خواهد شد. در نهایت دستور پینگ به ما آمار کاملی از نتیجه ارسال پکت ها و وضعیت دریافت آنها به صورت تعداد پکت ارسال شده و تعداد پکت loss شده و دریافت شده و میانگین پکت هایی که loss شده اند را نمایش خواهد داد.
هچنین از روی نتایج پینگ میتوان مشاهده کرد که حداکثر و حداقل زمان لازم برای ارسال یک packet چقدر بوده است و میانگین زمانی ارسال pakcet ها را هم خواهیم دید.
مکانیزم کارکرد پینگ
نام پینگ از سیستم خاصی به نام Sonar در زیردریایی ها گرفته شده است که برای تشخیص موانع بر سر راه خود با ارسال امواج رادیویی و صوتی و دریافت امواج بازگشتی موانع و سخره های موجود در جلو و اطراف زیردریایی را تشخیص میدهد.
ساختار عملکرد پینگ هم درست به همین صورت است یعنی سیگنالی که به سمت کامپیوتر مقصد ارسال میشود که به آن echo request هم گفته میشود در صورتی که به هیچ مانعی برخورد نکند و مسیر رسیدن به کامپیوتر مقصد برایش هموار باشد به کامپیوتر مقصد میرسد همچنین کامپیوتر مقصد با دریافت این بسته ها یک echo reply را به سمت کامپیوتر مبدا ارسال میکند تا از دریافت شدن بسته ها مطلع شود.
پینگ در اکثر سیستم عامل ها وجود دارد و در بیشتر آن ها یک ساختار را دارد و تفاوت چندانی وجود ندارد. در ادامه این مطلب به تفاوت کوچکی که پینگ در ویندوز با پینگ در لینوکس دارد اشاره خواهیم کرد.
سوئیچ های پینگ
پینگ به صورت معمولی و بدون هیچ سوئیچی به صورت زیر اجرا میشود:
ping ip address or domain
به عنوان مثال برای بررسی اینکه آیا با با گوگل ارتباط داریم یا خیر میتوان در CMD ویندوز و یا در Terminal لینوکس یا مک دستور زیر را اجرا کرد:
ping google.com
به همین سادگی اجرا این دستور به ما سرعت ارتباط ما با گوگل را نمایش خواهد داد.
دستور پینگ به صورت کلی با آپشن های آن به صورت زیر خواهد بود:
ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [-w timeout] [-R] [-S srcaddr] [-p] [-4] [-6] target [/?]
اما پینگ مانند هر دستور دیگری تعدادی سوئیچ یا آپشن دارد که به مهم ترین های آن اشاره خواهیم کرد:
- سوئیچ -t دستور پینگ را در ویندوز ادامه خواهد داد تا زمانی که ctr+c را نزنید ادامه خواهد داشت.
- سوئیچ -a پس از دریافت هر پکت پینگ یک صدای بیب از سیستم ایجاد خواهد شد.
- سوئیچ -A پینگ را به صورت انتباقی ارجرا خواهد کرد و در بازه های زمانی سریع تر یا کند تری با توجه به سرعت اینترنت شما بسته های پینگ را ارسال خواهد کرد.
- سوئیچ -n تعداد Echo request های ICMP که باید ارسال بشوند را مشخص میکند که میتواند از 1 تا 4294967295 باشید. به صورت پیشفرض این مقدار برابر 4 میباشد.
- سوئیچ -l مشخص کننده سایز Echo request های ICMP خواهد بود که میتواند از 32 تا 65,527 باشد. مقدار پیشفرض این سویچ 32 میباشد.
- سوئیچ -f برای روتر های مسیر بین کامپیوتر مبدا و مقصد مشخص خواهد کرد که اجازه فرگمنت یا تکته تکته کردن بسته های ICMP را ندارند. این سوئیچ بیشتر زمانی استفاده میشود که قصد محاسبه میزان PMTU را داشته باشیم.
- سوئیچ -i TTL برای مشخص کردن میزان TTL یا Time To Live پکت ها را مشخص میکند و حداکثر مقدار قابل انتخاب 255 خواهد بود.
سوئیچ های قابل انتخاب برای دستور پینگ زیاد میباشند اما مهم ترین آن ها توضیح داده شدند. برای مشاهده لیست کامل سویچ ها میتوانید دستور زیر را در لینوکس اجرا کنید:
ping -help
و یا در ویندوز دستور زیر را اجرا کنید:
ping /?
پینگ گرفتن در وبسایت
- در مرورگر خود وارد نشانی www.ping.eu شوید.
- لینک Ping را کلیک کنید.
- در قسمت IP address or host name آی پی یا نشانی سایت مورد نظر را وارد کنید.
- دکمه ی GO را بزنید.
پینگ در ویندوز
نحوه پینگ گرفتن در ویندوز به این صورت است:
- کلید های WIN+R را بزنید.
- در آن CMD یا command prompt را سرچ کنید.
- در محیط command prompt عبارت ping را به همراه آدرس یک وبسایت یا IP تایپ کنید و سپس Enter را بزنید. مثل 10.5.37.156 .
خط اول نشانگر آدرس وبسایت مقصد، شماره IP مقصد و حجم پکت ارسالی میباشد.
چهار خط بعدی پاسخ دریافتی هر پکت است، که علاوه بر IP و حجم ارسالی نمایانگر زمان رفت و برگشت پکت و TTL (زمانی که اگر در طول آن پاسخی دریافت نشود، بسته دور ریخته خواهد شد) میباشد.
بعد از این چهار خط ، یک خلاصه از وضعیت و تعداد پکت های ارسالی و دریافتی، تعداد پکت های از دست رفته، به همراه حداقل، حداکثر و میانگین زمان پاسخ را مشاهده میکنید
این پاسخ ها در صورتی هستند که روند کار خوب پیش برود.در غیر این صورت پاسخ هایی همچون:
- request timeout (پاسخ دهی بیشتر از ttl طول کشیده و زمان تمام شده) میتواند برای زمانی باشئ که اینترنت شما قطع است.
- Destination host unreachable(مسیری به سرور مقصد پیدا نشده است)
- The Unknown Host Message(آدرس مقصد قابلیت تشخیص توسط سرور شما را ندارد)
یا خطاهای دیگر داده میشود.
تفاوت پینگ در ویندوز و لینوکس
همانطور که قبلا اشاره کردیم از نظر ساختاری در سیستم عامل های مختلف پینگ به یک شکل اجرا میشود. اما تفاوت هایی هم وجود دارد.
به عنوان مثال در لینوکس هنگام اجرای دستور پینگ دستور به اجرا شدن خود ادامه خواهد داد و متوقف نخواهد شد تا زمانی که ctrl+c را بزنیم اما در ویندوز پینگ فقط چهار Echo request را ارسال میکند و متوقف میشود مگر اینکه با سویچ -t مشخص بکنیم که قصد داریم دستور را برای زمان طولانی اجرا کنیم.
سویچ در ویندوز | کارکرد در ویندوز | سویچ در لینوکس | کارکرد در لینوکس |
---|---|---|---|
a- | تبدیل آدرس عددی به اسم | a- | هنگامی که مقصد قابل دسترس است بوق میزند |
n-count | تعداد دلخواه echo request را مینویسیم | n- | آدرس سایت را به جای اسم، عدد مینویسد |
f- | پکت های ارسالی را تکه تکه نفرستد | f- | سیلی از صدها پکت یا بیشتر را به سمت مقصد میفرستد |
I- | بافر سایز را میفرستد | I- | تعداد echo request بدون صبر کردن برای دریافت پاسخ |
t- | تا زمانی که Ctrl+C را نزنید به پینگ گرفتن ادامه دهد | T- | ttl را خودتان تعیین کنید |
i- | TTL را خودتان تعیین کنید | i- | تعیین فاصله بین انتقال بسته های پی در پی |
پینگ در مک
نحوه ی گرفتن پینگ در مک به چند صورت است است:
- در محیط مک بر روی Spotlight search کلیک کنید.
- در منو باز شده Network Utility را تایپ کنید، و روی آیکون آن کلیک کنید.
- منویی با نام Network Utility باز میشود، ping را انتخاب کنید.
- در قسمت Enter the network that you want to ping آدرس IP یا URL وب را وارد کنید.
- در قسمتی که نوشته send only—-pings تعداد پینگ مورد نیازتان را بنویسید.
- دکمه ی پینگ را بزنید.
- به بخش Applications رفته و Utilities را بزنید.
- سپس Terminal را انتخاب کنید.
- بین دو علامت <> آدرس IP یا نشانی وبسایت مورد نظر را بنویسید .
- دکمه Return/Enter را بزنید.
- برای توقف این فرایند کلید Ctrl+C را بزنید.
راه کار های کاهش پینگ
- روتر یا مودم خود را ری استارت کنبد.زیرا گاهی اوقات حافظه ی cache مودم یا روتر پر میشود و سرعت سرور را پایین میآورد.
- سیستم عامل روتر خود را آپدیت کنید.چون گاهی روتر نیازمند آپدیت های اساسی است و این آپدیت نبودن ، باعث افزایش latency میشود.
- مودم یا روتر جدید بخرید اگر مودم یا روتان قدیمی است.زیرا مودم و روتر های جدید پینگ کمتر و سرعت بیشتری دارند.
- اگر درحال شرکت در بازی آنلاین میباشید و بازی به شما اجازه میدهد از یکی از سرور هایش استفاده کنید ،سروری نزدیک به محلی که در آن درحال بازی هستید انتخاب کنید تا فاصله ی مکانی کم پینگ کمتری را به شما بدهد.
- اگر پینگ بالایی دارید و از دستگاه های اضافه که از اینترنت استفاده میکنند ،استفاده میکنید، این دستگاه ها را خاموش کنید.مثلا اگر از میکروفون یا وب کم استفاده میکنید، این دستگاه ها را خاموش کنید تا سرعت اتصالتان بالا برود.
- از اتصال 5GHz استفاده کنید که سرعت بیشتری نصبت به اتصال 2.5GHz دارد.
- اگر در بخش زمینه برنامه ای باز است ، آن را ببندید تا سرعتتان بالا برود.
- DNS خود را تغییر دهید. مثلا DNS گوگل از سریع ترین DNS ها است.
- اگر از سرویس هایی که پهنای باند زیادی از شما میگیرد استفاده میکنید، از آن ها خارج شوید.مثلا دانلود فایل هایی با حجم بالا و یا کیفیت بسیار بالا.
نحوه ی بستن پینگ
بستن پینگ یک اقدام امنیتی در سرور است که به وسیله ی آن می توانید امنیت سرور خود را در مواردی بالا ببرید.
بستن پینگ در ویندوز:
Windows Firewall With Advanced Security را در سرچ ویندوز پیدا کنید، وارد فایروال خود شوید. از منو سمت چپ، گزینه Inbound Rules بزنید. رول (File And Printer Sharing ( Echo Request – ICMPv4-In را در حالت Disable قرار بدهید.
بستن پینگ در لینوکس:
روش اول :
ابتدا وارد ssh شوید سپس دستور زیر را اجرا نمایید :
echo “۱” > /proc/sys/net/ipv4/icmp_echo_ignore_all
و یا می توانید با ویرایشگر nano فایل sysctl.conf را باز کنید :
nano /etc/sysctl.conf
و مقدار زیر را در انتها اضافه نمایید :
net.ipv4.icmp_echo_ignore_all = 1
روش دوم :
با استفاده از iptables پروتکل icmp را مسدود کنید.
iptables -A INPUT -p icmp -j DROP