پروتکل Ethernet (بخش اول)

0

پروتکل Ethernet

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

شبکه های کامپیوتری
شبکه های کامپیوتری

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

مدل OSI

مدل OSI یا Open System Interconnection یک مدل مرجع برای ارتباط بین دو کامپیوتر است که در سال 1980 طراحی شده است. هر چند امروزه تغییراتی در آن به وجود آمده اما هنوز هم کاربردهای فراوانی در اینترنت و به خصوص در معماری پایه شبکه دارد. این مدل بر اساس لایه بندی قراردادهای برقراری ارتباط که همزمان روی دو سیستم مرتبط اجرا شده­اند پایه ریزی شده است که این امر سرعت و دقت ارتباط را افزایش می­دهد و این قراردادها به صورت طبقه طبقه در هفت لایه تنظیم شده­اند که در ادامه بررسی خواهند شد

مدل OSI
مدل OSI

این لایه­ها بین لایه بالاتر و پایین­تر خود قرارگرفته­اند. هر لایه از لایه پایینتر از خود سرویس­هایی دریافت می­کند و به لایه­های بالاتر سرویس فراهم می­کند. لایه­های OSI در حقیقت یک مدل کاملاً فرضی برای درک فضای شبکه هستند و در حقیقت چنین لایه­هایی وجود ندارند. همانطور که در شکل  2 مشاهده می­شود، بالاترین لایه، لایه Application  و پائین­ترین لایه، لایه فیزیکی است. در زمان ارسال داده از یک کامپیوتر به کامپیوتر دیگر، داده­ حرکت خود را از لایه هفتم آغاز نموده و پس از تبدیل به Frame و Packet از طریق محیط انتقال مانند کابل یا فیبر نوری برای کامپیوتر مقصد ارسال می­گردند. هر لایه اطلاعات را از لایه بالاتر خود دریافت می­کند و آن را مورد پردازش قرار می­دهد و آن را به لایه پایین­تر خود می­دهد. هر لایه قبل از ارائه بسته اطلاعات به لایه بعدی، اطلاعات دریافتی از لایه بالایی را توسط اضافه کردن سرآمد  Header  مربوط به خود، بسته بندی یا  Encapsulationمی­کند و به لایه ­­های پایین­تر ارسال می­کند. سرآمدها معمولاً شامل آدرس مبدأ و مقصد، اطلاعات مربوط به کنترل خطا، شناسایی پروتکل و پارامترهای پروتکل می­باشند. Encapsulation در  نشان داده شده است.

نحوه اضافه شده Header در هر لایه
نحوه اضافه شده Header در هر لایه

لازم به ذکر است که به فرایند اضافه کردن سرآیند مخصوص هر پروتکل به اطلاعات دریافت شده از لایه­های بالایی Encapsulation   گفته می­شود. اطلاعات دریافت شده برای رفتن به لایه­های بالاتر، بخش سرآیند مربوط به هر پروتکل جدا می­شود و به لایه­های بالاتر ارسال می­شود که به این عمل از بسته خارج کردن یاDecapsulation  گفته می­شود. گاهی اوقات ممکن است از این دو عمل به عنوان Assemble و Disassemble نیز یاد شود. در ادامه هر لایه توضیح شرح داده شده است.

لایه Application

  • ارائه سرویس­های شبکه به برنامه­ها (نظیر پست الکترونیکی، ارسال فایل­ها و … )
  • تشخیص زمان لازم برای دستیابی به شبکه

لایه کاربرد شامل مجموعه پروتکل­هایی مانند وبHTTP ، انتقال فایلFTP ، انتقال خبر NNTP  و پست الکترونیک و … است. برنامه­های کاربردی نظیر مرورگرهای اینترنتی، برنامه­های مدیریت ایمیل و … در این لایه قرار می­گیرند و به صورت کلی واسط بین کاربر و دنیای شبکه می­باشد. این لایه با سیستم عامل و برنامه­های کاربردی ارتباط دارد. کاربران با استفاده از نرم افزارهای کاربردی متفاوت قادر به انجام عملیات مرتبط با شبکه خواهند بود، به عنوان مثال می­توانند اقدام به ارسال فایل، پیام و … نمایند. به­صورت خلاصه در تعریف کارایی این لایه می­توان گفت که این لایه رابط بین کاربر و شبکه است.

لایه Presentation

  • ایجاد اطمینان لازم در رابطه با قابل استفاده بودن داده برای سیستم دریافت کننده
  • رمزنگاری داده

