سفارش تبلیغ
صبا ویژن

سطوح دسترسی به فایل یا File Level Permissions

در این مقاله برای تکمیل مقالات قبلی در خصوص سطح دسترسی فایل صحبت خواهیم کرد. در مقاله قبلی به این موضوع اشاره کردیم که پوشه های اشتراکی هم می توانند توسط سطوح دسترسی اشتراکی یا Share Permissions و یا سطوح دسترسی فایل و پوشه یا NTFS Permissions ایمن سازی شوند. در مقاله قبلی به شما آموزش سطوح دسترسی اشتراکی و چگونگی اعمال آنها بر روی پوشه های اشتراکی را شرح دادیم و گفتیم که علاوه بر این نوع سطح دسترسی شما می توانید با استفاده از NTFS Permissions نیز پارامترهای امنیتی بیشتری را به فایل ها و پوشه های خود اضافه کنید . در این مقاله به شما آموزش اعمال کردن سطوح دسترسی فایل و پوشه را از طریق NTFS Permisions را به شما آموزش خواهیم داد .

دستور Convert برای تبدیل FAT به NTFS
همانطوری که قبلا هم شرح دادم برای اینکه بتوانیم از NTFS Permissions برای ایمن سازی فایل ها و پوشه ها استفاده کنید ، درایو کامپیوتر شما بایستی توسط فایل سیستم NTFS فرمت شده باشد .اگر درایو کامپیوتر دارای فایل سیستم FAT یا FAT32 باشد صرفا میتوان از سطوح دسترسی اشتراکی استفاده کرد و قابلیت سطح دسترسی فایل و پوشه وجود ندارد . خبر خوب این است که شما برای اینکه بتوانید فایل سیستم های FAT و FAT32 را به NTFS تبدیل کنید نیازی نیست که درایو خود را فرمت کنید . شما می توانید با استفاده از دستور Convert اینکار را انجام بدهید . اگر درایو کامپیوتر شما از الان NTFS است دیگر نیازی به انجام این مرحله نیست و می توانید از این مرحله عبور کنید .استفاده از دستور Convert بسیار ساده است ، شما براحتی و در ساده ترین حالت ممکن می توانید با وارد کردن دستور Convert و مشخص کردن نام درایو کامپیوتر آنرا به NTFS تبدیل کنید . برای مثال شما می خواهید درایو D را که دارای فایل سیستم FAT32 است را به فایل سیستم NTFS تبدیل کنید بدون اینکه اطلاعات شما از بین برود ، دستور مورد نظر به شکل زیر خواهد شد :

CONVERT D: /FS:NTFS

معمولا همین دستور ساده کار ما را راه می اندازد ، دو سویچ برای این دستور وجود دارد که پیشنهاد می کنم که از آنها نیز استفاده کنید .اولین سویچ استفاده از X در انتهای دستور است . این دستور به درایو دستور می دهد که در هنگام تبدیل به حالت dismount در بیاید تا زمانی که فرآیند تبدیل کامل شود . دلیل استفاده از این سویچ این است که از تخریب فایل هایی که در هنگان تبدیل شدن به NTFS باز هستند جلوگیری می کند . در صورت عدم استفاده از این سویچ ممکن است در هنگام تبدیل شدن فایل های باز دچار مشکل شوند . سویچ دیگری که به شما پیشنهاد می کنم که از آن استفاده کنید سویچ Nosecurity است . این سویچ به دستور می گوید که پس از تبدیل شدن به NTFS دسترسی به محتویات درایو را برای همه مجاز بدان و به همه یا به اصطلاح Everyone دسترسی کامل به درایو را بده . این دستور به شما این قابلیت را میدهد که بتوانید پس از انجام شدن فرآیند تبدیل ، بتوانید از اول تمامی دسترسی های کاربران به سیستم را ایجاد کنید . در صورت عدم استفاده از این دستور ، سیستم بصورت پیشفرض دسترسی ها را برای کاربران ایجاد می کند . بعد از اینکه هر دوی این سویچ ها به دستور convert اضافه شد ، دستور به شکل زیر در می آید :

CONVERT D: /FS:NTFS /X /NoSecurity


NTFS Permissions یا سطوح دسترسی در ویندوز
در بیشتر مواقع پیاده سازی NTFS Permissions بسیار ساده است . فقط کافیست بر روی پوشه یا فایلی که می خواهید راست کلیک کنید و گزینه Properties را بزنید . پس از ورود به قسمت Properties تب Security را انتخاب کنید و تصویری مشابه شکل الف مشاهده خواهید کرد :

سطوح دسترسی فایل File Levele Permissions

 NTFS Permissions با استفاده از تب Security موجود در Properties پوشه ها و فایل ها پیاده سازی می شود

