مدل OSI چیست؟ تشریح مدل مرجع OSI به زبان ساده
مدل مرجع OSI یا به طور خلاصه مدل OSI که یک مدل مفهومی و یکی از معماریهای مورداستفاده در شبکه برای درک کارکرد شبکه است. Open System Interconnection که به اختصار به OSI معروف است و توسط سازمان جهانی استاندارد(ISO) چندین دهه قبل ارائه شد تا سروسامانی به مفهوم شبکه دهد.
با درک این مدل، سازوکار تجهیزات شبکهای (Network Device)ها مشخص میشود و برای ورود به شبکه یادگیری این مفهوم یک الزام و حتی یکی از سوالات اساسی در استخدام یک نیروی IT است. متاسفانه بسیاری از نیرویهای به ظاهر متخصص هنوز نمیتوانند این مکانیزم شبکه را به روشنی توضیح دهند. اما من سعی میکنم تا حد امکان ساده توضیح بدم که برای همیشه یادتون باشه.
کامپیوترها در شبکه برای انتقال اطلاعات از این مفهوم پیروی میکنند و با آشنایی با مدل OSI میتوان مشکلات شبکه و سیستمهای کامپیوتری را بهتر درک کرد و راهکارها را متوجه شد و برای حل مشکلات شبکه اقدام کرد.
تشریح مدل OSI به زبان ساده و قابل فهم
مدل OSI یک مدل هفت لایهای است و هر لایه یک وظیفه خاصی را به عهده دارد تا یک Data یا بسته اطلاعاتی از یک مبدا به یک مقصد انتقال پیدا کند، حالا این اطلاعات میتواند توسط هر نوع تجهیزات شبکهای اتفاق بیفتد؛ مانند کامپیوتر، پرینتر و … . در لایه هفتم که ما مستقیما با آن در ارتباط هستیم یک درخواست را تولید و ارسال میکنیم این درخواست میتواند باز کردن یک وبسایت یا ارسال یک پرینت در شبکه یا باز کردن یک Shared Folder باشد.
در لایه بعد باید این درخواست آمادهسازی شود که وظیفه آمادهسازی و قالببندی اطلاعات بر عهده لایه ششم است و وقتی قالببندی روی اطلاعات انجام شد، تحویل لایه پنجم میگردد و لایه پنجم تصمیم میگیرد که این اطلاعات را ارسال کند یا خیر؟ اگر قرار شد ارسال کند، چه زمانی ارسال کند؟ مدت زمان ارسال چقدر باشد؟ چطوری ارسال را مدیریت کند؟ و تا کی این ارسال ادامه داشته باشد؟ تمامی این موارد در لایه پنجم بررسی میشود و سپس تحویل لایه چهارم از مدل OSI میشود.
در لایه چهارم برای ارسال دو نوع انتخاب وجود دارد. اطلاعات با دقت و سرحوصله ارسال شود یا اطلاعات با سرعت تمام ارسال شود و دقت اهمیتی نداشته باشد البته اگر حجم اطلاعات زیاد باشد، اطلاعات را به بخشهای کوچکتری تقسیم میشود و سپس ارسال میشود.
در لایه چهارم این تصمیمگیری انجام میشود و سپس اطلاعات تحویل لایه سوم میشود. در لایه سوم تصمیمگیری میشود که اطلاعات به کجا ارسال شوند و در واقع آدرسدهی مشخص میشود و برای رسیدن به این آدرس قطعا یک مسیر خوب هم وجود دارد، پس آدرس و مسیر مقصد هم در این لایه انتخاب میشود و سپس اطلاعات تحویل لایه دوم داده میشود و در این لایه کدپستی و پلاک مقصد مشخص میشود و در واقع مسیر دقیقتر و جزئیات بیشتر تعیین میشود. نهایتا بسته اطلاعاتی تحویل لایه یک داده میشود که وظیفه حملکردن و بردن اطلاعات را دارد که نوع وسیله نقلیه و سرعت آن هم در این بخش و لایه تعیین میشود.
نحوه دریافت اطلاعات در سمت مقصد چگونه است؟
وقتی اطلاعات ارسال شد، در مقصد توسط لایه اول دریافت میشود و سپس تحویل لایه دو میشود و آدرس دقیق مقصد خوانده میشود و به ترتیب تحویل لایههای بالاتر میگردد و به همین روال تا لایه هفتم پیش میرود تا بسته اطلاعاتی تحویل مقصد داده شود. اگر دقت کرده باشید وقتی اطلاعات ارسال میشود از لایه هفت به لایه یک ارسال میشود ولی در مقصد عکس این عمل انجام میشود و از لایه یک دریافت و تا لایه هفت پیش میرود.
البته همیشه الزام نیست تا لایه هفت پیش برود و این فقط یک مثال ساده برای فهم مدل مرجع OSI بود. خب الان که متوجه شدیم چه اتفاقی میافتد بهتره که به صورت تخصصی هم بررسی کنیم. البته در تصویر زیر توضیحات وجود دارد که بنده به صورت ساده بیان کردم. هر لایه یک اسم خاصی دارد که در ادامه به طور مفصل تشریح میکنیم. اگر بخش تشریح مدل OSI را در کتاب Network + مطالعه کنید، متوجه خواهید شد که برای مدل هفت لایه OSI یک بخش کامل را اختصاص داده است. پس این مدل OSI حرفهای زیادی برای گفتن دارد. در این مطلب سعی میکنیم از نام واقعی و ترجمه نشده لایهها استفاده کنیم تا درک بهتری داشته باشید.
لایه هفتم مدل OSI: لایه اپلیکیشن یا Application Layer
زمانی که صحبت از سرویس و خدمات میشود یعنی با لایه هفتم کار داریم. مثلا وقتی مرورگر را باز میکنیم تا سایت بامادون را باز کنیم، در واقع با لایه Application کار داریم یا زمانی که در سطح شبکه یک Shared Folder را باز میکنیم باز هم با لایه اپلیکیشن سروکار داریم. اصطلاحا به لایه هفتم User Interface هم میگویند و تنها لایهای است که کاربر مستقیما با آن ارتباط برقرار میکند. پس لایه هفتم میتواند همان مرورگر ما باشد. وظیفه لایه هفتم مدل OSI دریافت اطلاعات برای برقراری ارتباط با کاربر است. بعد از دریافت اطلاعات توسط کاربر اطلاعات یا Data وارد پروسه میشود و تحویل لایه ششم یا لایه Presentation میگردد.
پروتکلهای زیادی در لایه اپلیکیشن مدل OSI کار میکنند که میتوان به پروتکل HTTP، پروتکل SMTP، پروتکل SIP، پروتکل FTP، پروتکل DNS، پروتکل TLS و … اشاره کرد.
لایه ششم: لایه Presentation
اطلاعاتی که از لایه اپلیکیشن دریافت شده توسط لایه Presentation قالببندی میشود. منظور از Formatting یا قالببندی یعنی؛ فشردهسازی (Compression) ، رمزنگاری (Encryption) و ترجمه یا Translation(اطلاعات قابل فهم برای طرفین باشد و یک زبان مشترک داشته باشد) میباشد. بعد از انجام تنظیمات قالببندی روی Data، بسته اطلاعاتی تحویل لایه پنجم یعنی لایه Session میشود. (در این لایه اطلاعات به شکل استاندارد بستهبندی میشوند.)
لایه پنجم مدل OSI: لایه Session
اطلاعاتی که از لایه Presentation دریافت کرده است را لایه پنجم تصمیمگیری میکند که با مقصد ارتباط برقرار کند یا خیر؟ اگر قرار است ارتباط برقرار شود چقدر طول بکشد؟ کی شروع شود؟ کی تمام شود؟ وظیفه لایه Session ایجاد کردن، نگهداری و خاتمه دادن به یک ارتباط یا Session است.
زمانی که ریموت دسکتاپ میزنیم در واقع به کامپیوتر مقصد یک Session زدهایم و این Session زمانی که برقرار شد از آن نگهداری میشود و بعد از مدتی قطع میشود، این وظیفه همان لایه Session است. یا یک مثال دیگر، زمانی که چند تا تب در مرورگر باز میکنیم یعنی چند تا Session به سایتهای مختلف زدهایم. لایه Session که نحوه برقراری ارتباط را مشخص کرد، اطلاعات را تحویل لایه چهارم یعنی لایه انتقال یا Transport میدهد.
یک مثال بسیار ملموس: وقتی با موبایل خود شمارهگیری میکنید و نفر مقابل پاسخ میدهد در واقع یک Session برقرار شده است.
لایه چهارم: لایه انتقال یا Transport Layer
اطلاعاتی که از لایه Session دریافت شده توسط لایه Transport، میزان حجم و اندازه آن بررسی میشود و اگر حجم آن زیاد باشد باید قطعه قطعه شود و به قطعات کوچکتر تقسیم شود و سپس در داخل شبکه ارسال شود. چون در شبکه یک مفهوم به نام MTU یا Maximum Transmission Unit داریم که به معنی حداکثر اندازه بسته ارسالی است. MTU مانند حداکثر وزن قابل تحمل یک روگذر است.
بیشترین اندازه MTU در شبکه 1500 بایت است اگر از این اندازه بسته اطلاعاتی بیشتر باشد باید تکهتکه شود. به این قسمتهای قطعه قطعه شده Segment میگویند و به این فرآیند تکهتکه شدن اطلاعات Segmentation میگویند. اگر اطلاعات ریز ریز شد باید در سمت مقابل یعنی مقصد به صورت درست و پشت سرهم دریافت شود تا به درستی به هم متصل شوند و قابل خواندن باشد. پس به هر یک از قطعهها یک برچسب به نام Sequence number (شمارههای پشت سر هم) میزنند و به این فرآیند Sequencing میگویند. پس اگر حجم اطلاعات زیاد باشد دو تا فرآیند Segmentation و Sequencing در این لایه انجام خواهد گرفت.
وظیفه دیگر لایه Transport مشخص کردن نوع انتقال از لحاظ سرعت و دقت است. دقت یعنی به ازای ارسال هر Segment یک تاییدیه (Acknowledge) دریافت شود که به آن ACK هم میگویند و نشاندهنده این است که اطلاعات رسیده است و در اصطلاح فنی میگویند که ارتباط Connection Oriented (اتصالگرا) است و از پروتکل TCP استفاده میشود و به ازای هر بسته اطلاعاتی یک تاییدیه دریافت میشود (سرعت پایین اما دقت بالا). اما زمانی که سرعت مدنظر است ارتباط Connectionless است و نوع پروتکل UDP است یعنی کل بسته اطلاعاتی ارسال میشود و در نهایت به ازای هر Session یک ACK یا تاییدیه دریافت میکند.(سرعت بالا دقت پایین، مناسب Video Streaming).
اصلیترین پروتکلهای مورداستفاده در لایه Transport همین دو پروتکل TCP و UDP است و ارتباطی به نسخه IP هم ندارد. چه از IP ورژن 4 استفاده کنیم چه از ورژن 6 تفاوتی ندارد و این پروتکلها وجود دارند. به این خاطر به پروتکل TCP یک پروتکل Connection Oriented میگویند که قبل از ارسال اطلاعات، یک ارتباط بین مبدا و مقصد تشکیل میدهد تا مطمئن شود مقصد جوابگو است و اصطلاحا UP است.
مفهوم 3way handshake در پروتکل TCP
به این فرآیند مطمئن شدن از مقصد و سپس ارسال و دریافت اطلاعات توسط پروتکل TCP ارتباط 3way handshake یا دست تکانی سه مرحلهای میگویند. بعد از شروع ارتباط، برای هر بسته ارسالی یک ACK دریافت میشود و به همین خاطر سرعت TCP از UDP کمتر است. پروتکلهای معروف دیگری مانند ICMP هم در این لایه کار میکند که دو ابزار معروف ping و tracert از پروتکل ICMP استفاده میکنند.
مفهوم TCP Windowing چیست؟
یک مفهوم دیگر به نام TCP Windowing هم در این لایه داریم و به این معنی است که دستگاهی که اطلاعات را ارسال میکند، در ابتدا یک بسته ارسال میکند و مقصد هم با ACK پاسخ آن را میدهد و اعلام میکند که بسته رسیده است. برای بار دوم ارسال کننده اطلاعات دو تا بسته را همزمان برای مقصد ارسال میکند که متوجه شود آیا مقصد میتواند دریافت کند یا خیر؟ پاسخ مقصد بر اساس Sequence number است اگر ACK2 برگرداند یعنی بسته 2 را بفرست.
به همین شکل تعداد بستههای ارسالی افزایش پیدا میکند تا زمانی که یک بسته از بین برود و Lost شود. در آن زمان ارسال کننده متوجه تعداد بسته موردنیاز میشود و طبق آن تعداد بستهها را ارسال میکند. با استفاده از این روش سرعت انتقال اطلاعات در پروتکل TCP افزایش مییابد. چون تعداد ACKها کاهش مییابد.
در لایه Transport پورت مقصد و مبدا هم مشخص میشود. پورت یک مفهوم منطقی است که نوع سرویس را مشخص میکند. پورت مبدا به صورت داینامیک و پورت مقصد وابسته به نوع سرویس انتخاب میشود. بعنوان مثال اگر قرار باشد یک وبسایت را باز کنیم از پروتکل TCP و پورت 80 یا 443 استفاده میشود که به ترتیب برای HTTP و HTTPS استفاده میشود. در آخر Segment آماده شده تحویل لایه Network میشود.
لایه سوم مدل OSI: لایه شبکه یا Network Layer
در این لایه دو کار بسیار مهم انجام میشود. پس از دریافت اطلاعات از لایه چهارم فرآیند Addressing یا آدرسدهی و Routing یا مسیریابی در لایه Network انجام میگیرد.
Addressing: آدرس منطقی یا همان IP Address مبدا و مقصد مشخص میشود و روی Packet قرار میگیرد تا وقتی پکت ارسال میشود، به آدرس مقصد ارسال شود و موقع دریافت، از آدرس مبدا دریافت شود.
Routing: پیدا کردن بهترین مسیر برای رسیدن اطلاعات به مقصد توسط فرآیند روتینگ صورت میگیرد. بعد از مشخص شدن مقصد و آدرس آن Packet تحویل لایه دوم یعنی Data Link Layer میشود. آدرس IP در طول مسیر تغییر نمیکند.
لایه دوم: Data Link Layer
پس از دریافت پکت از لایه Network روی بسته اطلاعاتی موجود Physical Addressing هم اضافه میشود که به آدرسدهی مک یا آدرس سختافزاری هم معروف است. در واقع آدرس MAC فرستنده و گیرنده روی بسته قرار میگیرد و پکت تبدیل به فریم (Frame) میشود و تحویل لایه اول میگردد. (آدرس دقیق مقصد مشخص میشود). آدرس مک در طول مسیر برخلاف IP بارها تغییر میکند.
💡 بیشتر بدانید: «تفاوت نسخههای مختلف ویندوز 10»
لایه اول مدل OSI: لایه فیزیکی یا Physical Layer
این لایه وظیفه ارسال Frame دریافتی که توسط لایه Data Link ارسال شده را دارد. که توسط Mediaهای موجود مانند کابل یا فیبرنوری انجام میشود. تنها لایهای که با لایه متناظر خودش در آن طرف شبکه ارتباط دارد لایه فیزیکی است.
نکات تکمیلی در مورد مدل OSI
در هر لایه یکسری اطلاعات و اقدامات که روی بسته اطلاعاتی انجام میدهد را در قالب Header و Footer به بسته اطلاعاتی اضافه میکند و حجم بسته اطلاعاتی هم افزایش مییابد. Header اطلاعات مربوط به بسته اطلاعاتی است و Footer اطلاعات مقصد را در خود دارد. به فرآیند ایجاد کردن بسته اطلاعاتی (درسمت مبدا) Encapsulation و به فرآیند استخراج آن (در سمت مقصد) Decapsulation میگویند.
در مقصد هر لایه اطلاعات مربوط به خود را باز میکند و حذف میکند تا اطلاعات اصلی به مقصد برسد. اطلاعات در هر لایه از مدل OSI یک اسم مخصوص به خود دارد. در لایههای هفتم، ششم و پنجم به نام Data یا Payload معروف است، در لایه چهارم به آن Segment، در لایه سوم به آن Packet، در لایه دوم به آن Frame و در لایه یک به آن بیت یا صفر و یک میگویند.
هر لایه به صورت مستقل کار میکند و وظایف هر لایه با لایه دیگری متفاوت است و به هم ربطی ندارند و هر لایه وظیفه خودش را انجام میدهد. هر کدام از این لایهها یکسری پروتکلهای ارتباطی دارند و در کل این پروتکلهای موجود در هر لایه به ما کمک میکنند که اطلاعاتی را از یک کامپیوتر به یک کامپیوتر دیگر ارسال کنیم و چون مجموعهای از پروتکلها این کار را برای ما انجام میدهند اصطلاحا میگوییم یک Protocol Stack داریم. یعنی مجموعهای از پروتکلها که در کنار هم قرار گرفتند که یک کاری را برای ما انجام دهند.
هرکدام از لایهها با لایه بالایی و پایینی خود ارتباط مستقیم و مستقل دارد و تصمیم یک لایه فقط متوجه لایه بالایی و پایینی میشود و کل مدل را شامل نمیشود. یک متن انگلیسی برای به خاطر سپردن هفت مدل OSI وجود دارد که حرف اول هر کلمه معرف یک لایه است از لایه هفت تا لایه یک.
All People Seem To Need Data Processing
چرا مدل مرجع OSI را باید یاد بگیریم؟ تفاوت مدل OSI با مدل TCP/IP
چون بهترین روش برای تشریح ساختار شبکه است. در محیط واقعی از مدل TCP/IP استفاده میشود که در همه سیستمعاملها وجود دارد و در این مدل نقشها و وظیفهها نسبت به مدل OSI تغییری نکرده است و فقط مدل تغییر کرده و تعداد لایهها کمتر شده است و به چهار لایه تقلیل پیدا کرده است. این فقط یک تغییرنام است و مهم این است که لایه OSI را درک کنید تا شبکه را درک کنید.
مدل TCP/IP قدمت بیشتری نسبت به مدل OSI دارد و توسط سازمان DoD یا سازمان دفاع امریکا ساخته شده است. تنها تفاوت فقط این است که لایهها سادهتر و تعداد آنها کمتر شده است. لایه هفتم، ششم و پنجم تبدیل به یک یک لایه به نام Application شده است. لایه چهارم ثابت است و تغییر نام هم داده نشده است. لایه سوم به اسم Internet Layer تغییر نام پیدا کرده است و در نهایت لایه اول و دوم تبدیل به یک لایه به نام Network Access شده است.
در نهایت هدف از یادگیری این مدل این است که بدانیم تجهیزات شبکه هر کدام در چه لایهای کار میکنند. هر دستگاهی که با IP کار میکند (مانند روتر) در لایه سوم و هر دستگاهی که با مک آدرس کار میکند در لایه دوم قرار میگیرد (مانند سوئیچ) و هر دستگاهی که به قول دوست خوبم آقای نصیری فاقد شعور است در لایه یک کار میکند مانند کابل و Hub.
جمعبندی و حرف آخر
اگر قرار است وارد شبکه شوید و به عنوان یک کارشناس IT انجام فعالیت کنید باید با مدل هفت لایه OSI آشناباشید و مدل OSI را درک کنید. ما در این مطلب تلاش کردیم تا شما را با مفاهیمی مانند MTU، Segmentation، Sequencing، مفهوم Connection Oriented و connectionless، مفهوم Encapsulation و Decapsulation و Protocol Stack نیز آشنا کنیم. امیدوارم موردتوجه شما قرار گرفته باشد و ما را به دیگران هم معرفی کنید.
منبع: بامادون | کپی و نشر مطلب با ذکر منبع و نام نویسنده بلامانع است.
10 نظر
مطالب خیلی خوبی داره سایتتون، خسته نباشید.
سلام و درود. ممنونم. خوشحالیم مفید بوده.
بینهایت سپاسگزارم
درود بر تو. همین تشکرها ما رو دلگرم نگه میداره. موفق باشی?
سلام و عرض ادب خسته نباشید ، راستیش بیش از ده تا فیلم آموزش برای این قسمت دیدم هیچی درک نکردم ، این آموزش و توضیح شما کاملا ساده و روان و خیلی خیلی مفید بود کاملا متوجه شدم ممنون از شما
سلام درود بر شما. خواهش میکنم. موفق باشید
خیلی خوب
خدا قوت
کامبیز جان
بسیار خوب، روان و قابل درک موضوع مطرح شده و بنظر من بسیار آموزنده هست، تلاشت کاملا قابل تحسین هست.
فقط موردی که بنظر من وجود داره و اشتباه تایپی میتونه باشه در خصوص لایه چهارم ذهن منو درگیر کرده این هست که اطلاعات از لایه session به لایه transport منتقل میشه که بنظرم اشتباها presentation گفته شده.
درهرصورت کارت بسیار قابل تحسین هست.
مرتضی جان ممنونم که مطلب رو با دقت مطالعه کردی. حق با شما بود و مطلب ویرایش شد.
سلام و خسته نباشید.
خیلی روان و ساده توضیح دادید. در واقع به زبان آدمی زاد گفتین. قشنگ برام جا افتاد.