شبکه چیست؟
در رابط اجتماعی ما به ارتباط دو یا چند نفر که برای هدفی مشخص دور یکدیگر جمع شدهاند، شبکه دوستان میگوییم. حالا این هدف میتواند به اشتراک گذاری مطالب باشه یا میتونه تبادل یک جسم باشه و یا هر چیز دیگه ای باشه.
حالا با توجه به این تعریف میتوان گفت شبکه در دنیای سیستمهای کامپیوتری به ارتباط دو یا چند کامپیوتر برای هدفی مشخص گفته میشود. در دنیای شبکه هدف ما از برقراری شبکه به اشتراک گذاری منابع است.
بخواهیم درست تر توضیح بدیم راجب شبکه در دنیای کامپیوتر نهایتا به این جمله میرسیم:
مجموعه ای از دو یا چند کامپیوتر که از یک طریق (media) به منظور به اشتراک گذاری منابع به یکدیگر متصل شده اند.
جلوتر متوجه میشویم که این media زیرساختی هست که ما برای اشتراک گذاری منابع از آن استفاده میکنیم.
خب شبکههای کامپیوتری شامل یکسری اجزا میباشند. دقت کنید که منظورم تجهیزات شبکه نیست ، کلمه اجزا با کلمه جهیزات فرق میکند. طبق تعریف بالا اجزای شبکه کامپیوتری شامل مواترد زیر میشوند:
- خود کامپیوترهای داخل شبکه
- مدیا (media)
- منابعی که به اشتراک گذاشته شده اند
- و منابعی که هنوز به اشتراک گذاشته نشده اند
ما در شبکه یک منابع به اشتراک گذاشته نشده هم داریم ه شامل شبکه ما میشود. برای مثال زمانی که یک نفر به شما میگوید از اطلاعات روی شبکه نسخه پشتیبانی بگیرید نه تنها منظورش اطلاعات به اشتراک گذاشته شده هست بلکه منظورش اطلاعات به اشتراک گذاشته نشده هم میباشد.
حلا میخوایم روی هر کدوم از این موارد بحث کینم. ما توی شبکه صرفا pc نداریم، اگه بخوایم دقیق تر توضیح دهیم کامپیوترها در داخل شبکه ما به دو دسته سرورها (servers) و کلاینتها (clients) دسته بندی میشوند.
سرور چیست؟
در برخی از کتابهای نتورک پلاس که به زبان فارسی ترجمه شدهاند به جای واژه سرور (server) از واژاه خادم کمک گرفته شده.
سرور به معنای خیلی ساده یکی از اجزای شبکه است که در شبکه به ارائه سرویس میپردازد. ما تنوع زیادی در بین سرویسهای کامپیوتری داریم برای مثال چن نمونه از سرویسها شامل موارد زیر میباشند:
- سرور file server که سرویس file sheiring ارائه کند.
- سرور domain controller (DC) سرویس اکتیو دایرکتوری ارائه میکند.
- سرورها با توجه به نقشی که در شبکه ایفا میکنند شناخته میشوند. برای مثال برخی از سرورها webserver هستند. برخی دیگر print server هستند.
تفاوت سرور و کلایت
کلاینتها (client) کامپیوترهایی هستند که سرور (server) متصل میشوند تا از سرور خدماتی را دریافت کنند. وجه تمایز کلاینتها با سرورها به دو صورت میباشد.
یک سرور هم بصورت نرمافزاری و هم بصورت سخت افزاری با یک کلاینت متفاوت است. سروری که قرار است به بقیه کامپیوترها سرویس ارائه کند هم بصورت physical (سختافزار) و هم بصورت logical (نرمافزار) نسبت به یک کلاینت برتری دارد.
برتری سرور از نظر physical (سختافزار)
سختافزار یک سرور بدلیل اینکه سرور همیشه در حال سرویس دادن است، همیشه باید فعال باشد پس باید از لحاظ physical سختافزار قوی تری داشته باشد که دچار مشکل نشود.
سختافزار یک سرور به گونهای طراحی شده که 24 ساعت شبانه روز و در 365 روز سال سرویس ارائه کند. معمولا در قرارداد شرکتها یک مفهومی به نام SLA تعریف میشود. SLA (Service Level Agreement) به معنای توافقنامه سطح خدمات میباشد.
یعنی داخل قرارداد یه مقدار به عنوان Downtime تعریف میشود که سرویس سرور شما به آن میزان میتواند در طول سال در دسترس نباشد.
بدیهی است که اگر میزان دردسترس نبودن سرویس شما از مقدار مشخص ذکر شده در قرارداد SLA بیشتر شود شما باید بابت آن خسارت پرداخت کنید.
در قراردادهای SLA مفاهیم دیگری نیز مطرح میشود که فعلا موضوع بحث ما نیست. فقط تا همین مقدار بدانید که این توافقنامه به نوعی توافقنامه مسئولیت از سمت خدمات دهنده است.
همه اینها رو گفتیم که تهش به این نتیجه برسیم سرور (server) چه از لحاظ سختافزاری و چه از لحاظ نرمافزاری باید بنیه و توان این حجم از سرویس دهی را داشته باشد.
من خیلی دوست ندارم توی این بخش به برسی سختافزار سرورها بپردازم، امیدوارم در آینده این فرصت را داشته باشم که بتونم برای شما یکسری مقاله در مورد server + قرار دهم.
به صورت کلی سرورها به گونه ای طراحی شده اند که به راحتی از کار نمیافتند. برای مثال یک سرور دارای 2 پاور میباشد که هرکدام به خودی خود میتواند برق سرور را تامین کند. در صورتی که یکی از پاورها از کار بیوفتد ، پاور دیگر به طور کامل میتواند برق سرور را تامین نماید (redundancy).
این الگوی طراحی در تمامی بخشهای سرور در نظر گرفته شده. حتی سرورها به گونه ای طراحی شدهاند که شما همزمان با فعالیتشان بتوانید قطعاتشان را تعویض یا ارتقا دهید.
شما میتوانید همزمان با فعالیت یک سرور پردازندههای مرکزی آن را به نوبت تعویض کنید، بدون آنکه مشکلی در پردازش سرورهای شما رخ دهد.(پیشنهاد میکنم حتما قبل از انجام راجب آن مطالعه نمایید.)
سرورها از نظر گرافیکی حتی ممکن است از کلاینتها ضعیف تر باشند چون سرورها عملا نیازی به کارت گرافیک نخواهند داشت. به معنای دیگر قرار نیست آنچنان پردازش گرافیکی بر روی یک سرور انجام شود. ولی در صورتی که شما روزی به یک سرور نیاز داشتید که کار پردازش کرافیکی هم انجام دهد ، میتوانید با اضافه کردن یک کارت گرافیک توان سرور خودتون رو افزایش دهید.
برتری سرور از نظر logical (نرمافزار)
سرورها از نظر نرمافزاری نیز برتری دارند. در اینجا منظور من از نرم افزار OS یا همون سیستم عامل (operating system) هست. منطقی هست که نرم افزار و کانفیگ نرمافزاری که شما بر روی یک سرور انجام میدهید با یک کلاینت متفاوت است.
سیستم عامل یک سرور ساخته شده تا به ما خدماتی رو ارائه کند، این در حالی هست که سیستم عامل یک کلاینت طراحی شده ا خدمات بگیرد.
در واقع برنامه نویس یک سیستم عامل server side به گونه ای این سیستم عامل ا برنامه نویسی کرده که به نسبت یک سیستم عامل client side بتواند یکسری سرویس به ما ارائه کند.
در اینجا قصد دارم چند نمونه از OSهای server side را به شما معرفی کنم:
- windows server 2008 R2
- windows server 2012
- windows server 2016
- windows server 2019
- Ubuntu 20 LTS
- Ubuntu 22.04 LTS
- و...
در مورد OSهای client side هم که همه راجبشون میدونیم، مثل Microsoft windows 10 ، microsoft windows 11 و...
شاید برای شما این سوال به وجود آمده که چرا یک سیستم عامل تولید نشده که هم client side باشد و هم server side باشد؟
چرا OSها تفکیک شده اند؟
بر فرض مثال اگر قرار بود شرکت Microsoft به جای ارائه دو نوع سیستم عامل، یک سیستم عامل ارائه دهد که هم سرویس ارائه کند و هم بتوان خدمات دریافت کند ما با چند مشکل روبهرو خواهیم بود:
اولین مشکل این بود که شما یک ابزاری داشتید که هم به روی سرور قابل نصب بود و هم بر روی کلاینت پس به نسبت قابلیتهای این سیستم عامل قطعا هزینه بیشتری باید برای آن پرداخت میکردید.
مورد دوم اینکه حجم این سیستم عامل قطعا به خاطر وجود فیچرها و سرویسهایی که بر روی آن وجود داشت خیلی بالا تر میرفت و در ساده ترین اتفاق نصب چنین سیستم عاملی ممکن بود زمانبر باشد.
سوم اینکه قطعا چنین سیستم عاملی بدلیل قابلیتها و فیچرهایی که بر روی خود داشت منابع بیشتری از سیستم را درگیر خود میکرد.
چهارم، شما برای کار با یک OS client side به دانش کمتری به نسبت یک OS server side نیازمند خواهید بود.
برای همین شرکت ماکروسافت دونوع سیستم عامل به ما معرفی میکند. حال اگر به سیستم عامل Server side نیاز داشتم، OS سروری نصب میکنم؛ در غیر این طورت به یک OS Client side اکتفا میکنم.
این مورد هم بهتون بگم که خود این سیستم عاملهای سمت کلاینت نیز انواع مختلفی دارند که فعلا موضوع بحث ما نیست.
Media چیست؟
برای مثال ما یکسری کامپبوتر داریم که قرار است به منظور به اشتراک گذاری منابع به یکدیگر متصل شوند یعنی با هم رتباط داشته باشند و یک connection بین این کامپیوترها برقرار باشد.
در صورتی که شما connection بین کامپیوترهای خود نداشته باشید که قادر نخواهید بو آنها را با یکدیگر شبکه کنید. حالا این connection یا همون ارتباط ممکن است به چند طریق باشد:
این connection ممکن است بصورت یک کابل باشد که شما میتوانید آن را مشاهده کنید و یا ممکن است بصورت یکسری امواج باشد که ما قادر به مشاهده آن نیستیم (وایرلس).
به مجموعه این این بستر ارتباط مدیا (Media) میگوییم. نکته دیگر این هست که خیلی از افراد تصور میکنند اینترنت هم مدیا (media) است؛ در حالی که اینترنت مدیا محسوب نمیشود.
منابع یا resources
شما ممکن است کامپیوتری داخل شبکه خودتون داشته باشید که برخی از منابع آن در شبکه شما share ویا به اشتراک گذاشته نشده باشد.
برای مثال ممکن است یک پرینتر به یک کامپیوتر متصل باشد ولی بین سایر کامپیوترهای شبکه شما به اشتراک گذاشته نشده باشد. چنین منابعی را resources میگوییم.
این منابع یا resourcesها با وجود اینکه در شبکه ما بین سایر کامپیوترها به اشتراک گذاشته نشدهاند ولی جزو اجزای شبکه ما میباشند. ممکن است در آینده ما تصمیم به اشتراک گذاری این منابع بگیریم.
منابع به اشتراک گذاشته شده یا share resources
همان طور که از منابع آن پیداست شامل منابعی میشود که در شبکه ما به اشتراک گذاشته شده است. منابع به اشتراک گذاشته شده ممکن است هر چیزی باشند. میتوانند یک فایل باشد ، یک سخت افزار باشد و یا هر چیز دیگری باشد...
تجهیزات شبکه
در شبکههای کاپیوتری ما برای برقراری ارتباط و دسترسی به منابع اطلاعات نیاز به یکسری تجهیزات داریم که این تجهیزات شامل موارد زیر میشوند:
- هاب
- روتر
- سوییچ
- سوکتها و پچ پنل
- رادیو
- و...
این موارد همگی تجهیزاتی هستند که به ما در برقراری محیط شبکه کمک میکنند و از طرفی وجودشان برای شبکه ما الزامی میباشد.
شما نمیتوانید شبکه ای داشته باشید که شامل این تجهیزات نباشد. در ساده ترین حالت شما با یک کابل باید دو کامپیوتر را به هم متصل کنید تا یک شبکه داشته باشید. در این صورت هم کابلی که شما از آن استفاده میکنید جزو تجهیزات شبکه میباشد.
سوییچ (Switch)
یکی از تجهیزات پر استفاده در شبکههای کامپیوتری سوییچ میباشد. سوییچ ها در لایه دوم مدل OSI قرار دارند ولی برخی از این دستگاهها در لایه سوم مدل OSI قرار دارند. یعنی در واقع توانایی درک Network layer را نیز دارا میباشند.
سوییچها بر اساس قابلیتها و امکاناتی که در شبکه های کاپیوتری فراهم میکنند دسته بندی های متفاوتی دارند . برای مثال برخی از سوییچها از لحاظ تعداد پورتهایی که دارند دسته بندی میشوند. برخی دیگر از سوییچها از نظر manageble و unmanageble بودن دستهبندی میشوند.
و برخی دیگر از این Deviceهای شبکه نیز بر اساس لایهای از شبکه که قدرت درک و فعالیت در آنلایه را دارند دسته بندی میشوند. خوب است بدانید Switch ها Plug & play هستند و برای اتصال آنها به یک کامپیوتر نیازی به درایور نخواهید داشت.
محل قرارگیری سوییچها در شبکه های کامپیوتری، میان workstationها میباشد. یعنی آن چیزی که در عمل شما مشاهده میکنید سوییچهای کامپیوتری در واقع در وسط شبکههای کامپیوتری قرار دارند.
در آینده بصورت مفصل راجب این Deviceهای شبکه صحبت خواهیم نمود و شما نیازی نیست که همه چیز را راجب Switch بدانید. در این مرحله صرفا خوب است با این دستگاهها در شبکه آشنا باشید.
مهمترین وظیفه Switch انجام عمل Switching هست. در زمانهای قدیم مراکز مخابراتی سرورهای هوشمندی برای انتقال تماس نداشتند. در واقع انتقال تماسهای مخابراتی بوسیله سیستم و بصورت اتوماتیک صورت نمیگرفت.
شاید در فیلمهای بسیار قدیمی دیده باشید که زمانی که یک نفر تلفن را بر میداشت، با یک اپراتور صحبت میکرد و میگفت قصد صحبت با چه شخصی را دارد. وظیفه اصلی این اپراتورها در گذشته Switching بود.
حالا یک سوییچ در شبکههای کامپیوتری وظیفه همان اپراتور یعنی Switching را بر عهده دارد. Switching به معنای این است که سوییچ میتواند تشخیص دهد یک packet در شبکه شما مربوط به چه کامپیوتری است.
بنابراین قرار نیست این سختافزارها همانند HUB یک packet را به همه ارسال کنند. Switchها امکان تشخیص فرستنده و گیرنده هر packet را دارا هستند و تنها packet را تحویل گیرنده آن میدهند.
این که یک سوییچ چگونه این کار را انجام میدهد فعلا با آن کاری نداریم ولی خوب است بدانید عمل Switching در شبکههای کامپیوتری باعث افزایش امنیت و performance شبکه میشود.
مزایای وجود شبکه
سوال اصلی آن است که اصلا ما چرا باید هزینه کنیم تا یک شبکه داشته باشیم ؟
کاهش هزینه:
اولین مزیت وجود یک شبکه کاهش هزینه هاست:
فرض کنید در یک شرکت شما میخواهید همه افراد به پرینتر دسترسی داشته باشند. در صورتی که شبکه ای نداشته باشید باید برای تمامی افراد یک دستگاه پرینتر خریداری کنید.
در حالی که اگر شما در همین شرکت شبکه داشته باشید وجود یک دستگاه پرینتر کفایت میکند. چون تمامی افراد از طریق شبکه میتوانند به آن متصل شوند.
علاوه بر این شما در شبکهها میتوانید منابع و پردازش سرورهای خودتونو بین Clientها تقسیم کنید. یعنی سرورهای شما در یک شبکه میتوانند به پردازش سریعتر Clientها کمک کنند.
صرفه جویی در زمان:
برای مثال اگر شما بخواهید یک فایل را بین 100 نفر بدون دسترسی به شبکه به اشتراک بگذارید. باید این فایل را بروی 100 سیدی (CD) رایت کنید و یا این فایل را بر روی 100 memory ذخیره کنید که خود اینکار ممکن است بسته به نوع و حجم فایل ساعتها زمانبر باشد.
تازه این در صورتی است که در فرایند ذخیره سازی فایل به مشکلی برنخورید. درحالی که شما اگر یک شبکه داشته باشید طی چند دقیقه میتوانید یک فایل را برای دیگر کامپیوترها به اشتراک بگذارید.
مدیریت ریسک:
شما در جایی که شبکه وجود دارد میتوانید ریسک از بین رفتن اطلاعات را کاهش دهید.
از طرفی شما در شبکه قابلیت مدیریت توسط سیستمهای مدیریت یکپارچه و اتوماسیون اداری را خواهید داشت. در کل در شبکه شما دغدغه از دست دادن دیتا را نخواهید داشت یا بهتر بگم کمتر خواهید داشت.