همانطور که مشاهده می کنید ، قسمت بالایی تب Security دارای یک لیست از کاربران و گروه های می باشد . شما می توانید براحتی با استفاده از دکمه Add و یا Remove کاربران و گروه ها را اضافه و حذف کنید .شما براحتی ابتدا بر روی گروه یا کاربر مورد نظر خود در قسمت بالایی کلیک کنید و سپس در قسمت پایین با استفاده از چک باکس های موجود دسترسی های مورد نظر خود را تعیین کنید . Permission ها یا سطوح دسترسی که در قسمت پایین تب مشاهده می کنید تا حد زیادی مفهوم و قابل درک هستند و فکر نمی کنم توضیحاتی در مورد اینکه چه دسترسی هایی را به افراد می دهند لازم باشد ارائه کنیم . دو مورد هست که شما بایستی در خصوص این تب بدانید ، اولین نکته این است که شما می توانید یک سطح دسترسی را در حالت Allow و یا Deny و یا اینکه هیچکدام قرار بدهید . همیشه در ذهن داشته باشید که دسترسی Deny بر روی دسترسی Allow به اصطلاح Override کرده و جایگزین می شود . نکته دیگری هم در این میان هست ، اگر شما به کسی دسترسی ندهید ، یا به قولی هیچکدام از این چک باکس ها را پر نکنید به این معناست که به وی دسترسی مورد نظر را نداده اید مگر اینکه از طریق قابلیت inheritance یا ارث بری بتواند به منبع مورد نظر دسترسی پیدا کنید . در خصوص ساختار موروثی و inheritance بعدا بیشتر صحبت خواهیم کرد .

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

سطوح دسترسی به فایل یا File Level Permissions

 دو عدد چک باکس در پایین قسمت Permissions ها قرار دارد که به شما اجازه مدیریت ارث بری یا inheritance را می دهد.

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

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

تضادها و مشکلات در خصوص NTFS Permissions
یکی از نکات مهم در سیستم عامل ویندوز بوجود آمدن مغایرت ها و تضاد های امنیتی بین شیوه کارکرد فایل سیستم NTFS و روشی که تنظیمات امنیتی در ویندوز کار می کند است . برای مثال فکر کنید که یک کاربر محدود شده ناخواسته در گروهی عضویت پیدا می کند که دسترسی کاملی به پوشه های اشتراکی و فایل های ویندوز دارد ، به دلیل اینکه در عضویت این گروه جدید در آمده است ، کلیه دسترسی هایی که این گروه دارا می باشد را بدست می آورد . به یاد مفهوم Group Nesting که در مقالات قبلی به آن اشاره کردم بیافتید که چه اتفاقی ممکن است در این مورد رخ دهد . ممکن است در همین لحظه کلیه تنظیمات امنیت ما دچار مشکل شده و نظم شبکه شما به هم بریزد .

با توجه به اینکه این سری مقالات برای مبتدی ها نوشته شده است ، من وارد پیچیدگی های کاری و قوانینی که در این زمینه وجود دارد نمی شوم . فقط نکته بسیار مهم در این قوانین این است که دسترسی Deny همیشه و همیشه بر روی دسترسی های دیگر override یا جایگزین می شود . همیشه این نکته را در ذهن داشته باشید . برای اینکه بتوانید متوجه شوید که در نهایت چه نوع دسترسی به کاربر مورد نظرتان اعمال می شود ، فارق از اینکه در چه گروه هایی عضو هست ، استفاده از تب Effective Permissions است ، در این تب به شما اعلام می شود که کاربر مورد نظر در نهایت چه نوع دسترسی به منابع سیستم و این پوشه یا فایل خواهد داشت .خوب تا همین الان وارد قسمت Advanced و انجام تنظیمات امنیتی شده ایم ، در همینجا به تب Effective Permissions بروید و در نهایت در این تب تصویری مشابه شکل ج را مشاهده خواهید کرد . این تب به شما این اجازه را می دهد که نام کاربری یا گروه مورد نظر خود را وارد کنید و مشاهده کنید که در نهایت چه نوع دسترسی برای این کاربر یا گروه خاص اعمال شده است .

سطوح دسترسی فایل File Level Permissions

تب Effective Permissions به شما امکان این را می دهد که بتواندی دسترسی های نهایی که به یک کاربر یا گروه اعمال شده را ببینید
اگر اطلاعات بیشتری در خصوص Effective Permissions نساز دارید بر روی لینکی که در پایین همان تب وجود دارد کلیک کنید و اطلاعات مورد نظر خود را بدیت بیاورید .


سطوح دسترسی اشتراک یا Share Level Permissions

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

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

