مدل OSI چیست؟ — به زبان ساده و با مثال
Views:78
در دهه ۱۹۷۰، محققان در پی پاسخ به این پرسش بودند که سیستمهای کامپیوتری چگونه میتوانند به بهترین شکل با یکدیگر ارتباط برقرار کنند. چند سال بعد از آن، چندین مدل ایجاد و در جامعه علمی و صنعتی منتشر شد. در نهایت، در سال ۱۹۸۴، سازمان بینالمللی استانداردسازی (ISO) بهترین بخشهای این مدلهای مرجع شبکهای را برای ایجاد یک چارچوب پایه، که شرکتهای فناوری در سراسر جهان میتوانستند از آن استفاده کنند، در نظر گرفت.
از دیدگاه ISO، سادهترین راه برای ایجاد یک مدل مفهومی، سازماندهی مدلها در لایههای انتزاعی و تفکیکشده برای سازماندهی و ارسال دادهها بین سیستمهای محاسباتی بود، به طوری که درون هر لایه بخشی از فرایند ارتباط شبکه را نشان میدهد. هر لایه را میتوان به عنوان یک ماژول ارتباطی جداگانه یا قطعهای از پازل در نظر گرفت. اما، برای انجام واقعی ارسال داده از یک دستگاه به دستگاه دیگر، این ماژولها باید با هم کار کند. در واقع، هر لایه از مدل OSI کار خاصی را انجام میدهد و با لایه های بالا و پایین خود ارتباط برقرار میکند.
مدل اتصال متقابل سامانههای باز (Open Systems Interconnection) یا به اختصار مدل OSI همان مدل مفهومی است که توسط سازمان بینالمللی تدوین استاندارد (ISO) ایجاد شده است. این مدل تنها چارچوب پذیرفتهشده برای ارتباط میان سامانههای مختلفی است که سازندگان متفاوت دارند. این مدل سیستمهای ارتباطی متنوع را قادر میسازد با استفاده از پروتکلهای استاندارد ارتباط برقرار کنند. در واقع، میتوان چنین گفت که مدل OSI یک زبان جهانی برای شبکههای کامپیوتری است.
چرا مدل OSI اهمیت دارد؟
اگرچه اینترنت مدرن دقیقاً از مدل OSI پیروی نمیکند و بر اساس مدل سادهتر TCP/IP است، اما مدل هفتلایه OSI هنوز کاربرد فراوانی دارد و مورد استفاده گسترده قرار میگیرد، زیرا به بصریسازی و ارتباط عملکرد شبکهها و نیز به جداسازی و عیبیابی مشکلات شبکه کمک میکند. فرقی نمیکند این مشکلات یک لپتاپ باشد که به اینترنت متصل نمیشود، یا یک وبسایت که برای هزاران کاربر از کار افتاده است، در هر صورت، مدل OSI به حل مشکل و جداسازی منبع مشکل کمک کند. در واقع، اگر بتوان مشکل را به یک لایه خاص از مدل محدود کرد، میتوان از انجام بسیاری از کارهای غیرضروری جلوگیری کرد.
لایههای مدل OSI چه هستند؟
در ادامه، هفت لایه مدل OSI را از بالا به پایین معرفی میکنیم. تصویر زیر نمای کلی این لایهها را نشان میدهد.
۷. لایه کاربرد (Application Layer)
این لایه تنها لایهای است که مستقیماً با دادههای کاربر تعامل دارد. برنامههای نرمافزاری مانند مرورگرهای وب و کلاینتهای ایمیل مانند Outlook یا برنامههایی مانند Skype برای شروع ارتباطات از پروتکلهای لایه کاربرد یا همان لایه ۷ استفاده میکنند. باید دقت کرد که که برنامههای کاربردی یا همان اپلیکیشنهای نرمافزاری مشتری بخشی از لایه کاربرد نیستند، بلکه لایه کاربرد مسئول پروتکلها و دستکاری دادهها است که نرمافزار برای ارائه دادههای معنیدار به کاربر به آن تکیه میکند.
چند نمونه از پروتکلهای لایه کاربرد عبارتند از: پروتکل انتقال اَبَرمتن (HTTP)، پروتکل انتقال فایل (FTP)، پروتکل دفتر پست (POP)، پروتکل ساده نامهرسانی (SMTP) و سیستم نام دامنه (DNS).
۶. لایه نمایش (Presentation Layer)
این لایه در درجه اول مسئول آمادهسازی دادهها است تا بتوان از آنها در لایه کاربرد استفاده کرد. به عبارت دیگر، لایه ۶ دادهها را برای اپلیکیشنها قابل نمایش میکند تا از آنها استفاده کنند. لایه نمایش وظیفه ترجمه، رمزگذاری و فشردهسازی دادهها را بر عهده دارد.
دو دستگاه ارتباطی که در حال ارتباط هستند ممکن است از روشهای رمزگذاری متفاوتی استفاده کنند، بنابراین لایه ۶ وظیفه ترجمه دادههای دریافتی را به نحوی دارد که لایه کاربرد دستگاه گیرنده بتواند آنها را درک کند.
اگر دستگاهها از طریق یک اتصال رمزگذاریشده با هم ارتباط برقرار کنند، لایه نمایش وظیفه اضافه کردن رمزگذاری در سمت فرستنده و همچنین رمزگشاییِ رمزگذاری در سمت گیرنده را بر عهده دارد تا بتواند لایه کاربرد را با دادههای رمزگذارینشده و قابل خواندن نمایش دهد.
همچنین، لایه نمایش مسئول فشردهسازی دادههایی است که از لایه کاربرد دریافت میکند تا قبل از اینکه آنها را به لایه ۵ تحویل دهد، فشرده کند. این کار به بهبود سرعت و کارایی ارتباط کمک میکند.
۵. لایه نشست (Session Layer)
این لایه مسئول برقراری و قطع ارتباط بین دو دستگاه است. زمان بین برقراری و قطع ارتباط به عنوان «نشست» شناخته میشود. لایه نشست تضمین میکند که نشست به اندازه کافی باز بماند تا تمام دادهها منتقل شود و سپس به سرعت نشست را میبندد تا از هدر رفتن منابع جلوگیری شود.
لایه نشست همچنین انتقال دادهها را با نقاط آزمایش یا همان چکپوینتها (Checkpoint) همگام و سنکرون میکند. به عنوان مثال، اگر یک فایل ۱۰۰ مگابایتی در حال انتقال است، لایه نشست میتواند هر ۵ مگابایت یک چکپوینت تعیین کند. در صورت قطع اتصال یا خرابی پس از انتقال ۵۲ مگابایت، نشست میتواند از آخرین چکپوینت از سر گرفته شود، به این معنی که فقط ۵۰ مگابایت داده دیگر باید منتقل شود. بدون چکپوینتها، کل انتقال باید دوباره از ابتدا شروع شود.
۴. لایه انتقال (Transport Layer)
لایه ۴ وظیفه ارتباط سرتاسری (end-to-end) بین دو دستگاه را بر عهده دارد. این وظیفه شامل گرفتن دادهها از لایه نشست و تقسیم آن به قطعاتی به نام سگمنت (Segment) قبل از ارسال به لایه ۳ است. لایه انتقال در دستگاه گیرنده مسئول سرِ هم کردن مجدد سگمنتها به دادههایی است که لایه نشست میتواند استفاده کند.
لایه انتقال همچنین وظیفه کنترل انتقال و کنترل خطا را بر عهده دارد. در واقع، لایه انتقال با سرعت بهینه انتقال را تعیین میکند تا اطمینان حاصل شود که فرستندهای با اتصال سریع گیرندهای با اتصال آهسته را تحت تأثیر قرار نمیدهد. لایه انتقال با اطمینان از کامل بودن دادههای دریافتی، کنترل خطا را در سمت گیرنده انجام میدهد و در صورت عدم تکمیل، درخواست ارسال مجدد میکند.
پروتکلهای لایه انتقال شامل پروتکل کنترل انتقال (TCP) و پروتکل دیتاگرام کاربر (UDP) است.
۳. لایه شبکه (Network Layer)
لایه شبکه وظیفه تسهیل انتقال داده بین دو شبکه مختلف را بر عهده دارد. اگر دو دستگاه در حال ارتباط در یک شبکه باشند، لایه شبکه غیرضروری است. لایه شبکه بخشهایی (سگمنتهایی) را از لایه انتقال به واحدهای کوچکتر به نام بسته (Packet) در دستگاه فرستنده تقسیم میکند و دوباره این بستهها را در دستگاه گیرنده سرِ هم میکند. لایه شبکه همچنین بهترین مسیر فیزیکی برای رسیدن دادهها به مقصد پیدا میکند. این کار به عنوان روتینگ (Routing) شناخته میشود.
پروتکلهای لایه شبکه شامل IP، پروتکل کنترل پیامهای اینترنتی (ICMP)، پروتکل مدیریت گروه اینترنت (IGMP) و مجموعه IPsec هستند.
۲. لایه پیوند داده (Data Link Layer)
لایه پیوند داده بسیار شبیه به لایه شبکه است، با این تفاوت که لایه پیوند داده انتقال داده بین دو دستگاه در یک شبکه را تسهیل میکند. لایه پیوند داده بستهها (Packet) را از لایه شبکه میگیرد و آنها را به قطعات کوچکتر به نام «فریم» (Frame) میشکند. مانند لایه شبکه، لایه پیوند داده نیز مسئول کنترل جریان داده و کنترل خطا در ارتباطات درون شبکهای است (لایه انتقال کنترل جریان داده و کنترل خطا را فقط برای ارتباطات بینشبکهای انجام میدهد).
این لایه از دو بخش تشکیل شده است: «کنترل پیوند منطقی» (LLC) که پروتکلهای شبکه را شناسایی میکند، بررسی خطا را انجام میدهد و فریمها را همگامسازی میکند، و «کنترل دسترسی رسانه» (MAC) که از آدرسهای MAC برای اتصال دستگاهها و تعریف مجوز برای انتقال و دریافت دادهها استفاده میکند.
۱. لایه فیزیکی (Physical Layer)
این لایه شامل تجهیزات فیزیکی درگیر در انتقال دادهها مانند کابلها و سوئیچها است. لایه فیزیکی لایهای است که در آن دادهها به یک «جریان بیت» (Bitstream) تبدیل میشوند که رشتهای از 1ها و 0ها است. لایه فیزیکی هر دو دستگاه نیز باید بر روی یک قرارداد سیگنال توافق کند تا بتوان 1ها را از 0های هر دو دستگاه متمایز کرد.
داده چگونه از طریق مدل OSI منتقل میشود؟
برای اینکه اطلاعات قابل خواندن توسط انسان از طریق یک شبکه از یک دستگاه به دستگاه دیگر منتقل شود، دادهها باید از هفت لایه مدل OSI در دستگاه فرستنده و سپس از هفت لایه در دستگاه گیرنده عبور کنند.
به عنوان مثال، فرض کنید شخص الف میخواهد برای شخص ب یک ایمیل بفرستد. الف پیام را در یک برنامه ایمیل مانند Outlook روی لپتاپ مینویسد و سپس دکمه Send را میزند. برنامه ایمیل او پیام را به لایه کاربرد ارسال میکند که از پروتکل (SMTP) بهره میبرد و دادهها را به لایه نمایش ارسال میکند. سپس، لایه نمایش دادهها را فشرده میکند و، در ادامه، داده به لایه نشست برخورد میکند که نشست ارتباط را تعیین میکند.
در ادامه، دادهها به لایه انتقال فرستنده برخورد میکنند و بخشبندی (سگمنت) میشوند، سپس آن سگمنتها به بستههایی در لایه شبکه تقسیم میشوند و پس از آن به فریمهایی در لایه پیوندِ داده جدا میشوند. سپس، لایه پیوند داده آن فریمها را به لایه فیزیکی تحویل میدهد، که دادهها را به جریان بیت از 1ها و 0ها تبدیل میکند و آن را از طریق یک تجهیز فیزیکی مانند کابل ارسال میکند.
هنگامی که کامپیوتر شخص ب جریان بیت را از طریق یک تجهیز فیزیکی (مانند وایفای) دریافت میکند، دادهها از طریق هفت لایه دستگاه او جریان مییابد، اما این بار با ترتیبی مخالف. در واقع، ابتدا لایه فیزیکی جریان بیت را به فریمهایی تبدیل میکند که به لایه پیوند داده منتقل میشوند. سپس، لایه پیوند داده، فریمها را در بستههایی برای لایه شبکه جمع میکند. لایه شبکه بخشهایی از بستهها را برای لایه انتقال ایجاد میکند که این بخشها یک قطعه داده را میسازند.
سپس، دادهها به لایه نشست گیرنده جریان مییابد. لایه نشست دادهها را به لایه نمایش منتقل میکند و پس از آن نشست ارتباط را پایان میدهد. پس از آن، لایه نمایش فشردهسازی را حذف و دادههای خام را به لایه کاربرد ارسال میکند. در نهایت، لایه کاربرد دادههای قابل خواندن توسط انسان را به نرمافزار ایمیل شخص ب میرساند و به او این امکان را میدهد که ایمیل شخص الف را روی صفحه لپتاپ خود بخواند.
مزایا و معایب مدل OSI
مدل OSI دارای چندین مزیت است که از جمله آنها میتوان به موارد زیر اشاره کرد:
- یک مدل استاندارد در شبکههای کامپیوتری است.
- این مدل از سرویسها بیاتصال (Connectionless) و همچنین اتصالگرا (Connection-oriented) پشتیبانی میکند. هنگامی که کاربران به انتقال سریعتر دادهها از طریق اینترنت نیاز دارند، میتوانند از مزیت سرویسهای بیاتصال استفاده کنند و زمانی که به دنبال قابلیت اطمینان هستند، از سرویس اتصالگرا بهره ببرند.
- مدل OSI این انعطافپذیری را دارد که با بسیاری از پروتکلها سازگار شود.
- این مدل سازگارتر و ایمنتر از داشتن همه سرویسها در یک لایه است.
از معایب مدل OSI میتوان به موارد زیر اشاره کرد:
- پروتکل اختصاصی را تعریف نمیکند.
- لایه نشست که برای مدیریت نشست استفاده میشود و لایه نمایش که با تعامل کاربر سروکار دارد، به اندازه سایر لایهها در مدل OSI مفید نیستند.
- برخی از سرویسها در لایههای مختلف مانند لایههای انتقال و پیوند داده تکرار میشوند.
- لایهها نمیتوانند به صورت موازی کار کنند. هر لایه باید منتظر بماند تا دادههای لایه قبلی را دریافت کند.
شباهتها و تفاوتهای مدل OSI و مدل TCP/IP
مدل مرجع OSI عملکردهای یک سیستم مخابراتی یا شبکهای را توصیف میکند، در حالی که TCP/IP مجموعهای از پروتکلهای ارتباطی است که برای اتصال دستگاههای شبکه در اینترنت استفاده میشود. مدلهای TCP/IP و OSI پرکاربردترین مدلهای شبکه برای ارتباطات هستند.
مدلهای OSI و TCP/IP شباهتها و تفاوتهایی دارند. شباهت اصلی در ساختار آنها است، زیرا هر دو از لایهها استفاده میکنند؛ مدل OSI از هفت لایه تشکیل شده است، در حالی که TCP/IP فقط چهار لایه دارد.
شباهت دیگر این است که لایه بالایی برای هر مدل، لایه کاربرد است، که وظایف یکسانی را در هر مدل انجام میدهد که البته ممکن است با توجه به اطلاعات دریافتی هر مدل متفاوت باشد.
کارهای انجامشده در هر مدل نیز مشابه است، زیرا هر کدام از یک لایه شبکه و انتقال استفاده میکنند. هر دو مدل OSI و TCP/IP بیشتر برای انتقال بستههای داده استفاده میشوند، اگرچه هر کدام از ابزارها و مسیرهای متفاوتی برای انجام این کار بهره میبرند.
سایر شباهتهای مدل OSI و مدل TCP/IP شامل موارد زیر است:
- هر دو مدل منطقی هستند.
- هر دو استانداردهایی را برای شبکه تعریف میکنند.
- در هر دو مدل، ارتباط شبکه در لایهها تقسیم میشود.
- هر دو چارچوبی برای ایجاد و پیادهسازی استانداردها و دستگاههای شبکه ارائه میدهند.
- هر دو مدل این امکان را به تولیدکنندگان میدهند که دستگاهها و اجزای شبکه را به گونهای تولید کنند که بتوانند با دستگاهها و اجزای ساختهشده توسط سایر سازندگان هماهنگی داشته باشند و با آنها کار کنند.
- هر دو مدل فرایند پیچیده را به اجزای سادهتری تقسیم میکنند.
تفاوت بین مدلهای OSI و TCP/IP شامل موارد زیر است:
- مدل OSI از سه لایه (کاربرد، نمایش و نشست) برای تعریف عملکرد لایههای بالایی استفاده میکند، در حالی که TCP/IP فقط از لایه کاربرد استفاده میکند.
- مدل OSI از دو لایه جداگانه (فیزیکی و پیوند داده) برای تعریف عملکرد لایههای پایین استفاده میکند، در حالی که TCP/IP فقط از لایه پیوند استفاده میکند.
- مدل OSI از لایه شبکه برای تعریف استانداردها و پروتکلهای روتینگ استفاده میکند، در حالی که TCP/IP از لایه اینترنت بهره میبرد.
منبع: Cloudflare, Inc.
پاسخی بگذارید