۳۱ تیر ۱۳۹۵

اصلاح و بهینه سازی اتصال ابر آروان به سرورهای اصلی وب سایت

چکیده

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

 

اتصال به سرور اصلی

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

 اتصالاتی که در شبکه اتفاق می افتد بر اساس نوع پروتکل، رفتارهای متفاوتی دارند. ارتباطات وب چه بر اساس http و چه بر اساس https معمولا برپایه یکی از پروتکل های Http (نسخه ۱، نسخه ۱٫۱ و نسخه ۲) و یا SPDY صورت می پذیرند که همگلی بر پایه پروتکل TCP انجام می شوند. همان طور مطلع هستید ارتباطات پروتوکل TCP با یک Handshake سه مرحله ای آغاز می شود. این سه مرحله شامل ارسال بسته SYN، دریافت بسته SYN-ACK و سپس ارسال بسته ACK صورت می پذیرد. 

اگر دستگاه شروع کننده ارتباط پس از ارسال یک بسته SYN هیچ پیامی را از دستگاه مقابل دریافت نکند (SYN-ACK) اتصال ناموفق تلقی شده و ارتباط برقرار نمی شود.

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

ابر آروان برای دریافت محتوایی که در آن لحظه در داخل ابر وجود ندارد، یک ارتباط با سرور اصلی وب سایت برقرار می کند تا نسبت به دریافت محتوا مبادرت ورزد. برقراری ارتباط همان طور که در بالا ذکر شد با ارسال یک بسته SYN صورت می گیرد. در سرورهای ابر آروان تنظیم شده است که اگر از سرور اصلی وب سایت پاسخی نسبت به SYN ارسالی دریافت نشد، ۳ ثانیه بعد مجددا یک بسته ارسال شود. پس از آن و به تناوب ۶ ثانیه بعد، ۱۲ ثانیه، ۲۴ ثانیه، ۴۵ ثانیه و نهایتا ۹۰ ثانیه بعد تلاش مجدد صورت می گیرد. اگر یک سرور باز هم نسبت به SYN های ارسالی ابر آروان واکنشی نشان ندهد، اتصال به عنوان یک اتصال ناموفق تلقی خواهد شد. 

 

تلاش مجدد

اگر امکان برقراری اتصال به یک سرور پس از گذشت ۹۰ ثانیه همچنان وجود نداشته باشد، ابر آروان با توجه به تنظیمات صورت گرفته در بخش "تنظیمات سرورهای اصلی" ادامه تلاش های خود را برنامه ریزی می کند. به طور کلی می توان گفت یکی از سه حالت زیر رخ می دهد: 

تعریف سرورهای مختلف در محدوده های جغرافیایی مختلف (سایت های سازمانی)

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

 

تعریف چندین سرور اصلی

در این حالت سرورها با توجه به تنظیمات صورت گرفته در بخش "تنظیمات سرورهای اصلی" در اولویت قرار گرفته و اگر یک سرور پاسخ گو نباشد، تلاش برای اتصال به سایر سرورها در دستور کار ابر آروان قرار می گیرد. 

 

تعریف تنها یک سرور اصلی

یکی از معمول ترین حالت ها استفاده وب سایت ها از تنها یک سرور اصلی است. در این حالت اگر ابر آروان همان طور که در بالا توضیح داده شده است، پس از گذشت ۹۰ ثانیه (در برخی موارد ۷۵ ثانیه)  هیچ گونه SYN از سرور اصلی دریافت نکند، مجدد تلاش برای ارسال بسته ها در بازه های زمانی ۱، ۳، ۶، ۱۲، ۲۴، ۴۵ و ۹۰ ثانیه صورت می گیرد. این فراید ۳ مرتبه تکرار می شود. 

 

نمایش خطا

اگر پس از طی تمام مراحل ذکر شده، باز هم امکان برقراری ارتباط با سرور اصلی وجود نداشته باشد، پیغام خطا به کاربر نمایش داده می شود. دراین پیام به کاربر توضیح داده می شود، که ابر آروان به درستی در حال سرویس دهی می باشد و مشکل (به صورت موقت) در سرور اصلی وب سایت به وجود آمده است. در وب سایت های سازمانی این امکان وجود دارد که محتوای این پیغام خطا ویژه سازی شده و پیام دلخواه مشتری به کاربران نمایش داده شود.