مدل OSI

نویسنده: امیرمحمد هادیان
3 هفته پیش

مدل OSI

در سال 1977، سازمان جهانی استاندارد (ISO) کمیته ای را به منظور تمرکز بر روی ارتباطات بین سیستم ها در برند های مختلف به وجود آورد. ماحصل این کمیته، پیدایش Open Systems Interconnection(OSI) یا مدل مرجع بود. این مدل، یک استاندارد برای برقراری ارتباط بین تجهیزات شبکه در بین برند های متفاوت می باشد.

یکی از روش های رایج برای دسته بندی عملکرد یک تکنولوژی شبکه، این است که ببینیم در هر لایه از مدل OSI چه تکنولوژی هایی اجرا می شود.

برای مثال هنگامی که یک لپ تاپ به یک وب سرور در اینترنت متصل می شود، شرکت ارایه دهنده اینترنت به لپ تاپ یک آدرس IP اختصاص می دهد. همچنین در سمت مقابل به وب سرور نیز یک آدرس IP اختصاص داده شده است. با توجه به این که هر دو دستگاه از پروتکل IP ( در لایه 3) استفاده می کنند در نتیجه توانایی برقراری ارتباط با یکدیگر را دارند.

مدل OSI

مدل OSI از 7 لایه تشکیل شده است:

  • لایه 1: لایه فیزیکی یا Physical
  • لایه 2: لایه پیوند داده یا Data Link
  • لایه 3: لایه شبکه یا Network
  • لایه 4: لایه انتقال یا Transport
  • لایه 5: لایه نشست یا Session
  • لایه 6: لایه ارایه یا Presentation
  • لایه 7: لایه کاربرد یا Application

در لایه فیزیکی، عبارت Binary ( رشته ای از 0 و 1 ها ) بیانگر داده ها می باشند. یک عبارت Binary از واحدی به نام بیت به وجود می آید که هر بیت، از 0 و یا 1 تشکیل می شود. در لایه های بالاتر بیت ها با یکدیگر تجمیع شده و یک Protocol Data Unit(PDU) و یا یک Data Service Unit را به وجود می آورند که این PDU ها در هر لایه می توانند نام دیگری نیز داشته باشند. این نام ها در شکل زیر نشان داده شده است:

PDU

لایه Physical

در این لایه (همان طور که در شکل نشان داده شده است) چگونگی انتقال بیت ها و همچنین مشخصات فیزیکی و الکتریکی شبکه قرار دارد.

Layer1-Physical Layer

همان طور که گفته شد داده ها از 0 و 1 ها تشکیل شده اند که ولتاژ الکتریکی (بر روی سیم های مسی)، نور ( بر روی کابل های فیبر نوری) و همچنین امواج (در ارتباطات بی سیم) نشان دهنده این 0 و 1 ها هستند.

یکی دیگر از موضوعات قابل بررسی در لایه 1، استاندارد های مورد استفاده برای اتصال کابل ها به Connector ها می باشد که برای مثال استاندارد TIA/EIA-568-B چگونگی اتصال یک کانکتور به سیم برای استفاده در شبکه Ethernet با استاندارد 100Base-TX را نشان می دهد.

RJ-45

علاوه بر این، توپولوژی فیزیکی و یا چگونگی قرار گرفتن دستگاه در شبکه و همچنین اتصال آن ها با یکدیگر از موارد قابل بحث در این لایه می باشد. از توپولوژی های فیزیکی می توان به Bus، Star، Ring و ... اشاره کرد.

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

از دو روش Synchronous (همزمان) و Asynchronous (غیرهمزمان) برای همگام سازی استفاده می شود.

در روش اول، Clock داخلی هر دو سمت فرستنده و گیرنده با یکدیگر هماهنگ می شوند و دو طرف اطمینان می یابند که ارسال بیت ها چه زمانی شروع و چه زمانی پایان می یابد. این شرایط معمولا زمانی اتفاق می افتد که دو طرف از یک External Clock (برای مثال توسط شرکت ارایه دهنده اینترنت) استفاده کنند.

در روش دوم (Asynchronous) دو طرف ارتباط بر سر بیت های شروع و پایان توافق می کنند بدین صورت که دستگاه ارسال کننده ابتدا بیت شروع را به دریافت کننده ارسال می کند سپس دستگاه دریافت کننده Clock داخلی خود را برای دریافت بیت های بعدی تنظیم می کند و در پایان ارسال کننده پس از اتمام ارسال داده ها بیت پایان را ارسال می کند.

