آشنائی با مدل مرجع  OSI 

 

OSI از کلمات Open Systems Interconnect اقتباس و يک مدل مرجع در رابطه با نحوه ارسال پيام بين دو نقطه در يک شبکه مخابراتی و يا کامپيوتری است . هدف عمده مدل فوق، ارائه توصيه ها و راهنمائی های لازم به توليد کنندگان محصولات شبکه ای به منظور توليد محصولاتی سازگار با ساير توليد کنندگان است .  
مدل OSI توسط کميته IEEE ايجاد شده است . با استفاده از مدل فوق ، محصولات توليد شده توسط  توليد کنندگان مختلف امکان کار با يکديگر را  پيدا خواهند کرد ( سازگاری بين محصولات ) . مشکل عدم سازگاری بين محصولات توليدشده توسط شرکت های بزرگ توليد کننده تجهيزات سخت افزاری ، زمانی آغاز گرديد که شرکت HP تصميم به توليد يک محصول شبکه ای نمود و اين محصول با محصولات مشابه ساير شرکت ها ( مثلا" IBM ) سازگار نبود . با توجه به مشکل فوق ، در صورتی که قصد تهيه چهل کارت شبکه برای سازمان خود را داشته باشيد ، می بايست ساير تجهيزات مورد نياز شبکه را نيز از همان توليد کننده تهيه می نموديد ( اطمينان از  سازگاری بين آنان ) .  مشکل فوق تا زمان ايجاد مدل مرجع OSI همچنان وجود داشت و به عنوان يک معظل بزرگ در اين زمينه مطرح بود .
مدل OSI دارای هفت لايه متفاوت است که هر يک از آنان به منظور انجام عملياتی خاص ، طراحی شده اند . بالاترين لايه ، لايه هفت و پائين ترين لايه ، لايه يک است . در  زمان ارسال داده از يک کامپيوتر به کامپيوتر ديگر  ،  داده ها حرکت خود را از لايه هفتم آغاز نموده و پس از تبديل به سگمنت ، ديتاگرام  ، بسته اطلاعاتی ( Packet ) و فريم ، در نهايت  از طريق محيط انتقال ( مثلا" کابل )  برای کامپيوتر مقصد ارسال می گردند .

به طور خلاصه:

- مدلی برای فهم و توسعه ارتباطات شبکه کامپیوتر به کامپیوتر

- توسعه داد شده توسط ISO ( دهه 1980)

- ارتباطات شبکه را به هفت لایه تقسیم می کند

 

Applicaton  : لایه کاربرد

بالاترین لایه در مدل osi است و کار این لایه ایجاد یک لایه یا محیطی است که نرم افزارهای کاربردی بتوانند از طریق آن با شبکه در ارتباط باشند. در واقع این لایه رابط بین سیستم عامل و نرم افزار ها است .

: Presentation layer لایه نمایش

همانطور که از اسم این لایه پیداست نحوه نمایش اطلاعات را به ما نشان می دهد . بعنوان مثال در این لایه تعیین می شود که اطلاعات چگونه رمز نگاری شود یا چگونه فشرده سازی شود . در این لایه قالب بندی داده ها انجام می شود و همچنین کپسوله سازی اطلاعات جهت ارسال در شبکه و هماهنگی با سیستم عامل جهت شیوه یا نوع ارسال اطلاعات تعین می شود .

: Session layer لایه نشست

در هنگام برقراری یک ارتباط بین دو کامپیوتر اصطلاحا یک جلسه یا نشست برقرار می شود .همانطور که در یک جلسه یک منشی جلسه وجود دارد که زمان شروع ، اطلاعاتی که در جلسه قرار است مطرح شود ، مدت زمان جلسه و زمان پایان آن را تعین می کند در کامپیوتر نیز این لایه وظیفه مدیریت این نشست بین کامپیوترها را بر عهده دارد . در حقیقت این لایه ۳ وطیفه بر عهده دارد که به ترتیب :make یا ایجاد کردن جلسه ،maintain یا مدیریت جلسه ،terminate یا پایان دادن به جلسه را بر عهده دارد .

: Transport layer لایه انتقال

این لایه یک اتصال منطقی ( و نه فیزیکی ) نقطه به نقطه بین دو پایانه ارتباط مثلا بین دو دستگاه کامپیوتر ایجاد می کند . در این لایه دو روش برای این کار وجود دارد :

اتصال گرا ( connection-oriented ) : که مربوط به ارسال در پروتکل تی سی پی ( TCP ) است . در این پروتکل که اتصال گرا می‌باشد وظیفه کنترل جریان با قابلیت اعتماد بالا را دارد.
غیر اتصال گرا ( connectionless ) : که مربوط به ارسال در پروتکل یو دی پی ( UDP ) است . ( این پروتکل غیر متصل می‌باشد و برخلاف TCP از سرعت بالا تری برخوردار است، اما قابلیت اعتماد آن کمتر است. بعدا مفصل به این ۲ پروتکل می پردازیم .

: Network layer لایه شبکه یا Router layer یا   IP address layer

پروتکل معروف IP در این لایه کار می کند . روتینگ هم در این لایه انجام می شود . روتینگ را می توان با یک عملیات ۲ سوالی تصور نمود :

برای مقصد داده شده از روتر محلی چند مسیر معتبر وجود دارد ؟
بهترین” مسیر برای رسیدن به آن مقصد کدامیک است ؟

:  Data link لایه پیوند داده

  Data link layer   یا لایه ارتباط داده یا MAC address layer یا Hardware address layer یا Physical layer، سوئیچها و پلها ( bridges ) و ایستگاههای اتصال بی سیم ( Wireless Access Points یا WAPs ) نیز در این لایه فعالیت می کنند و همچنین مودم ای دی اس ال شما و مودم عادی هم در این لایه جا می گیرند .چهار اصطلاح مهمی که در این لایه هست می گیرند عبارت اند از :

Ethernet یا ایترنت
کنترل ارتباط داده های سطح بالا یا High Data Link Control یا HDLC
پروتکل نقطه به نقطه یا Point-to-point protocol یا PPP
بازپخش ساختار یا Frame relay

در نظر داشته باشید اصطلاح خطایابی یا error detection در این لایه صورت می پذیرد و از طریق فرایندی بنام Frame check sequence 

اگر سوئیچ یا پلی در این لایه کار کنند دیگر “سوئیچ کردن” یا “پل زدن” انجام نمیدهند بلکه مسیر یابی یا routing” می کنند .

: Physical layer یا لایه فیزیکی

جایی که اطلاعات بازجویند اصل خویش ! جایی که اطلاعات به ۰ و ۱ تبدیل می شوند و رهسپار کابل میشوند

 

چرا میگیم مدل مرجع  OSI ؟ چون هیچ وقت از این مدل استفاده عملیاتی نشد.

یکی از مدل هایی که بر پایه OSI تشکیل شد و در حال حاضر در حال استفاده است مدل TCP/IP می باشد.

در لایه Application  دیتا ساخته می شود، این دیتا مراحل و گام هایی را طی می کند تا به لایه های پایین برسد،از لایه هفت تا لایه یک.

 

                                                                            

PDU چیست؟ بررسی مفهوم  Protocol Data Unit

Protocol data unit به مجموعه ای از داده ها اطلاق میشود که در حین رد وبدل شدن در بین لایه های مدل OSI به مقدار این مجموعه داده افزوده و یا کاسته میشود تا این داده ها اماده تحویل به لایه های بالایی یا پایینی باشد چرا که Protocol data unit در هر لایه صرفا قابل درک برای لایه فعلی و یا لایه مشابه دریافت کننده خواهد بود تا اینکه این داده ها را اماده سازی و بر اساس پروتکل برای تحویل به لایه های بعدی اماده سازی نمایند که اصطلاحا به این موضوع data encapsulation نیز اطلاق میشود از این مقوله در شبکه packet-switched به عنوان service data unit یاد میشود.

 

TCP/IPچیست؟ بررسی پشته پروتکل TCPIP

 TCP//IPمهمترین پروتکل ارتباطی در شبکه های کامپیوتری و به ویژه شبکه اینترنت می باشد.در اینترنت پروتکل های مختلفی وجود دارد که هر یک وظیفه خاص خود را انجام می دهند . در وهله اول و قبل از اینکه توضیح بدهیم که TCP//IP چیست ، بایستی بدانیم که منظور و مفهوم از پروتکل چیست ؟ پروتکل ها با توجه به تعریفی که در کتاب پروفسور تنن باوم به نام شبکه های کامپیوتری آمده است به قوانین و روال هایی که برای برقراری ارتباطات مورد استفاده قرار می گیرند اطلاق می شود. اما در زبان عامیانه پروتکل یک زبان مشترک بین سیستم های کامپیوتری است که آنها را قادر می سازد بتوانند با همدیگر تبادل اطلاعات داشته باشند.

پروتکل را می توان به یک زبان تشبیه کرد ، هر یک از زبان های موجود در دنیا را یک پروتکل در نظر بگیرید ، برای مثال : فارسی ، انگلیسی ، عربی ، چینی ، هندو ، ژاپنی و ... هر یک به نوبه ای یک زبان هستند ، شما زمانیکه می خواهید با یک فرد انگلیسی صحبت کنید ، برای اینکه بتوانید ارتباط موفقی داشته باشید دو حالت وجود دارد ، اولین حالت این است که شما به زبان انگلیسی صحبت کنید ، دومین حالت این است که شخص مقابل شما با زبان فارسی صحبت کند. اما معمولا در مجامع بین المللی شما از زبانی استفاده می کنید که بیشتر شناخته شده است و مورد استفاده بیشتری دارد.

در همین مثال می توان کشور ایران را مثال زد ، در کشور ما همه به زبان فارسی صحبت می کنند اما لهجه های مختلفی وجود دارد ، کردی ، لری ، اصفهانی و ... هر یک از این لهجه ها در محل خود معتبر هستند اما در استان دیگر ممکن است مورد استفاده قرار نگیرند ، اما به هر حال شما اگر از زبان فارسی استفاده کنید در تمامی استان های ایران قادر به برقراری ارتباط خواهید بود. اما زبان فارسی پروتکلی نیست که در دنیا بصورت عامه مورد استفاده قرار بگیرد و شما بایستی برای برقراری ارتباط با جهانیان از زبان انگلیسی که پروتکل جهانی است استفاده کنید.

در شبکه های کامپیوتری نیز به همین شکل است ، پروتکل های مختلفی برای برقراری ارتباط بین سیستم ها و شبکه های کامپیوتری در کشورهای مختلف دنیا وجود دارد ، اما تنها پروتکل هایی می تواند مورد استفاده قرار بگیرد که از طرف سازمان استاندارد جهانی به عنوان پروتکل مشترک تعیین شده باشد. در شبکه های کامپیوتری دو مجموعه پروتکل TCP//IP و IPX//SPX بیشترین مورد استفاده را دارند اما به دلیل درصد استفاده کم از پروتکل IPX//SPX که در سیستم عامل های ناول استفاده می شود TCP//IP به عنوان یک پروتکل جهانی معروف شد و امروزه تمامی بستر اینترنت از این پروتکل استفاده می کنند. توجه کنید که TCP//IP به تنهایی یک پروتکل نیست و یک پشته پروتکل یا مجموعه پروتکل ارتباطی می باشد که از ترکیب شدن چندین پروتکل به وجود آمده است.

 

اکثر سیستم عامل هایی که امروزه می شناسید ، اعم از ویندوز ، لینوکس ، یونیکس ، مک ، اندروید و حتی ناول از این پشته پروتکل پشتیبانی می کنند و به همین دلیل است که شما می توانید از طریق سیستم عامل ویندوز خود از سرویس هایی که سیستم عامل های دیگر مانند لینوکس و یونیکس ارائه می دهند استفاده کنید. برای مثال سرویس ایمیل و وب سایت یاهو از سیستم عامل یونیکس و وب سرور های یونیکسی استفاده می کنند اما شما با ویندوز خود می توانید از خدمات آنها استفاده کنید و تنها دلیل این امکان داشتن پروتکل مشترک ارتباطی به نام TCP//IP می باشد.

کلمه TCP//IP مخفف Transmission Control Protocol Internet Protocol می باشد که نشان دهنده این می باشد که این پشته پروتکل بصورت کلی از دو پروتکل اصلی TCP و IP تشکلی شده است . این دو پروتکل وظیفه تعیین چگونگی برقرار ارتباط بین سیستم ها در شبکه و روش انتقال اطلاعات بین آنها را تعیین می کنند.

، درون پشته پروتکل TCP//IP همانطور که اشاره شد چندین پروتکل وجود دارند که وظیفه ارتباطات داده ها را در شبکه بر عهده دارند ، این پروتکل ها عبارتند از :

  • TCP یا Transmission Control Protocol که وظیفه برقراری ارتباطات بین نرم افزارهای کاربردی در شبکه را عهده دار است
  • UDP یا User Datagram Protocol که وظیفه برقراری ساده ترین حالت برقراری ارتباطات داده ای بین نرم افزارها در شبکه را عهده دار است.
  • IP یا Internet Protocol که وظیفه برقراری ارتباطات بین کامپیوترها در شبکه را عهده دار است
  • ICMP یا Internet Control Messaging Protocol که وظیفه بررسی خطاها و وضعیت شبکه را بر عهده دارد.
  • DHCP یا Dynamic Host Configuration Protocol که وظیفه آدرس دهی خودکار در شبکه را عهده دار است.

توجه کنید که TCP یک پروتکل Connection Oriented یا اتصال گرا است و بدین معناست که صحت اطلاعات ارسالی برای این پروتکل بسیار مهم است و از جهتی سرعت آن نسبتا پایین است . پروتکل IP یک پروتکل Connection Less یا غیر اتصال گرا است که بدین معناست صحت داده های ارسالی چندان مهم نیست و سرعت بیشتر مد نظر است ، در شبکه های مبتنی بر TCP بیت به بیت داده ها بعد از انتقال در شبکه بررسی می شود و همین دلیل کندی آن است ، در صورتیکه در شبکه های IP سرعت ارسال مهم است .

پشته پروتکل TCP//IP نقاط ضعف هر یک از این دو پروتکل را پوشش داده است و یک پروتکل ترکیبی خوب ایجاد کرده است. مدل TCP//IP نیز مانند مدل مفهومی OSI دارای ساختار لایه بندی یا Layering می باشد و برخلاف مدل OSI که دارای 7 لایه می باشد این پشته پروتکل دارای 4 لایه به نامهای Internet یا اینترنت ، Transport یا انتقال ، Application یا کاربردی و Network Interface یا رابط شبکه می باشد.

بنابراين دو جواب براي «TCP/IP چيست؟» وجود دارد. جواب فني اين است كه TCP/IP خانواده‌اي بزرگ از پروتكل‌هايي است كه براي سازمان‌دهي كامپيوتر‌ها و ابزارهاي ارتباطي در شبكه، استفاده مي‌شوند. و مهمترين پروتكل‌هاي آن TCP و IP هستند. IP داده‌ها را از مكاني به مكان ديگر منتقل مي‌كند، در حالي كه TCP از صورت‌گرفتن صحيح تمام كارها مطمئن مي‌شود.

با وجود اين، بهترين پاسخ اين است كه اينترنت وابسته به هزاران شبكه و ميليونها كامپيوتر است، و TCP/IP چسبي است كه اين شبكه‌ها و كامپيوترها را در كنار يكديگر نگه مي‌دارد.

 

Multiplexing

لايه Transport وظایف متعددی دارد که در اینجا به مهمترین وظیفه این لایه می پردازیم تا هدف اصلی این لایه محسوس باشد. مهمترین وظیفه این لایه Multiplexing است.

برای تشریح بهتر واژه Multiplexing تصور کنید که کامپیوتری در یک شبکه همزمان در حال انجام سه کار است. به عبارت دیگر سه Session تحت شبکه ایجاد نموده است.

1- در سایت www.google.com مشغول جستجو است. 2-در سایت www.yahoo.com مشغول خواندن خبر است. 3- با استفاده از نرم افزار outlook، در حال ارسال ايميل می باشد.

با استفاده از سه لایه پائینی، ارتباط به هر سه مقصد شبکه ایجاد می‌شود. همه بسته‌های بازگشتی از اینترنت، روی یک مدیا و یک Interface وارد کامپیوتر می‌شوند. آدرس MAC مبدأ همه بسته‌های بازگشتی، آدرس روتر شبکه محلی است. آدرس MAC مقصد همه بسته‌های بازگشتی، آدرس MAC کامپیوتر مقصد است. آدرس IP مقصد همه بسته‌های بازگشتی، آدرس IP کامپیوتر مقصد است. کامپیوتر از کجا باید بداند که Packet دریافتی به کدام Session تعلق دارد و این Packet را به کدام یک از سه Session فوق، yahoo، google و یا outlook تحویل دهد؟ به این عمل Multiplexing گفته می‌شود. برای پیاده سازی Multiplexing، دو فیلد به نام‌های پورت مبدأ و پورت مقصد در هدر لایه Transport در نظر گرفته شده است. پورت مبدأ و مقصد، هر کدام فیلد 16 بیتی هستند لذا می‌توانند مقادیر 0تا 65535 را به خود اختصاص دهند.

مبدأ به ازاء هر Session یک عدد تصادفی بین 1025 تا 65535 را برای پورت مبدأ در نظر می‌گیرد. پورت مقصد بسته‌های هر Session، به Application بستگی دارد و عدد استاندارد، متناسب با Application در نظر گرفته مي‌شود. به عنوان مثال پورت مربوط به برخی از Application‌های معروف در جدول زیر آمده است:

 

                                                                                

 بنابراین مبدأ در زمان ایجاد Session به ازاء هر یک از Sessionهای تحت شبکه، پورت مبدأ و مقصد را به صورت زیر مقداردهی می‌نماید:

 

                                                                               

 

سپس تمام بسته‌های ارسالی با استفاده از 3 لایه پائینی به مقصد هدایت می‌شوند. مقصدها در نقاط مختلف اینترنت قرار دارند. هر یک از آنها بسته‌های درخواستی را پاسخ می‌دهند. بسته‌های پاسخ، قبل از ارسال در لايه Transport باید مقداردهی شوند. کافی است در لايه Transport جای پورت مبدأ و پورت مقصد در بسته‌های ارسالی نسبت به بسته‌های دریافتی تعویض شود.

 

                                                                              

بسته‌های ارسالی با استفاده از سه لایه پائینی در اینترنت هدایت می‌شوند تا در مقصد که همان کامپیوتر مورد نظر ما است، دریافت شود.

حال کامپیوتر مورد نظر از روی مقدار پورت مقصد بسته‌های دریافتی، به راحتی می‌تواند تشخیص دهد که هر Packet به کدام Session تعلق دارد تا Packet را به Session مورد نظر تحویل دهد.

نتیجه گیری: لايه Transport این قابلیت را به ما می‌دهد که بتوانیم به صورت همزمان چندین Session و چندین Application تحت شبکه را روی یک کامپیوتر ايجاد نمائيم. بدون استفاده از لايه Transport، هر نود انتهایی (کامپیوتر، پرینتر و...) فقط می‌توانست یک Session در آن واحد اجرا نماید.

 

 

                                                                     

معرفی فرآیند Three-Way Handshake در پروتکل هایConnection Oriented

بصورت کلی ما پروتکل ها را از نظر نوع ارتبط به دو دسته اتصالگرا یا Connection Oriented و عدم اتصال گرا یا Connectionless تقسیم بندی می کنیم ، یکی از پروتکل های بسیار معروف در بحث اتصالگرا ، پروتکل TCP یا Transmission Control Protocol است که بیشترین استفاده را در ارتباطات مهم و حیاتی در سرویس ها بر عهده دارد. TCP برای برقراری ارتباط ابتدا باید درستی و صحت ارتباط تایید شود و سپس ارتباط برقرار شود ، فرآیند برقراری ارتباط در پروتکل TCP توسط یک فرآیند سه مرحله ای به نام Three-way Handshake یا Triple-Handshake انجام می شود ، در واقع هرگاه صحبت از Three-Way Handshake شد یعنی پروتکل ها قصد برقراری ارتباط با همدیگر را دارند

بارها اتفاق می افتد که شما در طول روز بدون اینکه توجهی به جزئیات کار داشته باشید از این پروتکل استفاده می کنید ، برای مثال زمانی که شما یک سایت را باز می کنید ، در حقیقت ارتباط شما از نوع TCP بوده است و با این ارتباط شما توانسته اید به محتوای آن سایت دست یابید .

زمانی که شما میخواهید با این پروتکل به یک منبع متصل شوید ، چند مرحله طی می شود تا اتصال شما به درستی برقرار شود ، به مجموعه این مراحل TCP 3-Way Handshake می گویند  . TCP با استفاده از فرآیند 3Way Handshake در حقیقت به نوعی امنیت را نیز برای ما به ارمغان می آورد .

تصویر فوق اتصال یک کاربر به یک سرور را نشان می هد . در اولین مرحله کاربر یک بسته SYNchronize که به اختصار به آن SYN گفته می شود را به سمت سرور مورد نظر ارسال می کند  . در واقع با ارسال بسته SYN در خواست هم زمانی جهت اتصال را انجام می دهد .در مرحله دوم سرور با ارسال بسته SYNchronize-ACKnowledgement که با اختصار SYN/ACK گفته می شود ، با درخواست هم زمانی موافقت می کند و در نهایت کاربر پس از دریافت SYN/ACK در مرحله سوم  با ارسال ACKnowledge یا ACK به سمت سرور ، مراحل TCP 3-Way Handshake را تکمیل کرده و در واقع یک خط ارتباطی بین کاربر و سرور ایجاد می شود ..

 در پروتکل UDP یا نوع ارسال دیتا برای ما مهم نیست و یا امکان گرفتن آمادگی از طرف مقابل برای ما به هر دلیلی امکان پذیر نیست.

با فرض امکان پذیر بودن سربار زیادی تحمیل می کند.

همان طور که در شکل ملاحظه می کنید هدر بسته UDP نسبت به هدر بسته TCP سایز کوچکتری دارد.

 

                                                                                    




از مجموع 2 رأی

فاقد نظر