نکته بسیار بسیار مهمی که در خصوص پوشه های به اشتراک گذاشته شده بایستی بدانید این است که امنیت در این موارد در دو سطح متفاوت وجود دارد ، سطح اشتراک Share Level و سطح فایل File Level که هر کدام به نوبه خود دارای امکانات امنیتی ویژه ای هستند که بر حسب شرایط از یک یا هر دوی این سطوح امنیتی استفاده می شود . سطوح امنیتی دسترسی اشتراکی یا Share Level Security مستقیما به نقطه به اشتراک گذاشته شده اشاره می کنند که شما ایجاد کرده اید . زمانی که کاربران از طریق شبکه به این پوشه های اشتراکی متصل می شوند اینگونه سطوح دسترسی اعمال می شود . در مقابل سطوح دسترسی فایل یا File Level Permissions دقیقا به فایل ها و پوشه هایی اشاره می کنند که درون این پوشه به اشتراک گذاشته شده قرار گرفته اند و با خود نقظه اشتراک یا پوشه Share شده کاری ندارند .

دلیل اینکه سطوح امنیتی در ویندوز در دو سطح مجزا تعیین شده است تا حدود زیادی به انقلابی که ویندوز ایجاد کرد باز می گردد. سیستم عامل ویندوز از دو نوع قالب بندی هارد دیسک یا بهتر بگوییم فایل سیستم به نام FAT و NTFS پشتیبانی می کند . سیستم فایل FAT از سیستم فایل های قدیمی محسوب می شود که از سال 1980 در سیستم عامل ها قرار گرفت و چندان دیدگاه امنیتی در این نوع فایل سیستم وجود نداشت . از طرفی دیگر NTFS فایل سیستمی است که کاملا با دیدگاه امنیتی ایجاد شد ، شما در درایوی که از NTFS استفاده میکند می توانید برای هر پوشه و یا فایل بصورت جداگانه سطوح دسترسی برای کاربران تعیین کنید و اینکار با فایل سیستم FAT قابل پیاده سازی نیست .

از آنجایی که FAT سطوح دسترسی در سطح فایل ها و پوشه ها را بر روی سیستم پشتیبانی نمی کرد ، مایکروسافت برای اینکه تا حدی بتواند این نقطه ضعف امنیتی را در منابع اشتراکی جبران کند سطوح دسترسی اشتراکی یا Share Level Permissions را ایجاد کرد . امروزه بیشتر سیستم هایی که مشاهده می کنید از فایل سیستم NTFS استفاده می کنند و فایل سیستم FAT در حال انقضاء است . شما همچنان می توانید از قابلیت های سطوح دسترسی اشتراکی یا Share Level Permissions استفاده کنید اما همیشه بهترین روش استفاده از سطوح دسترسی در سطح فایل یا File Level Security است که در NTFS وجود دارد .برای بدست آوردن اطلاعات بیشتر در خصوص File System میتوانید به مقاله مهندس قرباوی در خصوص انواع فایل سیستم در این لینک مراجعه کنید.

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

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

سطوح دسترسی در سطح فایل ها حتی زمانی که سیستم با یک سیستم عامل دیگر Boot شود و یا اینکه هارد دیسک سیستم را جدا کرده و در ماشین دیگری قرار بدهیم باز هم قابلیت های خود را دارند و امیت را برقرار می کنند . سطوح دسترسی اشتراکی دارای چنین قابلیت هایی نیستند و به سادگی قابل دور زدن هستند . خوب با توجه به توضیحاتی که دادیم سطوح دسترسی اشتراکی بسیار ضعیفتر از سطوح دسترسی فایل و پوشه هستند ، در اینجا ممکن است یک سئوال برایمان پیش بیاید که به چه دلیل ما از سطوح دسترسی اشتراکی یا Share Permissions استفاده میکنیم ؟ چرا وقتی چنین ضعف ها امنیتی بزرگی در یک ساختار وجود دارد ، باز هم ما از آن استفاده میکنیم ؟ پاسخ ساده است ، ما برای متصل شدن به پوشه ها در سطح شبکه به یک نقطه ورود یا Entry Point نیاز داریم که در اینجا Share Permission ها اینکار را برای ما انجام می دهند . در اینجا ما با استفاده از سطوح دسترسی فایل یا NTFS Permissions فایل های خود را امین سازی و سطوح دسترسی را برای آنها تعیین می کنیم ، مشاهده می کنید که ما بایستی بصورت ترکیبی از این دو نوع سطوح دسترسی استفاده کنیم .

