زمان رفت و برگشت (RTT) در شبکه چیست؟
زمان رفت و برگشت در شبکه، مدت زمانی است که طول میکشد تا پس از ارسال درخواست به شبکه، پاسخ دریافت شود. وقتی با یک برنامه تعامل میکنید، مانند زمانی که یک دکمه را میزنید، برنامه درخواست خود را به یک سرور داده از راه دور ارسال میکند. سپس پاسخ داده شده را دریافت کرده و اطلاعات را به شما نمایش میدهد. RTT، مجموع زمانی است که درخواست باید برای سفر در شبکه طی کرده و سپس پاسخ برگشت کند. RTT معمولاً بر حسب میلیثانیه اندازهگیری میشود. هر چه RTT پایینتر باشد، تجربه استفاده از برنامه بهتر خواهد بود.
رابطه RTT با تاخیر (latency) شبکه چیست؟
تاخیر شبکه، زمان تاخیر در ارتباطات شبکهای است که نشاندهنده مدت زمانی است که داده برای انتقال از طریق شبکه نیاز دارد. شبکههایی با لگ (lag) بالا، دارای تاخیر زیاد هستند، در حالی که شبکههایی با زمان پاسخ سریع، تاخیر کمتری دارند. معمولاً اصطلاح تاخیر شبکه به عوامل مختلفی اطلاق میشود که باعث کندی ارتباط در یک شبکه خاص شده و بر عملکرد آن تأثیر میگذارند.
برای اندازهگیری تاخیر شبکه از معیار زمان رفت و برگشت (RTT) استفاده میشود. همانطور که دقیقه واحد اندازهگیری زمان است، RTT واحد خاصی برای اندازهگیری تاخیر شبکه است.
RTT چگونه اندازهگیری میشود؟
میتوانید زمان رفت و برگشت (RTT) را با استفاده از ابزارهای مختلف تشخیصی شبکه مانند پینگ (ping) یا ترِیسِروت (traceroute) اندازهگیری کنید. این ابزارها بستههای درخواست بازخورد پروتکل کنترل پیامهای اینترنتی (ICMP) را به مقصد مورد نظر ارسال کرده و مدت زمانی که این بستهها برای رسیدن به مقصد نیاز دارند را گزارش میدهند.
برای اندازهگیری RTT میتوانید از دستور پینگ به این صورت استفاده کنید:
- خط فرمان (Command Prompt) کامپیوتر خود را باز کنید.
- دستور ping را وارد کرده و سپس آدرس IP یا نام میزبان مقصدی که میخواهید آزمایش کنید را بنویسید.
- Enter را فشار دهید.
آزمایش پینگ بستههای داده را به مقصد ارسال کرده و RTT هر کدام را گزارش میکند. توجه داشته باشید که RTT اندازهگیری شده ممکن است بسته به شرایط شبکه و ابزارهای مورد استفاده برای اندازهگیری متفاوت باشد. به همین دلیل است که تخمین زمان رفت و برگشت چالشبرانگیز است
زمان رفت و برگشت (RTT) خوب یا بهینه چقدر است؟
یک زمان رفت و برگشت (RTT) خوب باید کمتر از ۱۰۰ میلیثانیه باشد تا عملکرد بهینه باشد. اگر RTT بین ۱۰۰ تا ۲۰۰ میلیثانیه باشد، احتمالاً عملکرد تحت تاثیر قرار میگیرد، اما کاربران هنوز قادر به دسترسی به سرویس هستند. اگر RTT 200 میلیثانیه یا بیشتر باشد، عملکرد کاهش یافته و کاربران زمانهای طولانی برای انتظار یا بارگذاری صفحه تجربه میکنند. RTT بیش از ۳۷۵ میلیثانیه معمولاً منجر به قطع اتصال میشود.
چه عواملی بر زمان رفت و برگشت تأثیر میگذارند؟
چندین عامل بر زمان رفت و برگشت (RTT) تأثیر میگذارند که عبارتند از:
مسافت
مسافت فیزیکی بر RTT تأثیر میگذارد، زیرا هر چه میزبان دورتر از منبع باشد، زمان بیشتری برای دریافت پاسخ لازم است. بنابراین، یکی از روشها برای کاهش RTT، نزدیکتر کردن دو نقطه ارتباطی به یکدیگر است. شما همچنین میتوانید از شبکه تحویل محتوا (CDN) برای توزیع محتوا نزدیکتر به کاربران خود استفاده کنید.
رسانه انتقال
سرعت اتصال تحت تاثیر رسانه انتقال است. به عنوان مثال، اتصالات فیبر نوری معمولاً دادهها را سریعتر از اتصالات مسی منتقل میکنند، در حالی که اتصالات فرکانسی بیسیم رفتار متفاوتی نسبت به ارتباطات ماهوارهای دارند.
تعداد پرشهای (hops) شبکه
یک گره شبکه، یک نقطه اتصال در شبکه است، مانند یک سرور یا روتر که میتواند بستههای داده را ارسال، دریافت یا منتقل کند. اصطلاح پرش شبکه به فرآیند حرکت بستههای داده از یک گره شبکه به گره دیگر اشاره دارد، همانطور که از منبع به مقصد حرکت میکنند.
با افزایش تعداد پرشهای شبکه، RTT نیز افزایش مییابد. هر گره مقداری زمان برای پردازش بسته قبل از ارسال آن میگیرد که به تأخیر زمانی میافزاید.
ترافیک شبکه
زمان رفت و برگشت (RTT) به دلیل حجم بالای ترافیک افزایش مییابد. وقتی یک شبکه تحت فشار قرار میگیرد، تعداد گرهها در شبکه افزایش مییابد. این باعث کندی ترافیک و تأخیر در درخواستهای کاربران میشود. همچنین میتواند منجر به افزایش تاخیر شده و بر سرعت ارتباط بین گرهها تاثیر بگذارد و زمان رفت و برگشت را طولانیتر کند.
زمان پاسخدهی سرور
زمان پاسخدهی سرور مستقیماً بر RTT تأثیر میگذارد. زمانی که سرور درخواست را دریافت میکند، اغلب باید با سرورهای دیگر مانند سرور پایگاه داده یا APIهای خارجی برای پردازش درخواست ارتباط برقرار کند. درخواستهای زیاد موجب تأخیر میشود زیرا سرور ممکن است مجبور شود درخواستهای جدید را در صف قرار دهد تا درخواستهای قبلی را پردازش کند.
ترافیک شبکه محلی
شبکه شرکتی معمولاً از شبکههای محلی (LAN) کوچکتر و به هم متصل ساخته شده است. دادهها از LAN شما به شبکه خارجی و برگشت میکنند. ترافیک داخلی در شبکه شرکتی شما میتواند باعث تنگناها شود، حتی اگر شبکه خارجی منابع کافی داشته باشد و به طور مؤثر کار کند.
برای مثال، اگر چندین کارمند در یک دفتر همزمان به سرویس استریم ویدیو دسترسی پیدا کنند، این میتواند بر RTT برای سایر برنامهها نیز تأثیر بگذارد.
چگونه میتوان زمان رفت و برگشت را کاهش داد؟
برای کاهش زمان رفت و برگشت (RTT) میتوانید از شبکه تحویل محتوا (CDN) استفاده کنید. شبکههای CDN سرورهایی هستند که به طور استراتژیک قرار گرفتهاند و محتوای ذخیرهشده را برای دسترسی سریعتر به کاربران نزدیکتر فراهم میکنند.
CDNها RTT را از طریق کشینگ، توزیع بار و مقیاسپذیری کاهش میدهند.
کشینگ
کشینگ فرایند ذخیرهسازی چندین نسخه از دادههای مشابه برای دسترسی سریعتر به دادهها است. CDNها محتوای دسترسی مکرر را نزدیکتر به کاربر نهایی ذخیره میکنند.
زمانی که یک کاربر از مکان جغرافیایی دور درخواست اولیهای برای محتوا میفرستد، سرور برنامه پاسخ را به کاربر ارسال کرده و نسخهای از پاسخ را به CDN میفرستد. در دفعات بعدی که این کاربر (یا هر کاربر دیگری در همان مکان) همان درخواست را ارسال کند، CDN پاسخ را مستقیماً ارسال میکند. این نیاز به ارسال درخواست به سرور برنامه را حذف کرده و RTT کلی را کاهش میدهد.
توزیع بار
توزیع بار در CDNها به درخواستهای کاربران این امکان را میدهد که به طور کارآمد و متعادل در سراسر شبکه سرورها توزیع شوند. CDNها سروری را که بهترین پاسخ را برای یک درخواست دارد، بر اساس مبدأ درخواست و بار فعلی زیرساخت سرورهای خود انتخاب میکنند.
مقیاسپذیری
به عنوان یک سرویس مبتنی بر ابر، CDNها مقیاسپذیری بالایی دارند و قادر به پردازش تعداد زیادی درخواست کاربران هستند. این کمک میکند تا تنگناها در تحویل محتوا از بین برود و RTT به حداقل برسد.