در این مقاله با راهکارهای WAN Optimization در شبکههای توزیع محتوا یا همان CDN آشنا میشویم و میخوانیم که کاربرد هر راهکار با هدف توزیع محتوا (بدون تغییر در کیفیت) به چه صورتی میباشد.
تاریخچه
در اواخر دههی ۹۰ میلادی با ظهور فناوری ADSL جهت انتقال داده، مفاهیم جدیدی در این حوزه تعریف شد. از جملهی این مفاهیم میتوان به پهنای باند یا همان Broadband اشاره کرد. در همین دوره محدودیتی در دسترسی به پهنای باند برای عموم وجود نداشت. در فاصلهی زمانی ۱۹۹۵ تا حدود ۲۰۰۹ این دسترسی گسترده در کنار پیشرفت سختافزاری چشمگیر کامپیوترها با قیمتهای بسیار مقرون به صرفهتر در مقایسه با دو دههی قبل، عملا این امکان را داد تا بدون هیچ محدودیتی وبسایتهایی با حجم محتوایی بسیار زیاد طراحی شوند و در اختیار کاربران قرار گیرند. در حالی که تا قبل از این دوره برای طراحی یک وبسایت باید دقت بسیار زیادی به حجم محتویات میشد؛ زیرا هم پهنای باند محدود بود و هم محدودیتهای سختافزاری بسیاری در کامپیوترهای کاربران نهایی وجود داشت.
این روزها
روند عرضهی خدمات نوین در دو دههی اخیر مانند شبکههای اجتماعی باعث ایجاد مفاهیم جدیدی مانند Big Data شد و صاحبین خدمات آنلاین مانند Facebook و YouTube را به سوی این مسیر هدایت کرد تا به فکر راهکاری برای حل مشکلات ناشی از نیاز به پهنای باند بالاتر برای کاربران باشند. زیرا دسترسی به این نوع از خدمات فقط در نقاطی که دارای پهنای باند بالایی بودند امکانپذیر بود و از طرفی گروهی از ابزارها مثل تلفنهای همراه هم از لحاظ فنی کشش کافی برای دسترسی به چنین وبسایتهایی را نداشتند و با محدودیتهای سختافزاری همراه بودند.
به مرور، با پیشرفت تکنولوژی این نگرانیها تا حد زیادی رفع شدند؛ البته این را هم فراموش نکنیم که تعداد کاربران اینترنت رو به رشد است و این روند همچنان نیز ادامه خواهد داشت.
با این پیشرفتها، نگرانیها و دغدغههای جدیدی بهوجود میآمد؛ روبرویی با این چالشها باعث تعریف مفهومی با نام WAN Optimization گردید.
مفهوم WAN Optimization
به مجموعهای از تکنیکهایی که به منظور افزایش راندمان انتقال داده و کاهش تاخیر در انتقال در بستر یک شبکهی WAN صورت میگیرد، WAN Optimization میگویند. در ادامه با این مفهوم بیشتر آشنا میشویم.
WAN
بهتر است ابتدا بدانیم منظور از WAN چیست؟
Wide Area Network یا همان شبکهی ناحیه گسترده، شبکهی ارتباطی است که مساحت جغرافیایی بزرگی مانند شهرها، استانها یا کشورها را پوشش میدهد.
این شبکهها میتوانند به صورت خصوصی برای اتصال بخشهای مختلفی از یک شرکت یا سازمان مورد استفاده قرار بگیرند.
سادهترین مثال برای درک بهتر از یک شبکهی WAN، اینترنت میباشد. در حالت کلی اینترنت به عنوان بزرگترین WAN در دنیا محسوب میشود که توسط ارائهدهندگان خدمات اینترنت یا همان ISPها، حجم گستردهای از شبکهها، با انواع توپولوژی به هم متصل میشوند.
تکنیکها
در ادامه میخواهیم به تکنیکهای مورد استفاده در WAN Optimization و عملکردشان نگاهی بیاندازیم:
1. Deduplication
در این تکنیک به جای کپی کردن داده در دو مکان یا به عبارتی Duplication، یک آدرس مرجع (Reference) از آن را کپی میکنیم که به این ترتیب ترافیک کمتری ایجاد میشود. این روش در لایهی Application و عملا بصورت Byte Level صورت میگیرد تا از ارسال انتقال دادهی تکراری جلوگیری شود.
مفهوم CRC در مواردی از این دست عنوان میشود که در مقالههای بعدی به توضیح دربارهی آن خواهیم پرداخت.
لازم به ذکر است که این راهکار به صورت گسترده در ذخیرهسازهای داده مورد استفاده قرار میگیرد.
2. Compression
در این روش با تهیهی توان پردازشی لازم، قسمتهای قابل فشردهسازی بدون اینکه در داده اختلالی ایجاد شود، از حجمشان کاسته میشود.
این روند میتواند هم بصورت سختافزاری و هم نرمافزاری صورت گیرد.
در روش سختافزاری مدار (Chip) خاصی برای اجرای مجموعه کدهای لازم مورد استفاده قرار میگیرد و به صورت معمول این راهکار برای کاهش ترافیک بین تجهیزات شبکه مانند روترو سویچها و …. استفاده میشود.
اَبر دِراک برای کاهش ترافیک دادهها از راهکار نرمافزاری استفاده میکند و پروتکلهای وب در لایهی هفتم شبکه را بررسی و فشردهسازی میکند. بطور کلی فشردهسازی محتوا بصورت نسبی رخ میدهد؛ به این معنا که برای بعضی از فرمتها بسیار چشمگیر باعث کاهش حجم میشود، اما برای سایر فرمتها تغییری در حجم ایجاد نمیشود یا حتی حجم داده بیشتر هم میشود.
در این روش، هدف، کاهش حجم محتوا با حفظ ثبات و کیفیت نمایش به کاربر نهایی میباشد.
روشهای فشردهسازی مرسوم که در بستر اینترنت استفاده میشوند عبارت اند از: ZIP، RAR، ARJ، GZIP، LZMA
3. Latency Optimization
در شبکهی WAN روشهایی که برای انتقال بستههای داده از فرستنده به گیرنده استفاده میشود، وابسته به مولفههای مختلفی مانند رسانهی انتقال، فاصلهی دو Node، حجم فایل و … میباشد.
در نهایت با در کنار هم قرار دادن این مولفهها، الگوریتم کنترلی بهینهای، انتخاب و استفاده میشود.
هدف تمامی این الگوریتمها تسریع روند انتقال دادهها با انتخاب بهترین مسیر با کمترین تاخیر و بیشترین پهنای باند است.
در اَبر دِراک راهکارها و الگوریتمهایی مانند تغییر در سایز فریمهای شبکه در کنار راهکارهای لایهی سوم مانند Congestion Control برای انتخاب بهترین مسیرها در این راستا مورد استفاده قرار میگیرد تا از کیفیت انتقال دادهها درون شبکه و در شبکهی بین کاربران و اَبر دِراک اطمینان حاصل شود.
4. Proxy Caching
در این راهکار یک نسخه از دادههای ایستا در سرورهای واسط غیر از سرورهای اصلی کپی میشود که موجب افزایش سرعت دسترسی و پایداری کیفیت میشود. این تکنیک در لایهی هفتم شبکه صورت میگیرد. سرورهای CDN هم از این راهکار بهره میبرند.
5. Traffic Shaping
در این تکنیک جریان داده یا همان Data Flow کنترل یا بهعبارتی محدود میشود. به این معنا که میزان حجم ترافیک قابل دسترس به ازای هر کاربر، محدود میشود.
در CDN امکان محدودیت ترافیک برای کاربر CDN قابل تنظیم و پیکربندی است؛ همچنین از این روش برای کنترل ترافیک و بهبود کیفیت دسترسی کاربران نهایی نیز استفاده میشود.
6. Equalizing
این تکنیک شبیه Traffic Shaping عمل میکند و با این تفاوت که جریان داده را اولویت بندی میکند. از این روش در اپراتورهای اینترنت در سطح شهری و بین المللی جهت بهبود کیفیت نقلوانتقال دادهها استفاده میشود. برای مثال در این شبکهها ترافیک Voice اولویت بالاتری نسبت به سایر ترافیکها دارد؛ یعنی در مسیرهایی که کندی سرعت یا کمبود پهنای باند وجود دارد، ترافیک Voice قبل از دیگر ترافیکها انتقال داده میشود که همین مسئله تضمینی برای بهبود کیفیت خواهد بود.
7. Connection Limits
با استفاده از این روش تعداد اتصالات به ازای هر کاربر را میتوان محدود کرد و میتوان برای جلوگیری از بروز حملاتی مانند Dos و DDos استفاده کرد.
شبکههای CDN این روش را برای کابران خود به صورتی که قابل پیکربندی باشد ارائه مینمایند.
8. Simple Rate Limits
راهکارهای Rate Limitation میتوانند در سرورهای اصلی یک Server پیکربندی شود یا در شبکهی CDN در اختیار کاربر قرار گیرد؛ حتی در شبکههای واسط WAN برای بهبود کیفیت دسترسی استفاده میشود. این فرایند، با محدودسازی نرخ درخواستهای قابل پردازش در بازهی زمانی و با به تاخیر انداختن پردازش درخواستهای خارج از بازه صورت میپذیرد. خدمتدهندههای CDN این قابلیت را در اختیار کاربران قرار میدهند.
چرا از WAN Optimization استفاده کنیم؟
راهکارهای توزیع جغرافیایی سنتی (متعلق به اواخر دههی ۱۹۹۰) که شبیه به راهکارهای CDN امروزی است، به صورت اختصاصی در اختیار وبسایتهای پربازدید آن روزها قرارداشت. این راهکار تنها برای وبسایتهایی که فقط حاوی محتویات ایستا (Static) بودند، طراحی شده و مورد استفاده قرار میگرفت. بدین ترتیب که با Cacheکردن محتویات و پاسخ از نزدیکترین سرور (از نظر موقعیت جغرافیایی) به درخواست کاربران، باعث افزایش سرعت وبسایت میشدند. اما با گذر زمان و اضافه شدن قابلیتهای جدید، از جمله TCP Optimization، مسیریابی هوشمند، فشردهسازی محتواهای پویا و … به فناوری CDN، تغییرات بزرگی در این صنعت رخ داد و همچنین باعث بهرهبرداری عمومی و دسترسی بیشتر گردید.
تاثیر استفاده از CDN
زمانی که یک وبسایت از فناوری CDNهای امروزی استفاده میکند، ترافیک و پردازش سمت کاربران کاهش مییابد و بهبود دسترسپذیری را به دنبال دارد. حال ممکن است این سوال در ذهن شما ایجاد شود که چرا و چگونه این اتفاق میافتد؟
برای آشنایی بیشتر با CDN، به مقاله “CDN چیست” مراجعه کنید.
در پاسخ باید گفت که در زمان استفاده از CDN، فشردهسازی (Compression) بر محتویات وبسایت یا اپلیکیشن اعمال شده و تمامی این موارد از طریق پردازندههای موجود در سرورهای لبهی شبکهی CDN صورت میگیرد که در نهایت نتایجی مانند بهبود در رتبههای ارزیابی وبسایت، نتایج موتورهای جستوجو و افزایش رضایت کاربران نهایی را به دنبال خواهدداشت.
به طور مثال اگر فایل عکسی با حجم ۴ مگابایت در محتوای وبسایت شما وجود داشتهباشد، ترکیبی از تکنولوژیهای WAN Optimization از شروع انتقال این داده از سرور اصلی تا شبکهی CDN و انتقال نهایی به کاربر موجب میشود تا حجم این محتوا جهت انتقال برای نمایش داده شدن بر روی مرورگر کاربر کاهش یابد و ترافیک کمتری در تمامی مسیر ایجاد شود و در زمان دسترسی و نمایش به کاربر تغییر محسوسی ایجاد نشود.
استفاده از CDN در برابر WAN Optimization
با استفاده از سرویس CDN دیگر نیازی به پیادهسازی WAN Optimization نیست و از پیچیدگیهای فنی این تکنولوژی در سمت مالک وبسایت یا اپلیکیشن کاسته میشود و همچنین موجب کاهش هزینههای سختافزاری نیز میگردد. هزینههای ایجاد شده برای استفاده از خدمات CDN نیز در مقایسه با سربار هزینههای نیرو انسانی متخصص و سختافزار، بسیار کمتر و مقرون به صرفهتر خواهد بود و کیفیت و بهبود تجربهی کاربر را در برخواهد داشت.