همچنین از دو تکنولوژی Broadband و Baseband برای بهره گیری از پهنای باند استفاده می شود.

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

اما در تکنولوژی Baseband از همه ظرفیت موجود بر روی رسانه فیزیکی برای ارسال داده استفاده می شود. Ethernet یکی از تکنولوژی هایی است که از Baseband استفاده می کند.

با استفاده از Multiplexing می توان چندین Session را بر روی یک رسانه فیزیکی برقرار کرد. برای مثال با استفاده از کابل تلویزیون (کابل کواکسیال) می توان کانال های مختلفی را بر روی یک رسانه دریافت کرد.

Multiplexing به سه طریق زیر انجام می شود:

  • Time-Division Multiplexing (TDM): در این روش ارتباط Session های مختلف از طریق یک رسانه فیزیکی به صورت نوبتی انجام می شود. در یک دوره کوتاه که Time Slot نامیده می شود، بخشی از داده های اولین Session ارسال می شود سپس در Time Slot بعدی بخشی از داده های Session دوم ارسال شده و این فرآیند تا اتمام داده های Session های مختلف به صورت نوبتی اجرا می شود.
  • Statistical Time-Division Multiplexing (StatTDM): یکی از ایرادات TDM این بود که اگر هر کدام از Session ها، داده ای برای ارسال نداشت همچنان Time Slot خود را مصرف می کرد در حالی که هیچ استفاده ای از پهنای باند موجود نمی شد. برای بهینه سازی استفاده از پهنای باند، StatTDM به صورت پویا Time Slot ها را بر اساس نیاز Session ها به آن ها اختصاص می دهد.
  • Frequency-Division Multiplexing (FDM): در این روش محدوده فرکانسی رسانه فیزیکی به کانال های مختلف تقسیم می شود در نتیجه ارتباط Session های مختلف از طریق یک رسانه فیزیکی امکان پذیر است که در تکنولوژی Broadband از این روش استفاده می شود.

لایه DataLink

موارد زیر در این لایه انجام می شود:

  • بسته در داخل فریم (Frame) قرار می گیرد و فریم ها در شبکه ارسال می شوند.
  • فرآیند تشخیص و تصحیح خطا.
  • پیدا کردن دستگاه ها در شبکه با یک آدرس منحصر به فرد.
  • بررسی جریان داده.

Layer2-DataLink Layer

