لود بالانسینگ
توزیع ترافیک درون سرورها از طریق لود بالانسینگ یکی از وظایف اساسی کنترل کننده تحویل برنامه (ADC) می باشد. این عمل بهینه، به منظور افزایش عملکرد و دسترسی بهتر به برنامه، ترافیک شبکه را تنظیم میکند. روشهای متعددی برای انجام این عمل وجود دارد؛ از جمله متعادلسازی بار در لایه ۴، متعادلسازی بار در لایه ۷ و تنظیمکننده بار L4/L7. این انواع متعادلسازی به چه معناست و کدام یک از آنها بیشترین کارایی را ارائه میدهد؟
در مدل مرجع سیستمهای باز (OSI) برای شبکه، تفاوت بین لود بالانسر لایه ۴ و لایه ۷ بر اساس لایههای مختلف قرار دارد. تنظیمکننده بار لایه ۴ در لایه حمل و نقل مشغول به کار است و از پروتکلهای TCP و UDP برای مدیریت ترافیک بر اساس یک الگوریتم ساده متعادلکننده بار و اطلاعات ابتدایی مثل اتصالات سرور و زمان پاسخ استفاده میکند. به عنوان مقابل، تنظیمکننده بار لایه ۷ در لایه برنامه، که بالاترین لایه در مدل OSI قرار دارد، فعالیت میکند و تصمیمات مسیریابی خود را بر اساس اطلاعات دقیقتری نظیر ویژگیهای سرصفحه HTTP/HTTPS، محتوای پیام، نوع URL و دادههای کوکی انجام میدهد. تنظیمکننده بار L4-7 ترافیک را بر اساس مجموعهای از خدمات شبکه در لایههای ISO 4 تا ۷ مدیریت میکند که خدمات ذخیرهسازی، دستکاری و ارتباطات را فراهم میکند.
بررسی لود بالانسینگ لایه 4
تعادل بار در لایه ۴، در حوزه حمل و نقل فعالیت میکند و ترافیک را بر اساس جزئیات شبکه اداره میدهد، از جمله پورتهای برنامه و پروتکلها، بدون نیاز به بررسی محتوای واقعی پیامها. این رویکرد به عنوان یک روش موثر برای تعادل بار ساده در سطح بسته محسوب میشود. حقیقت این است که عدم بازرسی یا رمزگشایی پیامها، امکان ارسال سریع، کارآمد و امن آنها را فراهم میسازد. با این حال، این رویکرد از آنجا که قادر به تصمیمگیری بر اساس محتوا نیست، امکان مدیریت ترافیک بر اساس ویژگیهایی مانند نوع رسانه، قوانین محلی یا معیارهای دیگر از راههایی بهتر از الگوریتمهای ساده مانند مسیریابی دور رفت و برگشت، را ندارد.
بررسی لود بالانسینگ لایه 7
تعادل بار لایه ۷ به صورت در سطح برنامه عمل میکند و از پروتکلهایی همچون HTTP و SMTP برای تصمیمگیری بر اساس محتوای واقعی هر پیام استفاده میکند. به جای ارسال سادهی ترافیک بدون خواندن، یک تنظیمکننده بار لایه ۷ ترافیک شبکه را توقف میدهد، در صورت لزوم رمزگشایی میکند، پیامها را بررسی میکند، تصمیمات مسیریابی مبتنی بر محتوا را اتخاذ میکند، یک اتصال TCP جدید به سرور بالادستی مناسب ایجاد میکند و درخواست را به سرور میفرستد.
استفاده از رمزگذاری ممکن است بر عملکرد لایه ۷ اثرگذار باشد، اما این تأثیر با فعالسازی قابلیت بارگیری SSL به حد زیادی کاهش مییابد. با امکان فعالسازی شبکهآگاه از برنامه، تعادل بار لایه ۷ امکان تصمیمگیری بهتر در مورد توزیع بار و بهینهسازی محتوا را میدهد. از طریق مشاهده یا تزریق فعال کوکیها، متعادلکننده بار قادر است جلسات سرویسگیرنده منحصر به فرد یا “جلسات چسبنده” را شناسایی کند و تمام درخواستهای مشتری را به همان سرور برای بهبود کارایی ارسال کند. قابلیت مشاهده در سطح بسته این امکان را میدهد که از حافظه پنهان محتوا استفاده شود و اطلاعاتی که به طور متداول دسترسی دارید، را در حافظه نگهداری برای بازیابی آسان داشته باشید. از دیدگاه سازمانهای مدرن، تعادل بار لایه ۷ هوش لازم را برای مدیریت پروتکلهایی که از پیگ بک یا مالتیپلکس در یک اتصال واحد به منظور بهینهسازی ترافیک و کاهش هزینههای سربار استفاده میکنند، فراهم میکند.
تفاوت لود بالانسر لایه 4 و لود بالانسر لایه 7
لود بالانسر لایه 7 در سطح لایه اپلیکیشن مدل OSI عمل میکند، که در اینترنت، HTTP به عنوان پروتکل اصلی در این لایه مورد استفاده قرار میگیرد. عملکرد لود بالانسر لایه 7 بر اساس ویژگیهای متنوعی از هدر HTTP و محتوای واقعی پیام، از جمله URL، نوع داده (متن، ویدئو و گرافیک) یا اطلاعات موجود در کوکی، برای تصمیمگیری در مورد مسیریابی ترافیک استفاده میکند.
در نظر گرفتن بسیاری از جنبههای اطلاعاتی که انتقال مییابند، ممکن است لود بالانسر لایه 7 نسبت به لایه 4 در زمینههای زمان و قدرت محاسباتی بیشتری نیاز داشته باشد؛ با این حال، این مدل لود بالانسر به طور کلی ممکن است با کارایی بیشتری همراه باشد. به عنوان نمونه، لود بالانسر لایه 7 میتواند به دلیل توانایی تعیین نوع داده مورد درخواست کلاینت (شامل ویدئو، متن و غیره)، نیازی به کپی کردن همان دادهها را بر روی تمام سرورهای با بار تعادلشده نداشته باشد.
لود بالانسرهای لایه 7 در مقابل مدیریت ترافیک به صورت بسته به بسته، که برخی از لود بالانسرهای لایه 4 از NAT استفاده میکنند، قابلیت خواندن کامل درخواستها و پاسخها را دارند. این لود بالانسرها ترافیک را بر اساس درک کامل تراکنش بین کلاینت و سرور اپلیکیشن مدیریت و دستکاری میکنند.
تعدادی از لود بالانسرها قابلیت پیکربندی را دارند تا بسته به ماهیت سرویس، تعادل بار در لایه 4 یا 7 را ارائه دهند.
ADC ها چرا به تعادل L4 و L7 نیاز دارند؟
اگرچه لود بالانسرهای لایه ۷ قابلیت ارائه عملکرد گستردهتری و تصمیمات مسیریابی هوشمندتر را دارند، اما هر کدام موارد استفاده مناسب خود را دارند. لایه ۷ توانایی دید و آگاهی از برنامه را فراهم میکند که به اجازه تصمیمات مسیریابی هوشمند، بهینهسازی و افزایش عملکرد برخوردار است. به عنوان نمونه، اطلاعات موجود در سربرگ مرورگر میتواند برای هدایت بازدیدکنندگان به نسخه مناسب محتوا استفاده شود. بهمنظور ارائه بهترین تجربه ممکن برای هر کاربر، دستگاه و مکان، همزمان با رعایت الزامات سازمان برای محلیسازی محتوا و بهینهسازی کارآیی، یک ADC باید توانایی تعادل بار در هر دو لایه ۴ و ۷ را داشته باشد تا نیازهای مختلف برنامه را پاسخ دهد.
بررسی لایه ها در مدل های اینترنت و OSI
مفهوم هفت لایه شبکه مبتنی بر مدل مرجع اتصال سیستمهای باز (OSI) تبیین شده است. این مدل توابع شبکه را به هفت لایه انتزاعی تقسیم میکند و هر یک از این لایهها با یک شماره شناخته شده از ۱ تا ۷ نامگذاری میشود. در هر لایه، استانداردهای مشخصی وجود دارد که موارد زیر را مشخص یا تعریف میکنند:
- نحوه بستهبندی و انتقال دادهها
- نحوه تقسیمبندی جریان بیتها در یک درخواست یا پاسخ به پکیجهای مجزا با نام “واحد داده پروتکل” (PDU)
- متادیتاهای اضافهشده به هر PDU در قالب هدر؛ بهعنوان مثال، متادیتا میتواند آدرسهای هاست مبدا و مقصد را مشخص کند.
اختصاص دادن جنبههای مختلف عملکرد شبکه به لایههای مختلف، پردازش در هر لایه را سادهتر میکند. هر پروتکل فقط باید نحوه ارتباط با PDUهای لایه خود را بداند و از این که چه متادیتایی را در هدر قرار دهد، آگاه باشد. این به پروتکلها اجازه میدهد در لایههای مجاور PDUها را در تقسیمبندی دادههای سطح خود بازبینی و بازنویسی کنند.
توزیع توابع شبکه در میان پروتکلهای اساسی برای ترافیک در شبکه جهانی وب – که بهطور کلی به عنوان مجموعه پروتکل اینترنت (IP suite) شناخته میشود – بهطور دقیق با مدل OSI همخوانی ندارد؛ این به دلیل این است که مجموعه IP قبل از انتشار مدل نهایی OSI تعریف و پیادهسازی شده است. با این حال، پروتکلهای مختلف در مجموعه IP توابع مجزایی دارند که تقریباً با لایههای OSI همخوانی دارند.
بررسی انواع پروتکل های شبکه
در هر سطح شبکه، چندین پروتکل تعریفشده وجود دارد که در اینجا به بررسی پروتکلها و سطحهای مرتبط با لود بالانسینگ ترافیک وبسایت میپردازیم:
- پروتکل اینترنت (IP):
- لایه Internetwork (لایه 3) در مدل OSI.
- PDUهای این پروتکل با نام “Packet” شناخته میشوند.
- IP مسئول تحویل Packetها از یک هاست مبدا به هاست مقصد از میان مرزهای بین چندین شبکه کوچکتر است.
- هر دستگاه مستقیماً به اینترنت متصل باشد، یک آدرس IP منحصربهفرد دارد.
- پروتکل کنترل انتقال (TCP):
- لایه انتقال (لایه 4) یا همان لایه چهارم در مدل OSI.
- TCP بین هاست مرورگر و هاستی که اپلیکیشن سرور در آن اجرا میشود، یک اتصال مجازی ایجاد میکند.
- برای اصلاح خطاها و تبدیل جریان Packetهای IP به یک کانال ارتباطی قابل اعتماد از مکانیزمهایی برخوردار است.
- هر اپلیکیشن به یک شماره پورت TCP منحصربهفرد اختصاص مییابد.
- پروتکل انتقال ابرمتن (HTTP):
- لایه اپلیکیشن (لایه 7) در مدل OSI.
- HTTP نحوه کدگذاری برای ارتباط بین مرورگرها و وب سرورها تعریف میکند.
با توجه به انواع پروتکلها، میتوانیم اظهار کنیم که اصطلاح دقیقتر لود بالانسینگ لایه 4 در واقع “لود بالانسینگ لایه 3/4” است؛ زیرا لود بالانسر بر اساس هر دو آدرس IP سرورهای مبدا و مقصد (لایه 3) و شماره پورت TCP اپلیکیشن (لایه 4) تصمیمگیری میکند. همچنین، اصطلاح دقیقتر لود بالانسینگ لایه 7 نیز میتواند “لود بالانسینگ لایه 5 تا 7” باشد؛ زیرا HTTP توابع لایههای 5، 6 و 7 مدل OSI را با هم ترکیب میکند.