همانطوری که می دانید در مقاله های قبلی یک پوشه اشتراکی به نام Data ایجاد کردیم و آنرا به اشتراک گذاشتیم . برای اینکه بتوانید سطوح دسترسی به این پوشه اشتراکی را تعیین کنید بایستی بر روی پوشه مورد نظر راست کلیک کرده و قسمت Properties را انتخاب کنید . حال به تب Sharing وارد شوید . همانطور می بینید یک دکمه به نام Permissions وجود دارد . شما با کلیک کردن بر روی این دکمه می توانید سطوح دسترسی اشتراکی یا Share Level Permissions را تعیین کنید .

سطوح دسترسی اشتراکی Share Level Permissions


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

نکته دیگری که در خصوص سطوح دسترسی فایل و پوشه بایستی بدانید این است که به دلیل وجود همین خاصیت سلسله مراتبی بودن و موروثی بودن که به اصطلاح inheritance نیز گفته می شود بسیاری از سطوح دسترسی بصورت خودکار به وجود خواهند آمد .ار به تصویر ب توجه کنید تب Security را با تمامی جزئیات آن مشاهده می کنید . همانطور که در تصویر مشاهده می کنید چندین نوع سطح دسترسی برای پوشه ها بصورت پیشفرض ایجاد شده است . الان قصد ندارم که ریز به ریز کلیه این خصوصیات را برای شما تشریح کنم و به امید خدا در مقالات بعدی هر یک از این سطح دسترسی ها را به هم مرور خواهیم کرد . فقط در این لحظه به خاطر بسپارید که به محض ایجاد شدن پوشه ، یک سری دسترسی های بصورت خودکار برای آن از طریق NTFS Permissions ایجاد می شود .

سطوح دسترسی اشتراکی NTFS Permissions


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


اشتراک گذاری منابع در شبکه یا Resource Sharing

در این مقاله بصورت مقدماتی به شما آموزش می دهیم که چگونه منابع را برای دسترسی تحت شبکه آماده کنید . در مقاله قبل در خصوص لایه های OSI و چگونگی استفاده از این مدل برای تفکیک بین سخت افزار و نرم افزار در این لایه ها توضیح دادیم . در این مقاله می خواستم رابطه پشته پروتکل یا Protocol Stack و چگونگی کارکرد این پشته با مدل OSI را تشریح کنم . اما وقتی بیشتر فکر کردم متوجه شدم که عنوان مطلب کمی پیچیده خواهد شد و این مطلب چندان برای مدیران شبکه تازه کار جذاب نیست . و به همین دلیل تصمیم گرفتم به جای آن در خصوص اشتراک گذاری منابع در شبکه مقاله را ادامه بدهم .

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

اشتراک منابع در شبکه


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

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

قبل از شروع
خوب قبل از اینکه شروع کنیم ، بهتر است به شما بگویم که اطلاعاتی که در این قسمت در اختیار شما دوستان قرار می دهم ، بر اساس ویندوز سرور 2003 است ، ویندوز سرور 2003 ، ویندوز XP و تمامی نسخه های قبلی ویندوز که قابلیت File and Folder Sharing یا اشتراک پوشه و فایل را پشتیبانی می کنند همه تقریبا با یک روش اینکار را انجام می دهند . شاید شیوه به اشتراک گذاشتن پوشه ها و فایل ها در نسخه های مختلف ویندوز کمی متفاوت باشد اما مبانی و پایه و اساس آنها یکی است . ویندوز سون و ویستا نیز از همین روش با کمی تفاوت برای اشتراک گذاری استفاده می کنند . بعد ها در خصوص اشتراک گذاری اطلاعات در ویندوز سون هم بحث خواهیم کرد . فقط الان در ذهن داشته باشید که هر چیزی که در این مقاله میخوانید را میتوانید در ویندوز سون و ویستا هم پیدا کنید و مشابه همین کار در آنجا هم انجام می شود .

ایجاد یک File Share
قبل از اینکه بخواهید فایل های موجود بر روی سرور را به اشتراک بگذارید ابتدا بایستی یک File Share ایجاد کنید . File Share در حقیقت نقطه ورود و دسترسی کاربران شما به پوشه های به اشتراک گذاشته شده است . دلیل ایجاد یک File Share مشخص است ، شما قرار نیست کل محتویات سرور خود را به اشتراک بگذارید و به همین دلیل نیاز است که موارد خاصی را که مد نظر دارید به اشتراک بگذارید که File Share اینکار را برای شما انجام می دهد . ریسک امنیتی به اشتراک گذاشتن سرور بسیار بالا است.

ایجاد کردن File Share بسیار آسان است ، کافیست در محلی که قرار است پوشه ای را به اشتراک بگذارید یک پوشه ایجاد کنید . برای مثال برخی از فایل سرور ها این File Share را بر روی دستگاه های ذخیره سازی مانند SAN و NAS که دارای هارد دیسک ها قوی و ویژه اینکار هستند قرار می دهند و فایل های سیستم عامل را از فایل های به اشتراک گذاشت هشده جدا می کنند . این نکته را به یاد داشته باشید ، شما نمیتوانید یک فایل را به تنهایی به اشتراک بگذارید و بایستی آنرا درون یک پوشه با اشتراک گذاشته شده قرار دهید ، یک فایل به خودی خود قابل اشتراک گذاری نیست . به همین دلیل است که شما پوشه ای به عنوان File Share ایجاد می کنید .

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

