لایه ی پیوند داده
اصلی ترین وظیفه ی پروتکل های لایه ی پیوند داده که دومین لایه از لایه های مدل OSI است، تقسیم کردن داده های دریافتی از لایه ی شبکه به قاب های مشخص قابل انتقال توسط لایه ی فیزیکی می باشد. قاب، بسته ای ساختار مند برای انتقال داده است که افزون بر داده های قابل ارسال، شامل اطلاعات خطا یابی، کنترلی و همچنین آدرس های شبکه ی گیرنده و فرستنده نیز می باشد.
برای آشنایی کامل با عملکرد لایه ی پیوند داده، تصور کنید که رایانه برای برقراری ارتباط مانند انسان عمل می کند. فرض کنید در کلاس بزرگ، شلوغ و پر سر و صدای خانم جونز هستید و می خواهید از ایشان بپرسید «خانم جونز، می توانید در خصوص اثرات راه آهن بر گسترش تجارت در اواسط قرن نوزدهم توضیحاتی ارائه دهید؟». در این مثال شما به عنوان فرستنده ای (در یک شبکه شلوغ)که دارای آدرس گیرنده یعنی خانم جونز است (اشاره به آدرس لایه ی پیوند داده ی دیگر رایانه ی عضو شبکه دارد) عمل می کنید. افزون بر این، شما سؤال را در قالبی مشخص مانند قاب های لایه ی پیوند داده که برای رایانه ی گیرنده قابل درک می باشد پرسیده اید.
اگر در کلاس بسیار شلوغ، خانم جونز تنها بخش «بر گسترش تجارت در اواخر قرن نوزدهم» پرسش را دریافت کند چه اتفاقی خواهد افتاد؟ این نوع خطا می تواند به راحتی در ارتباطات شبکه ای (برای نمونه به خاطر مشکل کابل کشی) رخ دهد. پروتکل های لایه ی پیوند داده متوجه وجود اشکال در اطلاعات دریافتی می شوند و از رایانه ی فرستنده ارسال مجدد پیغام را خواستار می شوند- مانند این که خانم جونز بگوید «سؤال شما را متوجه نشدم، ممکن است دوباره تکرار کنید؟»- لایه ی پیوند داده این عمل را توسط فرایندی به نام بررسی خطا انجام می دهد. بررسی خطا با استفاده از فیلد 4 بایتی FCS (ترتیب بررسی قاب:Frame Check Sequence) که هدفش حصول اطمینان از یکی بودن داده های ارسالی با داده های دریافتی است، صورت می پذیرد. زمانی که گره مبدأ داده هایش را ار سال می کند، FCS یک الگوریتم (یا روال ریاضی)به نام CRC (بررسی افزونگی دوره ای:Cyclic Redundancy Check) را اجرا می کند. CRC مقدار تمام فیلدهای قبلی قاب را دریافت و عدد یکتای 4 بایتی FCS را تولید می کند. زمانی که گره مقصد، قاب را دریافت می کند، خدمت های لایه ی پیوند داده با اجرای همان الگوریتم CRC استفاده شده در گره مبدأ، FCS را بررسی کرده و از یکی بودن داده های دریافتی و ارسالی اطمینان حاصل می کنند. اگر این مقایسه با مشکلی مواجه شود، گره مقصد فرض را بر این داشته که قاب ارسالی دارای خطا بوده و از گره مبدأ ارسال مجدد همان قاب را درخواست می کند. به خاطر داشته باشید که عمل مقایسه تنها در گره مقصد صورت می گیرد. افزون بر موارد بالا، لایه ی پیوند داده ی فرستند منتظر پیغام تصدیق دریافت صحیح داده های ارسالی از لایه ی انتقال گیرنده می ماند. اگر فر ستنده پیغام تصدیق را در بازه ی زمانی مشخص دریافت نکند، لایه ی پیوند داده ی آن، اقدام به ارسال دوباره ی اطلاعات خواهد کرد. به خاطر داشته باشید لایه ی پیوند داده هرگز به دنبال کشف چگونگی رخ داد خطا نیست.
یکی دیگر از مشکلات ارتباطی که ممکن است به خاطر شلوغی شبکه رخ دهد، ازدحام درخواست های ارتباطی است. برای نمونه، در انتهای کلاس همزمان 20 نفر از خانم جونز 20 پرسش متفاوت می پرسند و مشخص است که ایشان نمی تواند به تمام پرسش ها توجه کند و همه ی آنها را متوجه شود. با این اتفاق شاید ایشان بگوید «لطفاً به نوبت پرسش هاتان را مطرح کنید» و سپس به یک دانش آموز توجه کند. این وضعیت مشابه وضعیت قرار گرفته ی لایه ی پیوند داده مقابل لایه ی فیزیکی است. یک گره عضو شبکه (مانند خدمتگزار وب)می تواند چندین درخواست حاوی قاب های داده ی مختلف را دریافت و با استفاده از لایه ی پیوند داده، جریان اطلاعات را کنترل و به کارت شبکه اجازه ی پردازش بدون خطای داده ها را صادر کند. حین برقراری ارتباط با پروتکل های لایه ی پیوند داده، برای جلوگیری از درگیر شدن پروتکل های لایه های بالاتر (مانند لایه ی شبکه)با خصوصیات لایه ی فیزیکی، IEEE لایه ی پیوند داده را مانند شکل به دو زیر لایه تقسیم کرده است.
در شکل بالا، نخستین زیر لایه، LLC (کنترل منطقی پیوند: Logical Link Control) است. این زیر لایه دارای سه وظیفه است: 1- فراهم کردن رابط برای پروتکل های لایه ی شبکه 2- مدیریت کنترل جریان 3- ارسال درخواست برای انتقال داده های دارای خطا. زیر لایه ی دوم که MAC (کنترل دسترسی رسانه: Media Access Control) نام دارد وظیفه ی مدیریت دسترسی به محیط فیزیکی را بر عهده دارد.این زیر لایه آدرس فیزیکی رایانه ی مقصد را به قاب داده اضافه می کند. آدرس فیزیکی، عدد ثابتی است که به کارت شبکه ی دستگاه اختصاص داده می شود؛ این عدد در کارخانه ی تولید کننده اختصاص و در حافظه ی روی برد کارت شبکه ذخیره می شود. به این خاطر که آدرس فیزیکی در زیر لایه ی MAC به قاب اضافه می شود، از آن به آدرس MAC یا آدرس لایه ی پیوند داده و گاهی نیز به آدرس سخت افزاری یاد می شود. آدرس MAC روی برد کارت شبکه حک شده است و به راحتی با نگاه کردن به آن می توان این آدرس را مشاهده کرد. البته برنامه هایی نیز وجود دارند که این آدرس را در اختیار شما قرار خواهند داد.
آدرس MAC دارای دو بخش شناسه ی بلوک و شناسه ی دستگاه است. شناسه ی بلوک (Block ID) دنباله 6 کاراکتری یکتایی است که به هر تولید کننده اختصاص داده می شود و مدیریت تخصیص آن بر عهده ی IEEE است. برای نمونه کارت های شبکه ی اترنت تولید شده توسط شرکت 3Com دارای دنباله ی 6 کارکتری”00608C“ می باشد و کارت های شبکه ی اترنت تولید شده توسط شرکت اینتل با دنباله ی 6 کارکتری ”00AA00“ آغاز می شود. شش کاراکتر باقی مانده حاوی اطلاعاتی در خصوص مدل و تاریخ ساخت کارت شبکه است که به شناسه ی دستگاه (Device ID) معروف می باشد. برای نمونه شناسه ی دستگاه اختصاص داده شده ی یک تولید کننده به کارت شبکه می تواند چیزی شبیه به «005499» باشد. تجمیع این دو شناسه، آدرس MAC در مبنای شانزده و به شکل “C00:60:8:00:54:99ʺ نمایش داده می شود.