فهرست مطالب
Toggleتأخیر یا Latency زمانی است که طول میکشد تا دادهها از یک نقطه در شبکه به نقطه دیگر منتقل شوند. فرض کنید سرور A در نیویورک یک بسته داده را به سرور B در لندن ارسال میکند. سرور A بسته را در ساعت ۰۴:۳۸:۰۰٫۰۰۰ GMT ارسال میکند و سرور B آن را در ساعت ۰۴:۳۸:۰۰٫۱۴۵ GMT دریافت میکند. میزان تاخیر در این مسیر تفاوت بین این دو زمان است: ۰.۱۴۵ ثانیه یا ۱۴۵ میلی ثانیه.
اغلب، تأخیر بین دستگاه کاربر (دستگاه «مشتری») و مرکز داده اندازهگیری میشود. این اندازه گیری به توسعه دهندگان کمک میکند تا بفهمند یک صفحه وب یا برنامه تحت وب با چه سرعتی برای کاربران بارگذاری میشود.
اگرچه دادههای موجود در اینترنت با سرعت نور حرکت میکنند، اثرات مسافت و تاخیرهای ناشی از تجهیزات زیرساخت اینترنت به این معنی است که تاخیر هرگز نمیتواند به طور کامل حذف شود. با این حال، میتوان و باید آن را به حداقل رساند. میزان تأخیر زیاد منجر به عملکرد ضعیف وب سایت میشود، بر سئو تأثیر منفی میگذارد و میتواند کاربران را وادار کند که به طور کلی سایت یا برنامه را ترک کنند.
چه چیزی باعث تاخیر اینترنت میشود؟
یکی از دلایل اصلی تأخیر شبکه، فاصله است، بهویژه فاصله بین دستگاههای کلاینت (مشتری) درخواستکننده و سرورهایی که به آن درخواستها پاسخ میدهند. اگر وبسایتی در مرکز دادهای در کلمبوس، اوهایو میزبانی شود، درخواستهای کاربران در سینسیناتی (حدود ۱۶۰ کیلومتر) را به سرعت دریافت میکند، احتمالا در عرض ۵ تا ۱۰ میلیثانیه. از سوی دیگر، درخواستهای کاربران در لسآنجلس (حدود ۳۵۲۰ کیلومتر دورتر) زمان بیشتری برای دریافت خواهند داشت، نزدیک به ۴۰ تا ۵۰ میلیثانیه.
افزایش چند میلی ثانیهای ممکن است زیاد به نظر نرسد، اما این با تمام تاخیر ناشی از ارتباطات رفت و برگشت لازم برای مشتری و سرور برای برقراری ارتباط، اندازه کل و زمان بارگذاری صفحه و هر گونه مشکلی با تجهیزات شبکه که دادهها در طول مسیر از آن عبور میکنند، ترکیب میشود. مدت زمانی که طول میکشد تا یک پاسخ پس از درخواست مشتری به دستگاه مشتری برسد، به عنوان زمان رفت و برگشت (RTT) شناخته میشود. RTT برابر است با دو برابر مقدار تاخیر، زیرا دادهها باید در هر دو جهت حرکت کنند، یک بار به سرور و یک بار هم از سرور به دستگاه مشتری.
مسیر نقل و انتقال داده از اینترنت معمولا نه تنها از یک، بلکه از چندین شبکه عبور میکند. هر چه یک پاسخ HTTP نیاز به عبور از شبکههای بیشتری داشته باشد، شرایط برای تاخیر بیشتر فراهم میشود. به عنوان مثال، هنگامی که بستههای داده بین شبکهها منتقل میشوند، از طریق نقاط تبادل اینترنت (IXP) عبور میکنند. در آنجا، روترها باید بستههای داده را پردازش و مسیریابی کنند، و گاهی اوقات ممکن است روترها نیاز داشته باشند که آنها را به بستههای کوچکتر تقسیم کنند، که همه اینها چند میلی ثانیه به RTT اضافه میکنند.
تأخیر شبکه، توان عملیاتی و پهنای باند
تأخیر، پهنای باند و توان عملیاتی همه به هم مرتبط هستند، اما همه آنها چیزهای مختلفی را اندازهگیری میکنند. پهنای باند حداکثر مقدار دادهای است که میتواند در هر زمان از شبکه عبور کند. توان عملیاتی عبارت است از میانگین مقدار دادهای که در یک بازه زمانی معین از آن عبور میکند. توان عملیاتی لزوما معادل پهنای باند نیست، زیرا تحت تأثیر تأخیر و عوامل دیگر است. تأخیر اندازهگیری زمان است، نه میزان بارگیری داده در طول زمان.
چگونه میتوان تأخیر را کاهش داد؟
استفاده از شبکه توزیع محتوا (CDN) گام بزرگی در جهت کاهش تأخیر است. یک CDN محتوای ایستا را ذخیره میکند و آن را به کاربران ارائه میدهد. (Cloudflare CDN امکان ذخیره محتوای پویا را نیز با Cloudflare Workers فراهم میکند.) سرورهای CDN در مکانهای جغرافیایی متعددی توزیع میشوند تا محتوا نزدیکتر به کاربران نهایی ذخیره شود و برای دسترسی به آنها نیازی به طی مسافت طولانی تا آنجا نباشد. این بدان معنی است که بارگذاری یک صفحه وب زمان کمتری میبرد و سرعت و عملکرد وب سایت را بهبود میبخشد.
عوامل دیگر به غیر از تأخیر نیز میتوانند عملکرد را تحت تاثیر قرار دهند. توسعهدهندگان وب میتوانند تعداد منابع مسدودکننده رندر را به حداقل برسانند (برای مثال، بارگذاری جاوا اسکریپت را به مرحله پایانی کار موکول کنند)، تصاویر را برای بارگذاری سریعتر بهینهسازی کنند و اندازه فایلها را تا حد امکان کاهش دهند. کوچک سازی کد یکی از راههای کاهش حجم فایلهای جاوا اسکریپت و CSS است.
بهبود عملکرد صفحه فرضی با بارگذاری استراتژیک داراییهای خاص در ابتدا امکان پذیر است. یک صفحه وب را میتوان طوری پیکربندی کرد که ابتدا قسمت بالایی صفحه یک سایت بارگیری شود تا کاربران بتوانند حتی قبل از اتمام بارگیری کامل صفحه با آن ارتباط برقرار کنند (قسمت بالایی صفحه به آنچه در پنجره مرورگر ظاهر میشود قبل از اینکه کاربر به پایین پیمایش کند اشاره دارد). صفحات وب همچنین میتوانند داراییها را با استفاده از تکنیکی به نام بارگذاری تنبل (lazy loading)، تنها در صورت نیاز بارگیری کنند. این رویکردها در واقع تاخیر شبکه را بهبود نمی بخشند، اما درک کاربر از سرعت صفحه و نحوه تعامل را بهبود میبخشند.
چگونه کاربران میتوانند تاخیر در سمت خود را رفع کنند؟
گاهی اوقات، تأخیر شبکه (عملکرد کند شبکه) ناشی از مشکلاتی است که در سمت کاربر وجود دارد، نه سمت سرور. در صورتی که عملکرد آهسته شبکه یک مسئله ثابت باشد، مشتریان همیشه این گزینه را دارند که پهنای باند بیشتری بخرند، اگرچه پهنای باند تضمینی برای عملکرد بهتر وب سایت نیست. استفاده از اترنت به جای WiFi منجر به اتصال اینترنت پایدارتر میشود و معمولا سرعت اینترنت را بهبود میبخشد. کاربران همچنین باید با اعمال مرتب بهروزرسانیهای سیستمافزار و تعویض تجهیزات در صورت لزوم، از بهروز بودن تجهیزات اینترنتی خود اطمینان حاصل کنند.
جمع بندی
تاخیر شبکه به عنوان یک مسئله غیرقابل چشم پوشی در ارتباطات اینترنتی وجود دارد. برای کاهش اثر مخرب این پدیده بر عملکرد صفحات وب و برنامهها، راهکارهایی مثل استفاده از CDN و رفع مشکلات و ناپایداریهای شبکه در سمت سرور وجود دارد. در سمت مشتری هم میتوان با استفاده از روشهای پایدارتر اتصال و بهرهگیری از پهنای باند بیشتر، تاخیر را کاهش داد.