لایه دو تنها لایه ای است که از دو زیر لایه تشکیل شده است:

  • Media Access Control (MAC)
    • Physical Addressing: می توان به آدرس 48 بیتی MAC در لایه 2 اشاره کرد که به هر کارت شبکه اختصاص داده شده است. این آدرس به صورت Hexadecimal نوشته می شود که 24 بیت ابتدایی آن به صورت یکتا و برای شرکت سازنده آن می باشد و 24 بیت پایانی توسط شرکت سازنده انتخاب می شود. این آدرس برای هر کارت شبکه به صورت یکتا می باشد.
    • Logical Topology: دستگاه ها در لایه دو، شبکه را به صورت یک توپولوژی منطقی می بینند.
    • Method of Transmitting on the Media: وقتی چندین دستگاه به شبکه متصل هستند نیاز به یک استراتژی برای تصمیم گیری بر سر زمان ارسال داده بر روی رسانه فیزیکی داریم در غیر این صورت ممکن است چندین دستگاه داده ها را به صورت همزمان ارسال کنند و تداخل ایجاد شود.
  • Logical Link Control (LLC)
    • Connection Services: هنگامی که یک دستگاه پیامی را در شبکه برای دستگاه دیگری ارسال می کند، دستگاهی که پیام را دریافت می کند یک بسته تحت عنوان Acknowledgment یا تایید را به فرستنده ارسال کرده که این بسته دو قابلیت زیر را فراهم می کند:
      • Flow Control: مقدار داده ای را که فرستنده در هر بار ارسال می تواند منتقل کند را مشخص کرده که این کار از ارسال بیش از حد اطلاعات به سمت گیرنده جلوگیری می کند.
      • Error Control: به گیرنده این امکان را می دهد که در صورت عدم دریافت یک فریم و یا دریافت یک فریم آسیب دیده فرستنده را مطلع سازد. گیرنده با اجرای یک عملیات ریاضی بر روی داده دریافت شده، یک عبارت تحت عنوان Checksum را محاسبه کرده و آن را با Checksum موجود در بسته دریافتی مقایسه می کند که در صورتی که بسته دریافتی آسیب دیده باشد این دو عبارت با یکدیگر تفاوت خواهد داشت.
    • Synchronizing Transmissions: فرستنده و گیرنده باید بدانند که چه زمانی داده را ارسال و چه زمانی داده را دریافت کنند که این کار را به 3 طریق زیر انجام می دهند:
      • Isochronous: در این روش یک دستگاه در شبکه به عنوان Clock Source عمل کرده که بازه های زمانی (Time Slot) با طول ثابت را تولید می کند و سایر دستگاه های موجود در شبکه می توانند با تشخیص بازه های زمانی خالی اقدام به ارسال داده کنند.
      • Asynchronous: در این روش دستگاه های موجود در شبکه بر اساس Internal Clock یا ساعت داخلی خودشان کار می کنند و نیازی ندارند که آن را با یکدیگر Synchronize یا هماهنگ کنند در عوض فرستنده بسته، در ابتدای هر فریم یک بیت به عنوان بیت شروع (Start Bit) و در پایان هر فریم نیز یک بیت به عنوان بیت پایان یا (Stop Bit) قرار می دهد. این بیت ها به دریافت کننده می گوید که چه زمانی رسانه فیزیکی را برای قرار دادن داده ها بررسی کند. علاوه بر این ممکن است یک بیت به عنوان بیت توازن یا (Parity Bit) در انتهای هر بایت در یک فریم قرار بگیرد تا خطا در فریم تشخیص داده شود.
      • Synchronous: در این روش دو دستگاهی که قصد برقراری ارتباط با یکدیگر را دارند می بایست بر سر یک روش Clocking برای نشان دادن ابتدا و انتهای یک فریم توافق کنند. یک مکانیزم برای این روش، استفاده از یک کانال ارتباطی جدا برای ارسال سیگنال پالس ساعت (Clock Signal) می باشد. روش دیگر بر اساس ترکیبی از بیت ها یا کاراکتر های کنترل برای نشان دادن شروع یک فریم و یا یک بایت از داده می باشد.

لایه Network

وظیفه اصلی این لایه مسیریابی بسته ها بر اساس آدرس منطقی آن ها می باشد.

Layer3-Network Layer