اگر شما در درایو های خود چندین پوشه دارید که همگی را می خواهید به اشتراک بگذارید ، نگران نباشید ، شما میتوانید یک پوشه جدید ایجاد کرده و تمامی پوشه های موجود را به درون این پوشه جدید منتقل کنید . راهکار دیگر این است که File Share های خود را در سطح درایو های خود ایجاد کنید و پوشه های هر درایو را به درون این File Share قرار بدهید . برای اینکه در این مقاله به نتیجه اولیه برسیم فرض می کنیم که شما یک پوشه ایجاد کرده اید که دارای چندین زیر مجموعه از قبیل پوشه های و فایل ها است و شما قصد دارید در سطح پوشه اصلی این اشتراک را ایجاد کنید . بعد از اینکه این پوشه را ایجاد کردید کافیست بر روی آن راست کلیک کرده و به تب Sharing and Security بروید .
اشتراک گذاری فایل در شبکه


همانطور که در شکل الف می بینید ، تب Sharing این امکان را به شما می دهد که تصمیم بگیری که این پوشه را به اشتراک بگذارید یا خیر . وقتی شما گزینه Share this Folder را انتخاب بکنید ، از شما یک نام پرسیده می شود که Share Name نام دارد و در واقع نامی است که کاربران تحت شبکه به هنگام متصل شدن به سرور شما با آن مواجه خواهند شد . این Share Name بسیار بحث مهمی در به اشتراک گذاری پوشه ها است ، سعی کنید در انتخاب اسامی پوشه های اشتراکی از نام های مفهوم و مشخص ، کمتر از 16 کاراکتر و همچنین بدون استفاده از کاراکتر فاصله استفاده کنید تا مشکلات Backward Compatibility را نداشته باشید . همچنین نکته ای که در انتخاب Share Name وجود دارد این است که در صورتیکه شما در انتهای Share Name کاراکتر دلار یا $ را قرار دهید این پوشه بصورت مخفی به اشتراک گذاشته می شود . ویندوز به این قابلیت Hidden Share می گوید . به خاطر داشته باشید که ما بصورت پیشفرض بر روی ویندوز چندین Hidden Share داریم که بعد ها در خصوص آنها صحبت خواهیم کرد .

قسمت Comment به شما این اجازه را می دهد که در خصوص پوشه ای که به اشتراک گذاشته اید توضیحاتی را ارائه دهید تا مشخص شود محتویا این پوشه در مورد چه چیزهایی است .این در اصل یک هدف مدیریت شبکه ای است و اجباری نیست ، قرار دادن توضیحات کاری کاملا اختیاری است اما همیشه سعی کنید شبکه خود را مستند و منظم نگه دارید . حالا به قسمت User Limit توجه کنید . مشاهده می کنید که بصورت پیشفرض این قسمت به صورت Maximum Allowed یا حداکثر ممکن قرار داده شده است . زمانی که ویندوز سرور را نصب میکنید شما بایستی به اندازه تعداد کاربران یا بهتر بگوییم تعداد Client های شبکه ی خود لایسنس داشته باشید . شما می توانید لایسنس ها یا مجوز ها را به دو شکل تهیه کنید و سفارش دهید ( البته نه در ایران ) ، یا بر اساس هر کاربری که در شبکه دارید و یا بر اساس تعداد Connection ها یا ارتباطاتی که قرار است به سرور داشته باشید . در اینجا منظور از Maximum Connections یعنی اینکه آنقدر کاربر و اتصال می تواند به این پوشه به اشتراک گذاشته شده متصل شوند تا زمانی که تعداد مجاز لایسنس های خریداری شده تمام شود ، زمانی که شما لایسنس خود را در حالت Per Client License Mode تهیه میکنید معمولا می توانید بصورت نامحدود به پوشه مورد نظر ارتباط همزمان برقرار کنید ، اما برای اینکه خیالتان راحت باشد همیشه موضوع لایسنس را در نظر داشته باشید ، در هنگام نصب ویندوز سرور 2003 از شما در خصوص نوع لایسنس ها سئوال می شود . نکته اصلی اینجاست که اینجا ایران است و به قول خودمانی I Love Your Microsoft یعنی ما نیازی به خرید لاینسنس نداریم و همه چیز در ایران رایگان است ، فقط خواستم اشاره ای داشته باشم که اینگونه مسائل حاشیه ای نیز وجود دارند D:

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


