یه دنیای پر از دستگاههای مختلف رو تصور کن، هر کدوم از این دستگاهها مثل آدمهایین که به زبون خودشون حرف میزنن و هیچکدوم همدیگه رو نمیفهمن. اگه یه راه مشترکی برای برقراری ارتباط بینشون نباشه، اوضاع حسابی به هم میریزه، نه؟ حالا بیا همین وضعیت رو توی شبکههای کامپیوتری تصور کنیم. دستگاهها و سیستمهای مختلفی داریم که هر کدوم از یه پروتکل خاص برای ارتباط استفاده میکنن. اگه قرار بود هر کدوم راه خودشون رو برن، شبکههای امروزی اصلاً کار نمیکردن. اینجاست که مدل OSI وارد میشه، یه استاندارد جهانی که همه دستگاهها و سیستمها رو به یه زبون مشترک میرسونه و کمک میکنه تا همه با هم در ارتباط باشن.
مدل OSI یا Open Systems Interconnection یه چارچوب استاندارده که نشون میده سیستمهای کامپیوتری چطوری از طریق یه شبکه با هم ارتباط برقرار میکنن. این مدل از هفت لایه تشکیل شده که هر کدوم وظیفه خاصی دارن. این مدل اولین استانداردی بود که برای ارتباطات شبکهای معرفی شد و همهی شرکتهای بزرگ کامپیوتری و مخابراتی توی اوایل دهه ۱۹۸۰ میلادی ازش استفاده کردن.
حالا، شاید بپرسی: "پس چرا اینترنت امروزی از OSI استفاده نمیکنه؟" خب، اینترنت امروزی بیشتر به یه مدل سادهتر به اسم TCP/IP متکیه. با این حال، مدل OSI هنوز هم خیلی پرکاربرده، چون به ما کمک میکنه بفهمیم شبکهها چطور کار میکنن و اگه مشکلی پیش بیاد، بتونیم راحتتر تشخیصش بدیم و برطرفش کنیم.
مدل OSI اولین بار توی سال ۱۹۸۳ توسط نمایندههای شرکتهای بزرگ کامپیوتری و مخابراتی معرفی شد و یک سال بعدش توسط سازمان استانداردهای بینالمللی (ISO) به عنوان یه استاندارد جهانی پذیرفته شد.
مدل OSI اهمیت زیادی داره، چون هر نوع ارتباط شبکهای، چه نرمافزاری چه سختافزاری، رو پوشش میده. این مدل طوری طراحی شده که دو سیستم مستقل بتونن با استفاده از رابطها و پروتکلهای استاندارد شده با هم حرف بزنن، حتی اگه از شرکتهای مختلفی باشن.
مدل OSI یه چارچوب اساسی برای توسعه پروتکلهاست که هر لایهاش وظیفههای خاصی در شبکه رو مدیریت میکنه. بیا یکییکی با هم بررسی کنیم که هر لایه چی کار میکنه.
این لایه، نزدیکترین لایه به کاربر نهاییه. لایه کاربرد مستقیماً به اپلیکیشنهای کاربر خدمات شبکهای میده و ارتباط بین نقاط پایانی API و لایههای پایینتر OSI رو تسهیل میکنه. به عبارت دیگه، نرمافزارها از لایه کاربرد استفاده میکنن تا ارتباطات شبکهای رو شروع کنن و دادهها رو به لایه نمایش ارسال کنن.
خود اپلیکیشنها جزئی از این لایه نیستن؛ بلکه لایه کاربرد پروتکلهایی مثل HTTP، FTP، DNS و SMTP رو فراهم میکنه تا نرمافزارها بتونن دادهها رو ارسال و دریافت کنن. وظایف این لایه شامل ایناست:
لایه نمایش دادهها رو به فرمت قابل قبول برای لایه کاربرد تبدیل میکنه تا برای انتقال در شبکه آماده بشه. به خاطر نقشش در تبدیل دادهها و گرافیک به فرمت قابل نمایش برای لایه کاربرد، گاهی بهش "لایه سینتکس" هم میگن.
این لایه از پروتکلهایی مثل SSL/TLS برای امنیت، پروتکلهای JPEG برای فشردهسازی تصویر و MPEG برای فشردهسازی ویدئو پشتیبانی میکنه. مسئولیتهای لایه نمایش شامل ایناست:
گاهی اوقات، فرآیند فرمت و ترجمه دادهها در جهت معکوس انجام میشه، وقتی که پیامها از لایههای پایین به بالا حرکت میکنن.
لایه نشست مسئول مدیریت نشستهاست؛ یعنی همون ارتباطاتی که بین دو یا چند کامپیوتر برقرار میشه. این لایه ارتباطات بین اپلیکیشنهای محلی و راه دور رو شروع، مدیریت و پایان میده. نشستها رو باز نگه میداره تا دادهها منتقل بشن و وقتی کار تموم شد، اونها رو میبنده تا منابع شبکه حفظ بشه.
وظایف کلیدی لایه نشست شامل ایناست:
این لایه پروتکلهایی رو برای اتصال و قطع نشستها بین جریانهای داده مرتبط مثل صوت و تصویر در کنفرانسهای وب تعیین میکنه.
لایه انتقال از پروتکلهایی مثل TCP و UDP برای مدیریت تحویل انتها به انتهای پیامها استفاده میکنه. این لایه پیامها رو از لایه نشست میگیره و اونها رو به واحدهای کوچکتری به نام "بخشها" تقسیم میکنه، هر کدوم با یه هدر مربوطه. در مقصد، لایه انتقال این بخشها رو به ترتیب درست دوباره کنار هم میچینه تا پیام اصلی رو بازسازی کنه.
لایه انتقال همچنین این وظایف رو انجام میده:
در سمت فرستنده، لایه انتقال دادههای فرمتشده رو از لایههای بالایی دریافت، بخشبندی و کنترل جریان و خطا رو اجرا میکنه تا از انتقال درست دادهها مطمئن بشه. اون همچنین شماره پورتهای مبدا و مقصد رو به هدر اضافه میکنه و دادههای بخشبندی شده رو به لایه شبکه ارسال میکنه.
در سمت گیرنده، لایه انتقال شماره پورت رو از هدر میخونه و دادههای دریافتی رو به اپلیکیشن مناسب میفرسته. همچنین ترتیبدهی و بازچینی دادههای بخشبندیشده رو انجام میده و در صورت شناسایی خطاها، دادهها رو دوباره ارسال میکنه.
لایه انتقال دو نوع سرویس ارائه میده:
لایه شبکه مسئول تسهیل انتقال دادهها از یه گره به گره دیگه در شبکههای مختلفه. این لایه بهترین مسیر (مسیریابی) رو برای حرکت دادهها بین گرهها تعیین میکنه. اگه بخشها خیلی بزرگ باشن، لایه شبکه اونها رو به بستههای کوچکتری تقسیم میکنه و در مقصد دوباره به هم وصلشون میکنه.
یه شبکه به عنوان یه رسانه عمل میکنه که توش چندین گره (هر کدوم با یه آدرس منحصربهفرد) میتونن به هم وصل بشن. لایه شبکه اجازه میده گرهها پیامها رو به گرههای دیگه در شبکههای دیگه ارسال کنن با فراهم کردن محتوای پیام و آدرس مقصد و باقی کارها رو به شبکه واگذار میکنه تا بهترین مسیر رو برای تحویل پیدا کنه.
لایه شبکه بیشتر از پروتکلهای IPv4 و IPv6 استفاده میکنه و مسئول ایناست:
در لایه شبکه تضمینی برای اطمینان از تحویل دادهها وجود نداره؛ در حالی که بسیاری از پروتکلهای لایه شبکه پیامها رو با اطمینان تحویل میدن، برخی از این پروتکلها این کار رو نمیکنن. همچنین، گزارش خطا توی این لایه ضروری نیست، بنابراین فرستندهها ممکنه تأییدیه دریافت دادهها رو دریافت کنن یا نکنن.
وظیفه اصلی لایه پیوند داده مدیریت انتقال دادههای بدون خطا بین دستگاههایی است که توی همون شبکه تعامل دارن.
لایه پیوند داده به دو زیرلایه تقسیم میشه:
وقتی لایه پیوند داده یه بسته از لایه شبکه دریافت میکنه، اون رو به فریمهای دادهای تقسیم میکنه و بر اساس اندازه فریم کارت شبکه (NIC) منتقلش میکنه.
وظایف لایه پیوند داده شامل ایناست:
لایه فیزیکی شامل اجزای شبکه فیزیکی هست که مسئول انتقال دادههای خام به صورت بیتها، یعنی رشتههای 0 و 1، بین دستگاهها (مثل کانکتورها، روترها، تکرارکنندهها و کابلهای فیبر نوری) و یه رسانه فیزیکی (مثل وایفای) هستن.
لایه فیزیکی مسئول ایناست:
لایه فیزیکی همچنین تعریف میکنه که چطور کدگذاری روی سیگنال فیزیکی انجام میشه (مثل استفاده از ولتاژ الکتریکی، رادیو یا پالسهای نوری).
مدل OSI هنوز هم برای درک معماری شبکه خیلی مهمه، حتی با وجود اینکه تکنولوژیها تغییر میکنن و مدلهای جدیدی به وجود میان. چه بخوای یه شبکه محلی ساده طراحی کنی و چه بخوای یه شبکه جهانی پیچیده رو مدیریت کنی، اصول مدل OSI یه رویکرد روشن و ساختارمند برای شبکهبندی فراهم میکنه.
مدل OSI شامل هفت لایهی مختلفه. لایههای کاربرد (لایه 7)، نمایش (لایه 6) و نشست (لایه 5) رو میشه لایههای نرمافزاری OSI دونست. اینجا جاییه که همهی انتقالات به/از نرمافزارهای مختلف مثل سیستم عاملها و ابزارهایی مثل مرورگرهای وب و برنامههای ایمیل انجام میشه.
لایهی انتقال (لایه 4) که بهش میگیم «قلب OSI»، وظیفهی مدیریت همهی ارتباطات دادهای بین شبکهها و سیستمها رو به عهده داره. در نهایت، لایههای شبکه (لایه 3)، پیوند داده (لایه 2) و فیزیکی (لایه 1) رو داریم که اینا لایههای سختافزاری OSI هستن و دادهها از طریق اجزای فیزیکی شبکه مثل کابلها و تجهیزات شبکهای، پردازش و منتقل میشن.
دادهها به صورت دوطرفه در مدل OSI حرکت میکنن؛ هر لایه با لایههای بالایی و پایینی خودش توی این ساختار ارتباط برقرار میکنه. همچنین، هم دستگاه فرستنده و هم دستگاه گیرنده دادهها رو از طریق این لایهها ارسال و دریافت میکنن و معمولاً نقشهاشون توی این فرآیند عوض میشه.
فرض کن میخوای یه ایمیل برای یکی دیگه بفرستی. اول ایمیلت رو مینویسی و بعد دکمه "ارسال" رو میزنی. ایمیلت اول به لایهی کاربرد میره، که پروتکل درست (معمولاً SMTP) رو انتخاب میکنه و ایمیل رو به لایهی نمایش میفرسته. لایهی نمایش دادههای پیام رو فشردهسازی میکنه و به لایهی نشست میفرسته، که یه نشست ارتباطی رو راهاندازی میکنه و دادهها رو به لایهی انتقال برای تقسیمبندی میفرسته.
چون ایمیل داره به یه شبکه دیگه میره، دادههای ایمیل باید به لایهی شبکه برن، جایی که به بستههای کوچکتری تقسیم میشن و بعد به لایهی پیوند داده میرن، که توی اونجا به فریمهای حتی کوچکتری تقسیم میشن. این فریمها بعد از اون از طریق لایهی فیزیکی (مثل وایفای گیرنده) ارسال میشن و دستگاه گیرنده جریان بیتها رو دریافت میکنه. در اینجا دادههای ایمیل به صورت معکوس از لایهها عبور میکنن و در نهایت به لایهی کاربرد دستگاه گیرنده میرسن، جایی که ایمیل به صورت قابل خوندن برای انسان در اینباکس گیرنده نمایش داده میشه.
مدل OSI به عنوان یه چارچوب استاندارد، نه تنها به درک بهتر ارتباطات شبکه کمک میکنه، بلکه مزایای زیادی برای توسعهدهندهها و مهندسای شبکه به همراه داره. این مدل باعث میشه تا فرآیند طراحی، توسعه و نگهداری شبکهها سادهتر، سریعتر و کارآمدتر بشه. بیا نگاهی به بعضی از این مزایا بندازیم.
یکی از بزرگترین مزایای مدل OSI اینه که با روش لایهبندی عمودی خودش، طراحی پروتکلهای شبکه رو مدولار کرده. این یعنی هر لایه میتونه به صورت جداگانه توسعه داده بشه یا بهروزرسانی بشه، بدون اینکه نیاز باشه کل شبکه رو از اول بسازیم.
این مدولار بودن باعث میشه که نوآوری توی توسعه پروتکلها سریعتر پیش بره، چون مهندسای نرمافزار میتونن تکنولوژیهای جدید رو بدون تغییرات بزرگ توی کل شبکه، اضافه کنن. همچنین، این مدل به توسعهدهندهها اجازه میده تا لایههای پایینتر رو سادهسازی کنن و فقط روی اون بخشهایی که نیاز دارن، تمرکز کنن.
مدل OSI کمک میکنه تا مهندسای نرمافزار لایههای مختلف شبکه رو جدا و بر اساس نقش اصلیشون توی شبکه سازماندهی کنن. این قابلیت تجزیهپذیری باعث میشه توسعهدهندهها بتونن شبکه رو بهتر درک کنن و مدلهای سادهتری رو بین تیمهای توسعه به اشتراک بذارن.
وقتی یه دستگاه توی شبکه خراب میشه یا یه برنامه اتصالش رو از دست میده، مدل OSI به تیمها کمک میکنه تا لایهی مشکلدار رو پیدا و ایزوله کنن. اینجوری میتونن مشکلات امنیتی یا آسیبپذیریهای شبکه رو برطرف کنن، بدون اینکه کل چارچوب شبکه به هم بریزه.
مدل مرجع OSI یه پایه تئوری قدرتمند برای مهندسا و توسعهدهندهها فراهم میکنه تا بتونن پیچیدگیهای ارتباطات شبکه رو بهتر درک کنن. اما اغلب این مدل با یه مدل دیگه هم مقایسه میشه: مدل پروتکل کنترل انتقال/پروتکل اینترنت یا همون TCP/IP.
برخلاف مدل OSI، مدل TCP/IP بر اساس پروتکلهای استانداردی بنا شده که بهطور گستردهای توی شبکههای واقعی پیادهسازی میشن. این مدل به جای هفت لایه، چهار لایه داره، اما هر لایهی TCP/IP معادل یه یا چند لایه از مدل OSI هست.
ارزش اصلی مدل OSI بیشتر در زمینه آموزشی و به عنوان یه چارچوب مفهومی برای طراحی پروتکلهای جدید هست که اطمینان حاصل کنه این پروتکلها میتونن با سیستمها و تکنولوژیهای موجود سازگار باشن.
اما مدل TCP/IP به خاطر تمرکز عملی و قابلیت پیادهسازی توی دنیای واقعی، تبدیل به ستون فقرات شبکههای مدرن شده. طراحی مقیاسپذیر و لایهبندی افقی این مدل، باعث رشد انفجاری اینترنت شده و امکان اتصال میلیاردها دستگاه و حجم عظیمی از ترافیک دادهها رو فراهم کرده.
مدل OSI یه چارچوب استاندارد برای ارتباطات شبکهایه که از هفت لایه تشکیل شده و هر لایه وظیفه خاصی داره.
این مدل به دستگاههای مختلف اجازه میده که بدون مشکل با هم ارتباط برقرار کنن، حتی اگه از سیستمها و پروتکلهای متفاوتی استفاده کنن.
هر لایه وظیفه خاصی داره، از انتقال فیزیکی دادهها تا ارائه اطلاعات به کاربر نهایی. این لایهها با هم کار میکنن تا ارتباطات شبکهای به درستی انجام بشه.
بله، تقریباً همه شبکهها از این مدل یا نسخههای مشابه اون استفاده میکنن تا ارتباطات به درستی انجام بشه.
اگر با شبکهها و فناوری اطلاعات سر و کار دارید، بله، آشنایی با این مدل خیلی مفیده.
مدل OSI مثل یه نقشه راه برای ارتباطات شبکهایه. این مدل به ما کمک میکنه تا بفهمیم چطوری دادهها از یه دستگاه به دستگاه دیگه منتقل میشن و هر لایهای از این مدل وظیفه خاص خودش رو داره. این مدل به توسعهدهندهها و مهندسای شبکه اجازه میده تا شبکههای پیچیدهتری بسازن و به راحتی مشکلاتشون رو حل کنن. با وجود اینکه امروزه بیشتر از مدل TCP/IP استفاده میشه، مدل OSI هنوز هم به عنوان یه چارچوب مفهومی و آموزشی خیلی مهمه. این مدل به ما نشون میده که حتی توی دنیای پیچیده شبکهها هم میشه با یه رویکرد ساختارمند و روشن، همه چیز رو مدیریت و بهینهسازی کرد. در نهایت، فهمیدن مدل OSI مثل داشتن یه نقشه راه برای شبکهس، نقشهای که به ما کمک میکنه تا بهترین مسیر رو برای برقراری ارتباط پیدا کنیم.
دوره الفبای برنامه نویسی با هدف انتخاب زبان برنامه نویسی مناسب برای شما و پاسخگویی به سوالات متداول در شروع یادگیری موقتا رایگان شد: