صرفه‌جویی در پهنای باند و افزایش سرعت
سرورهای شبکه تحویل محتوا چه نقشی در بهبود سرعت دسترسی به اطلاعات دارند؟
به‌عنوان مدیر یک وب‌سایت ممکن است با واژه‌های سرور مبدا و لبه شبکه آشنا باشید یا اطلاعات کمی در مورد این اصطلاحات داشته باشید. گاهی‌اوقات، تشخیص تفاوت میان این دو سرور برای افرادی که آشنایی چندانی با مفاهیم شبکه ندارند سخت است، اما اگر مالک وب‌سایتی هستید، برای مدیریت بهتر آن باید درباره اصطلاحات فوق اطلاعات خوبی داشته باشید. هنگامی که اطلاعات فنی مناسب در مورد سرور مبدا و لبه کسب ‌کنید به‌شکل دقیق‌تری قادر به تصمیم‌گیری درباره نوع محتوایی هستید که قرار است روی سایت بارگذاری شود. در این مقاله، سعی می‌کنیم به زبانی ساده سرور مبدا و لبه و نحوه عملکرد آن‌ها را برای شما شرح دهیم و در ادامه به بررسی کاربردهای هر یک از این سرورها بپردازیم.

سرور مبدا (Origin Server) چیست؟

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

همان‌گونه که اشاره کردیم، سرور مبدا پذیرای فایل‌های وب‌سایت‌ها است. به همین دلیل در طول روز تعداد زیادی درخواست برای مشاهده محتوای وب‌سایت از سمت مرورگر کاربران را دریافت می‌کند و به آن‌ها پاسخ می‌دهد. هنگامی که کاربر صفحه‌ای از یک وب‌سایت را در مرورگر خود باز می‌کند، درخواستی برای دریافت محتوا از مرورگرش برای سرور مبدا ارسال می‌شود. در این حالت، بسته به موقعیت جغرافیایی سرور مبدا از کاربر نهایی و فاصله‌ای که میان کاربر و سرور مبدا وجود دارد، مدت زمانی طول می‌کشد تا کاربر پاسخ خود را از سرور دریافت کند که به آن «زمان تاخیر» می‌گویند. همچنین، مرورگر کاربران از طریق پروتکل‌های SSL/TLS با سرور مبدا ارتباط برقرار می‌کند تا اطمینان حاصل شود در مدت زمان برقراری یک نشست هکرها قادر به شنود یا تحریف اطلاعات نیستند. این پروتکل‌ها نیز باعث افزایش زمان رفت و برگشت (RTT) درخواست و پاسخ می‌شوند. RTT را می‌توان به‌عنوان زمان رفت و برگشت بین ارسال درخواست و دریافت پاسخ توسط مرورگر در نظر گرفت. علاوه بر فاصله فیزیکی، میزان ترافیکی که سرور پردازش می‌کند، تعداد گره‌هایی که به‌طور همزمان درخواستی را برای سرور مبدا ارسال می‌کنند و سرورهای وب میانی که نقش واسط را بازی می‌کنند، بر افزایش زمان RTT تاثیرگذار هستند. شکل ۱، فرآیند ارسال اولین درخواست و دومین درخواست برای سرور مبدا را نشان می‌دهد. 

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

شبکه لبه (Edge Network) چیست؟

هنگامی که طرح‌واره شبکه‌های مستقر در دیتاسنترها آماده می‌شود، به تعداد مختلفی از دستگاه‌ها اشاره می‌شود که بر مبنای معماری‌ها و توپولوژی‌های مختلف به یک‌دیگر متصل می‌شوند. اگر شبکه‌ای بخواهد به شبکه دیگری متصل شود، نیازمند نوعی دروازه یا پل ارتباطی است تا بتواند ترافیک را از یک مکان به مکان دیگر انتقال دهد. در دنیای شبکه‌های کامپیوتری به پلی که ارتباط میان دو شبکه را برقرار می‌کند، «لبه» گفته می‌شود. تجهیزات سخت‌افزاری که فرآیند پل‌سازی را انجام می‌دهند، دستگاه‌های لبه نامیده می‌شوند. دستگاه‌های لبه می‌توانند روترها و سوئیچ‌هایی باشند که در نقاط تبادل اینترنت IxP سرنام Internet Exchange Point قرار می‌گیرند تا به شبکه‌های مختلف اجازه اتصال و اشتراک‌گذاری ترافیک را بدهند. 

سرور لبه (Edge Server) چیست؟

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

قبل از آن‌که مکانیزم کاری سرور لبه را بررسی کنیم، اجازه دهید تا نحوه اتصال شبکه‌های مختلف به یک‌دیگر در مقیاس محلی و جهانی را بررسی کنیم. در شبکه‌های عادی خانگی یا تجاری، تجهیزاتی مثل گوشی‌های هوشمند، کامپیوترها، لپ‌تاپ‌ها از طریق هم‌بندی خاصی که hub-and-spoke نام دارد به شبکه و یک‌دیگر متصل می‌شوند. در معماری فوق، تمامی دستگاه‌ها در یک شبکه محلی هستند و هر دستگاه به یک روتر مرکزی که نقش دستگاه لبه را بازی می‌کند متصل می‌شوند تا از طریق آن بتوانند با یک‌دیگر و شبکه‌های محلی دیگر ارتباط برقرار کنند.

