JavadAgha
JavadAgha
خواندن ۴ دقیقه·۶ ماه پیش

CDN

شبکه تحویل محتوا (content delivery network) به سرورهایی که به صورت جغرافیایی توزیع شده اند (که سرورهای لبه نیز نامیده می شوند) اشاره دارد که محتواهای استاتیک و دینامیک را به سرعت تحویل می دهند. بیایید نگاهی بیندازیم که چگونه کار می کند.

فرض کنید باب که در نیویورک زندگی می کند می خواهد از یک وب سایت فروشگاه اینرنتی که در لندن مستقر است بازدید کند. اگر درخواست به سرورهایی که در لندن واقع شده اند برود، پاسخ بسیار کند خواهد بود. بنابراین، ما سرورهای CDN را نزدیک به جایی که باب زندگی می کند مستقر می کنیم، و محتوا از سرور CDN نزدیک بارگذاری خواهد شد.

نمودار زیر این فرایند را نشان می دهد:



1.باب آدرس www.myshop.com را در مرورگر تایپ می‌کند. مرورگر نام دامنه را در کش DNS محلی جستجو می‌کند.

2.اگر نام دامنه در کش DNS محلی وجود نداشته باشد، مرورگر برای حل نام به حل‌کننده DNS می‌رود. حل‌کننده DNS معمولاً در سرویس‌دهنده اینترنت (ISP) قرار دارد.

3.حل‌کننده DNS به‌طور بازگشتی نام دامنه را حل می‌کند (برای جزئیات پست قبلی من را ببینید). در نهایت، از authoritative name server برای حل نام دامنه درخواست می‌کند.

4.اگر از CDN استفاده نکنیم، authoritative name server آدرس IP برای www.myshop.com را برمی‌گرداند. اما با CDN، authoritative name server یک alias دارد که به www.myshop.cdn.com [invalid URL removed] (نام دامنه سرور CDN) اشاره می‌کند.

5.حل‌کننده DNS از authoritative name server می‌خواهد تا www.myshop.cdn.com [invalid URL removed] را حل کند.

6.authoritative name server نام دامنه را برای توزیع‌کننده بار (load balancer) شبکه توزیع محتوا (CDN) www.myshop.lb.com [invalid URL removed] برمی‌گرداند.

7.حل‌کننده DNS از توزیع‌کننده بار CDN می‌خواهد تا www.myshop.lb.com [invalid URL removed] را حل کند. توزیع‌کننده بار بر اساس آدرس IP کاربر، ISP کاربر، محتوای درخواست شده و بار سرور، یک سرور لبه CDN بهینه را انتخاب می‌کند.

8.توزیع‌کننده بار CDN آدرس IP سرور لبه CDN را برای www.myshop.lb.com [invalid URL removed] برمی‌گرداند.

9.حالا بالاخره آدرس IP واقعی برای بازدید را دریافت می‌کنیم. حل‌کننده DNS آدرس IP را به مرورگر برمی‌گرداند.

10.مرورگر برای بارگذاری محتوا به سرور لبه CDN مراجعه می‌کند. دو نوع محتوا در سرورهای CDN کش می‌شود: محتواهای استاتیک و محتواهای پویا. نوع اول شامل صفحات، تصاویر و ویدیوهای استاتیک است؛ نوع دوم شامل نتایج محاسبات لبه (edge computing) می‌شود.

11.اگر کش سرور لبه CDN محتوا را نداشته باشد، به سرور منطقه‌ای CDN می‌رود. اگر محتوا هنوز یافت نشد، به سرور مرکزی CDN یا حتی به منشا (origin) - سرور وب لندن می‌رود. این شبکه توزیع CDN نامیده می‌شود، جایی که سرورها از نظر جغرافیایی مستقر هستند.


چطور از به سرقت رفتن ویدیو های کش شده در CDN جلوگیری کنیم ؟


1. رمزگذاری:

در حالی که کش کردن سرعت ارائه را بهبود می‌بخشد، محتوای ویدیو را نیز به راحتی در سرورهای لبه CDN در دسترس قرار می‌دهد. برای کاهش این مشکل، رمزگذاری ویدیوها در حالت سکون (روی سرور اصلی) و در حین انتقال (بین CDN و دستگاه کاربر) را در نظر بگیرید. این امر حتی اگر مهاجمان موفق به دانلود نسخه کش شده شوند، دسترسی به ویدیوی اصلی را برای آنها دشوار می‌کند.


2. مدیریت حقوق دیجیتال (DRM):

سیستم‌های DRM با کنترل دسترسی به ویدیوها، لایه امنیتی دیگری اضافه می‌کنند. ویدیوهای محافظت شده با DRM برای پخش به کلیدها یا مجوزهای خاصی نیاز دارند، حتی اگر کسی موفق به دانلود فایل ویدیوی کش شده شود.


3. علامت‌گذاری نامرئی:

علامت‌گذاری نامرئی را در ویدیوهای خود تعبیه کنید. این علامت‌گذاری‌ها می‌توانند در صورت انتشار نسخه تقلبی آنلاین، منبع نشت را شناسایی کنند. این امر می‌تواند برای اهداف حقوقی و بازدارندگی از تلاش‌های آینده مفید باشد.


4. ویژگی‌های امنیتی CDN:

بسیاری از CDNها ویژگی‌های امنیتی مانند لیست‌های کنترل دسترسی (ACL) و محدودیت‌های جغرافیایی را ارائه می‌دهند. ACLها دسترسی به ویدیوهای کش شده را بر اساس آدرس‌های IP یا سایر معیارها محدود می‌کنند. محدودیت‌های جغرافیایی دسترسی را بر اساس مکان کاربر محدود می‌کنند.


5. جلوگیری از لینک مستقیم:

مکانیسم‌هایی را برای جلوگیری از لینک مستقیم پیاده‌سازی کنید، جایی که کسی ویدیوی شما را در وب‌سایت خود مستقیماً به مکان CDN پیوند می‌دهد. این می‌تواند به آنها کنترل بیشتری بر ویدیو بدهد و احتمالاً سرقت آن را آسان‌تر کند.


6. نظارت بر نشت:

به طور مرتب اینترنت را برای یافتن نسخه‌های غیرمجاز ویدیوهای خود رصد کنید. خدماتی وجود دارند که می‌توانند در این زمینه کمک کنند. هر نسخه تقلبی را که پیدا می‌کنید فوراً حذف کنید تا آسیب را به حداقل برسانید.


7. به‌روزرسانی حافظه پنهان CDN:

استراتژی‌هایی را برای به‌روز نگه داشتن حافظه پنهان CDN خود پیاده‌سازی کنید. این امر می‌تواند شامل حذف محتوای قدیمی یا تنظیم مقادیر Time-To-Live (TTL) مناسب برای اطمینان از دسترسی کاربران به آخرین نسخه ویدیوهای شما باشد.


8. انتخاب شبکه توزیع محتوا:

یک ارائه دهنده CDN معتبر با ویژگی‌های امنیتی قوی و سابقه اثبات شده در محافظت از محتوای مشتری انتخاب کنید.



cdnمهندسی نرم افزارطراحی سیستم های نرم افزاریcache
کنجکاو در مباحث مهندسی نرم افزار
شاید از این پست‌ها خوشتان بیاید