شبکه تحویل برنامه

یک شبکه تحویل برنامه (ADN) مجموعه فناوری‌هایی است که وقتی در کنار هم مستقر می‌شوند، قابلیت دسترسی، امنیت، دید و شتاب برنامه را فراهم می‌کنند. گارتنر شبکه تحویل برنامه را به عنوان ترکیبی از کنترل‌کننده‌های بهینه‌سازی WAN یا همان WOCs و کنترل‌کننده‌های تحویل برنامه (ADC) تعریف می‌کند. در انتهای مرکز داده ADN ، کنترل‌کننده تحویل برنامه، یک دستگاه مدیریت ترافیک پیشرفته است که غالباً به آن سوئیچ وب، سوئیچ محتوا یا سوئیچ چند لایه نیز گفته می‌شود، هدف آن توزیع ترافیک بین تعدادی از سرورها است. یا بر اساس معیارهای خاص برنامه، سایتهای جغرافیایی را از جا دررفته است. در بخش شعبه ADN ، کنترل‌کننده بهینه‌سازی WAN وجود دارد که برای کاهش تعداد بیت‌های جریان یافته در شبکه با استفاده از حافظه پنهان و فشرده سازی کار می‌کند و با استفاده از اولویت بندی و سایر تکنیک‌های بهینه‌سازی، ترافیک TCP را شکل می‌دهد.What makes a WAN optimization controller? Network World, Jan 8, 2008 برخی از مولفه‌های WOC بر روی رایانه‌های شخصی یا سرویس گیرنده‌های تلفن همراه نصب شده‌اند و به‌طور معمول بخشی از WOC در مرکز داده نصب شده‌است. شبکه‌های تحویل برنامه توسط برخی از فروشندگان CDN نیز ارائه می‌شود.

ADC، یکی از اجزای یک ADN است که در اواخر دهه ۱۹۹۰، زمانی که مشخص شد تکنیک‌های سنتی متعادل سازی بار به اندازه کافی قوی نیستند تا بتوانند از ترکیبات فزاینده ای که از ترافیک برنامه ای که از طریق طیف گسترده‌تری از گزینه‌های اتصال شبکه تحویل داده می‌شوند، استفاده کنند، از سوئیچ‌های لایه ۴–۷ تکامل یافت.

 تکنیک‌های تحویل برنامه 
اینترنت با توجه به اصل پایان به پایان طراحی شده‌است.Saltzer, J. H., Reed, D. P., Clark, D. D.: “End-to-End Arguments in System Design,” ACM Transactions on Communications, 2(4), 1984 این اصل شبکه اصلی را نسبتاً ساده نگه می‌دارد و اطلاعات را تا آنجا که ممکن است به نقاط انتهایی شبکه منتقل می‌کند: میزبانها و کلاینت‌ها. شبکه تحویل برنامه (ADN) با بکارگیری تعدادی از تکنیک‌های بهینه‌سازی، تحویل برنامه‌ها را از طریق اینترنت افزایش می‌دهد. بسیاری از این تکنیکها بر اساس بهترین روشهای مستقر در جهت مسیریابی مؤثر ترافیک در لایه شبکه از جمله افزونگی و تعادل بار استوار است.Halabi, Bassam: "Internet Routing Architectures", New Riders Publishing, 1997

از نظر تئوری، شبکه تحویل برنامه (ADN) ارتباط تنگاتنگی با شبکه تحویل محتوا دارد. تفاوت بین دو شبکه تحویل در هوشمندی ADN برای درک و بهینه‌سازی برنامه‌ها، معمولاً به عنوان تسلط برنامه کاربردی نامیده می‌شود. Application Fluent Network (AFN) بر اساس مفهوم Application Fluency برای اشاره به تکنیک‌های بهینه‌سازی WAN اعمال شده در لایه چهار تا لایه هفت مدل OSI برای شبکه‌ها است. نرم‌افزار تسلط به این معنی است که شبکه در درک و توانایی در بهینه‌سازی تحویل هر برنامه، روان یا هوشمند است. Application Fluent Network یک قابلیت SDN اضافی است. نام اختصاری "AFN" توسط Alcatel-Lucent Enterprise برای مراجعه به یک شبکه کاربردی Fluent استفاده می‌شود.