در معماری فوق، برای اتصال شبکه A به شبکه B باید از یک دستگاه لبه استفاده کرد تا نقطه اتصالی برای برقراری ارتباط بین شبکه‌ها ایجاد شود. مشابه چنین الگویی، در مقیاس جهانی به‌منظور مرتبط ساختن شبکه‌های گسترده با یک‌دیگر مورد استفاده قرار می‌گیرد. به بیان دقیق‌تر، زیربنای اینترنت نیز بر مبنای چنین الگویی است. هنگامی که اتصالی از یک شبکه محلی قرار است از اینترنت عبور کند تا به شبکه محلی دیگری برسد از میان هاپ‌های (Hops) مختلفی عبور می‌کند تا در نهایت ارتباط میان دو شبکه A و B ایجاد شود. هرچه تعداد دستگاه‌های لبه بین شبکه‌ها بیشتر شود، فرآیند اشتراک‌گذاری ترافیک شبکه‌ها سخت‌تر شده و مشکل تنگنا (bottleneck) به‌وجود می‌آید. 

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

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

چه تفاوتی میان سرور مبدا و لبه وجود دارد؟

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

به‌طور کلی، منابع ایستا مثل فایل‌های CSS، تصاویر، فایل‌های ایستای جاوااسکریپت و اچ‌تی‌ام‌ال را می‌توان در سرورهای شبکه توزیع محتوا ذخیره‌سازی موقت کرد، زیرا محتوای ایستا نیمی از پهنای باند مصرفی را به خود اختصاص می‌دهد که اگر از طریق سرورهای لبه در اختیار کاربر نهایی قرار بگیرد، به میزان قابل توجهی باعث تسریع در روند مشاهده وب‌سایت‌ها می‌شود. همچنین، محتوای پویایی مثل فایل‌های اچ‌تی‌ام سامانه‌های وردپرسی یا نمونه‌های مشابه می‌توانند تحت شرایط مشخصی در برخی از شبکه‌های تحویل محتوا ذخیره‌سازی شوند. در این حالت، ترافیک کاربر نهایی به میزان قابل توجهی کاهش پیدا می‌کند. به همین دلیل است که مشاهده می‌کنید برخی از وب‌سایت‌های ایرانی به کاربران خود اعلام می‌کنند که ترافیک آن‌ها نیم‌بها است (البته نیم‌بها بودن ترافیک شرایط خاص دیگری نیز دارد که بحث در مورد آن‌ها خارج از حوصله این مقاله است). 

سرور‌های مبدا و لبه به چه صورتی با یک‌دیگر ارتباط برقرار می‌کنند؟ 

سرورهای مبدا و مقصد زمانی با یک‌دیگر ارتباط برقرار می‌کنند که سرور مبدا محتوا را به سرور لبه تحویل می‌دهد. ارتباط این دو سرور مبتنی بر معماری Push یا Pull است. در مکانیزم Push، محتوایی که شبکه توزیع محتوا در اختیار دارد، زمانی تغییر می‌کند که سرورهای مبدا به‌روز می‌شوند. این معماری در مقایسه با روش Pull که شبکه تحویل محتوا به‌شکل خودکار محتوای جدید را از سرورهای مبدا دریافت می‌کند، کمتر مورد استفاده قرار می‌گیرد. 

نقش سرور‌های لبه و مبدا در تحویل محتوا به کاربر نهایی به ایستا یا پویا بودن محتوا، بستگی دارد. به‌طور مثال، لاگین به سیستمی را تصور کنید که در آن کاربر باید قبل از دسترسی به یک سرویس مثل لینک دانلود، فرآیند احراز هویت را انجام دهد. در حالت ایده‌آل، منابع صفحه وب شامل فایل‌‎های ایستایی مثل صفحه‌های اچ‌تی‌ام‌ال، فایل‌های سی‌اس‌اس، تصاویر و کتاب‌خانه‌های جاوااسکریپت هستند. این فایل‌ها ماهیت ایستایی دارند و همه بازدیدکنندگان وب‌سایت قادر به مشاهده آن‌ها هستند. بنابراین، می‌توان آن‌ها را به‌شکل مستقیم در سرور لبه ذخیره‌سازی کرد. در این حالت، بدون نیاز به ارسال درخواست برای سرور مبدا و مصرف پهنای باند، محتوا در اختیار کاربران نهایی قرار می‌گیرد.