این لایه داده را از لایه کاربرد دریافت می کند و ساختار آن­ها را به گونه­ ای تبدیل می­کند که توسط لایه­های پایین­تر قابل استفاده باشد. همچنین عکس این عمل را نیز انجام می­دهد، یعنی زمانی که اطلاعاتی از لایه Session  به این لایه وارد می­شود، این اطلاعات را به گونه ­ای تبدیل می­کند که برای لایه Application قابل استفاده باشد. برخلاف لایه­های پایین­تر که عمدتا با بیت­ها سر و کار دارند، لایه Presentation توجه خود را روی ساختار پیام­ها و مفهوم آن­ها متمرکز می­کند. برای اینکه کامپیوترهایی با ساختارهای متفاوت داده بتوانند با هم ارتباط برقرار کنند، ساختار پیام­های مبادله شده بایستی کاملا مشخص و استاندارد باشد. وظیفه لایه Presentation مدیریت این ساختار در سطح بالاست

لایه Session

  • ایجاد، مدیریت و خاتمه ارتباط برقرارشده بین برنامه­ها برقراری جلسه
  • مدیریت جلسه
  • ارائه سرویس­های کنترل دیالوگ، مدیریت نشانه، همگام سازی
  • خاتمه دادن به جلسه

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

لایه Transport

  • شکستن داده­ها برای لایه­ های پایین­تر
  • تعیین سرویس­های لایه جلسه
  • ایجاد اطمینان لازم در رابطه با قابل­استفاده بودن داده برای سیستم دریافت کننده
  • توافق در رابطه با گرامر انتقال داده برای لایه Application
  • رمزنگاری داده

در این لایه قبل از ارسال اطلاعات، یک بسته به سمت مقصد فرستاده می­شود تا مقصد را برای دریافت اطلاعات آماده کند. همچنین این لایه وظیفه تکه تکه کردن بسته­ها، شماره­گذاری آنها و ترتیب و نظم دهی آنها را بر عهده دارد که البته بسته­ها در طرف گیرنده دوباره در همین لایه نظم دهی و قابل استفاده برای لایه­های بالاتر خواهند شد. لایه انتقال وظیفه نگهداری و کنترل ریزش اطلاعات یا Flow Control را بر عهده دارد. اگر به خاطر داشته باشید سیستم عامل ویندوز به شما این اجازه را می­دهد که همزمان از چندین نرم افزار استفاده کنید. خوب همین کار در شبکه نیز ممکن است رخ بدهد، چندین نرم افزار بر روی سیستم عامل تصمیم می­گیرند که به صورت همزمان بر روی شبکه اطلاعات خود را منتقل کنند. لایه انتقال اطلاعات مربوط به هر نرم افزار در سیستم عامل را دریافت و آنها را در قالب یک رشته تکی در می­آورد. همچنین این لایه وظیفه کنترل خطا و همچنین تصحیح خطا در هنگام ارسال اطلاعات بر روی شبکه را نیز بر عهده دارد. به صورت خلاصه وظیفه لایه انتقال این است که از رسانیدن درست اطلاعات از مبدأ به مقصد اطمینان حاصل کند، انواع پروتکل­های اتصال گرا یا Connection Oriented و غیر اتصال گرا یا Connection Less در این لایه فعالیت می نند.

لایه Network

  • ارائه ارتباط و مسیر انتخابی برای دو سیستم
  • پاسخ به سؤالات متعددی نظیر نحوه ارتباط سیستم­های موجود در Segment های متفاوت شبکه
  • آدرس­های مبدأ، مقصد، Subnet و تشخیص مسیر لازم
  • پروتکل­های IP و IPX در این لایه استفاده می­گردند
  • کنترل عملکرد زیر شبکه
  • مسیریابی Routing
  • کنترل گلوگاه­ها
  • کیفیت سرویس دهی
  • پیوستن به شبکه­های ناهمگن

پیچیده­ترین لایه مدل OSI لایه شبکه که در آن قراردادهای شبکه­بندی تعریف شده است. وظیفه این لایه انتقال تکنولوژی برقراری ارتباط برای دیگر شبکه­های مستقل است که این امر این امکان را به OSI می­دهد که بتواند در زیر­شبکه­های مختلف فعالیت کند. تصور کنید که قرار است برای یکی از دوستانتان یک نامه بلند بالا بنویسید، اما کاغذ به اندازه کافی ظرفیت برای درج مطالب شما ندارد، خب شما می­توانید چندین کاغذ را استفاده کرده و متن خود را در قالب چندین نامه بنویسید و برای هر کدام از صفحات نامه شماره صفحه بگذارید. بعد از اینکه نامه در مقصد به دوستان رسید، با استفاده از شماره صفحه­ها می­تواند نامه را به ترتیب خوانده و اطلاعات را به درستی دریافت کند. این دقیقاً همان کاری است که لایه شبکه انجام می­دهد. وظیفه لایه شبکه این است که چگونگی رسیدن داده­ها به مقصد را تعیین کند. این لایه وظایفی از قبیل آدرسدهی، مسیریابی و پروتکل­های منطقی را عهده­دار است.