تحویل برنامه از یک یا چند سوئیچ‌های لایه ۴–۷ استفاده می‌کند، همچنین به عنوان سوئیچ وب، سوئیچ محتوا یا سوئیچ چند لایه برای توزیع هوشمند ترافیک در استخر، که به عنوان خوشه یا مزرعه از سرورها نیز شناخته می‌شود، شناخته می‌شود. به کنترل‌کننده تحویل برنامه (ADC) یک آدرس IP مجازی (VIP) اختصاص داده می‌شود که نمایانگر مجموعه سرورها است. ترافیک ورودی به ADC بر اساس تعدادی از فاکتورها از جمله مقادیر داده خاص برنامه، پروتکل حمل و نقل برنامه، در دسترس بودن سرورها، معیارهای عملکرد فعلی و پارامترهای خاص مشتری به یکی از سرورهای موجود در استخر (خوشه، مزرعه) هدایت می‌شود. . ADN مزایای توزیع بار، افزایش ظرفیت سرورها، بهبود مقیاس پذیری، امنیت و افزایش قابلیت اطمینان را از طریق بررسی‌های بهداشتی خاص برنامه فراهم می‌کند.

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

 تکنیک‌های بهینه‌سازی ADN 
 مالتی پلکسینگ TCP 
TCP Multiplexing مبتنی بر تکنیک‌های ایجاد اتصال پیوسته است که توسط سیستم عامل‌های سرور برنامه برای بهینه‌سازی اجرای درخواست‌های پایگاه داده از داخل برنامه‌ها استفاده می‌شود. ADC تعدادی اتصال به سرورهای موجود در استخر خود برقرار می‌کند و اتصالات را باز نگه می‌دارد. هنگامی که درخواستی توسط ADC از مشتری دریافت می‌شود، درخواست ارزیابی می‌شود و سپس از طریق اتصال موجود به یک سرور هدایت می‌شود. این تأثیر در کاهش هزینه‌های اضافی تحمیل شده با ایجاد و از بین بردن اتصال TCP با سرور، بهبود پاسخگویی برنامه است.

برخی از پیاده‌سازی‌های ADN این تکنیک را یک گام جلوتر می‌برند و همچنین درخواست‌های برنامه HTTP و برنامه‌های چندگانه را انجام می‌دهند. این مزیت از اجرای موازی درخواست‌ها است که باعث افزایش عملکرد برنامه می‌شود.

 بهینه‌سازی TCP 
تعدادی درخواست برای نظر (RFC) وجود دارد که مکانیسم‌های بهبود عملکرد TCP را توصیف می‌کند. بسیاری از ADN این RFCها را پیاده‌سازی می‌کنند تا بتوانند از طریق استفاده کارآمدتر از TCP، تحویل برنامه‌ها را افزایش دهند.

RFCهایی که معمولاً اجرا می‌شوند عبارتند از:
 قدردانی‌های تأخیریRFC 896: Congestion Control in IP/TCP Internetworks
 الگوریتم NagleRFC 1122: Requirements for Internet Hosts -- Communication Layers
 تقدیرهای انتخابیRFC 2018: TCP Selective Acknowledgment OptionsRFC 2883: An Extension to the Selective Acknowledgement (SACK) Option for TCP
 اعلان آشکار ازدحام ECNRFC 3168: The Addition of Explicit Congestion Notification to TCPRFC 2481: A Proposal to add Explicit Congestion Notification (ECN) to IP
 انتقال مجدد محدود و سریعRFC 3042: Enhancing TCP's Loss Recovery Using Limited TransmitRFC 2582: The NewReno Modification to TCP's Fast Recovery Algorithm
 ویندوز تراکم اولیه تطبیقیRFC 3390: Increasing TCP's Initial Window

 فشرده سازی و ذخیره داده ها[ویرایش] 
ADNها همچنین از طریق تکنیک‌های ذخیره‌سازی و فشرده سازی، بهینه‌سازی داده‌های برنامه را فراهم می‌کنند. امروزه دو نوع فشرده سازی توسط ADNها مورد استفاده قرار می‌گیرد: الگوریتم‌های استاندارد فشرده سازی HTTP صنعت و کاهش داده‌های اختصاصی. توجه به این نکته مهم است که هزینه در چرخه‌های پردازنده برای فشرده سازی داده‌ها هنگام عبور از یک LAN می‌تواند بر عملکرد منفی تأثیر بگذارد و بنابراین بهترین روش‌ها استفاده از فشرده سازی هنگام تحویل برنامه‌ها از طریق WAN یا به ویژه پیوند داده‌های پرسرعت متراکم است.

