لایه پیوندداده
از ویکیپدیا، دانشنامهٔ آزاد
لایه پیوند داده دومین سطح از مدل مرجع OSI میباشد. در این لایه بر روی الگوریتم های دستیابی به ارتباطات قابل اعتماد بین دو کامپیوتر همسایه بحث میشود.این لایه دارای وظایفی به قرار زیر است:
- ارائه سرویس های مشخص به لایهٔ شبکه
- مدیریت خطاهای انتقال
- تنظیم جریان داده ها
برای تحقق این اهداف این لایه اقدام به فریم بندی اطلاعات می نمایید.
فهرست مندرجات |
[ویرایش] ارائه سرویس های مشخص به لایه شبکه
از مهمترین وظایف لایه پیوند داده انتقال دادهها از لایه شبکهٔ ماشین مبدا به لایه شبکه ماشین مقصد میباشد. این ارتباط (بخش الف) در شکل مقابل نشان داده شده است. البته این اتصال ارتباطی همچون بخش (ب) که ارتباطی واقعی است، را دنبال می نماید. سرویس هایی که لایه پیوند داده ارائه میکند، از سیستمی تا سیستم دیگر متفاوت است. اما از مهمترین سرویس ها عبارتاند از:
- سرویس غیر متصل بدون تصدیق دریافت: این سرویس در اکثر LAN ها مورد استفاده قرار میگیرد.
- سرویس غیر متصل با تصدیق دریافت: این سرویس برای کانالهای غیر اعتمادی مثل سیستم های بسیم مناسب است.
سرویس اتصال گرا با تصدیق دریافت:این سرویس که مناسب ترین سرویس این لایه است در سه مرحله انجام میگیرد.
- مقدار دهی متغییر های لازم برای شمارش فریم ها و غیره.
- انتقال فریم ها.
- قطع اتصال و آزاد سازی متغییر ها و بافر ها.
[ویرایش] فریم بندی
جهت فریم بندی روشهای زیر وجود دارد:
- شمارش کاراکتر ها: در این روش تعداد کاراکتر های فریم در یکی از فیلد های سرآیند آن نوشته میشود. وقتی این فریم به مقصد برسد، لایه پیوند داده مقابل به کمک آنها فریم داده ای را مشخص میکند. شکل زیر مثالی از فریم بندی به کمک شمارش کاراکتر ها میباشد.
البته در این روش ممکن است بیت مشخص کننده آغاز و انتهای فریم هم آسیب ببیند. در این صورت راهی باقی نمی ماند جز اینکه به فکر روش مورد اعتماد دیگری باشیم.
- بایتهای پرچم، با لاگذاری بایت: در این روش فلگ هایی (نشانه) برای مشخص کردن ابتدا و انتهای فریم داده ای استفاده میشود.این روش هم مشکلات خاص خود را دارد چونکه ممکن است بخشی از دادهها شامل بایت های پرچم قراردادی باشد.
- پرچم های شروع و پایان، با لاگذاری بیت: در این شیوه هر فریم با طرح بیتی 01111110 شروع میگردد و در سمت فرسنده به محض مشاهده ۵ بیت 1 پشت سرهم یک 0 قرار میدهد. عکس این رویداد در قسمت گیرنده رخ میدهد.
- حالت های غیر مجاز کُدگذاری لایهٔ فیزیکی: در این روش در اصل نوعی افزونگی داریم. مثلاً در برخی LAN ها هر بیت داده با دو بیت فیزیکی نشان داده میشود: بیت 1 با زوج بالا-پایین و بیت 0 با زوج پایین-بالا.
در بسیاری از پروتکل های لینک داده برای اطمینان بیشتر از ترکیب روشهای گفته شده استفاده میشود.
[ویرایش] کنترل خطا
جهت کنترل خطای دریافت اطلاعات معمولاً از دو مکانیزم استفاده میشود.
- تصدیق دریافت: گیرنده دریافت بسته را تصدیق میکند.
- استفاده از زمانسنج: هر بسته اگر در مدت زمان معینی به مقصد نرسید، دوباره ارسال میشود.
[ویرایش] کنترل جریان
برای یکی کردن سرعت ارسال و دریافت بستههای اطلاعاتی معمولاً از راهکار های کنترل جریان استفاده میشود. در زیر چند راهکار را بیان می کنیم.
- کنترل جریان بر اساس بازخور: گیرنده آمادگی خود را برای دریافت بستهها اعلام میکند.
- کنترل جریان بر اساس نرخ
[ویرایش] پروتکل های لینک داده
- پروتکل یکطرفه نا مقید
- پروتکل توقف-انتظار یکطرفه
- پروتکل یکطرفه برای کانال های نویز دار
- پروتکل پنجره لغزنده ۱-بیتی
- پروتکل N تا به عقب برگرد
- پروتکل تکرار انتخابی
در این بخش پروتکل یکطرفه نا مقید که ساده ترین این پروتکل ها(و البته ناقص ترین آنها) را ارائه می کنیم:
/* Protocol 1 (utopia) provides for data transmission in one direction only, from
sender to receiver. The communication channel is assumed to be error free
and the receiver is assumed to be able to process all the input infinitely quickly.
Consequently, the sender just sits in a loop pumping data out onto the line as
fast as it can. */
typedef enum {frame_arrival} event_type;
#include "protocol.h"
void sender1(void)
{
frame s; /* buffer for an outbound frame */
packet buffer; /* buffer for an outbound packet */
while (true) {
from_network_layer(&buffer); /* go get something to send */
s.info = buffer; /* copy it into s for transmission */
to_physical_layer(&s); /* send it on its way */
} /* Tomorrow, and tomorrow, and tomorrow,
Creeps in this petty pace from day to day
To the last syllable of recorded time.
- Macbeth, V, v */
}
void receiver1(void)
{
frame r;
event_type event; /* filled in by wait, but not used here */
while (true) {
wait_for_event(&event); /* only possibility is frame_arrival */
from_physical_layer(&r); /* go get the inbound frame */
to_network_layer(&r.info); /* pass the data to the network layer */
}
}
[ویرایش] ارزیابی پروتکل ها
تکنیک هایی جهت ارزیابی پروتکل های شبکه وجود دارد. این تکنیک ها بایستی دقیق و مبتنی بر اصول ریاضی باشد. دو روش زیر از مهمترین این روشها هستند.
[ویرایش] پیوند به بیرون
مدل مرجع OSI
مقایسه مدلهای OSI و TCP/IP
مدل مرجع TCP/IP
شبکههای کامپیوتری - آندرواس. تَنن بام - ویراست چهارم۲۰۰۳

