مدل OSI چیست؟
مدل OSI (Open Systems Interconnection)، نشاندهندهی یکی از معماریهای مورد استفاده در شبکههای کامپیوتری است. پیش از به وجود آمدن این مدل، هر ارایهکنندهی ابزارهای شبکهای، مدل شبکهای متناسب با محصولات خود ارایه میکرد. برای نمونه، کامپیوترهای تولید شده بهوسیلهی شرکت IBM تنها قادر بودند با سایر کامپیوترهایی که ساخته شده بهوسیلهی این شرکت بودند، ارتباط برقرار کنند. به این ترتیب، ایراد اصلی این ساختار آن بود که بستههای یک شبکه، نمیتوانستند در شبکههای دیگر جابهجا یا فهمیده شوند و هر شبکه با هر اندازهای، باز هم یک شبکهی ایزوله (isolated) محسوب میشد.
مدل OSI به عنوان اولین استاندارد تعریف شده در شبکه، سبب شد تا همهی سازندگان دستگاههای شبکه مجبور به استفاده از استانداردهای مشترک شوند و از این رو دستگاههای متصل به شبکهی اینترنت، فارغ از اینکه از چه سازندهای باشند، بتوانند با یکدیگر به تبادل اطلاعات بپردازند.
مدل OSI بر پایهی معماری لایهای و از ۷ لایهی مختلف ساخته شده است. اساس کار این معماری به این شکل است که هر لایه، بدون آنکه از جزییات کار لایهی پایینتر خود آگاه باشد، از نتیجهی عملکرد آن استفاده میکند و به لایهی بالاتر خود سرویس میدهد.
هر لایه، پروتکلهای مخصوص به خود را دارد که اطلاعات را طبق استانداردهای آن پروتکل، درون بستههایی قرار میدهد و هدرهایی را برای هر بسته مشخص میکند که اطلاعات لازم برای رسیدن بسته به مقصد را در خود دارند. هر یک از این بستهها وقتی به مقصد میرسند، در همان لایههایی که ایجاد شدهاند، باز میشوند و محتویات آنها به لایهی بعدی تحویل داده میشود.
مدل osi از چند لایه تشکیل شده است؟
طبق مدل جهانی OSI، سیستم ارتباطی به هفت لایه تقسیم میشود. هر لایه مبنایی برای لایه بعدی است و وظایف خاص خود را دارد. این لایه ها کمک میکنند تا توضیح قابل دیدن برای سیستم های ارتباطی و شبکه وجود داشته باشد و به مدیر شبکه در عیب یابی شبکه کمک میکند. تولیدکنندگان هم محصولات خود را بر مبنای OSI Model ارایه میدهند تا مشتری بفهمد محصول آنها در چه لایهای کار میکند.
لایه های پروتکل osi
تمام هفت لایه پروتکل OSI به کمک هم، دیتا را از فردی به فرد دیگری که ممکن است در طرف دیگر دنیا باشد، ارسال میکنند. در ادامه لایه های پروتکل osi و وظایف لایه های osi را بررسی میکنیم.
لایه اول – لایه فیزیکی Physical Layer
پایین ترین لایه مدل مرجع OSI لایه فیزیکی است. لایه فیزیکی مسئول ارتباط فیزیکی بین دستگاه ها است. اطلاعات در لایه فیزیکی در قالب بیت هستند. وظیفه لایه فیزیکی مدل OSI این است که بیت ها را از یک نود node به نود دیگر ارسال کند: این لایه سیگنال را دریافت میکند، آن را به ۱ یا ۰ تبدیل میکند، سپس آنها را به لایه بعدی یعنی لایه Data Link میفرستد تا فریم ها را سرهم کند.
هاب، ریپیتر Repeater، مودم و انواع کابل شبکه، دستگاه های لایه اول هستند.
سه لایه فیزیکی، شبکه و دیتا لینک، به عنوان لایه های پایین تر Lower Layers یا لایه های سخت افزاری Hardware Layers هم شناخته میشوند.
وظایف لایه فیزیکی مدل OSI
همگام سازی بیت – Bit Synchronization: با ایجاد کلاک، بیت ها را همگام سازی میکند این کلاک هم در سمت فرستنده هست و هم در سمت دریافت کننده در نتیجه همگام سازی بیت انجام میشود.
کنترل بیت ریت – Bit Rate Control: لایه فیزیکی نرخ انتقال را مشخص میکند مثلا تعداد بیت های ارسالی در ثانیه. برای آشنایی بیشتر با بیت ریت، خواندن مقاله Bit Rate چیست را توصیه میکنیم.
توپولوژی ها فیزیکی – Physical Topoligies: لایه فیزیکی مدل چینش دستگاه ها / نودها در شبکه مشخص میکند مثلا توپولوژی Bus و Star و Mesh.
حالت انتقال – Transmission Mode: لایه فیزیکی روش ارسال دیتا بین دو دستگاه متصل به هم را مشخص میکند. چند مدل انتقال عبارتند از: Simplex و Half Duplex و Full Duplex.
لایه دوم – لایه دیتا لینک Data Link Layer
لایه دیتا لینک یا DLL مسئول دریافت پیام در نود است. مهمترین وظیفه لایه دیتا لینک این است که مطمئن شود که ارسال دیتا از یک نود به نود دیگر و روی لایه فیزیکی، بدون خطا انجام شده است. در ارسال بسته روی شبکه این وظیفه لایه دیتا لینک است که با استفاده از Mac آدرس بسته را به مقصد برساند.
لایه دیتا لینک شامل دو زیر لایه است:
Logical Link Control (LLC)
Media Access Control (MAC)
بسته دریافتی از لایه شبکه، به اندازی فریم کارت شبکه، به فریم هایی تبدیل میشوند. DLL آدرس MAC فرستنده و گیرنده را در هدر قرار میدهد.
MAC آدرس گیرنده با اجرای پروتکل ARP – Addrss Resolution Protocol به دست میآید: چه کسی چنین آی پی آدرسی دارد؟ مقصد هم با MAC آدرس خودش جواب میدهد.
در لایه دیتا لینک، به بسته، فریم گفته میشود؛ سوییچ و بریج، دستگاه های لایه دوم هستند؛ و لایه دیتا لینک توسط کارت شبکه و درایورهای ماشین های هاست، مدیریت میشود.
وظایف لایه دیتا لینک مدل OSI
فریمینگ – Framing: فریمینگ راهی است که فرستنده برای ارسال مجموعهای از بیت ها استفاده میکند تا آن را برای گیرنده، قابل فهم کند. مثلا به ابتدا و انتهای فریم بیت خاصی میچسباند.
آدرس دهی فیزیکی – Physical Addressing: پس از ایجاد فریم، MAC آدرس فرستنده و گیرنده را در فریم قرار میدهد.
کنترل خطا – Error Control: لایه DDL مکانیزم کنترل خطا انجام میدهد یعنی خطا را تشخیص میدهد و فریم های گم شده یا خراب شده را دوباره ارسال میکند.
کنترل جریان – Flow Control: نرخ انتقال داده باید در هر دو سمت یکسان باشد وگرنه ایرادی در دیتا به وجود آمده است. کنترل داده، مقدار دیتایی است که قبل از دریافت Acknowledge میتوان ارسال کرد.
کنترل دسترسی – Access Control: وقتی یک کانال ارتباطی بین چند دستگاه به اشتراک گذاشته میشود، زیر لایه MAC در لایه دیتا لینک، کمک میکند تا مشخص شود در حال حاضر چه دستگاهی روی کانال کنترل دارد.
لایه سوم – لایه شبکه Network Layer
لایه شبکه برای ارسال داده از یک
هاست به هاست دیگری که در شبکه دیگری قرار دارد استفاده میشود. مسیریابی بسته در لایه شبکه انجام میشود مثلا انتخاب کوتاه ترین مسیر از بین مسیرهای در دسترس برای ارسال بسته. IP آدرس فرستنده و گیرنده، توسط لایه شبکه در هدر قرار میگیرد.
سگمنت در لایه شبکه، بسته Packet نامیده میشود.
وظایف لایه شبکه مدل OSI
مسیریابی – Routing: پروتکل های لایه شبکه مسیر مناسب از منبع به مقصد را مشخص میکنند. به این کار مسیریابی میگویند.
آدرس دهی منطقی – Logical Addressing: برای اینکه هر دستگاه در داخل شبکه یونیک باشد، لایه شبکه آدرس دهی انجام میدهد: IP آدرس فرستنده و گیرنده در هدر لایه شبکه قرار میگیرد.
لایه چهارم – لایه انتقال Transport Layer
لایه انتقال به لایه اپلیکیشن سرویس میدهد و از لایه شبکه سرویس میگیرد. در لایه انتقال به دیتا، سگمنت گفته میشود. لایه انتقال مسئول دریافت پیغام کامل است. لایه انتقال Acknowledgement را هنگام انتقال موفق دیتا میفرستد و اگر انتقال دیتا با خطا همراه باشد، آن را دوباره میفرستد.
لایه انتقال، قلب مدل OSI نامیده میشود؛ لایه انتقال توسط سیستم عامل اجرا میشود؛ دیتا در لایه انتقال، سگمنت نامیده میشود.
در سمت فرستنده:
لایه انتقال، دیتای فرمت شده را از لایه بالاتر میگیرد و سگمنت بندی انجام میدهد و کنترل جریان و کنترل خطا را پیاده میکند تا از انتقال مناسب دیتا مطمئن شود. همچنین شماره پورت مبدا و مقصد را در هدرش اضافه میکند و دیتای سگمنت شده را به لایه شبکه میفرستد.
فرستنده باید شماره پوررت متناظر با برنامه دریافت کننده را بداند. این شماره پورت یا دستی یا پیش فرض تعیین شده است. مثلا وقتی برنامه وب درخواستی به وب سرور میفرستد معمولا از پورت ۸۰ استفاده میکند زیرا پورت پیش فرضی است که برای برنامه های وب طراحی شده است. بسیاری برنامه ها طبق پورت پیش فرض طراحی شدهاند.
در سمت گیرنده:
لایه انتقال شماره پورت را از هدر میخواند و دیتای دریافت شده را به برنامه مرتبط فوروارد میکند.
وظایف لایه انتقال مدل OSI
سگمنت بندی و سر هم کردن مجدد – Segmentation and Reassembly: لایه انتقال، پیغام را از لایه Session دریافت میکند و پیغام را به واحدهای کوچکتر تقسیم میکند. هر سگمنت هدر متناظر با خودش را دارد. در مقصد و در لایه انتقال است که پیغام ها دوباره سر هم میشوند.
Service Point Addressing: برای اینکه لایه انتقال از دریافت درست پیغام مطمئن باشد، در هدر لایه انتقال، نوعی آدرس به نام Service Point یا Port وجود دارد.
لایه پنجم – لایه نشست Session Layer
لایه نشست مسئول برقراری اتصال، نگهداری نشست ها، احراز هویت و تامین امنیت است. امنیت شبکه در لایه های osi توسط لایه نشست تامین میشود.
سه لایه بالا که لایه Session هم جز آنها است، در مدل TCP IP با هم یکی شدهاند و عنوان لایه اپلیکشین را دارند. پیاده سازی این سه لایه توسط اپلیکیشن شبکه انجام میشود. این سه لایه به نام های Upper Layers یا Software Layers هم شناخته میشوند.
وظایف لایه نشست مدل OSI
Session establishment, maintenance and termination: برقراری ارتباط، استفاده از اتصال و قطع ارتباط است.
همگام سازی – Synchronization: لایه نشست، چک پوینت را که مشخص کننده همگام سازی است به دیتا اضافه میکند. این نقاط همگام سازی به تشخیص خطا کمک میکند تا دیتا به درستی دوباره همگام سازی شود، انتهای پیغام ها حذف نشود و دیتا، لاس نشود.
کنترلر دیالوگ – Dialog Controller: لایه نشست اجازه میدهد دو سیستم، ارتباط را با هم شروع کنند که به صورت Half Duplex یا Full Duplex انجام میشود.
لایه ششم – لایه نمایش Presentetion Layer
لایه Presentetion به عنوان لایه Translation هم نامیده میشود. دیتای گرفته شده از لایه اپلیکشین، باز میشود و به فرمتی که قابل انتقال در شبکه باشد در میآید.
وظایف لایه نمایش مدل OSI
ترجمه – Translation: مثلا ASCII را به EBCDIC ترجمه میکند.
رمزنگاری و رمزگشایی: در رمزگذاری دیتا، دیتا به فرم یا کد دیگری در میآید. دیتای رمزگذاری شده به صورت Cipher Text در میآید و دیتای رمزگشایی شده به صورت Plain Text. مقدار Key برای رمزنگاری و رمزگشایی بسیار مهم است.
فشرده سازی – Compression: تعداد بیت های لازم برای انتقال روی شبکه را کم میکند.
لایه هفتم – لایه کاربرد Application Layer
برنامه های شبکه، لایه کاربرد را اجرا میکنند. این برنامه ها دیتایی که باید روی شبکه منتقل شود را تولید میکنند. لایه کاربرد در واقع برای سرویس های برنامه، پنجرهای است که به شبکه دسترسی دارد و اطلاعات دریافتی را به کاربر نشان میدهد. مثلا برنامه ها (آفیس، اوت لوک)، مرورگرها (کروم، فایرفاکس، سافاری)، پیامرسان ها (اسکایپ).
نام دیگر لایه کاربرد، Desktop Layer است.
برای آشنایی با پروتکل SMB که در لایه اپلیکیشن کار میکند، مقاله “پروتکل SMB چیست و چگونه کار می کند؟” را مطالعه کنید.
وظایف لایه کاربرد مدل OSI
Network Virtual Terminal
FTAM-File transfer access and management
Mail Services
Directory Services
سناریوی مدل OSI
سناریویی برای شرح لایه ها و پروتکل های مدل مرجع OSI در ادامه ارایه شده است.
سناریویی را در نظر بگیرید که کاربر در آن میخواهد پیغامی را از طریق برنامه پیامرسان در مرورگرش بفرستد. برنامه پیامرسان در اینجا به عنوان لایه اپلیکیشن عمل میکند و واسط کاربری را در اختیار کاربر میگذارد تا دیتا که در اینجا پیام است ایجاد کند. این پیام فشرده میشود، رمزگذاری میشود، به ۰ یا ۱ تبدیل میشود و حالا آماده انتقال است.