دادههایی در همین نزدیکی
گاهی اوقات، منازعات سیاسی باعث میشوند موضوعات بسیار تخصصی به گفتار عموم مردم راهیابند. پیامرسان تلگرام و بحث انتقال سرورهایش به ایران نیز یکی از این دست موضوعات بود که باعث شد مردم بارها واژههایی مانند سرور و CDN را بشنوند.
موبنا – هرچند احتمالا آگاهی چندانی از این اصلاحات در میان مردم وجود ندارد.
CDN چیست
CDN (Content Delivery Network) یا شبکه توزیع محتوا، شبکهای عظیم از سرورهایی است که در نقاط مختلف دنیا برپا شده و به صورت جغرافیایی پخش شدهاند. محتوای وبسایتها با بهکارگیری از CDNها و با توجه به موقعیت جغرافیایی کاربران از طریق نزدیکترین شبکه به کاربران ارائه میشود. بدین ترتیب سرعت دسترسی کاربران به اطلاعات مورد نیاز به شکل چشمگیری اضافه شده و در عین حال به دلیل نزدیکی محتوا به مخاطب، مصرف پهنای باند نیز کاهش مییابد. به خصوص اگر این CDNها در داخل کشور باشند، استفاده از پهنای باند بینالملل کمتر میشود.
موسسههای بزرگ تحت وب برای کنترل کردن ترافیک وبسایتهایشان از سرورهایی در مناطق گوناگون جهان برای ذخیره کردن و تحویل اطلاعات و امکاناتشان استفاده میکنند. این کار باعث افزایش و بالا رفتن سرعت تحویل محتوا و ارائه دادهها به کاربران در هر کجای جهان میشود. این امکان، مزایای بسیار زیاد دیگری مانند امنیت بسیار بالا، دسترسی دائم به اطلاعات و دادهها، پخش درست فشار بر روی چندین سرور، کاهش هزینهها و… را به همراه دارد.
تفاوت سرعت و عملکرد برای مالکان یک سایت یا افرادی که در نزدیکی سرور اصلی هستند، تفاوت زیادی نخواهد داشت ولی برای کسانی که از نقاط مختلف دنیا به این سایت وارد میشوند این افزایش سرعت، کاملا محسوس خواهد بود. با توجه به اینکه سایتهای ایرانی معمولا سرور و هاست خود را بیرون از کشور قرار میدهند و در عین حال، عموم بازدیدکنندگان از داخل کشور هستند، استفاده از CDN میتواند بسیار مؤثر باشد. بهترین مثال برای این موضوع را میتوان انتقال CDNهای تلگرام به داخل ایران دانست که بدین ترتیب کانالهای پرمخاطب با سرعت بیشتری اطلاعات خود را به کاربران میرسانند.
برای تعیین تاثیر CDN بر سرعت سایت میتوان عملکرد خود را با ابزارهایی مانند Pingdom و GTmetrix قبل و بعد از فعالسازی CDN بررسی کرد.
CDN تمام اطلاعات ثابت مانند تصاویر، کدهای CSS و javascript، mp3، pdf و فایلهای ویدئویی را پشتیبانی میکند و تنها اطلاعاتی که قابل تغییر و بروزرسانی هستند مانند متون و کدهای HTML از سرور اصلی فراخوان میشوند. با این کار مصرف پهنای باند هاست کاهش یافته و هزینهای که سالانه برای پرداخت میشود، کاهش چشمگیری خواهد داشت.
چگونه عمل میکند
اکثر سرویسهای شبکه توزیع محتوا به عنوان Application Service Providers عمل میکنند. تعدادی از صاحبان اینترنت شروع به تولید شبکه توزیع محتوای اختصاصی میکنند و به این طریق نحوه ارسال دادهها را به کاربران بهبود میدهند و در نهایت درآمد بیشتری به دست میآورند.
به منظور کاهش فاصله سرور با کاربر، سرویس CDN محتوای استاتیک وبسایتها را در مکانهای جغرافیایی مختلف ذخیرهسازی میکند که این نقاط در مراکز داده به نام points of presence (PoP) شناخته میشوند. هر PoP از گرهها و سرورهایی تشکیل شدهاند. بعضی از شبکههای توزیع محتوا از هزاران گره و دهها هزار سرور برای کمک به توزیع محتوا استفاده میکنند که این کار موجب تسریع در بارگذاری صفحات میشود.
بهطور خلاصه، هنگامی که یک کاربر قصد بازدید از سایتی را داشته باشد، درخواست او به سرور شبکه توزیع محتوا فرستاده میشود. سپس شبکه توزیع محتوا این درخواست را به نزدیکترین PoP ریدایرکت میکند. این گره (node) محتوای مورد نظر کاربر را برای او بهصورت استاتیک فراهم میکند، از این رو میزان تاخیر در ارسال داده کاهش مییابد و در نتیجه میزان رضایت کاربر از ارائه محتوا بالاتر میرود.
شبکههای توزیع محتوا از تکنیکهای شبکهای مختلفی برای ارائه محتوا استفاده میکنند تا بتوانند رساندن پیام را به کاربر، بهینه کنند. این تکنیکها شامل حافظه پنهان وب (web caching)، تعادل بار سرور، مسیریابی درخواست و سرویسهای محتوا میشوند.
این حافظه محتواهایی که از دید کاربران محبوب هستند را روی سرورهایی با بیشترین تقاضا برای دریافت آن محتوا ذخیره میکند. استفاده از این فرآیند نیاز به پهنای باند را کاهش میدهد، بار موجود بر روی سرور را کمتر میکند و پاسخگویی به کاربران را سرعت میبخشد.
در این تکنیک میتوان از یک یا چند فرآیند بهطور همزمان استفاده کرد. از جمله یک لایه سوئیچ ۷-۴ تایی (سوئیچ وب یا سوئیچ محتوا) که به یک آیپی آدرس اختصاص داده میشود تا ترافیک را بین چند سرور یا حافظه پنهان تقسیم کند. این سوئیچها ترافیک آیپیهای متصل شده به آن را به سرورهای مختلف هدایت میکند و بنابراین بار ترافیکی روی سرورهای مختلف تقسیم میشود. علاوه بر این اگر یک سرور در ارائه محتوا دچار اختلال شود، بار موجود روی آن سرور بین سرورهای دیگر تقسیم میشود و از این رو قابلیت اطمینان بالایی برای ارائه محتوا فراهم میشود.
این تکنیک، درخواستهای کاربران را به نزدیکترین گره، با بیشترین ظرفیت ارائه محتوا، هدایت میکند. برای انجام این کار از الگوریتمهای مختلفی استفاده میشود. از جمله این الگوریتمها میتوان به مسیریابی درخواست با توجه به DNS کاربر، بازنویسی HTML و بالانس جهانی بار روی سرورها اشاره کرد. مجاورت کاربر به نزدیکترین سرور با استفاده از متدهای مختلفی از جمله reactive probing، proactive probing و بازبینی ارتباط (connection monitoring) محاسبه میشود.
به منظور دسترسی کاربران به سرویسهای محتوای قابل دسترسی از طریق شبکه توزیع محتوا، چندین پروتکل سرویس محتوا طراحی شده است. در اواخر دهه ۹۰ میلادی، پروتکلی به نام انطباق محتوا در اینترنت (ICAP) طراحی شد تا یک استاندارد برای ارتباط با سرورها فراهم کند. پس از آن پروتکل OPES با راه حلی مختلف ارائه شد که با عنوان سرویس OPES از آن یاد میشود و میتواند روی پردازندههای OPES ذخیره شود یا از راه دور از روی سرور فراخوانی شود. علاوه بر اینها برای رفع مشکل سیستمهای حافظه پنهان که با هدف ذخیره محتواهای وبسایتها تولید شده بودند، پروتکل ESI بوجود آمد.
مزایای CDN
مزایای استفاده از CDN در بالا به صورت کامل توضیح داده شد و میتوان آنها را به صورت زیر دستهبندی کرد:
– افزایش سرعت بارگذاری و نمایش صفحات وب در سیستم بازدیدکنندگان
– افزایش امنیت سایتها (بیشتر ارتباطها به صورت غیر مستقیم و محافظت دو چندان هستند)
– بهبود وضعیت سئو (SEO) سایت
– افزایش مقدار پهنای باند (برای مثال اگر سرور شما ۱۰ گیگابایت پهنای باند ارائه میکند وقتی از یک CDN که دارای ۱۰ node است استفاده کنید، در حقیقت شما ۱۰*۱۰ گیگابایت به پهنای باند خود افزودهاید.)
– هزینه بسیار پایین (به دلیل استفاده اشتراکی چندین نفر از سرورها)
– نصب آسان
– افزایش سرعت بارگذاری و نتایج مثبت در رتبه سایت در موتورهای جستجوگر
CDNهای جهانی
سرویسدهندههای متعددی در دنیا خدمات CDN ارائه میدهند که در یک تقسیمبندی کلی به دو دسته رایگان و تجاری تقسیم میشوند.
از سرویسدهندگان رایگان میتوان به کلود فلر (Cloud Flare) یا کورال (Coral CDN) اشاره کرد، اما قطعا محبوبترین CDN رایگان، Google CDN است. Microsoft CDN، jsDelivr CDN، cdnjs CDN و jQuery CDN دیگر CDNهایرایگان محبوب دنیا هستند. اما مانند هر سرویس رایگان دیگر در دنیا، CDNهای رایگان نیز مشکلات و محدودیتهایی دارند و به همین دلیل معمولا شرکتهایی که کسبوکارهای حساسی و مهمی دارند از CDNهای تجاری استفاده میکنند.
CDNهای متعددی در دنیا وجود دارند که براساس قاعده رقابت، هر روز خدمات بهتر و ارزانتری را به مشتریان خود عرضه میکنند. قیمت این سرویسها براساس ترابایت (یا گیگابایت) انتقال داده محاسبه میشود. از جمله مزایای CDNهای تجاری را میتوان به نبود محدودیت برای تعداد سایتها و پوشش خوب، پشتیبانی تمام وقت، SSLهای اشتراکگذاری شده رایگان، ارائه آمارهای لحظهای و درصد کارکرد، بهینه شدن برای فایلهای HD و تعداد سرورهای بالا در کشورهای مختلف دنیا اشاره کرد. برخی از محبوبترین CDNهای تجاری دنیا عبارتند از: CDN77، MaxCDN، Amazon CloudFront، BitGravity، Akamai، CDNetworks، CacheFly، EdgeCast و KeyCDN.
با این همه باید توجه داشت که اگر بتوان از یک CDN داخل کشور استفاده کرد، قطعا همه مزایایی که در بالا ذکر شد، به صورت چشمگیری خود را نشان خواهند داد.
CDNها در ایران
تا چند سال پیش بارها عنوان شده بود که ایران هیچ شرکتی خدمات «شبکه توزیع محتوا» را ارائه نمیدهد، اما اکنون شرکتهای متعددی در زمینه CDN فعال هستند. شاهد این فعالیت نیز خبری است که در خصوص انتقال CDNهای تلگرام به ایران منتشر شد و مدیرعامل تلگرام نیز آن را تایید کرد.
با این وجود، به نظر میرسد این شاخه از صنعت IT کشور در ایران، نوپا بوده و جای بسیاری برای سرمایهگذاری دارد. در سمت مقابل با توجه به افزایش سریع و چشمگیر کاربردهای فناوری اطلاعات در ایران، درآمد این شاخه نیز تا سالها تضمین شده است.
محمدجواد آذر جهرمی، مدیرعامل شرکت ارتباطات زیرساخت نیز در همایش «ایران کانکت»، ایران را بهترین موقعیت cdnهای منطقهای برای سایتهای بینالمللی دانست. او همچنین منطقه آزاد چابهار را به عنوان منطقهای با هزینه نزدیک به صفر برای ترانزیت داده و ارتباط اعلام کرد.
منابع:
https://www.aminidc.com/content-delivery-network/
https://www.persianwhois.com/cdn/
https://seorooz.net/what-is-cdn/
http://sitekhoob.com/best-cdn-wordpress/
https://www.shoutmeloud.com/best-cdn-wordpress.html
http://www.zoomit.ir/2016/9/6/135595/jahromi-iran-best-position-cdn/
http://www.zoomit.ir/2017/7/28/189740/telegram-cdn-servers-iran/
منبع: واحد تحقیق و توسعه آسیاتک