هفت لایه OSI یا مدل مرجع OSI

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

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

البته این یک پیش زمینه در این خصوص است و طبیعتا نمیتوان درک کاملی از موضوع را با این روش بیان کرد . همه چیز تا حدی در زمینه ارسال اطلاعات در شبکه تا حدی پیچیده است . به یاد داشته باشید که کارت شبکه یا همان NIC فقط برای ارسال و دریافت داده ها ساخته شده است . این کارت هیچ چیز در مورد ویندوز و نرم افزار های کاربردی آن نمیداند و حتی در مورد پروتکل ها هم هیچ تصوری ندارد ، در اصل یک دستگاه کاملا Passive محسوب می شود . در مثالی که برایتان گفتم ، در واقع سه لایه کاری را برایتان عنوان کردیم ، لایه نرم افزارهای کاربردی ( Application) ، لایه سیستم عامل ( Operating System ) و لایه فیزیکی سخت افزار . تمامی این لایه های وجود دارند اما نه دقیقا با همین عنوان ، هر کدام از این لایه های به خودی خود به یک سری زیر لایه تقسیم می شوند .

قبل از اینکه وارد مبحث لایه شویم و عملکرد هر کدام از این لایه ها را بررسی کنیم باید به این نکته توجه کنید که مفاهیمی که من در مورد آنها به شما در این مقاله آموزش می دهم بسیار خلاصه شده است . شما وقتی بر روی local are connection خود راست کلیک کنید  ، این قسمت از اجزای مختلفی تشکیل شده است ، اجزایی مانند network client ، network adapter driver و protocol ها و ... هر یک از این اجزاء وابسته به یک یا چند لایه از همان لایه هایی است که عنوان کردیم .

لایه های OSI

مدل شبکه ای که ویندوز و بسیاری دیگر از سیستم عامل های دیگر از آن استفاده می کنند به نام مدل مرجع OSI شناخته می شود. واژه OSI مخفف کلمه Open System Interconnection است . مدل OSI شامل هفت لایه مختلف است که هر کدام از لایه های موجود در این مدل مرجع وظیفه خاصی را بر عهده دارند و کار خاصی بر عهده هر کدام از این لایه ها می باشد . این لایه ها بین لایه بالاتر و پایینتر خد قرار گرفته و به آنها سرویس می دهند . در واقع هر لایه با لایه پایینتر و بالاتر خود وابسته است .
مدل مرجع OSI


پشت سر هم بودن و نظم بسته های اطلاعاتی یا packet ها در شبکه بسیار مهم است به دلیل اینکه هر پروتکلی برای خود حداکثر اندازه ای برای بسته اطلاعاتی تعیین کرده است. برخی اوقات اندازه بسته اطلاعاتی از اندازه تعیین شده آن بیشتر می شود و به همنی دلیل داده ها به بسته های کوچکتری تقسیم می شوند و هر یک تشکیل یک بست هرا می دهند به اینکار به اصطلاح Fragment کردن می گویند .

لایه کاربردی یا Application Layer
بالاترین لایه در مدل مرجع OSI لایه کاربرد یا Application است . اولین نکته ای که در خصوص لایه کاربرد یا Application باید بدانید این است که به هیچ عنوان این لایه با نرم افزارهای کاربردی ارتباطی ندارد و صرفا یک تشابه اسمی است .در عوض این لایه محیطی را ایجاد میکند که نرم افزارهای کاربردی بتوانند از طریق آن با شبکه ارتباط برقرار کنند . برای اینکه درک بهتری از لایه کاربرد داشته باشید فرض کنید که یک کاربر با استفاده از نرم افزار Internet Explorer قصد دارد از طریق پروتکل FTP یک فایل را در شبکه منتقل کند . در این مورد لایه کاربرد به وظیفه برقراری ارتباط با پروتکل FTP برای انتقال فایل را بر عهده دارد . این پروتکل بصورت مستقیم برای کاربران قابل دسترسی نیست ، کاربر بایستی با استفاده از یک نرم افزار رابط مانند Internet Explorer برای برقراری ارتباط با پروتکل مورد نظر استفاده کند . بصورت خلاصه در تعریف کارایی این لایه می توان گفت که این لایه رابط بین کاربر و شبکه است و تنها قسمتی از این مدل هفت لایه ای است که کاربر تا حدی می تواند با آن ارتباط برقرار کند .

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

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

