Ping پینگ چیست؟
پینگ (Ping) مدت زمان رفتوبرگشت یک بسته شبکه از دستگاه شما تا یک مقصد و بازگشت پاسخ آن است؛ عددی که بر حسب میلیثانیه (ms) گزارش میشود و در متون فنی به آن RTT یا Round-Trip Time میگویند. هرچه این عدد کوچکتر باشد، تأخیر ارتباط شما با آن مقصد کمتر است. پینگ در کنار جیتر و درصد بستههای گمشده، پایهایترین معیار سنجش کیفیت یک مسیر شبکه است.
پینگ دقیقا چه چیزی را اندازه میگیرد؟
پینگ «سرعت اینترنت» نیست و نباید با پهنای باند اشتباه گرفته شود. پهنای باند میگوید در هر ثانیه چه حجمی از داده جابهجا میشود، اما پینگ میگوید یک بسته چقدر طول میکشد تا به مقصد برسد و پاسخش برگردد. یک خط با پهنای باند بالا میتواند پینگ بدی داشته باشد و برعکس. برای دانلود فایل حجیم پهنای باند تعیینکننده است؛ اما برای بازی آنلاین، تماس صوتی و تصویری، کار با RDP و SSH و هر کاربرد لحظهای دیگر، این پینگ است که تجربه کاربر را میسازد.
دلیلش ساده است: بیشتر پروتکلهای اینترنت رفتوبرگشتی کار میکنند. برقراری اتصال TCP یک رفتوبرگشت کامل لازم دارد، دستدادن TLS رفتوبرگشت بیشتری اضافه میکند و بارگذاری یک صفحه وب ممکن است دهها درخواست پشت سر هم داشته باشد. اگر RTT شما ۲۰ میلیثانیه باشد هر رفتوبرگشت ۲۰ میلیثانیه به زمان بارگذاری اضافه میکند؛ اگر ۲۰۰ میلیثانیه باشد، همان تعداد رفتوبرگشت ده برابر گرانتر تمام میشود.
پینگ چگونه کار میکند؟
ابزار ping یک بسته ICMP Echo Request به مقصد میفرستد و منتظر پاسخ ICMP Echo Reply میماند، سپس اختلاف زمانی این دو را نمایش میدهد. در خروجی معمولا سه چیز میبینید: زمان پاسخ هر بسته، مقدار TTL باقیمانده که تخمینی از تعداد روترهای مسیر به دست میدهد، و در انتها خلاصهای شامل کمینه، میانگین و بیشینه زمان به همراه درصد بستههای از دست رفته.
یک نکته مهم: بیپاسخ ماندن ping لزوما به معنای خاموش بودن مقصد نیست. بسیاری از فایروالها و سرویسهای محافظت در برابر حمله، ترافیک ICMP را عمدا مسدود یا محدود میکنند. در این حالت سرور کاملا سالم است و وب و ایمیلش کار میکند، ولی به پینگ جواب نمیدهد.
چه عواملی پینگ را بالا میبرند؟
- فاصله فیزیکی: نور در فیبر نوری حدود ۲۰۰ هزار کیلومتر بر ثانیه پیش میرود. یعنی به ازای هر ۱۰۰ کیلومتر فاصله، دستکم حدود ۱ میلیثانیه به رفتوبرگشت اضافه میشود. این کف فیزیکی است و با هیچ تجهیزات و بهینهسازیای قابل حذف نیست.
- مسیر واقعی ترافیک: بستهها در خط مستقیم حرکت نمیکنند. مسیر فیبر، محل نقاط تبادل ترافیک و سیاستهای پیرینگ اپراتورها میتواند باعث شود ترافیک بین دو نقطه نزدیک، مسیری بسیار طولانیتر از فاصله جغرافیایی طی کند.
- ازدحام و صفبندی: وقتی یک لینک یا روتر در مسیر اشباع شود، بستهها در صف میمانند و پینگ بالا میرود؛ چه در ساعات پرترافیک و چه وقتی خودتان در حال آپلود یا دانلود سنگین هستید.
- نوع لینک دسترسی: وایفای نسبت به کابل تأخیر و نوسان بیشتری دارد و لینکهای رادیویی، اینترنت همراه و بهویژه ارتباط ماهوارهای زمینثابت ذاتا پینگ بالاتری تحمیل میکنند.
- وضعیت خود مقصد: اگر سرور مقصد تحت فشار CPU باشد یا نرخ پاسخ به ICMP را محدود کرده باشد، عدد پینگ بالاتر از تأخیر واقعی شبکه نشان داده میشود.
چطور پینگ بگیریم و مسیر را ببینیم؟
در ویندوز، دستور ping example.com بهصورت پیشفرض چهار بسته میفرستد؛ با سوییچ -n 20 تعداد را زیاد کنید و با -t آزمون را پیوسته اجرا کنید. در لینوکس و مک، دستور ping تا زمان فشردن Ctrl+C ادامه مییابد و با -c 20 میتوانید تعداد بسته را مشخص کنید. یک آزمون کوتاه چهار بستهای چیز زیادی نمیگوید؛ برای تشخیص نوسان، دستکم چند ده بسته بگیرید.
برای اینکه بفهمید تأخیر در کدام نقطه از مسیر ایجاد میشود، از traceroute استفاده کنید: در ویندوز tracert و در لینوکس و مک traceroute. این ابزار با افزایش تدریجی مقدار TTL، روترهای بین راه را یکییکی آشکار میکند. ابزار mtr در لینوکس، ترکیبی از ping و traceroute است و برای پیدا کردن گلوگاه در طول زمان بسیار دقیقتر عمل میکند.
هنگام خواندن خروجی traceroute حواستان باشد که روترهای میانی معمولا پاسخ به ICMP را در اولویت آخر میگذارند یا محدود میکنند. یک هاپ میانی با پینگ بالا یا ستاره، بهتنهایی نشانه مشکل نیست؛ آنچه اهمیت دارد عدد هاپ پایانی است و نقطهای که از آن به بعد تأخیر برای همه هاپهای بعدی بالا میماند.
چه عددی «خوب» است؟
پینگ خوب مفهومی مطلق نیست و فقط نسبت به فاصله معنا دارد. با همان قاعده «هر ۱۰۰ کیلومتر، حدود ۱ میلیثانیه» میتوانید کف نظری هر مسیر را حساب کنید. برای نمونه، فاصله تهران تا مرکز اروپا در حدود ۳۶۰۰ کیلومتر است؛ یعنی حتی با ایدهآلترین مسیر ممکن، رفتوبرگشت زیر حدود ۳۵ میلیثانیه از نظر فیزیکی شدنی نیست و در عمل به دلیل مسیر غیرمستقیم فیبر و تجهیزات میانی، بیشتر خواهد بود.
پس معیار درست این است: پینگ خود را با کف نظری همان مسیر بسنجید. نزدیک بودن به آن کف یعنی مسیر سالم است و چند برابر بودن یعنی جایی ازدحام یا مسیریابی نامناسب وجود دارد. ارتباط داخل یک دیتاسنتر معمولا تکرقمی است، ارتباط داخل کشور در محدوده چند ده میلیثانیه و ارتباط بینقارهای طبیعتا بسیار بالاتر.
جیتر و از دست رفتن بسته: دو عدد کنار پینگ
میانگین پینگ بهتنهایی گمراهکننده است. جیتر یعنی نوسان پینگ بین بستههای متوالی؛ یک خط با میانگین ۴۰ میلیثانیه و نوسان کم، برای تماس صوتی بهمراتب بهتر از خطی با میانگین ۲۵ میلیثانیه و پرشهای مکرر تا ۳۰۰ میلیثانیه است. Packet Loss هم حتی در مقادیر بسیار کم، بهدلیل ارسال مجدد در TCP، اثری چند برابر بدتر از افزایش ساده پینگ دارد. همیشه هر سه عدد را با هم ببینید.
چرا محل سرور مهمترین عامل است؟
چون فاصله تنها بخشی از تأخیر است که نمیتوانید آن را بهینه کنید. اگر مخاطب اصلی سایت یا سرویس شما در ایران است، نگه داشتن سرور در خارج از کشور یعنی پذیرفتن یک جریمه ثابت روی تکتک رفتوبرگشتها؛ جریمهای که هیچ CDN، کش یا بهینهسازی کدی آن را کاملا جبران نمیکند. در این حالت انتخاب سرور مجازی ایران سادهترین و مؤثرترین راه کاهش پینگ برای کاربران داخلی است.
عکس این موضوع هم درست است: اگر کاربرد شما اتصال به یک سامانه مشخص در خارج از کشور باشد، سرور باید به آن سامانه نزدیک باشد، نه به شما. این دقیقا منطق انتخاب محل در سرور مجازی ترید و فارکس است، جایی که ملاک، فاصله تا سرور کارگزار است. برای سرویسهایی هم که مخاطب پراکنده در چند منطقه دارند، استفاده از Geo DNS و AnyCast کمک میکند هر کاربر به نزدیکترین نقطه هدایت شود و رفتوبرگشتها کوتاهتر شوند.
وقتی پینگ بالا است، از کجا شروع کنیم؟
ابتدا مشخص کنید مشکل سمت شماست یا در مسیر. به مودم یا گیتوی خودتان پینگ بگیرید؛ اگر همانجا عدد بالا یا پرنوسان است، مشکل در شبکه محلی یا وایفای شماست. سپس با کابل تست کنید و در حین آزمون دانلود و آپلود سنگین را متوقف کنید تا اثر اشباع لینک حذف شود. در گام بعد با traceroute یا mtr ببینید تأخیر از کدام هاپ به بعد اضافه میشود. در نهایت همان مقصد را از یک شبکه یا سرور دیگر هم تست کنید تا بفهمید مشکل عمومی است یا فقط از مسیر شما دیده میشود. اگر پینگ سالم است ولی سایت باز هم کند به نظر میرسد، گلوگاه احتمالا در خود برنامه یا پیکربندی سرور است؛ یک چکاپ رایگان سایت نقطه شروع مناسبی برای جدا کردن این دو از هم است.