فشرده سازی HTTP برای مشتری نامتقارن و شفاف است. پشتیبانی از فشرده سازی HTTP در وب سرورها و مرورگرهای وب تعبیه شده‌است. تمام محصولات تجاری ADN در حال حاضر از فشرده سازی HTTP پشتیبانی می‌کنند.

تکنیک فشرده سازی دوم از طریق الگوریتم‌های کاهش داده به دست می‌آید. از آنجا که این الگوریتم‌ها اختصاصی هستند و میزان ترافیک برنامه را تغییر می‌دهند، قرینه هستند و قبل از اینکه مشتری بتواند آن را دریافت کند، به دستگاهی نیاز دارد تا ترافیک برنامه را دوباره جمع کند. دسته جداگانه ای از دستگاه‌های معروف به WAN Optimization Controllers (WOC) این قابلیت را ارائه می‌دهند، اما این فناوری طی چند سال گذشته به آهستگی به سبد سهام ADN اضافه شده‌است زیرا این کلاس از دستگاه‌ها همچنان از برنامه‌های بیشتری آگاه می‌شوند و ویژگی‌های اضافی برای برنامه‌های خاصی مانند CIFS و SMB را ارائه می‌دهند.

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

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

 الگوریتم‌های تعادل بار 
الگوریتم‌های متعادل کننده بار که در ADN امروزی یافت می‌شوند بسیار پیشرفته تر از الگوریتم‌های ساده گردشی و کمترین اتصالات مورد استفاده در اوایل دهه ۱۹۹۰ هستند. این الگوریتم‌ها در اصل مبتنی بر الگوریتم‌های زمان‌بندی سیستم عامل‌ها بوده‌اند، اما از آن زمان به بعد در شرایط خاص شبکه‌ها و برنامه‌های کاربردی تبدیل شده‌اند. دقیق تر توصیف الگوریتم‌های «تعادل بار» امروزه به عنوان الگوریتم‌های مسیریابی برنامه، زیرا بیشتر ADN از آگاهی از برنامه استفاده می‌کنند تا مشخص کنند آیا برنامه ای برای پاسخگویی به درخواست در دسترس است. این شامل توانایی ADN در تعیین نه تنها برنامه در دسترس بودن است، بلکه اینکه آیا برنامه می‌تواند در پارامترهای مشخص شده به درخواست پاسخ دهد، که اغلب به عنوان توافق‌نامه سطح خدمات شناخته می‌شود.

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

 تحمل خطا 
ADN تحمل خطا را در سطح سرور، در استخرها یا مزارع فراهم می‌کند. این امر با تعیین سرورهای خاص به عنوان «پشتیبان» انجام می‌شود که در صورت خرابی سرور (های) اصلی در استخر، به‌طور خودکار توسط ADN فعال می‌شود.MacVittie, Lori: "Content Switches", Network Computing, July, 2001 

ADN همچنین از طریق قابلیت «از کار افتادن» یک دستگاه ثانویه در صورت خرابی سخت‌افزار یا نرم‌افزار، در دسترس بودن و قابلیت اطمینان برنامه را تضمین می‌کند. این تضمین می‌کند که در صورت خرابی یک دستگاه، ترافیک به جریان خود ادامه می‌دهند، در نتیجه تحمل خطا را برای برنامه‌ها فراهم می‌کند. تحمل خطا در ADNها از طریق شبکه یا اتصال سریال انجام می‌شود.

 شکست مبتنی بر شبکه 
آدرس IP مجازی (VIP) بین دو دستگاه به اشتراک گذاشته شده‌است. یک دیمون ضربان قلب در دستگاه ثانویه فعال بودن دستگاه اصلی را تأیید می‌کند. در صورت از دست دادن ضربان قلب، دستگاه ثانویه VIP مشترک را فرض می‌کند و درخواست‌های سرویس را شروع می‌کند. این فرایند فوری نیست و اگرچه بیشتر جلسات ADN از دوره ابتدایی به دوره متوسطه تکرار می‌شوند، اما هیچ راهی برای تضمین حفظ جلسات آغاز شده در مدت زمان طولانی برای تصدی VIP و شروع مدیریت ترافیک وجود ندارد.

 شکست مبتنی بر سریال 