لایه انتقال یا Transport
لایه انتقال وظیفه نگهداری و کنترل ریزش اطلاعات یا Flow Control را بر عهده دارد . اگر به خاطر داشته باشید سیستم عامل ویندوز به شما این اجازه را میدهد که همزمان از چنیدن نرم افزار استفاده کنید . خوب همین کار در شبکه نیز ممکن است رخ بدهد ، چندین نرم افزار بر روی سیستم عامل تصمیم میگیرند که بصورت همزمان بر روی شبکه اطلاعات خود را منتقل کنند . لایه انتقال اطلاعات مربوط به هر نرم افزار در سیستم عامل را دریافت و آنها را در قالب یک رشته تکی در می آورد . همچنین این لایه وظیفه کنترل خطا و همچنین تصحیح خطا در هنگام ارسال اطلاعات بر روی شبکه را نیز بر عهده دارد . بصورت خلاصه وظیفه لایه انتقال این است که از رسیدن درست اطلاعات از مبدا به مقصد اطمینان حاصل کند ، انواع پروتکل های اتصال گرا یا Connection Oriented و غیر اتصال گرا Connection Less در این لایه فعالیت میکنند .

لایه شبکه یا Network
وظیفه لایه شبکه این است که چگونگی رسیدن داده ها به مقصد را تعیین کند . این لایه وظایفی از قبیل آدرس دهی ، مسیریابی و پروتکل های منطقی را عهده دار است . بیشتر مخاطبین این مقاله افراد تازه وارد به دنیای شبکه هستند پس من هم وارد جزئیات فنی این لایه نمی شوم ، اما به شما می گویم که لایه شبکه مسیرهای منطقی یا Logical Path بین مبدا و مقصد ایجاد میکند که به اصطلاح مدارهای مجازی یا Virtual Circuits نامگذاری می شوند ، این مدارها باعث میشن که هر بسته اطلاعاتی بتواند راهی برای رسیدن به مقصدش پیدا کند . لایه شبکه همچنین وظیفه مدیریت خطا در لایه خود ، ترتیب دهی بسته های اطلاعاتی و کنترل ازدهام را نیز بر عهده دارد .ترتیب بسته های اطلاعاتی بسیار مهم است زیرا هر پروتکلی برای خود یک حداکثر اندازه بسته اطلاعاتی تعریف کرده است . برخی اوقات پیش می آید که بسته های اطلاعاتی از این حجم تعریف شده بیشتر می شوند و به ناچار اینگونه بسته های به بسته های کوچکتری تقسیم می شوند و برای هر کدام از این بسته های اطلاعاتی یک نوبت یا Sequence داده می شود که معلوم شود کدام بسته اول است و کدام بسته دوم و .... به این عدد به اصطلاح Sequence Number هم گفته می شود .

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

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

لایه انتقال داده یا Data Link
لایه انتقال به خودی خود به دو زیر لایه به نام های MAC که مخفف Media Access Control و LLC که مخفف Logical Link Control هست تقسیم می شود . زیر لایه MAN همانطوری که از نامش پیداست شناسه سخت افزاری کامپیوتر که در واقع همان آدرس MAC کارت شبکه است را به شبکه معرفی میکند . آدری MAC آدرس سخت افزاری است که در هنگام ساخت کارت شبکه از طرف شرکت سازنده بر روی کارت شبکه قرار داده می شود و در حقیقت Hard Code می شود .این در حقیقت مهمترین فاکتوری است در آدرس دهی که کامپیوتری از طریق آن بسته های اطلاعاتی را دریافت و ارسال می کند . زیر لایه LLC وظیفه کنترل Frame Synchronization یا یکپارچه سازی فریم ها و همچنین خطایابی در لایه دوم را بر عهده دارد .

لایه فیزیکی یا Physical Layer
لایه فیزیکی در مدل مرجع OSI در حقیقت به ویژگیهای سخت افزاری کارت شبکه اشاره می کند . لایه فیزیکی به مواردی از قبیل زمانبندی و ولتاژ برقی که قرار است در رسانه منتقل شود اشاره می کند . این لایه در واقع تعیین میکند که ما به چه شکل قرار است اطلاعات خود را و از طریق چه رسانه ای انتقال دهیم ، برای مثال رسانه ما کابل فلزی است یا تجهیزات بی سیم ؟ برای راحت کردن درک این لایه بعتر است بگوییم لایه فیزیکی تعیین میکند که اطلاعات چگونه در سطح رسانه دریافت و ارسال شوند . عملیات Coding نیز که به معنای تعیین کردن صفر و یک در رسانه است نیز در این لایه انجام می شود .

