OSI مخفف عبارت Open Systems Interconnection به معنی “اتصال متقابل سامانههای باز” است که طراحی آن در سال ۱۹۷۰ به صورت همزمان ولی مجزا توسط گروه ISO و CCITT آغاز شد که هر دو یک هدف را دنبال میکردند: آسان تر کردن درک نحوه کار شبکهها. در سال ۱۹۸۳ نتیجه هر دوی این تحقیقات با هم ادغام شده و “The Basic Reference Model for Open Systems Interconnection” نامیده شد که به اختصار OSI Model شناخته میشود.
لایههای مدل OSI
مدل اواسآی (OSI) به هفت لایه تقسیم میشود که نحوه ارتباط و انتقال دادهها بین اجزای مختلف شبکه را مشخص میکند. در این بخش لایهها را از پایین ترین سطح به بالاترین سطح بررسی خواهیم کرد.
لایه ۱: فیزیکی (Physical)
پایین ترین سطح مدل OSI لایه فیزیکی یا Physical Layer است. این لایه ارتباط فیزیکی بین دستگاهها را مشخص میکند. به عبارت ساده تر میگوید که دادهها چگونه به مقصد برسند؛ با پالسهای الکتریکی، فرکانسهای رادیوای و … . علاوه بر مشخص کردن نوع فیزیکی ارتباط، مشخصات و استانداردهای آن را نیز رعایت میکند. برای مثال اگر در شبکه سیمی بودید معمولاً کابل Ethernet و اگر در شبکه بیسیم بودید وای فای یا بلوتوث و البته استانداردهای آنها در این لایه قرار میگیرند.
از وظایف دیگر این لایه تعریف توپولوژی شبکه (شکل هندسی قرارگیری استیشنها)، ارسال دادهها بصورت دیجیتالی یا آنالوگ ، تعریف نحوه ارتباط (یک طرفه، دو طرفه یا دو طرفه کامل) و کانال ارتباطی (مثلاً داده و صوت به صورت همزمان در کانالهای مختلف ADSL) است.
از پروتکلهای لایه فیزیکی میتوان به موارد زیر اشاره کرد:
رابط USB، استانداردهای وای فای (۸۰۲.۱۱)، بلوتوث، استاندارد اترنت (اغلب اتصالات کابلی، ۸۰۲.۳)، DSL (که ADSL نمونه ارتقاء یافته آن است) و …
لایه ۲: پیوند داده (Data Link)
در این لایه دادههای دریافتی از لایه سوم (Network) به قسمتهایی با اندازه یکسان تقسیم میشوند تا با ثبات بیشتری انتقال یابند. همچنین این لایه وظیفه دارد تا برخی از عملیات خطایابی و درصورت امکان، رفع خطایهای لایه فیزیکی را انجام دهد. این لایه قسمتهای کوچک تولید شده (که به فریم یا Frame معروف اند) را با استفاده از آدرس فیزیکی (همان آدرس مک) به مقصد میرساند. به عبارت بهتر، لایه پیوند داده است که با استفاده از لایه فیزیکی، دادهها را به درستی به مقصدشان منتقل میکند.
برخی از پروتکلهای موجود در این لایه از قابلیت پاسخ صحیح در صورت دریافت فریم از سمت گیرنده پشتیبانی میکنند یعنی اگر پاسخی مبنی بر دریافت فریم ارسال نشد، آن فریم دوباره ارسال میشود. این عملکرد، قابلیت خطایابی و رفع خطا را به لایه پیوند داده میدهد.
اما برخی از پروتکلها نه تنها قابلیت بالا را ندارند، بلکه هیچ Checksum ای هم در کنار فریم ارسال نمیکنند که گیرنده بتواند درستی فریم و خراب نبودنش را تایید کند. یعنی در این پروتکلها عملاً هیچ امکان عیب یابی و رفعی انجام نمیشود و همه این موارد را بر عهده لایههای بالاتر میگذارد.
لایه دیتا لینک از دو زیرلایه تشکیل شده که عبارت اند از:
زیرلایه LLC: کار اصلی زیر لایه بالایی Logical Link Control برقراری ارتباط اولیه و مزاکره در مورد پارامترهای مختلف با گیرنده است. از جمله مهمترین این پارامترها سرعت دریافت گیرنده است که در مسائل Flow Control نقش اساسی دارد. اگر سرعت فرستنده از گیرنده بیشتر باشد، قسمتی از دادهها از بین خواهد رفت. بنابراین این زیرلایه با کنترل چنین پارامترهایی و تنظیم آنها، امکان ارتباط صحیح با گیرنده را میدهد. همچنین برخی از پروتکلها در این زیرلایه میتوانند عمل کنترل خطا (دو موردی که در بالا گفته شد) و اطلاع رسانی خطاها به لایههای بالایی را نیز انجام دهند.
زیرلایه MAC: کار اصلی زیرلایه پایینی Media Access Control آدرس دهی به فریمهاست که در نتیجه دسترسی گیرنده به فریم را مشخص میکند. این آدرس گذاری با آدرس مک (MAC Address) انجام میپذیرد که برای همه کارتهای شبکه موجود در جهان یک مقدار منحصر به فرد است. همچنین متدهای مختلفی برای جلوگیری از تصادم دادهها در این زیرلایه به کار گرفته میشود.
از پروتکلهای لایه پیوند داده میتوان به موارد زیر اشاره کرد:
زیرلایه الالسی (۸۰۲.۲)، زیرلایه مک، PPP (که PPPoE و PPPoA از آن نشأت گرفته اند)، L2TP، LLDP و …
لایه ۳: شبکه (Network)
لایه شبکه یا Network Layer وظیفه سرهمبندی و آماده کردن کردن قسمتهای دریافتی از لایه دوم (Data Link) و تبدیل آنها به بستههای داده و همچنین در ارسال داده، یافتن بهترین مسیر مناسب برای رساندن دادهها و تبدیل سگمنتها از لایه چهارم به بستههای داده را بر عهده دارد. از دیگر کارهایی که در لایه شبکه اتفاق میافتد، تبدیل شدن آدرسهای منطقی شبکه (معمولاً IP Address) به آدرسهای فیزیکی (MAC Address) است که در لایه پایین تر یعنی Data Link از آنها استفاده میشود. در لایه نتورک ثبات دادههای ارسالی مهم نیست و این وظیفه عهده لایه چهارم (Transport) است.
از پروتکلهای لایه شبکه میتوان به موارد زیر اشاره کرد:
IPv4 و IPv6 که همان پروتکل اینترنت هستند، ICMP (که اغلب برای پینگ گیری استفاده میشود)، IPsec، AppleTalk و …
لایه ۴: انتقال (Transport)
در لایه انتقال یا Transport Layer است که پروتکلهای TCP و UDP شکل میگیرند. این لایه ترافیک دادهها را کنترل کرده و آنها را برای انتقال به لایههای پایین تر به سگمنتهایی با اندازه متناسب با پهنای باند مشخص شده تبدیل میکند که در لایه سوم این سگمنتها خود به بستههای بیشتر و در لایه دوم این بستهها به قسمتهای بیشتر تقسیم میشوند. لایه انتقال وظیفه دارد تا پایداری و ثبات دادههای انتقالی را بررسی کند مثلاً اگر برخی از این بستهها به مقصد نرسید، آنها را دوباره ارسال کند و یا به بستههای خاصی اولویت بیشتری دهد. اغلب بررسیهای امنیتی (مثلاً رولهای فایروال) و برخی از رمزگذاریها در این لایه انجام میشود.
لایه انتقال دارای حالتهای مختلفی است که از TP0 تا TP4 نامگذاری میشوند. TP0 کمترین قابلیت بازیابی خطا و ثبات را داشته و TP4 بیشترین قابلیت بازیابی و تصحیح خطا و ثبات را داراست. قابل ذکر است که قسمتی از همین کار در لایه دوم هم اتفاق میافتد.
از پروتکلهای لایه انتقال میتوان به موارد زیر اشاره کرد:
TCP، UDP، NBF و …
لایه ۵: جلسه (Session)
لایه نشست، جلسه یا سِشِن (Session Layer) درواقع ارتباطات و کانکشنها را کنترل میکند. برای درک مفهوم سشن عمل زنگ زدن با تلفن را در نظر بگیرید. برای این که با سمت دیگر صحبت کنیم اول باید به وی زنگ بزنیم تا ارتباط برقرار شود سپس قادر به حرف زدن خواهیم بود. تا زمانی که گوشی را سر جایش نگذاشته ایم یا طبق یک محدودیت بازه زمانی یا عوامل دیگر نظیر خرابی خط، نشست ما برقرار خواهد بود.
در ارتباطات و شبکههای کامپیوتری نیز چنین اتفاقی میافتد. تا زمانی که نشست ما قطع نشده قادر به تبادل داده خواهیم بود و اگر نشست قطع شود، دیگر هیچ یک از دادههای ارسالی معنای برای سمت دیگر نخواهد داشت. نشستها این اجازه را به ما میدهند که با بیش از یک گره (Node) در ارتباط باشیم.
از پروتکلهای لایه جلسه میتوان به موارد زیر اشاره کرد:
Named pipe، NetBIOS، SAP، PPTP، RTP، SOCKS و SPDY
لایه ۶: نمایش (Presentation)
لایه نمایش یا Presentation Layer اطلاعاتی که از لایه بالاتر دریافت میکند را به یک قالب قابل درک برای شبکه تبدیل میکند که در لایههای پایین تر استفاده میشوند و در دریافت اطلاعات آن را به قالب اصلیاش تبدیل میکند. به این فرایند رمزگذاری و برعکس، رمزنگاری نیز گفته میشود. یکی از کارهای مهمی که این لایه انجام میدهد فشرده سازی اطلاعات در برخی از پروتکلهاست که اندازه دادهها را تا حد مناسبی کاهش میدهد. همینطور ممکن است عمل رمزگذاری امنیتی برای جلوگیری از دسترسی اطلاعات در فرایند ارسال و رمزنگاری امنیتی آنها پس از دریافت نیز توسط برخی از پروتکلهای این لایه انجام پذیرد.
از پروتکلهای لایه نمایش میتوان به موارد زیر اشاره کرد:
XDR و MIME
لایه ۷: کاربرد (Application)
نام این لایه نباید با اپلیکیشن یا برنامههایی که میشناسیم اشتباه گرفته شود. این لایه نزدیک ترین لایه به کاربر و انسان است به طوری که برنامهها و نرم افزارها از سمتی از لایه هفتم و از سمت دیگر با خود کاربر ارتباط برقرار میکنند. یعنی با استفاده از برنامهها، ما از پروتکلهای موجود در این لایه استفاده میکنیم.
یکی از نمونههای این برنامهها مرورگری است که الان با استفاده از آن مطالب این سایت را مشاهده میکنید. یعنی شما درخواست دریافت مطالب این سایت را داده اید و مرورگرتان با استفاده از پروتکل HTTP که در لایه هفتم است، محتوا را دریافت و برای شما نشان داده است.
از پروتکلهای لایه کاربرد میتوان به موارد زیر اشاره کرد:
HTTP و HTTPS (برای دسترسی به وب)، SMTP (برای ارسال ایمیل)، DHCP (برای اختصاص IP به دستگاههای شبکه)، DNS (برای تبدیل نام دامنه وبسایتها به آدرس IP آنها)، FTP (برای انتقال فایلها)، SSH و Telnet (برای دسترسی گرفتن به کامپیوتر دیگر) و …
چند نکته
برای حفظ کردن این مدل میتوانید حروف اول لایهها را از بالا به پایین در جمله “All People Seem To Need Data Processing” و از پایین به بالا در جمله “Please Do Not Throw Sausage Pizza Away” به خاطر داشته باشید.
OSI صرفاً یک مدل است ولی به دلیل تقسیم بندیاش، هنوز یک مدل مرجع شناخته میشود وگرنه مدل Internet Protocol Suit یا همان TCP/IP بسیار مناسب تر و عملی تر است تا جایی که به عنوان یک پروتکل از آن نام برده میشود.
توجه کنید که لایههای ذکر شده همگی در ارتباط بایکدیگر عمل میکنند. یعنی به صورت مجزا نیستند و کارکردشان همیشه با لایه(های) بالاتر یا پایین ترشان بستگی دارد.