تأخیر شبکه
به تأخیر در ارتباطات شبکه اشاره دارد. این نشاندهنده زمانی است که دادهها برای انتقال در سراسر شبکه صرف میکنند. شبکههایی با تأخیر یا وقفه طولانی، تأخیر بالایی دارند، در حالی که شبکههایی با زمان پاسخ سریع، تأخیر پایینی دارند. کسبوکارها تأخیر پایین و ارتباطات سریعتر شبکه را برای بهرهوری بیشتر و عملیات تجاری کارآمدتر ترجیح میدهند. برخی از انواع برنامهها، مانند دینامیک سیالات و سایر موارد استفاده از محاسبات با کارایی بالا، برای همگام شدن با نیازهای محاسباتی خود به تأخیر شبکه پایین نیاز دارند. تأخیرهای بالای شبکه باعث کاهش عملکرد برنامه میشوند و در سطوح بسیار بالا، منجر به از کار افتادن آن میشوند.
چرا تأخیر مهم است؟
با دیجیتالی شدن بیشتر شرکتها، آنها از برنامهها و خدمات مبتنی بر ابر برای انجام وظایف اصلی تجاری استفاده میکنند. عملیات همچنین به دادههای جمعآوری شده از دستگاههای هوشمند متصل به اینترنت، که به طور جمعی اینترنت اشیا نامیده میشوند، متکی هستند. زمان تأخیر ناشی از تأخیرها میتواند ناکارآمدی ایجاد کند، به ویژه در عملیاتهای بلادرنگ که به دادههای حسگر وابسته هستند. تأخیر بالا همچنین مزایای صرف هزینه بیشتر برای ظرفیت شبکه را کاهش میدهد، که حتی اگر کسبوکارها مدارهای گران قیمت شبکه را پیادهسازی کنند، هم تجربه کاربر و هم رضایت مشتری را تحت تأثیر قرار میدهد.
کدام برنامهها به تأخیر شبکه پایین نیاز دارند؟
اگرچه همه کسبوکارها تأخیر پایین را ترجیح میدهند، اما برای صنایع و برنامههای خاص حیاتیتر است. موارد زیر نمونههایی از موارد استفاده هستند.
- برنامههای تحلیل جریانی: برنامههای تحلیل جریانی، مانند حراجهای بلادرنگ، شرطبندی آنلاین و بازیهای چندنفره، حجم زیادی از دادههای جریانی بلادرنگ را از منابع مختلف مصرف و تجزیه و تحلیل میکنند. کاربران این برنامهها برای تصمیمگیری به اطلاعات دقیق بلادرنگ وابسته هستند. آنها یک شبکه با تأخیر کم را ترجیح میدهند زیرا تأخیر میتواند پیامدهای مالی داشته باشد.
- مدیریت داده بلادرنگ: برنامههای سازمانی اغلب دادهها را از منابع مختلف، مانند نرمافزارهای دیگر، پایگاههای داده تراکنشی، ابر و حسگرها، ادغام و بهینه میکنند. آنها از فناوری ثبت تغییر داده (CDC) برای ثبت و پردازش تغییرات داده به صورت بلادرنگ استفاده میکنند. مشکلات تأخیر شبکه میتواند به راحتی در عملکرد این برنامهها اختلال ایجاد کند.
- ادغام API: دو سیستم کامپیوتری مختلف با استفاده از یک رابط برنامهنویسی کاربردی (API) با یکدیگر ارتباط برقرار میکنند. اغلب اوقات، پردازش سیستم تا زمانی که یک API پاسخی را برگرداند، متوقف میشود. بنابراین تأخیر شبکه، مشکلات عملکرد برنامه را ایجاد میکند. به عنوان مثال، یک وبسایت رزرو پرواز از یک فراخوانی API برای دریافت اطلاعات در مورد تعداد صندلیهای موجود در یک پرواز خاص استفاده میکند. تأخیر شبکه ممکن است بر عملکرد وبسایت تأثیر بگذارد و باعث از کار افتادن آن شود. تا زمانی که وبسایت پاسخ API را دریافت کرده و دوباره راهاندازی شود، ممکن است شخص دیگری بلیط را رزرو کرده باشد و شما آن را از دست بدهید.
- عملیات از راه دور مبتنی بر ویدیو: برخی از گردشهای کاری، مانند ماشینهای حفاری مجهز به ویدیو، دوربینهای آندوسکوپی و پهپادها برای جستجو و نجات، نیاز به اپراتوری دارند که دستگاه را از راه دور با استفاده از ویدیو کنترل کند. در این موارد، شبکههای با تأخیر بالا برای جلوگیری از پیامدهای تهدیدکننده زندگی بسیار مهم هستند.
علل تأخیر شبکه چیست؟
در اصطلاحات شبکه، یک دستگاه کلاینت و یک سرور با استفاده از یک شبکه کامپیوتری با یکدیگر ارتباط برقرار میکنند. کلاینت درخواستهای داده را ارسال میکند و سرور پاسخهای داده را ارسال میکند. مجموعهای از دستگاهها، مانند روترها، سوئیچها یا فایروالها و لینکهایی مانند کابلها یا انتقال بیسیم، شبکه کامپیوتری را تشکیل میدهند. درخواستها و پاسخهای داده به صورت بستههای کوچک داده، از طریق لینکها از یک دستگاه به دستگاه دیگر میپرند تا به مقصد خود برسند. دستگاههای شبکه، مانند روترها، مودمها و سوئیچها، به طور مداوم بستههای داده را از طریق مسیرهای مختلف شبکه ساخته شده از سیمها، کابلهای فیبر نوری یا رسانههای انتقال بیسیم پردازش و مسیریابی میکنند. در نتیجه، عملیات شبکه پیچیده است و عوامل مختلفی بر سرعت حرکت بستههای داده تأثیر میگذارند. عوامل رایجی که تأخیر شبکه را ایجاد میکنند به شرح زیر است.
- رسانه انتقال: رسانه یا لینک انتقال بیشترین تأثیر را بر تأخیر دارد زیرا داده از آن عبور میکند. به عنوان مثال، یک شبکه فیبر نوری نسبت به یک شبکه بیسیم تأخیر کمتری دارد. به طور مشابه، هر بار که شبکه از یک رسانه به رسانه دیگر تغییر میکند، چند میلیثانیه اضافی به کل زمان انتقال اضافه میکند.
- مسافتی که ترافیک شبکه طی میکند: مسافتهای طولانی بین نقاط پایانی شبکه، تأخیر شبکه را افزایش میدهد. به عنوان مثال، اگر سرورهای برنامه از کاربران نهایی از نظر جغرافیایی دور باشند، ممکن است تأخیر بیشتری را تجربه کنند.
- تعداد پرشهای شبکه: روترهای میانی متعدد تعداد پرشهایی را که بستههای داده نیاز دارند افزایش میدهند، که باعث افزایش تأخیر شبکه میشود. عملکردهای دستگاه شبکه، مانند پردازش آدرس وبسایت و جستجوی جداول مسیریابی، نیز زمان تأخیر را افزایش میدهند.
- حجم داده: حجم بالای داده همزمان میتواند مشکلات تأخیر شبکه را افزایش دهد زیرا دستگاههای شبکه میتوانند ظرفیت پردازش محدودی داشته باشند. به همین دلیل زیرساختهای شبکه اشتراکی، مانند اینترنت، میتوانند تأخیر برنامه را افزایش دهند.
- عملکرد سرور: عملکرد سرور برنامه میتواند تأخیر شبکه را به صورت ادراکی ایجاد کند. در این حالت، ارتباط داده به دلیل مشکلات شبکه به تأخیر نمیافتد، بلکه به این دلیل است که سرورها به کندی پاسخ میدهند.
چگونه میتوان تأخیر شبکه را اندازهگیری کرد؟
میتوانید تأخیر شبکه را با استفاده از معیارهایی مانند زمان تا اولین بایت و زمان رفت و برگشت اندازهگیری کنید. میتوانید از هر یک از این معیارها برای نظارت و آزمایش شبکهها استفاده کنید.
- زمان تا اولین بایت: زمان تا اولین بایت (TTFB) زمانی را ثبت میکند که اولین بایت داده پس از برقراری اتصال از سرور به کلاینت میرسد. TTFB به دو عامل بستگی دارد:
- زمانی که سرور وب برای پردازش درخواست و ایجاد پاسخ صرف میکند.
- زمانی که پاسخ برای بازگشت به کلاینت صرف میکند. بنابراین، TTFB هم زمان پردازش سرور و هم تأخیر شبکه را اندازهگیری میکند. همچنین میتوانید تأخیر را به عنوان TTFB ادراک شده اندازهگیری کنید، که به دلیل مدت زمانی که دستگاه کلاینت برای پردازش بیشتر پاسخ صرف میکند، طولانیتر از TTFB واقعی است.
- زمان رفت و برگشت: زمان رفت و برگشت (RTT) زمانی است که کلاینت برای ارسال درخواست و دریافت پاسخ از سرور صرف میکند. تأخیر شبکه باعث تأخیر رفت و برگشت و افزایش RTT میشود. با این حال، تمام اندازهگیریهای RTT توسط ابزارهای نظارت بر شبکه، شاخصهای جزئی هستند زیرا دادهها میتوانند هنگام رفتن از کلاینت به سرور و برگشت، از مسیرهای مختلف شبکه عبور کنند.
- دستور Ping: مدیران شبکه از دستور ping برای تعیین زمان لازم برای رسیدن ۳۲ بایت داده به مقصد و دریافت پاسخ برگشتی استفاده میکنند. این روشی برای شناسایی میزان قابل اعتماد بودن یک اتصال است. با این حال، نمیتوانید از ping برای بررسی مسیرهای متعدد از یک کنسول یا کاهش مشکلات تأخیر استفاده کنید.
انواع دیگر تأخیر چیست؟
یک سیستم کامپیوتری میتواند تأخیرهای مختلفی را تجربه کند، مانند تأخیر دیسک، تأخیر فیبر نوری و تأخیر عملیاتی. موارد زیر انواع مهم تأخیر هستند.
- تأخیر دیسک: تأخیر دیسک زمانی را اندازهگیری میکند که یک دستگاه محاسباتی برای خواندن و ذخیره داده صرف میکند. این دلیلی است که ممکن است در نوشتن تعداد زیادی فایل به جای
یک فایل بزرگ رخ دهد. به عنوان مثال، هارد دیسکها تأخیر دیسک بیشتری نسبت به درایوهای حالت جامد دارند.
-
تأخیر فیبر نوری: تأخیر فیبر نوری زمانی است که نور برای طی کردن مسافت مشخصی از طریق کابل فیبر نوری صرف میکند. با سرعت نور، برای هر کیلومتری که نور در فضا طی میکند، تأخیری برابر با ۳.۳۳ میکروثانیه رخ میدهد. با این حال، در کابل فیبر نوری، هر کیلومتر باعث تأخیری برابر با ۴.۹ میکروثانیه میشود. سرعت شبکه میتواند با هر خمیدگی یا نقص در کابل کاهش یابد.
-
تأخیر عملیاتی: تأخیر عملیاتی، تأخیر زمانی ناشی از عملیات محاسباتی است. این یکی از عواملی است که باعث تأخیر سرور میشود. هنگامی که عملیاتها یکی پس از دیگری به صورت متوالی اجرا میشوند، میتوانید تأخیر عملیاتی را به عنوان مجموع کل زمانی که هر عملیات جداگانه صرف میکند، محاسبه کنید. در گردشهای کاری موازی، کندترین عملیات، زمان تأخیر عملیاتی را تعیین میکند.
چه عواملی غیر از تأخیر، عملکرد شبکه را تعیین میکنند؟
غیر از تأخیر، میتوانید عملکرد شبکه را از نظر پهنای باند، توان عملیاتی، جیتر و از دست دادن بسته اندازهگیری کنید.
-
پهنای باند: پهنای باند حجم دادهای را که میتواند در یک زمان معین از طریق یک شبکه عبور کند، اندازهگیری میکند. این مقدار بر حسب واحدهای داده در ثانیه اندازهگیری میشود. به عنوان مثال، شبکهای با پهنای باند ۱ گیگابیت در ثانیه (Gbps) اغلب عملکرد بهتری نسبت به شبکهای با پهنای باند ۱۰ مگابیت در ثانیه (Mbps) دارد.
-
مقایسه تأخیر با پهنای باند: اگر شبکه را به عنوان یک لوله آب در نظر بگیرید، پهنای باند نشاندهنده عرض لوله است و تأخیر سرعت حرکت آب در لوله است. اگرچه پهنای باند کمتر در طول اوج مصرف، تأخیر را افزایش میدهد، اما پهنای باند بیشتر لزوماً به معنای داده بیشتر نیست. در واقع، تأخیر میتواند بازگشت سرمایه در زیرساختهای گران قیمت با پهنای باند بالا را کاهش دهد.
-
توان عملیاتی: توان عملیاتی به میانگین حجم دادهای اشاره دارد که میتواند در واقع در یک بازه زمانی مشخص از طریق شبکه عبور کند. این نشاندهنده تعداد بستههای دادهای است که با موفقیت به مقصد خود میرسند و میزان از دست رفتن بستههای داده را نشان میدهد.
-
مقایسه تأخیر با توان عملیاتی: توان عملیاتی تأثیر تأخیر بر پهنای باند شبکه را اندازهگیری میکند. این نشاندهنده پهنای باند موجود پس از تأخیر است. به عنوان مثال، پهنای باند یک شبکه ممکن است ۱۰۰ مگابیت در ثانیه باشد، اما به دلیل تأخیر، توان عملیاتی آن فقط ۵۰ مگابیت در ثانیه در طول روز است اما در شب به ۸۰ مگابیت در ثانیه افزایش مییابد.
-
جیتر: جیتر به تغییر در تأخیر زمانی بین انتقال داده و دریافت آن از طریق اتصال شبکه اشاره دارد. برای تجربه کاربری بهتر، تأخیر ثابت نسبت به تغییرات تأخیر ترجیح داده میشود.
-
مقایسه تأخیر با جیتر: جیتر تغییر در تأخیر یک شبکه در طول زمان است. تأخیر باعث تأخیر در بستههای دادهای میشود که از طریق یک شبکه حرکت میکنند، اما جیتر زمانی تجربه میشود که این بستههای شبکه به ترتیبی متفاوت از آنچه کاربر انتظار دارد، میرسند.
-
از دست دادن بسته: از دست دادن بسته تعداد بستههای دادهای را که هرگز به مقصد خود نمیرسند، اندازهگیری میکند. عواملی مانند اشکالات نرمافزاری، مشکلات سختافزاری و ازدحام شبکه باعث افتادن بستهها در طول انتقال داده میشوند.
-
مقایسه تأخیر با از دست دادن بسته: تأخیر، تأخیر در رسیدن یک بسته به مقصد را اندازهگیری میکند. این مقدار بر حسب واحدهای زمان مانند میلیثانیه اندازهگیری میشود. از دست دادن بسته یک مقدار درصدی است که تعداد بستههایی را که هرگز نرسیدهاند اندازهگیری میکند. بنابراین اگر از ۱۰۰ بسته ۹۱ بسته رسید، از دست دادن بسته ۹٪ است.
چگونه میتوان مشکلات تأخیر شبکه را بهبود بخشید؟
میتوانید با بهینهسازی هم شبکه و هم کد برنامه خود، تأخیر شبکه را کاهش دهید. در اینجا چند پیشنهاد آورده شده است.
-
ارتقاء زیرساخت شبکه: میتوانید دستگاههای شبکه را با استفاده از آخرین سختافزار، نرمافزار و گزینههای پیکربندی شبکه موجود در بازار ارتقاء دهید. نگهداری منظم شبکه، زمان پردازش بسته را بهبود میبخشد و به کاهش تأخیر شبکه کمک میکند.
-
نظارت بر عملکرد شبکه: ابزارهای نظارت و مدیریت شبکه میتوانند عملکردهایی مانند آزمایش API ساختگی و تجزیه و تحلیل تجربه کاربر نهایی را انجام دهند. میتوانید از آنها برای بررسی تأخیر شبکه در زمان واقعی و عیبیابی مشکلات تأخیر شبکه استفاده کنید.
-
گروهبندی نقاط پایانی شبکه: Subnetting روشی برای گروهبندی نقاط پایانی شبکه است که اغلب با یکدیگر ارتباط برقرار میکنند. یک زیرشبکه به عنوان یک شبکه درون یک شبکه عمل میکند تا پرشهای غیرضروری روتر را به حداقل برساند و تأخیر شبکه را بهبود بخشد.
-
استفاده از روشهای شکلدهی ترافیک: میتوانید با اولویتبندی بستههای داده بر اساس نوع، تأخیر شبکه را بهبود بخشید. به عنوان مثال، میتوانید شبکه خود را طوری تنظیم کنید که ابتدا برنامههای با اولویت بالا مانند تماسهای VoIP و ترافیک مرکز داده را مسیریابی کند در حالی که انواع دیگر ترافیک را به تأخیر میاندازد. این امر تأخیر قابل قبول را برای فرآیندهای حیاتی کسبوکار در یک شبکه با تأخیر بالا بهبود میبخشد.
-
کاهش فاصله شبکه: میتوانید با میزبانی سرورها و پایگاههای داده خود از نظر جغرافیایی نزدیکتر به کاربران نهایی خود، تجربه کاربر را بهبود بخشید. به عنوان مثال، اگر بازار هدف شما ایتالیا باشد، با میزبانی سرورهای خود در ایتالیا یا اروپا به جای آمریکای شمالی، عملکرد بهتری خواهید داشت.
-
کاهش پرشهای شبکه: هر پرشی که یک بسته داده هنگام حرکت از روتر به روتر انجام میدهد، تأخیر شبکه را افزایش میدهد. به طور معمول، ترافیک باید پرشهای متعددی را از طریق اینترنت عمومی، از طریق مسیرهای بالقوه پرترافیک و بدون افزونگی، برای رسیدن به مقصد خود انجام دهد. با این حال، میتوانید از راهحلهای ابری برای اجرای برنامهها نزدیکتر به کاربران نهایی خود به عنوان یکی از راههای کاهش هم فاصله طی شده توسط ارتباطات شبکه و هم تعداد پرشهایی که ترافیک شبکه انجام میدهد، استفاده کنید. به عنوان مثال، میتوانید از AWS Global Accelerator برای انتقال ترافیک به شبکه جهانی AWS در نزدیکترین نقطه ممکن به آنها استفاده کنید و از شبکه با افزونگی جهانی AWS برای کمک به بهبود دسترسی و عملکرد برنامه خود استفاده کنید.
-