لایه شبکه مسیرهای منطقی یا Logical Path بین مبدأ و مقصد را ایجاد می­کند که به اصطلاح مدارهای مجازی یا Virtual Circuits  نام گذاری می­شوند. این مدارها باعث می­شوند که هر بسته اطلاعاتی بتواند راهی برای رسیدن به مقصدش پیدا کند. لایه شبکه همچنین وظیفه مدیریت خطا در لایه خود، ترتیب دهی بسته­های اطلاعاتی و کنترل ازدحام را نیز بر عهده دارد. ترتیب بسته­های اطلاعاتی بسیار مهم است، زیرا هر پروتکلی برای خود یک حداکثر اندازه بسته اطلاعاتی تعریف کرده است.

برخی اوقات پیش می­آید که بسته­های اطلاعاتی از این حجم تعریف شده بیشتر می­شوند و به ناچار اینگونه بسته­های به بسته­های کوچکتری تقسیم می­شوند و برای هر کدام از این بسته­های اطلاعاتی یک نوبت یا  Sequenceداده می­شود که معلوم شود کدام بسته اول است و کدام بسته دوم و … به این عدد به اصطلاح  Sequence Numberهم گفته می­شود. وقتی بسته­های اطلاعاتی در مقصد دریافت شدند، در لایه شبکه این Sequence Number ها چک می شود و به وسیله همین Sequence Number است که اطلاعات به حالت اولیه باز می­گردند و تبدیل به اطلاعات اولیه می شوند. در صورتی که یکی از این بسته­ها به درستی دریافت نشود، در لایه شبکه از طریق چک کردن این عدد مشخص می­شود که کدام بسته اطلاعاتی دریافت نشده است و طبیعتاً مجدداً درخواست داده می­شود.

لایه Data Link

  • آدرس دهی فیزیکی و یا سخت­افزاری MAC توپولوژی شبکه Frame ها در این لایه قرار دارند
  • رفع خطاهای فیزیکی
  • قالب بندی داده­ها
  • هماهنگی بین سرعت گیرنده و فرستنده
  • کنترل دسترسی به کانال مشترک
  • انتقال مطمئن داده از طریق محیط انتقال

در این لایه خطا در اطلاعات کشف و اصلاح می­شوند و بدون خطا و به صورت مطمئن به سوی مقصد ارسال می­شوند. وظیفه دیگر این لایه مطمئن شدن از رسیدن اطلاعات به مقصد است که این کار توسط بخش­هایCRC  و Parity Check  انجام می­پذیرد که در صورت بروز خطا مجدداً اطلاعات ارسال خواهند شد. لایه انتقال به خودی خود به دو زیر لایه به نام های MAC[1] و LLC[2]تقسیم می­شود. زیر لایه MAC همانطوری که از نامش پیداست شناسه سخت افزار کامپیوتر که در واقع همان آدرس MAC کارت شبکه است را به شبکه معرفی می کند. آدرس MAC آدرستی سخت­افزاری است که در هنگام ساخت کارت شبکه از طرف شرکت سازنده بر روی کارت شبکه قرار داده می­شود و در حقیقت Hard Code می­شود. این آدرس در حقیقت مهم ترین برگ خرید در آدرسدهی است که کامپیوتر از طریق آن بسته­های اطلاعاتی را دریافت و ارسال می کند. زیر لایه LLC وظیفه کنترل Frame Synchronization یا یکپارچه­سازی فریم­ها و همچنین خطایابی در لایه دوم را بر عهده دارد.

لایه Physical

  • انتقال بیتها از طریق کانال مخابراتی
  • کابل­ها، کانکتورها، ولتاژها، نرخ انتقال داده bit rate

ارسال اطلاعات به صورت مجموعه­ای از بیت­ها، سیگنال­های الکتریکی و اینترفیس سخت افزاری این لایه که تنها تشکیل شده از سخت افزار می­باشد و قراردادهای سخت افزاری در آن اجرا می­شود، وظیفه انتقال نهایی اطلاعات را دارد که این انتقال به صورت سیگنال و به صورت صفر و یک می­باشد. در واقع در این لایه با توجه به محیط انتقال استفاده شده، داده­ها را به سیگنال­های الکتریکی، پالس­هایی از نور و یا سیگنال­های رادیویی تبدیل و از طریق کابل برای کامپیوتر مقصد ارسال خواهد شد. مسائل طراحی در این لایه عمدتاً از نوع فیزیکی، الکتریکی، زمانبندی یا Timing ، نرخ ارسال داده و رسانه فیزیکی انتقال است. این لایه در واقع تعیین می­کند که ما به چه شکل قرار است اطلاعات خود را و از طریق چه رسانه­ای انتقال دهیم، برای مثال رسانه ما کابل مسی است یا تجهیزات بیسیم؟ برای راحت کردن درک این لایه بهتر است بگوییم لایه فیزیکی تعیین می­کند که اطلاعات چگونه در سطح رسانه دریافت و ارسال شوند. عملیات کدینگ نیز در این لایه انجام می­شود.

Choose your Reaction!
دیدگاه خود را بنویسید

آدرس ایمیل شما منتشر نخواهد شد.

redronic.com