طراحی شبکه ها و اصول لایه بندی
برای طراحی یک شبکه ی کامپیوتری ، مسائل و مشکلات بسیار گسترده و متنوعی وجود دارد که باید به نحوی حل شود تا بتوان بک ارتباط مطمئن و قابل اعتماد بین دو ماشین در شبکه برقرار کرد . این مسائل و مشکلات همگی از یک سنخ نیستند و منشا و راه حل مشابه نیز ندارند و بخشی از آنها توسط سخت افزار و بخش دیگر با تکنیکهای نرم افزاری قابل حل هستند . به عنوان مثال نیاز برای ارتباط بی سیم بین چند ایستگاه در شبکه ، طراح شبکه را مجبور به استفاده از مدولاسیون آنالوگ در سخت افزار مخابراتی خواهد کرد ولی مسئله ی هماهنگی در ارسال بسته ها از مبدا به مقصد یا شماره گذاری بسته ها برای بازسازی پیام و اطمینان از رسیدن یک بسته ، با استفاده از تکنیکهای نرم افزاری قابل حل است . بهمین دلیل برای طراحی شبکه های کامپیوتری ، باید مسائل و مشکلاتی که برای برقراری یک ارتباط مطمئن ، ساده و شفاف بین دو ماشین در شبکه وجود دارد ، دسته بندی شده و راه حلهای استاندارد برای آنها ارائه می شود .
طراح یک شبکه باید مسائل شبکه را تجزیه و تحلیل کرده و برای آنها راه حل ارائه دهد ، ولی چون این مسائل دارای ماهیتی متفاوت از یکدیگر هستند ، بنابراین طراحی یک شبکه باید بصورت لایه به لایه انجام شود . به عنوان مثال وقتی قرار است یک شبکه به گونه ای طراحی شود که ایستگاهها بتوانند انتقال فایل داشته باشند ، اولین مسئله ای که طراح باید به آن بیندیشد طراحی یک سخت افزار مخابراتی برای ارسال و دریافت بیتها روی کانال فیزیکی است . اگر چنین سخت افزاری طراحی شود ، می تواند بر اساس آن اقدام به حل مسئله ی خطاهای احتمالی در داده ها نماید ؛ یعنی زمانی مکانیزمهای کنترل و کشف خطا مطرح می شود که قبل از آن سخت افزار مخابره ی داده ها طراحی شده مکانیزمهای کنترل و کشف خطا مطرح می شود که قبل از آن سخت افزار مخابره ی داده ها طراحی شده باشد . بعد از این دو مرحله ی طراحی ، باید مکانیزمهای بسته بندی اطلاعات ، آدرس دهی ماشینها و مسیریابی بسته ها طراحی شود . سپس برای بقیه مسائل نظیر آدرس دهی پروسه ها و چگونگی انتقال فایل ، راه حل ارائه شود .
طراحی لایه ای شبکه به منظور تفکیک مسائلی که باید توسط طراح حل شود و مبتنی بر اصول زیر است
برای آنکه طراحی شبکه ها سلیقه ای و پیچیده نشود سازمان جهانی استاندارد ISO ، مدلی هفت لایه ای برای شبکه ارائه کرد ، به گونه ای که وظایف و خدمات شبکه در هفت لایه ی مجزا تعریف و ارائه می شود . این مدل هفت لایه ای ، OSI نام گرفت . هر چند در شبکه ی اینترنت از این مدل استفاده نمی شود و بجای آن یک مدل چهار لایه ای به نام TCP/IP تعریف شده است ، ولیکن بررسی مدل هفت لایه ای OSI ، بدلیل دقتی که در تفکیک و تبین مسائل شبکه در آن وجود دارد ، با ارزش خواهد بود .
مدل هفت لایه ای OSI از سازمان استاندارد جهانی ISO
در این استاندارد کل وظایف و خدمات یک شبکه در هفت لایه تعریف شده است :
لایه 1 – لایه فزیکی Physical Layer
لایه 2 – لایه پیوند داده ها Data link Layer
لایه 3 – لایه شبکه Network Layer
لایه 4- لایه انتقال Transport Layer
لایه 5- لایه جلسه Session Layer
لایه 6 – لایه ارائه ( نمایش ) Presentation Layer
لایه 7 – لایه کاربرد Application Layer
از لایه های پایین به بالا ، سرویسهای ارائه شده ( با تکیه بر سرویسی که لایه های زیرین ارائه می کنند ) پیشرفته تر می شود .
این مدل به منظور تعریف یک استاندارد جهانی و فراگیر ارائه شد و گمان می رفت که تمام شبکه ها بر اساس این مدل در هفت لایه طراحی شوند ، به گونه ای که در دهه ی هشتاد سازمان ملی علوم در آمریکا عنوان کرد که در آینده فقط از این استاندارد حمایت خواهد کرد ، ولی در عمل ، طراحان شبکه به این مدل وفادار نماندند . مثلا شرکت ناول مدل پنج لایه ای خودش را بکار گرفت و در اینترنت مدل TCP/IP فراگیر شد . در اینجا به دلایل شکست مدل OSI نخواهیم پرداخت زیرا پاره ای از این عوامل از مسائل غیر علمی ( همانند انتشار رایگان اصل برنامه های TCP/IP توسط دانشگاه برکلی ) نشات می گیرد و محل بحث و مناقشه است . در مجموع این مدل ، مرجع بسیار کامل و مناسبی برای بحث در دروس دانشگاهی است .
در ادامه به اختصار وظایف هر لایه در مدل OSI را تعریف خواهیم کرد .
لایه فیزیکی
وظیفه اصلی در لایه ی فزیکی ، انتقال بیتها بصورت سیگنال الکتریکی و ارسال آن بر روی کانال می -باشد . واحد اطلاعات در این لایه بیت است و بنابراین این لایه هیچ اطلاعی از محتوای پیام ندارد و تنها بیتهای 0 و 1 را ارسال یا دریافت می کند . پارامترهایی که باید در این لایه مورد نظر باشند عبارتند از :
در این لایه که تماماً سخت افزاری است ، مسائل مخابراتی در مبادله ی بیتها ، تجزیه و تحلیل شده و طراحی های لازم انجام می شود . طراح شبکه می تواند برای طراحی این لایه ، از استانداردهای شناخته شده ی انتقال همانند RS-232 و RS-422 و RS-423 و ... که سخت افزار آنها موجود است ، استفاده کند .
این لایه هیچ وظیفه ای در مورد تشخیص و ترمیم خطا ندارد .
لایه ی پیوند داده ها
وظیفه ی این لایه آن است که با استفاده از مکانیزمهای کشف و کنترل خطا ، داده ها را روی یک کانال انتقال که ذاتا دارای خطا و مطمئن به مقصد برساند . در حقیقت می توان وظیفه ی این لایه را بیمه ی اطلاعات در مقابل خطاهای احتمالی دانست ؛ زیرا ماهیت خطا به گونه ای است که قابل رفع نیست ولی می توان تدابیری اتخاذ کرد که فرستنده از رسیدن یا نرسیدن صحیح اطلاعات به مقصد مطلع شده و در صورت بروز خطا مجدداً اقدام به ارسال اطلاعات کند ؛ با چنین مکانیزمی یک کانال دارای خطا ، به یک خط مطمئن و بدون خطا تبدیل خواهد شد .
یکی دیگر از وظائف لایه ی پیوند داده ها آن است که اطلاعات ارسالی از لایه ی بالاتر را به واحدهای استاندارد و کوچکتری شکسته و ابتدا و انتهای آن را از طریق نشانه های خاصی که Delimiter نامیده می شود ، مشخص نماید . این قالب استاندارد که ابتدا و انتهای آن دقیقاً مشخص شده ، فریم نامیده می شود ؛ یعنی واحد اطلاعات در لایه ی دوم فریم است .
کشف خطا که از وظایف این لایه می باشد می تواند از طریق اضافه کردن بیتهای کنترل خطا مثل بیتهای Parity Check و CRC و Checksum انجام شود .
یکی دیگر از وظایف لایه ی دوم کنترل جریان یا به عبارت دیگر تنظیم جریان ارسال فریم ها به گونه ای است که یک دستگاه کند هیچ گونه فریمی را به خاطر آهسته بودن از دست ندهد .
یکی دیگر از وظایف این لایه آن است که وصول داده ها یا عدم رسید داده ها را به فرستنده اعلام کند .
در بسیاری از شبکه ها از کانال اشتراکی استفاده می کنند و ارسال همزمان دو ایستگاه منجر به تصادم ( اختلاط سیگنال انتقال ) و خرابی داده ها خواهد شد . یکی دیگر از وظایف این لایه آن است که قراردادهایی را برای جلوگیری از تصادم سیگنال ایستگاههایی که از کانال اشتراکی استفاده می کنند ، وضع کند ، چراکه فرمان ارسال داده بر روی کانال مشترک از لایه ی دوم صادر می شود . این قرارداداها در زیر لایه ای به نام ( Medium Access Sublayer ) MAS تعریف شده است .
وقتی یک واحد اطلاعاتی تحویل یک ماشین متصل به کانال فزیکی در شبکه شد ، وظیفه ی این لایه پایان می یابد . از دیدگاه این لایه ، ماشینهایی که به کانال متصل نمی باشند ، در دسترس نیستند . کنترل سخت افزار لایه ی فزیکی به عهده ی این لایه است .
البته نباید فراموش کرد که وظایف این لایه نیز با استفاده از سخت افزارهای دیجیتال انجام می شود .
لایه ی شبکه
در این لایه اطلاعات به صورت بسته هایی سازماندهی می شود و برای انتقال مطمئن تحویل لایه ی دوم می شود . با توجه به آنکه ممکن است بین دو ماشین در شبکه مسیرهای گوناگونی وجود داشته باشد ، لذا این لایه وظیفه دارد هر بسته ی اطلاعاتی را پس از دریافت به مسیری هدایت کند تا آن بسته بتواند به مقصد برسد . در این لایه باید تدابیری اندیشیده شود تا از ازدحام ( یعنی ترافیک بیش از اندازه ی بسته ها در یک مسیریاب یا مرکز سوئیچ ) جلوگیری شده و از ایجاد بن بست ممانعت بعمل بیاورد .
هر مسیر یاب می تواند به صورت ایستا و غیر هوشمند بسته ها را مسیریابی کند . همچنین می تواند به صورت پویا و هوشمند برای بسته ها مسیر انتخاب نماید . در این لایه تمام ماشینهای شبکه دارای یک آدرس جهانی و منحصر به فرد خواهند بود که هر ماشین بر اساس این آدرسها اقدام به هدایت بسته ها به سمت مقصد خواهد کرد .
این لایه ذاتاً بدون اتصال است یعنی پس از تولید یک بسته ی اطلاعاتی در مبدا ، بدون هیچ تضمینی در رسیدن آن بسته به مقصد ، بسته ، شروع به طی مسیر در شبکه می کند . وظایف این لایه به سیستم نامه رسانی تشبیه شده است ؛ یک پاکت محتوی نامه پس از آنکه مشخصات لازم بر روی آن درج شد ، به صندوق پست انداخته می شود ، بدون آنکه بتوان زمان دقیق رسیدن نامه و وجود گیرنده ی نامه را در مقصد ، از قبل حدس زد . در ضمن ممکن است نامه به هر دلیلی گم شود یا به اشتباه در راهی بیفتد که مدتها در مسیر بماند و زمانی به گیرنده ی آن برسد که هیچ ارزشی نداشته باشد .
در این لایه تضمینی وجود ندارد وقتی بسته ای برای یک ماشین مقصد ارسال می شود آن ماشین آماده ی دریافت آن بسته باشد و بتواند آنرا دریافت کند . در ضمن هیچ تضمینی وجود ندارد وقتی چند بسته ی متوالی برای یک ماشین ارسال می شود به همان ترتیبی که بر روی شبکه ارسال شده ، در مقصد دریافت شوند . همچنین ممکن است که وقتی بسته ای برای یک مقصد ارسال می گردد ، به دلیل دیر رسیدن از اعتبار ساقط شده و مجدداً ارسال شود و هر دو بسته ( جدید و قدیم ) با هم برسند . این مسائل در لایه بالاتر قابل حل خواهد بود .
هرچند وظائف این لایه می تواند بصورت نرم افزاری پیاده شود ولی برای بالاتر رفتن سرعت عمل شبکه ، می توان برای این لایه یک کامپیوتر خاص طراحی نمود تا در کنار سخت افزار لایه های زیرین ، بسته ها را روی شبکه رد وبدل کند .
لایه ی انتقال
در این لایه بر اساس خدمات لایه ی زیرین ، یک سرویس انتقال بسیار مطمئن و اتصال گرا
( Connection Oriented ) ارائه می شود . تمام مشکلاتی که در لایه ی شبکه عنوان شد در این لایه حل و فصل می شود :
واحد اطلاعات در این لایه قطعه ( Segment ) است . از وظایف دیگر این لایه می توان به موارد زیر اشاره کرد :
وظایف این لایه ( و لایه های بعدی ) با استفاده از نرم افزار پیاده سازی می شود و فقط بر روی ماشینهای نهایی ( ماشینهای کاربران ) وجود دارد و مراکز سوئیچ به وظایف این لایه احتیاجی ندارند ( مگر در موارد خاص ) .
لایه ی جلسه
وظایف این لایه فراهم آوردن شرایط یک جلسه ( نشست ) همانند ورود به سیستم از راه دور ( Remote Login ) ، احراز هویت طرفین ، نگهداری این نشست و توانایی از سرگیری یک نشست در هنگام قطع ارتباط می باشد .
در این لایه نیز واحد اطلاعات پیام است . وظایف این لایه را می توان در موارد زیر خلاصه کرد :
لایه ی ارائه ( نمایش )
در این لایه معمولا کارهایی صورت می گیرد که اگر چه بنیادی و اساسی نیستند ولیکن به عنوان نیازهای عمومی تلقی می شوند . مثلاً :
لایه ی کاربرد
در این لایه ، استاندارد مبادله ی پیام بین نرم افزارهایی که در اختیار کاربر بوده و به نحوی با شبکه در ارتباطند ، تعریف می شود . لایه ی کاربرد شامل تعریف استانداردهایی نظیر انتقال نامه های الکترونیکی ، انتقال مطمئن فایل ، دسترسی به بانکهای اطلاعاتی راه دور ، مدیریت شبکه و انتقال صفحات وب است .
یادتون نره نظربدین