علاوه بر مسیریابی این لایه از شبکه وظایف دیگری را نیز دارد که به شرح زیر است:

  • آدرس دهی منطقی یا Logical Addressing: اگرچه در لایه 2 از آدرس فیزیکی جهت تصمیم گیری برای ارسال داده استفاده می شود اما در لایه 3 از آدرس منطقی برای این امر استفاده می شود. پروتکل های قابل مسیریابی مانند (IPX یا AppleTalk) شکل های خاص خود را برای آدرس منطقی دارند اما متداول ترین پروتکل قابل مسیریابی پروتکل IP (Internet Protocol) می باشد.
  • Switching: مفهوم سویچینگ علاوه بر لایه 2 در لایه 3 نیز وجود دارد. سویچینگ به معنی تصمیم گیری بر سر چگونگی ارسال داده ها می باشد که در لایه 3 به سه روش زیر انجام می شود:
    • سویچینگ بسته یا Packet Switching: در این روش، یک جریان داده به بسته (Packet) های مختلف تقسیم می شود که در Header هر بسته آدرس لایه 3 مبدا و مقصد قرار می گیرد. نام دیگر سویچینگ بسته، مسیریابی (Routing) می باشد.
    • سویچینگ مدار یا Circuit Switching: در این روش به صورت پویا یک لینک ارتباطی اختصاصی بین دو سیستمی که قصد برقراری ارتباط با یکدیگر را دارند تشکیل می شود. به عنوان یک مثال ساده می توان به برقراری یک تماس تلفنی اشاره کرد. هنگامی که یک تماس تلفنی از طریق یک سیستم سنتی برقرار می شود بین مبدا و مقصد یک مدار (Circuit) به صورت اختصاصی به وجود می آید.
    • سویچینگ پیام یا Message Switching: این روش برخلاف دو مدل قبلی به دلیل دارا بودن تاخیر(Delay) برای سرویس های Real-Time مناسب نمی باشد. در این روش یک جریان داده به پیام(Message) های مختلف تقسیم می شود و هر پیام بوسیله آدرس مقصد برچسب گذاری می شود که پیام برای رسیدن به مقصد در طول مسیر از دستگاه های مختلف عبور می کند و به دلیل این که این دستگاه ها ممکن است قبل از ارسال پیام آن را ذخیره کنند به این روش Store-and-Forward نیز گفته می شود. این روش را می توان به مسیریابی یک Email-Message نیز تشبیه کرد. به این صورت که یک پیام Email قبل از رسیدن به مقصد به صورت کوتاه بر روی Email-Server ذخیره می شود.
  • Route Discovery and Selection: دستگاه هایی که در لایه 3 کار می کنند تصمیم گیری برای ارسال داده را بر اساس آدرس منطقی انجام می دهند از این رو این دستگاه ها نیاز دارند تا نحوه رسیدن به شبکه های مختلف را بدانند. از دستگاه های رایج در لایه 3 می توان به مسیریاب یا Router اشاره کرد که این دستگاه یک جدول مسیریابی (Routing-Table) را بر روی خود نگه داری می کند. این جدول نحوه مسیریابی بسته ها با توجه به آدرس مقصد را نشان می دهد.
  • Connection Service: همانند لایه 2، این قابلیت در لایه 3 نیز وجود دارد. این ویژگی میزان اطمینان پذیری (Reliability) یک ارتباط را در صورتی که در زیر لایه LLC لایه 2 انجام نشود، افزایش می دهد. دو فرآیند زیر در این لایه انجام می شوند:
    • Flow Control or Congestion Control: از ارسال داده با سرعتی بالاتر از ظرفیت دریافت کننده جلوگیری می کند.
    • Packet Reordering: این قابلیت به دریافت بسته ها به ترتیب صحیحی که توسط مبدا ارسال شده اند کمک می کند. این فرآیند می تواند برای شبکه هایی که عملیات Load-Balancing را انجام می دهند ضروری باشد زیرا در این شبکه ها از چندین لینک برای ارسال داده استفاده شده و ممکن است بسته ها خارج از ترتیب مورد نظر به مقصد برسند.

لایه Transport

لایه انتقال، لایه های 5 تا 7 و لایه های پایینی (1-3) مدل OSI را از یکدیگر جدا می کند. این لایه پیام ها را از لایه های بالاتر گرفته و آن را برای انتقال به لایه های پایین تر در داخل سگمنت (Segment) قرار می دهد یا به عبارت دیگر پیام ها را در داخل سگمنت Encapsulate می کند. همچنین داده ها از لایه های پایین تر به لایه انتقال آمده و در این لایه Decapsulated می شوند و به لایه های بالاتر فرستاده می شوند.

Layer4-Transport Layer

از پروتکل های رایج در این لایه می توان به TCP (Transmission Control Protocol) و UDP (User Datagram Protocol) اشاره کرد.

  • TCP (Transmission Control Protocol): یک پروتکل Connection-Oriented که امکان انتقال مطمئن داده ها را فراهم می کند به طوری که اگر یک سگمنت به هر دلیلی به مقصد نرسد یا به اصطلاح Drop شود، فرستنده آن را تشخیص داده و دوباره سگمنت مورد نظر را ارسال می کند. مقصد نیز به ازای سگمنت های دریافتی بسته تاییدیه Acknowledgment را به مبدا ارسال می کند که بر اساس همین بسته، مبدا می تواند تشخیص دهد که کدام سگمنت ها به مقصد رسیده و کدامیک نیاز به ارسال دوباره دارند.
  • UDP (User Datagram Protocol): یک پروتکل Connection-Less که ارتباط مطمئنی را ارایه نمی دهد. چنانچه سگمنتی به مقصد نرسد فرستنده از آن با خبر نمی شود و ارسال مجدد آن سگمنت اتفاق نمی افتد.

