حامیم: پینگ چیست و آیا پینگ صفر امکانپذیر است؟
پینگ دستوری است که از آن برای سنجش فاصله ی زمانی اتصال بین دو دستگاه در شبکه استفاده می شود. دستور ping در تمام سیستم عامل ها قابل استفاده است. بسیاری از بازی های آنلاین، از پینگ برای سنجش فاصله ی زمانی به صورت تصویری بهره می برند.
پینگ در واقع تاخیر زمانی ای است که ما در هنگام انجام تمام امور برخط (Online) خود انجام می دهیم، مانند کلیک یک لینک، ارسال یک پیام در شبکه های اجتماعی، ارسال یک ایمیل، انجام بازی، آپلود یک فایل، استریم کردن یک ویدئو و غیره. اگر شما در سایتی بر روی یک لینک کلیک کردید و مدت زمان زیادی برای بارگذاری صفحه ی مورد نظرتان طول کشید، شما احتمالا پینگ بالایی را در سایت مورد نظر تجربه می کنید. اگر هم این بارگذاری با سرعت انجام شود، شما پینگ کمتری دارید.
پینگ برای چه چیزی استفاده می شود؟
پینگ صرفا ابزاری برای اندازه گیری «عملکرد» نیست. ویژگی بخصوص پینگ اندازه گیری زمان تاخیر اتصال بین کامپیوتر شما با دستگاه مقصد (Remote Device) است. پینگ مدت زمان ارسال بسته (Packet) از رایانه شما، رسیدن آن به دستگاه مقصد و ارسال مجدد آن به رایانه شما را مشخص می کند.
آیا تا کنون به این نکته توجه کرده اید که وقتی در یک وب سایت بر روی لینکی کلیک می کنید، صفحه ی مقصد بلافاصله باز نمی شود؟ در این حالت یک وقفه ی زمانی -که زمان تاخیر است- وجود دارد. درخواست مشاهده ی صفحه ی جدید باید از سوی رایانه ی شما ارسال شود و سپس صفحه مورد نظر برای شما بارگذاری می گردد. زمان کوتاهی برای ارسال هر بسته ی داده ای (Packet Data) از کامپیوتر شما به کامپیوتر مقصد طول خواهد کشید. پینگ به شما اجازه می دهد این زمان را اندازه گیری کنید.
در ادامه جزئیات بیشتری در رابطه با پینگ بخوانید.
این موضوع در هنگام اجرای بازی های آنلاین بیشتر قابل درک است. مثلا اگر شما قصد انجام یک بازی آنلاین را دارید که نیاز به پینگ ۲۰ میلی ثانیه دارد، زمان تاخیرتان باید بسیار کوتاه باشد. در این صورت اعمالی که در بخش های مختلف بازی انجام می دهید تقریبا بلافاصله انجام خواهند شد. اگر پینگ شما بالاتر و مثلا ۲۰۰ میلی ثانیه است، اعمالی که در بازی انجام می دهید با یک فاصله ی زمانی انجام می شوند و در نتیجه شما نسبت به سایر افرادی که به طور همزمان با آنها بازی می کنید، عقب می مانید.
این که چرا در بازی های آنلاین چند نفره، زمان پینگ خیلی مهم است اینجا مشخص می شود. پینگ به شما کمک می کند تا میزان کیفیت اتصال خود را در شبکه بسنجید و عملکرد و کارایی مورد انتظار سرور را دریابید. هر چه پینگ کوتاه تر باشد بهتر است و به معنی زمان تاخیر کمتر است، در نتیجه اتصالی پرسرعت تر بین رایانه ی شما و سرور برقرار می شود. این موضوع قابل تعمیم به تمام فعالیت های آنلاین شماست خواه انجام یک بازی آنلاین باشد و خواه مرور یک وب سایت.
گاهی اوقات ممکن است پینگ فقط به صورت «تاخیر زمانی» به نمایش درآید. ولی در بازی های آنلاین برای اینکه مشخص شود پینگ شما چقدر خوب است معمولا به صورت یک رنگ برای شما نمایان خواهد شد که شامل سه رنگ سبز (خوب)، زرد (متوسط) و قرمز (ضعیف) است.
پینگ چگونه کار می کند؟
در ادامه به صورت خیلی ساده طرز کار پینگ را با هم مرور می کنیم:
- رایانه ی شما بسته های داده ای کوچکی -که در قوانین شبکه، بسته (Packet) نامیده می شوند- را به رایانه ی مقصد ارسال می کند.
- رایانه ی مقصد بسته ی ارسالی شما که نیاز به پاسخ دارد را دریافت می کند.
- رایانه ی مقصد یک بسته به رایانه ی شما ارسال می کند.
و این مراحل برای هر پینگ تکرار می شود. پینگ به شما اجازه می دهد مدت زمان رفت و برگشت بسته ها را بین رایانه ی خود و رایانه ی مقصد، اندازه بگیرید. به عنوان مثال همانطور که در تصویر زیر می بینید ما از Command Prompt ویندوز برای ارسال پینگ به گوگل (www.Google.com) استفاده می کنیم. این دستور ۴ بسته یا ۴ دستور پینگ جداگانه را ارسال می کند. برای ۳ پینگ اول، زمان ۱۰ میلی ثانیه و برای پینگ آخر ۱۲ میلی ثانیه است. به زبان ساده تر این یعنی برای ارسال ۳ بسته ی اول به گوگل و دریافت آن توسط رایانه ی ما، مدت زمان ۱۰ میلی ثانیه صرف شده در حالیکه برای بسته ی آخر، همین مراحل ۱۲ میلی ثانیه به طول انجامیده است. اما چرا پینگ چهارم بیشتر طول کشید؟ خب دلایل زیادی می تواند داشته باشد. ممکن است سرورهای گوگل اینکار را آهسته تر انجام داده باشند، امکان دارد روتر اینترنتی ای که بین ما و سرورهای گوگل قرار دارد بیشتر از حد معمول مشغول باشد، میزان ورودی اطلاعات توسط وای فای ما ممکن است نوسان داشته باشد و دلایل فراوان دیگر. البته برخی از این نوسانات رایج و طبیعی هستند.
هر پینگ یک درخواست ICMP Echo است
هرگاه شما یک پینگ ارسال می کنید، رایانه ی شما یک درخواست ICMP Echo ارسال می کند. IMCP که مخفف Internet Control Message Protocol به معنای «پروتکل کنترل پیام اینترنت» است و این پروتکل اساسا در میان دستگاه هایی که به یکدیگر شبکه شده اند استفاده می شود. در نتیجه دستگاه های مذکور می توانند با یکدیگر ارتباط داشته باشند. هر بسته، درخواست یک Echo می کند یا به بیانی دیگر، یک پاسخ ارسال می کند. به طور کلی هنگامی که سرور مقصد پینگی دریافت می کند، یک پیام مختص خود را به رایانه ی مبدا ارسال می نماید. وقتی شما دستور ping را اجرا می کنید در هر سطر یک پینگ و پاسخ آن را مشاهده خواهید نمود.
به هر حال همه ی سرورها و رایانه ها قابلیت پاسخ به یک بسته ی درخواست ICMP echo را ندارند و این ویژگی ممکن است در آن ها تعبیه نشده باشد. بنابرین در چنین شرایطی وقتی سرور قادر به پاسخ دادن به درخواست شما در لحظه ی ارسال پینگ نباشد، با پیام «Request timed out» به معنی «درخواست به پایان رسیده است» روبرو خواهید شد. متاسفانه امروزه از پروتکل ICMP برای حملات تکذیب سرور (DDoS attacks) نیز استفاده می شود.
مشاهده ی بسته های از بین رفته
پینگ می تواند به شما کمک کند تا بسته هایی که از بین رفته اند را نیز ببینید. برای مثال فرض کنید دستور ping را اجرا کرده اید و با یکسری پاسخ های مختلف و خطوط «Request timed out» روبرو شده اید. این یعنی برخی از بسته ها توسط رایانه مقصد دریافت نشده اند، یا پاسخ های سرور به رایانه ی شما ارسال نشده. برخی بسته ها نیز ممکن است در طول مسیر ارسال و دریافت از بین بروند.
واضح است که از بین رفتن بسته ها باید جایی بین شما و رایانه ی مقصد اتفاق افتاده باشد، مثلا در شبکه ی رایانه های مقصد، یا جایی در روتر مابین رایانه ی شما و رایانه ی مقصد، و یا خدمات دهنده ی اینترنت (ISP) شما. حتی ممکن است در شبکه ی خانگی شما این بسته ها از بین رفته باشند. اگر در هنگام وبگردی یا انجام بازی های آنلاین با مشکل روبرو می شوید -بخصوص وقتی برای رفتن به یک صفحه ی وب جدید چند بار بر روی لینک آن کلیک می کنید و صفحه ی مورد نظر بالا نمی آید- می توانید از دستور پینگ استفاده نمایید تا بفهمید آیا بسته های داده ای به سمت سرور ارسال می شوند یا خیر. هنگامی که از بین رفتن بسته های داده ای برای شما رخ می دهد برای نتیجه گیری بهتر در مورد کارکرد درست شبکه، می توانید چندین بار دستور پینگ را برای سرور های مختلف اجرا نمایید.
پینگ همچنین مقدار از بین رفتن بسته ها را مشخص می کند. برای مثال بسته ی اولی به سرور رسیده و پاسخ آن برای ما ارسال می شود و سه بسته ی دیگر از بین می روند، در این حالت دستور پینگ نشان می دهد که ۷۵ درصد بسته ها و در واقع سه چهارم آن ها از بین رفته اند.
آیا پینگ صفر امکانپذیر است؟
همانطور که گفتیم هرچه پینگ کوتاه تر باشد بهتر است. پینگ صفر یعنی رایانه ی ما به صورت بی وقفه با رایانه ی مقصد در ارتباط باشد.
با توجه به قوانین فیزیک، حتی بخش بسیار کوچکی از یک داده، که بتوان آن را بسته نامید، برای انجام مسیر رفت و برگشت زمانی را نیاز خواهد داشت. حتی اگر داده های شما در کابل های فیبر نوری ارسال و دریافت شوند، با محدودیت سرعت نور مواجه هستند. از سویی دیگر نیز به دلیل وجود روترهای واسطه که بسته های داده ای را دریافت کرده و آنها را به اتصالات دیگر می فرستند باز هم در رفت و آمد بسته ها محدودیت ایجاد می شود.
اگر شما قصد اجرای دستور پینگ را در سرور محلی (Localhost) بر روی رایانه خود داشته باشید، در واقع شما از رایانه خود خواسته اید تا بسته ها را از خودش به خودش ارسال کند و در این حالت شما زمان پینگ را صفر میلی ثانیه خواهید دید. به عبارتی این یعنی رایانه ها می تواند با خودشان به صورت بلادرنگ ارتباط داشته باشند. البته در این شرایط نیز باز هم نمی توان زمان صفر مطلق را برای انجام پینگ انتظار داشت، چرا که برای اجرای دستور توسط نرم افزار مربوطه زمانی هر چند بسیار کوتاه، نیاز خواهد بود. اما به هر حال این زمان آنقدر کم است که می توانیم از آن چشم پوشی کرده و زمان صفر میلی ثانیه برای ارتباط رایانه با خودش را در نظر بگیریم.
هنگامی که طول کابل ها، تعداد روترها و فاصله بین رایانه ی مبدا و مقصد را بیشتر کنید قطعا دیگر نمی توانید انتظار پینگ صفر را داشته باشید. می توانید این مورد را بر روی روتر خانگی خود بررسی کنید. ما دستور پینگ را به روتر خانگی خود، که در یک اتاق نسبتا کوچک قرار دارد و به صورت بی سیم به آن متصل هستیم ارسال کردیم و زمان متوسط پینگ ۳ میلی ثانیه و کمترین زمان به دست آمده ۱ میلی ثانیه بود زیرا برای ارتباط با سایر دستگاه ها به مقداری زمان نیاز است. اگر به صورت بی سیم به روتر متصل نباشیم و فقط بخواهیم با آن ارتباط برقرار کنیم، زمان پینگی نزدیک به صفر میلی ثانیه را خواهیم داشت، و همچنین برای ارسال بسته به شبکه ی خدمات دهنده ی اینترنت، و بازگشت آن به سمت روتر و اتصال به اینترنت مقداری زمان نیاز خواهد بود.
در نهایت بگذارید خیالتان را راحت کنیم، شما نمی توانید پینگی با زمان صفر داشته باشید. این محدودیت به دلیل قوانین فیزیک است. ما نمی توانیم اطلاعات را بلادرنگ انتقال دهیم – مگر با استفاده از قوانین کوانتومی. اگر بتوانیم راهی برای انتقال اطلاعات در بستر اینترنت با استفاده از قوانین کوانتومی پیدا کنیم آنگاه می توان به پینگ صفر دست یافت. اما این موضوع نیز فعلا در حد یک نظریه است و نیازی نیست نفستان را برای رسیدن به این موفقیت در سینه حبس کنید! پس آرام باشید و نفسی عمیق بکشید!
قطعا در آینده تاخیر ها و فاصله های زمانی ارسال اطلاعات کاهش می یابند. برای مثال مرورگرهایی مانند کروم، فایرفاکس و اینترنت اکسپلورر در حال حاضر صفحات وبی که شما احتمالا قصد مشاهده ی آن ها را دارید، از قبل بارگذاری می کنند تا تغییر محسوسی را هنگام کلیک بر روی یک لینک و مشاهده ی صفحه ی وب جدید احساس نمایید. به هر حال پینگ صفر -به عبارتی ارسال بدون تاخیر اطلاعات- به احتمال زیاد دست نیافتنی باقی می ماند.
«حامیم ارتباط، مجری تخصصی پیاده سازی پسیو شبکه های کامپیوتری، فیبر نوری، برق اضطراری، دوربین مداربسته، سیستم های اعلام و اطفاء حریق و چاه ارت»