در یک پیکربندی شکست سریال مبتنی بر اتصال سریال، دو دستگاه ADN به جای شبکه از طریق یک اتصال استاندارد RS232 ارتباط برقرار می‌کنند و تمام اشتراک اطلاعات و وضعیت جلسه از طریق این اتصال مبادله می‌شود. Failover تقریباً فوری است، اگرچه در مورد جلسات آغاز شده در حالی که دستگاه اصلی به عنوان خرابی مبتنی بر شبکه از کار می‌افتد، از همان محدودیت‌ها رنج می‌برد.

 امنیت ADN 
 امنیت لایه حمل و نقل 
اگرچه اغلب به اشتباه به لایه برنامه اختصاص داده می‌شود، SSL امروزه متداول‌ترین روش ایمن‌سازی ترافیک برنامه از طریق ADN است. SSL از PKI برای برقراری ارتباط ایمن بین سرویس گیرنده و ADN استفاده می‌کند و رمزگشایی داده‌ها هنگام حملات یا ربودن جلسه را برای مهاجمان دشوار می‌کند.[نیازمند منبع]

 امنیت لایه برنامه 
 پنهان کردن منابع 
استفاده از آدرس IP مجازی (VIP) و موقعیت ADN در شبکه ابزاری را فراهم می‌کند که از طریق آنها می‌توان منابع خاصی را از مشتری پنهان یا مخفی کرد. از آنجا که ADN برای درک برنامه‌ها و پروتکل‌های برنامه مانند HTTP طراحی شده‌است، می‌تواند برخی از جنبه‌های پروتکل را دستکاری کند تا سرورها را در استخر قرار دهد و از افشای اطلاعات بالقوه مفید در مورد زیرساخت‌های نرم‌افزار و سخت‌افزار جلوگیری کند.

یک استفاده معمول از این قابلیت مخفی کردن سیستم عامل و نرم‌افزار سرور است که برای میزبانی برنامه استفاده می‌شود. این امر معمولاً با بازنویسی قسمت Server در یک پاسخ HTTP حاصل می‌شود.Hypertext Transfer Protocol (HTTP/1.1): Semantics and Content, Response Context

دومین استفاده معمول از این قابلیت، بهره‌برداری از توانایی ADN در بازنویسی بخش URI از درخواست HTTP است. به مشتری یک URI و VIP ارائه می‌شود که فقط برای ADN شناخته شده‌است و پس از دریافت درخواست، ADN می‌تواند (الف) مجدداً URI را بنویسد و یک هدایت ۳۰۲ ارسال کندHypertext Transfer Protocol (HTTP/1.1): Semantics and Content, Redirection 3xx یا (ب) با شفافیت URI را ترجمه کرده و پاسخ می‌دهد برای مشتری طوری که انگار URI در وهله اول درست است.

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

 امنیت لایه شبکه 
ADN اغلب در DMZ در لبه شبکه مستقر می‌شود. این منجر به قرار گرفتن در معرض حملات احتمالی لایه شبکه از جمله انکار سرویس (DoS) ناشی از سیل ICMP و SYN می‌شود. در نتیجه، ADN لزوماً باید نه تنها از خود بلکه از برنامه‌هایی که از تسلیم شدن در برابر چنین حملاتی ارائه می‌دهد محافظت کند. ADN به‌طور کلی از تعدادی محافظت در برابر حملات معمول لایه شبکه استفاده می‌کند، اگرچه امنیت کامل ارائه شده توسط IPS را اجرا نمی‌کند. برخی از فناوری‌های Security Layer Security که ممکن است توسط دستگاه‌های ADN استفاده شوند عبارتند از:

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

 فیلتر کردن IP 
ADNها اغلب توانایی فیلتر کردن ترافیک را براساس لیست کنترل دسترسی (ACLs)، محدوده‌های IP جعلی (فیلتر Bogon) و تطبیق الگوی بازرسی بسته‌های عمیق دارند. در بعضی موارد، ممکن است از آستانه یا محدود کردن نرخ آدرس IP یا دامنه آدرس IP استفاده شود.

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

 منابع 

 پیوند به بیرون 
 Optimizing Network Performance with Content Switching: Server, Firewall, and Cache Load Balancing

رده:شبکه‌های رایانه‌ای
رده:معماری شبکه