توزیع محتوا و شبکههای توزیع محتوا (CDN)
شبکههای توزیع محتوا (CDN) نسخههایی از محتوا را روی سرورهای نزدیک به کاربران قرار میدهند و هر درخواست را به یک کپی مناسب هدایت میکنند که باعث کاهش تأخیر و بار روی سرور اصلی میشود و تحویل وب و ویدئو در مقیاس بزرگ را امکانپذیر میسازد.
Definition
شبکه توزیع محتوا (CDN) یک سیستم توزیعشده جغرافیایی از سرورها است که نسخههایی از محتوا را در نزدیکی کاربران نهایی ذخیره و ارائه میدهد و هر درخواست را به یک کپی مناسب و نزدیک هدایت میکند تا تأخیر، از دست دادن داده و بار روی سرور اصلی را کاهش دهد.
Scope
این موضوع به چگونگی تحویل محتوا در مقیاس اینترنت میپردازد: منطق تکثیر محتوا در نزدیکی کاربران، معماری شبکههای توزیع محتوا (CDN) با کشهای توزیعشده جغرافیایی آنها، مکانیسمهای هدایت کاربر به یک کپی نزدیک (اغلب از طریق DNS)، نیازهای خاص پخش ویدئوی جریانی از جمله تکنیکهای نرخ بیت تطبیقی، و تعامل CDNها با شبکه زیرین. این مبحث بر پروتکلهای نامگذاری و کاربردی بنا شده و جزئیات رمزگذاری رسانه و مکانیسمهای انتقال زیرین تحویل را شامل نمیشود.
Core questions
- چرا تکثیر محتوا در نزدیکی کاربران عملکرد و مقیاسپذیری را بهبود میبخشد؟
- یک CDN چگونه سازماندهی میشود و سرورهای آن در کجا قرار میگیرند؟
- درخواست کاربر چگونه به یک کپی مناسب هدایت میشود و DNS چه نقشی ایفا میکند؟
- پخش جریانی با نرخ بیت تطبیقی چگونه ویدئو را در شبکههای متغیر ارائه میدهد؟
- CDNها چگونه با توپولوژی زیرین اینترنت و ارائهدهندگان خدمات اینترنتی (ISP) تعامل دارند؟
Key concepts
- تکثیر محتوا
- شبکههای توزیع محتوا (CDNs)
- سرورهای کش لبه
- هدایت درخواست از طریق DNS
- آگاهی از نزدیکی و بار
- پخش جریانی ویدئو
- پخش جریانی با نرخ بیت تطبیقی (HTTP chunked)
- کاهش بار سرور اصلی
Key theories
- تکثیر و نزدیکی
- قرار دادن محتوا روی سرورهای متعدد در نزدیکی کاربران، مسیرهای شبکه را کوتاه میکند، تأخیر و از دست دادن داده را کاهش میدهد و بار را از سرور اصلی و شبکه backbone توزیع میکند؛ مسئله اصلی مهندسی انتخاب مکان قرارگیری کپیها و انتخاب کپی مناسب برای هر درخواست است.
- هدایت درخواست
- CDNها هر مشتری را به یک کپی نزدیک و سالم هدایت میکنند، معمولاً با بازگرداندن آدرس یک سرور انتخابشده در پاسخ به یک جستجوی DNS، با استفاده از دانش نزدیکی شبکه و بار فعلی.
- پخش جریانی با نرخ بیت تطبیقی
- ویدئوی جریانی در سطوح کیفیت مختلف رمزگذاری شده و به قطعاتی تقسیم میشود که از طریق HTTP واکشی میشوند، با این حال مشتری نرخ بیت درخواستی خود را با پهنای باند فعلی تطبیق میدهد، که با تحویل مبتنی بر HTTP CDNها سازگار است و با شرایط متغیر شبکه کنار میآید.
Clinical relevance
CDNها بخش بزرگی از ترافیک اینترنت را حمل میکنند و برای ارائه صفحات وب، بهروزرسانیهای نرمافزاری، و به ویژه ویدئو در مقیاس بزرگ و با عملکرد خوب ضروری هستند. آنها تأخیر را برای کاربران در سراسر جهان کاهش میدهند، سرورهای اصلی را از بار اضافی محافظت میکنند و زیربنای خدمات پخش جریانی را تشکیل میدهند که بر استفاده مصرفکنندگان از اینترنت غالب است، و بدین ترتیب توزیع محتوا را به عنصری مرکزی در عملکرد وب مدرن تبدیل میکنند.
History
با افزایش ترافیک وب در اواخر دهه ۱۹۹۰، شبکههای توزیع محتوا برای ذخیرهسازی محتوا در نزدیکی کاربران پدیدار شدند، که Akamai نمونهای اولیه و تأثیرگذار بود. سپس رشد ویدئوی آنلاین، CDNها و پخش جریانی تطبیقی مبتنی بر HTTP را به عنصری مرکزی در تحویل اینترنت تبدیل کرد، و CDNها به پلتفرمهای لبهای گسترش یافتند که محاسبات را نیز در نزدیکی کاربران اجرا میکنند.
Key figures
- Ramesh K. Sitaraman
- Erik Nygren
- James F. Kurose
Related topics
Seminal works
- kurose2021
- nygren2010
Frequently asked questions
- یک CDN چگونه باعث سریعتر شدن یک وبسایت میشود؟
- یک CDN نسخههایی از محتوای یک سایت را روی سرورهای توزیعشده در سراسر جهان ذخیره میکند و هر کاربر را از نزدیکترین سرور تغذیه میکند. این کار مسیر شبکه را کوتاه میکند، تأخیر و از دست دادن داده را کاهش میدهد و بار را از سرور اصلی برمیدارد. نتیجه آن بارگذاری سریعتر صفحات و پخش جریانی روانتر است، به ویژه برای کاربرانی که از سرور اصلی دور هستند.
- یک CDN چگونه تصمیم میگیرد که کدام سرور باید به من خدمات دهد؟
- CDNها از اطلاعات مربوط به نزدیکی شبکه، بار سرور و در دسترس بودن برای انتخاب یک کپی مناسب استفاده میکنند، سپس درخواست شما را به آن هدایت میکنند، معمولاً با بازگرداندن آدرس آن سرور هنگامی که دستگاه شما نام سایت را در DNS جستجو میکند. هدف، یک سرور نزدیک و سالم است که بتواند محتوا را به سرعت ارائه دهد.