کارکرد دو طرفه
در همین مقاله اشاره کردیم که در مدل مرجع OSI یک نرم افزار کاربردی نیاز دارد که اطلاعات را در شبکه منتقل کند . اما به خاطر داشته باشیم که عکس این عمل نیز در مقابل و در کامپیوتر مقصد نیز بایستی انجام شود یعنی لایه های OSI در کامپیوتر مقصد عکس همین اعمالی را انجام میدهد که در مبدا انجام می دهند . به فرآیند ایجاد بسته های اطلاعاتی برای ارسال در شبکه Encapsulation یا کپسوله سازی و به فرآیند از بسته خارج کردن اطلاعات ار بسته های اطلاعاتی Decapsulation یا از کپسول حارج کردن هم می گویند که برخی اوقات ممکن است به عنوان Assemble و Disassemble نیز بکار برده شود . برای اینکه راحتتر بتوانید ترتیب لایه ها را حفظ کنید به دو جمله زیر توجه کنید که فرآیند Encapsulation و Decapsulation را به خوبی تشریح می کنند :

All People Seem To Need Data Processing
Please Do Not Through Sausage Pizza Away


نقش سیستم عامل های ویندوزی در شبکه های کامپیوتری

در این مقاله به بررسی و توضیح در خصوص نقش سیستم عامل های مایکروسافتی یا بهتر بگوییم ویندوز در شبکه های کامپیوتری خواهیم پرداخت . ماه پیش یکی از همکاران ما در وب سایت ایمیلی برای من ارسال کرده بود و سئوال کرده بود که چرا بیشتر مباحثی که در مقاله های خود مینویسید مربوط به سیستم عامل ویندوز است ؟ من کاری به این کار نداشتم که این دوست ما علاقه مند به سیستم عامل لینوکس است و یا با سیستم عامل های مایکروسافت مشکل دارد و صرفا به بررسی منطقی این قضیه میپردازم که چرا بیشتر در خصوص ویندوز صحبت می کنیم . همانطوری که شما هم میدانید شبکه های کامپیوتری بسیار قبل تر از اینکه ویندوز به وجود بیاید وجود داشتند . فقط به این مورد اشاره کنم که این مقاله رو در پاسخ به ایمیل همین دوست و همکار عزیزمون نوشته ام اما اصلا سوء برداشت نداشته باشید و این رو بدونید که من خودم لینوکسی هم هستم و عاشق سیسکو هم هستم اما در این مورد که را بیشتر مقالاتم در خصوص سیستم عامل ویندوز نوشته می شود برایتان توضیحاتی ارائه میدهم .

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

تاریخچه ویندوز


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

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

ویندوز با دنیای کامپیوتر چه کرد ؟
خوب من در اینجا نمی خواهم با مخالفان ویندوز درگیر شود و فقط مسئله تجاری موضوع را مورد بررسی قرار می دهم . دلیل اینکه ویندوز به چنین سیستم عامل قوی و پرکاربردی تبدیل شد حل کردن دو مشکل بزرگ دنیای فناوری اطلاعات در زمان بوجود آمدنش بود . اولین مشکلی که ویندوز حل کرد ، کاربری آسان برای کاربران بود ، در آن زمان برای استفاده از سیستم شما صرفا میبایست از دستورات استفاده میکردید ، این خود مشکلات زیادی را برای کاربران سیستم ایجاد میکرد ، قبل از بوجود آمدن ویندوز 3.1 که بصورت گرافیکی کار میکرد همه سیستم عامل ها از سیستم عامل MS-DOS که یک سیستم عامل خط فرمانی است استفاده میکردند . DOS مخفف کلمه Disk Operating System است . سیستم عامل DOS بسیار سیستم عامل خوبی بود اما چند نقطه ضعف یا بهتر بگوییم کمبود جدی داشت . برای تازه کاران این سیستم عامل صرفا خط فرمانی بود و صرفا تمامی دستورات بایستی در قالب دستور وارد میشدند ، این بدین معناست که اگر شما قصد داشتید یک نرم افزار را اجرا کنید دیگر خبری از ماوس و کلیک کردن بر روی آن نبود و شما میبایست دستورات معادل اجرای آن نرم افزار را دانسته و آنها را در خط فرمان وارد کنید تا نرم افزار مورد نظرتان اجرا شود . اگر میخواستید بدانید که چقدر فضای خالی بر روی دیسک خود دارید به جای اینکه راست کلیک کنید و Properties بگیرید شما باید دستور CHKDSK و یا DIR را در خط فرمان وارد میکردید .

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

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

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

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

نکته مهم در این است که تفکیک نرم افزار از درایور سخت افزار به همه کمک میکند . برنامه نویس ها دیگر نیازی نیست که برای نرم افزارهای خود درایور سخت افزار بنویسند و همچنین مصرف کنندگان هم دیگر نیازی به ارتقاء سخت افزار های قدیمی نخواهند داشت ( البته فارق از حداقل نیازمندیهای نرم افزار ) ، دیگر هیچکدام نگران این موضوع نیستند که فلان نرم افزار با فلان سخت افزار کار نمیکند و بر عکس ....