همانند لایه 2 و 3، در این لایه نیز Flow Control اتفاق می افتد که دو فرآیند زیر این وظیفه را برعهده دارند:

  • Windowing: این ویژگی در پروتکل TCP مورد استفاده قرار می گیرد که در آن یک یا چند سگمنت در هر بار ارسال، فرستاده می شود و گیرنده نیز می تواند به ازای دریافت تمامی سگمنت ها یک پیام Acknowledgment ارسال کند.TCP از سایز های مختلف استفاده می کند به طوریکه اولین Window با سایز 1 شروع می شود چنان چه یک Acknowledgment موفق دریافت شود فرستنده سایز Window را دو برابر می کند. چنانچه فرستنده به ازای سگمنت ارسالی Acknowledgment دریافت نکند و یا سایز Window از میزان تعریف شده بیشتر شود، این فرآیند متوقف می شود.

Windowing

  • Buffering: یک دستگاه مانند روتر بخشی از حافظه را برای ذخیره موقت داده ها قرار می دهد تا چنانچه پهنای باند اینترفیس های آن اشغال شد داده ها پیش از ارسال در این حافظه قرار بگیرند به این فضا Buffer و یا Queue گفته می شود. این حافظه ظرفیت محدودی دارد و پس از تکمیل ظرفیت آن امکان سرریز یا Overflow وجود دارد.

علاوه بر TCP و UDP پروتکل دیگری به نام ICMP(Internet Control Message Protocol) وجود دارد که ابزار های مثل Ping و Traceroute از این پروتکل استفاده می کنند.

لایه Session

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

Layer5-Session Layer

جزئیات عملکرد لایه 5 به شرح زیر است:

  • Setting Up a Session: فرآیند هایی که در برقراری یک Session نقش دارند به شرح زیر است:
    • بررسی هویت و اعتبار کاربر( مانند نام کاربری و رمز عبور )
    • اختصاص اعداد به Session های ارتباطی برای یکتا ساختن آن ها
    • مذاکرات مورد نیاز در مدت زمان Session
    • مذاکره بر سر شروع کننده ارتباط و ارسال داده
  • Maintaining a Session: فرآیند هایی که در نگهداری یک Session مورد استفاده قرار می گیرد به شکل زیر می باشد:
    • ارسال داده
    • برقراری مجدد یک Session قطع شده
    • تاییدیه یا Acknowledgment داده ها
  • Tearing Down a Session: یک Session می تواند بر اساس توافق طرفین به اتمام برسد و یا یکی از طرفین، ارتباط خود را (عمداً یا به دلیل خطا) از دست بدهد که در این صورت طرف مقابل با شناسایی آن، Session را پایان می دهد.

لایه Presentation

در این لایه مدیریت فرمت داده های تبادل شده و عملیات رمز گذاری داده ها انجام می شود.

Layer6-Presentation Layer

فرآیند های رمزگذاری (Encryption) و تنظیم فرمت داده ها به شرح زیر می باشد:

  • Data Formatting: به عنوان مثال می توان به تبدیل یک متن به فرمت استاندارد (ASCII) و یا (EBCDIC) اشاره کرد. در این لایه مدیریت تبدیل فرمت انواع داده ها (مانند متن و یا فایل مالتی مدیا و ...) انجام می شود.
  • رمز گذاری یا Encryption: چنانچه کاربری بخواهد اطلاعات حساسی را بر روی شبکه انتقال دهد یک کاربر مخرب می تواند داده های ارسالی را مشاهده کرده و آن را دستکاری کند در این شرایط با رمزگذاری اطلاعات می توان امنیت اطلاعات را تضمین کرد.

لایه Application

این لایه برنامه های کاربری شبکه را شامل می شود. برنامه ها و سرویس هایی که کاربر نهایی از آن استفاده می کند (مانند مرورگر ها و ...) در این لایه قرار می گیرند.

Layer7-Application Layer

فرآیند های زیر در این لایه انجام می شود:

  • برنامه های کاربردی یا Application Services: برنامه ها و اپلیکیشن هایی که کاربران نهایی از آن استفاده می کنند مانند سرویس اشتراک گذاری فایل و یا سرویس ایمیل در این لایه قرار می گیرند.
  • Service Advertisement: برخی برنامه های کاربردی مانند برخی پرینتر های تحت شبکه به صورت دوره ای اقدام به معرفی خود می کنند تا به نوعی حضور خود را به دستگاه های دیگر اعلام کنند.
18
0
0
نظرات