هنگامی که کاربر اطلاعات ورود را وارد کرده و دکمه ورود را فشار می‌دهد، محتوای پویایی که شامل اطلاعات یکتای کاربر است در سرور مبدا ایجاد می‌شود که باید به سرور لبه ارسال شود. برای ارسال محتوا، سرور لبه باید دریافت محتوای پویا را از سرور مبدا درخواست کند. البته، سرور مبدا باید قبل از ارسال اطلاعات حساب کاربر به سرور لبه، جزئیات ورود کاربر را با داده‌های ثبت‌شده در پایگاه‌های داده خود مقایسه و آن‌ها را تایید کند و در ادامه اطلاعات را برای سرور لبه ارسال کند. برای این‌که شبکه‌های تحویل محتوا بدون مشکل کار کنند، سرورهای لبه باید به‌عنوان مقصد درخواست‌های HTTP ورودی مشخص شوند. برای این منظور، مدیر وب‌سایت باید تغییراتی در سامانه نام دامنه ایجاد کند تا بتواند درخواست‌های ورودی به یک وب‌سایت را برای سرورهای لبه هدایت ‌کند. برای بررسی این مسئله که آیا محتوای وب‌سایت از سرور لبه به کاربر تحویل داده شده یا خیر، باید به سرآیند پاسخ منابع نگاه کرد. 

شبکه‌های توزیع محتوا توانایی محافظت از سرور مبدا را دارند؟ 

با توجه به این‌که سرورهای مبدا اطلاعات مهم وب‌سایت‌ها را میزبانی می‌کنند، دائما در معرض حمله‌های هکری قرار دارند و باید به بهترین شکل از اطلاعات آن‌ها محافظت شود. شبکه‌های تحویل محتوا می‌‌توانند به روش‌های مختلفی از سرورهای مبدا در برابر ترافیک‌های ورودی مخرب محافظت کنند. از مکانیزم‌های رایج در این زمینه به موارد زیر باید اشاره کرد: 

  • بازرسی ترافیک ورودی: شبکه‌های تحویل محتوا برای شناسایی و فیلتر حمله‌های لایه کاربرد و انواع مختلفی از بردارهای حمله مثل تزریق کد اس‌کیو‌ال یا cross-site scripting، درخواست‌های دریافتی از پروتکل‌های HTTP و HTTPS را بررسی می‌کنند تا بتوانند از سرورهای مبدا در برابر حمله‌های انکار سرویس توزیع‌شده محافظت کنند. مسئله فوق به این دلیل مهم است که حمله‌های انکار سرویس توزیع‌شده که روی بستر لایه کاربرد اجرا می‌شوند، با هدف از دسترس خارج کردن سرور مبدا توسط هکرها مورد استفاده قرار می‌گیرند. به طوری که هکرها ترافیک مستقیمی را برای این سرورها ارسال می‌کنند. 
  • پنهان‌سازی آدرس‌های آی‌پی سرورهای مبدا: یکی دیگر از قابلیت‌های کاربردی خوبی که شبکه‌های توزیع محتوا دارند، پنهان‌سازی آدرس آی‌پی سرورهای مبدا است. مزیتی که روش فوق دارد این است که مانع اجرای حمله‌های مستقیم به سرور از طریق آی‌پی مستقیم می‌شود. این تکنیک به‌منظور مقابله با حمله‌های انکار سرویس توزیع‌شده‌ لایه شبکه مورد استفاده قرار می‌گیرد. مکانیزم پنهان‌سازی آدرس آی‌پی واقعی سرور مبدا و تغییر مسیریابی درخواست دامنه به سمت آی‌پی‌های شبکه توزیع محتوا، نقش موثری در مقابله با این مدل حمله‌ها دارد. 
  • مدیریت افزایش ترافیک: شبکه‌های تحویل محتوا نقش مهمی در زمینه مدیریت ترافیک ورودی به وب‌سایت‌ها دارند. هنگامی که حجم ترافیک ارسالی برای سرورهای مبدا زیاد می‌شود، عملکرد آن‌ها کاهش پیدا کرده و در ادامه قادر به سرویس‌دهی نخواهند بود. شبکه‌های تحویل محتوا از طریق توزیع مناسب ترافیک به سمت سرورهای لبه در شبکه مانع از آن می‌‌شوند تا ترافیک سنگینی به‌شکل مستقیم برای سرورهای مبدا ارسال شود و عملکرد آن‌ها را مختل کند.

ماهنامه شبکه را از کجا تهیه کنیم؟
ماهنامه شبکه را می‌توانید از کتابخانه‌های عمومی سراسر کشور و نیز از دکه‌های روزنامه‌فروشی تهیه نمائید.

ثبت اشتراک نسخه کاغذی ماهنامه شبکه     
ثبت اشتراک نسخه آنلاین

 

کتاب الکترونیک +Network راهنمای شبکه‌ها

  • برای دانلود تنها کتاب کامل ترجمه فارسی +Network  اینجا  کلیک کنید.

کتاب الکترونیک دوره مقدماتی آموزش پایتون

  • اگر قصد یادگیری برنامه‌نویسی را دارید ولی هیچ پیش‌زمینه‌ای ندارید اینجا کلیک کنید.

ایسوس

نظر شما چیست؟