معماری کلاینت-سرور (یا همان سرویس گیرنده-سرویس دهنده و یا Client Server) در دنیای کامپیوتر، به معماری گفته میشود که در آن کلاینتها سرویسهای درخواستی خود را به سرورهایی که وظیفه آنها خدمترسانی است، تحویل میدهند.
البته این معماری منحصر به کامپیوتر نیست و در بسیاری از فضاهای دیگر نیز از این معماری پیروی میشود. برای مثال، یک رستوران را در نظر بگیرید که چندین آشپز (سرورها) و تعداد بسیاری زیادی مشتری (کلاینتها) دارد. وظیفه آشپزها خدمترسانی به مشتریها میباشد.
عموما ارتباط بین کلاینتها و سرورها، در بستر شبکه صورت میگیرد. به اینصورت که یک سرور میزبان، چند برنامه و سرویس را در خود دارد. از این رو، سرور برنامهها و منابع خود را با کاربران به اشتراک میگذارد. سپس، کاربران برای استفاده از این خدمات و منابع، درخواستهایی را از بستر شبکه به سمت سرور ارسال میکنند. این بستر میتواند یکی از بسترهای استاندارد نظیر پروتکل http در لایه هفت باشد. نهایتا اگر درخواست کاربر معتبر باشد، سرور پاسخ لازم را به کاربر میدهد.
نقطه مقابل معماری کلاینت-سروری را میتوان معماری P2P یا Peer To Peer یا نظیر به نظیر دانست. در معماری P2P، دو یا چند کامپیوتر منابع خود را در قالب یک سیستم غیرمتمرکز به اشتراک میگذارند. در این سیستم دیگر ساختار سلسله مراتبی وجود ندارد.
یکی از مزیتهای اصلی شبکههای P2P به نسبت شبکههای Client-Server، این است که در ساختار کلاینت-سرور اگر سرور دچار مشکل شود، کل خدمترسانی دچار مشکل میشود. ولی در شبکههای P2P اگر یک سیستم خراب شود، براحتی سیستم دیگری را میتوان جایگزین آن کرد.
همچنین برای گسترش شبکه Client-Server، باید هزینه زیادی را صرف ارتقا سرور کنیم. ولی اینکار در شبکه P2P بدلیل غیرمتمرکز بودن آن، براحتی قابل انجام است.
ترجنس | thregence.ir
آکادمی ترجنس | edu.thregence.ir
اینستاگرام | instagram.com/thregence
تلگرام | t.me/thregence
یوتوب | https://bit.ly/30mGowo
آپارات | aparat.com/thregence
در دوره رایگان “آموزش ابزار قدرتمند nmap” با امکانات مختلف ابزار nmap آشنا شدیم.
namp را میتوان یک ابزار همه فن حریف در تست نفوذ دانست که امکانات بسیار بیشتری به نسب amap دارد.
یکی از امکانات nmap “تشخیص سرویس” میباشد. این سرویس به اینصورت عمل میکند که ابتدا تارگت را به nmap میدهیم. nmap شروع به اسکن کردن پورتهای تارگت میکند و پورتهای باز را تشخیص میدهد.
در همین حین، nmap با توجه به دیتابیس از قبل تهیه شد خود، میداند که بصورت استاندارد چه سرویسهایی برروی چه پورتهایی فعال هستند.
برای مثال، میداند که پورت 80 بصورت استاندارد برای پروتکل http میباشد. پس اگر تارگتی را اسکن کند و پورت 80 آن را در حالت “باز (Open)” تشخیص دهد، میگوید که سرویس http برروی این تارگت در حال اجراست.
اما اگر یک نفر برروی پورت 80 خود سرویس SSH را اجرا کند (غیراستاندارد و کمی بعید بنظر میرسد)، نتیجه اسکن nmap چه خواهد بود؟
یک نتیجه اشتباه! اگر با nmap این تارگت را اسکن کنیم، متوجه میشود که پورت 80 آن باز است.
از آنجایی که در حالت استاندارد برروی پورت 80 سرویس http اجرا میشود، این ابزار میگوید که تارگت مدنظر، سرویس http را در خود فعال کرده است. اما این نتیجه، اشتباه است.
حالت دیگری که شاید nmap کارایی کمی از خود نشان دهد، زمانی است که یک سرویس همانند http برروی یک پورت نامتعارف اجرا شود.
از آنجاییکه nmap بصورت پیشفرض تنها پورتهای عرف را اسکن میکند احتمالا متوجه باز بودن پورت مذکور نخواهد شد.
amap برخلاف nmap، از یک دیتابیس استاتیک برای تشخیص سرویسها استفاده نمیکند.
amap ابتدا تریگرهایی را به سمت تارگت ارسال میکند و از روی پاسخ (Response) دریافت شده، سرویسها را لیست میکند.
مشاهده این ویدیو در:
https://edu.thregence.ir/load-balancing/
به زبان ساده، تعدیل بار به عملیاتی گفته میشود که طی آن سعی میکنیم بصورت بهینه، ترافیک ورودی شبکه را بین المانهای مختلف توزیع کنیم.
برای مثال، امروزه وبسایتهایی که ترافیک ورودی زیادی دارند، باید بتوانند در هر لحظه چندین هزار درخواست را مدیریت کنند و به آنها پاسخ بدهند. اما گاهی ترافیک ورودی به وبسایت آنقدر زیاد است که سرورهای فعلی از پس مدیریت و پاسخگویی آنها برنمیآیند.
در نگاه اول، بنظر میرسد که باید تعداد سرورهای خود را افزایش دهیم و البته توان پردازشی هر کدام از آنها را نیز ارتقا دهیم. اما…
روشی که عموما مورد استفاده قرار میگیرد استفاده از یک “تعدیلکننده بار” است!
تعدیلکننده بار (یا همان Load Balancer) همانند یک نگهبان برای ترافیک عمل میکند. بدین صورت که ترافیک ورودی ابتدا به تعدیلکننده بار میرسد، سپس او تصمیم میگیرد که درخواستها را به چه صورت بین سرورها تقسیم کند تا به بهترین شکل ممکن فشار برروی سیستمها پخش شود. در اینصورت ترافیک ورودی تا حد زیادی بصورت متعادل و برابر بین سرورها تقسیم میشود.
تعدیلکننده بار (یا همان Load Balancer) بطور مزایای زیر را دارد:
•توزیع درخواستهای ورودی کاربران بین سرورها بصورت بهینه
•تضمین دسترسپذیری (Availability) و قابلیت اطمینان (Reliability) از طریق ارسال درخواستها به سرورهای روشن
•منعطفتر کردن ساختار برای اضافه کردن سرور جدید در صورت نیاز
تعدیلکننده بار میتواند نرمافزاری یا سختافزاری باشد. نوع نرمافزاری آن، صرفه اقتصادی بهتری دارد چرا که به نسبت نوع سختافزاری، سختافزار به مراتب کمتری برای چنین سیستمی تهیه میشود ولی نوع سختافزاری قابلیتهای بیشتری نظیر امکان استفاده گستردهتر از قابلیتهای مجازیسازی را فراهم میکند، چراکه سختافزار قدرتمندتری دارد.
تعدیل بار مطابق الگوریتمهای مختلفی انجام میشود. برای مثال: •Round Robin: درخواستها بصورت پشت هم برای سرورها ارسال میشود. •Least Connection: درخواست جدید برای سروری ارسال میشود که کمترین اتصال فعال را دارد. •Random: ارسال درخواستها بصورت تصادفی به سمت سرورها •IP Hash: ارسال درخواستها به سمت سرورها مطابق با IP کاربری که درخواست را ارسال کرده است.
ترجنس | thregence.ir
آکادمی ترجنس | edu.thregence.ir
اینستاگرام | instagram.com/thregence
تلگرام | t.me/thregence
یوتوب | https://bit.ly/30mGowo
آپارات | aparat.com/thregence
https://edu.thregence.ir/port/
در فضای شبکه، پورت به جایی گفته میشود که ارتباطات شبکهای (Network Connections) در آن جا شروع و تمام میشود.
پورتهای شبکه، نرمافزاری هستند و توسط سیستمعامل مدیریت میشوند. سیستمعامل برای تفکیک ترافیکهای مختلف ورودی/خروجی، از آنها کمک میگیرد. به این صورت که هر سرویس یا پراسس با یک پورت مشخص همراه میشود و ترافیک شبکه خود را از طریق آن دریافت/ارسال میکند.
برای مثال، فرض کنید که یک کاربر میخواهد بصورت همزمان کارهای زیر را با سیستم خود انجام دهد: •وبگردی کند
•یک ارتباط SSH با سیستم محل کار خود برقرار کند
•ویندوز خود را آپدیت کند
•و …
هر کدام از این عملیات توسط یک سرویس یا پراسس در سیستمعامل مدیریت میشوند.
سیستمعامل برای تفکیک ترافیک این چند سرویس از پورتها استفاده میکند. بدین صورت که برای مثال، ترافیک وبگردی از روی پورت 80، ترافیک ارتباط SSH از روی پورت 22 و … رد و بدل میکند.
به عبارت دیگر میتوان گفت یکی از دلایل وجود تعداد زیادی پورت در سیستمهای امروزی، این است که عموما چندین سرویس یا پراسس میخواهند از طریق شبکه اطلاعاتی را رد و بدل کنند.
پورتها در سراسر شبکههای متصل بهم، استاندارد شدهاند. به اینصورت که به هر کدام از آنها یک شماره اختصاص داده شده است. بیشتر پورتها برای استفاده پروتکلهای مشخصی رزرو شدهاند. مثلا پورتشماره 22 بصورت استاندارد برای ارتباطات SSH رزرو شده است. یا شماره 80 برای پروتکل HTTP و …
پس در اصل وظیفه IP این است که مشخص کند هر بسته در شبکه چه مبدا و مقصدی دارد. در کنار آن، پورتها این وظیفه را داردند که یک سرویس بخصوص از این مبدا و مقصد را هدف قرار دهند.
برای مثال وقتی در شبکه میگوییم بسته A باید به 10.11.12.13:80 برود، یعنی بسته ابتدا باید به سیستمی که آدرس 10.11.12.13 دارد برود و سپس بدست سرویسی که برروی پورت 80 از این سیستم هست برسد.
ضمن اینکه کلا 65535 پورت در دنیای شبکه داریم و پورت یک مفهوم لایه 4 (Transport) میباشد.
ترجنس | thregence.ir
آکادمی ترجنس | edu.thregence.ir
اینستاگرام | instagram.com/thregence
تلگرام | t.me/thregence
یوتوب | https://bit.ly/30mGowo
آپارات | aparat.com/thregence
ترجنس متشکل از فارغ التحصیلان متخصص دانشگاههای صنعتی شریف، صنعتی امیرکبیر، صنعتی اصفهان و متخصصان با سابقه مقیم اروپا و آمریکا در حوزههای مختلف فناوری اطلاعات میباشد. ترجنس با هدف ایجاد یک پلتفرم آموزشی یکپارچه با هدف تربیت متخصصان حوزه فناوری اطلاعات در داخل کشور و ارائه خدمات با کیفیت تاسیس شد.
در دپارتمان خدمات آموزشی ترجنس کلیه آموزشها در حوزه فناوری اطلاعات خصوصا امنیت شبکه و اطلاعات بهصورت اصولی و بنابر نیازهای هر شخص انجام میشود. همچنین طبق اهداف و علاقمندیهای هر شخص نقشه راهی طراحی میشود. فرد با دنبال کردن آن میتواند کسب تخصص را با انگیزه و حساب شده پشت سر بگذارد. به بیان
دپارتمان خدمات امنیت فناوری اطلاعات ترجنس، ارائه دهنده خدمات حرفهای در حوزه امنیت سیستمهای فناوری اطلاعات از جمله تست نفوذ شبکه، تست نفوذ وب، تست نفوذ نرم افزار، همچنین هاردنینگ از جمله هاردنینگ شبکه، پایگاه داده، سیستم عامل و علاوه بر این موارد پاسخگویی بلادرنگ به حوادث امنیتی توسط تیم با سابقه و کارآزموده میباشد.
دپارتمان توسعه نرم افزار ترجنس ارائه دهنده خدمات توسعه نرم افزارهای پلتفرمهای مختلف از جمله ویندوز، لینوکس، مکینتاش، اندروید، iOS و برنامه نویسی اینترنت اشیاء (IoT) با اصول مهندسی نرم افزار و پشتیبانی بلند مدت میباشد.
دپارتمان طراحی و توسعه وب سایت و برنامههای تحت وب ترجنس ارائه دهنده خدمات طراحی و توسعه وب سایت و برنامههای تحت وب با استفاده از فریم ورکهای پیشرفته با پشتیبانی بلند مدت و ۲۴ ساعته
اطلاعرسانی به موقع و برخط جدیدترین رویدادهای امنیتی از جمله آسیبپذیریها، یکی از مهمترین مسائل حوزه امنیت سایبری میباشد. تیم تخصصی ترجنس، متشکل از برترین افراد حوزه امنیت سایبری با پاسخگویی به رویدادها در سریعترین زمان سعی در جلب اعتماد مشتریان در زمینه امنیت فناوری اطلاعات دارد.
ترجنس | thregence.ir
آکادمی ترجنس | edu.thregence.ir
اینستاگرام | instagram.com/thregence
تلگرام | t.me/thregence
یوتوب | https://bit.ly/30mGowo
آپارات | aparat.com/thregence