لایه پیوند دادهای
این نوشتار به ویراستاری نیاز دارد. لطفاً تا جایی که ممکن است آن را از نظر دستور زبان، شیوهٔ نگارش، املا و انشا بهتر کنید. (ژوئن ۲۰۲۶) |
| مدل OSI به تفکیک لایه |
|---|

لایهٔ پیوند دادهای[۱] دومین سطح از مدل اتصال متقابل سامانههای باز است. در این لایه، الگوریتمهای دستیابی به ارتباطات قابل اعتماد بین دو کامپیوتر همسایه مورد بحث قرار میگیرد. وظایف این لایه، شامل موارد زیر است:
- ارائه سرویسهای مشخص به لایهٔ شبکه
- مدیریت خطاهای انتقال
- تنظیم جریان دادهها
این لایه برای رسیدن به این اهداف، اطلاعات را قاببندی میکند.
ارائه سرویسهای مشخص به لایه شبکه
[ویرایش | اشتراکگذاری]انتقال دادهها از لایه شبکهٔ ماشین مبدأ به لایه شبکه ماشین مقصد از مهمترین وظایف لایه پیوند داده است. سرویسهایی که لایه پیوند داده را ارائه میکنند، در سامانههای مختلف، متفاوت است. برخی از مهمترین سرویسها عبارتند از:
- سرویس غیرمتصل بدون تصدیق دریافت: این سرویس در بیشتر LANها استفاده میشود.
- سرویس غیرمتصل با تصدیق دریافت: این سرویس برای کانالهای نامعتمدی مثل سیستمهای شبکه بیسیم مناسب است.
سرویس اتصالگرا با تصدیق دریافت: این سرویس در سه مرحله انجام میشود:
- مقداردهی متغیرهای لازم برای شمارش قابها
- انتقال قابها
- قطع اتصال و آزادسازی متغیرها و میانگیرها
قاببندی
[ویرایش | اشتراکگذاری]جهت قاببندی روشهای زیر وجود دارد:
- شمارش نویسهها: در این روش تعداد نویسههای قاب در یکی از فیلدهای سرآیند آن نوشته میشود. وقتی این قاب به مقصد برسد، لایه پیوند دادهٔٔ سوی دیگر به کمک آنها قاب را مشخص میکند.
البته در این روش ممکن است بایت مشخصکننده آغاز و انتهای قاب هم آسیب ببیند.
- بایتهای پرچم، با لاگذاری بایت: در این روش پرچمهایی برای مشخص کردن ابتدا و انتهای قاب دادهای استفاده میشود. این روش هم مشکلات خاص خود را دارد؛ زیرا ممکن است بخشی از دادهها شامل بایتهای پرچم قراردادی باشد.
- پرچمهای شروع و پایان، با لاگذاری بیت: در این شیوه هر قاب با طرح بیتی ۰۱۱۱۱۱۱۰ شروع میشود و در سمت فرستنده به محض مشاهده ۵ بیت ۱ پشت سرهم یک ۰ قرار میدهد. عکس این رویداد در قسمت گیرنده رخ میدهد.
- حالتهای غیرمجاز کُدگذاری لایهٔ فیزیکی: در این روش در اصل نوعی افزونگی داریم. برای نمونه در برخی LANها هر بیت داده با دو بیت فیزیکی نشان داده میشود: بیت ۱ با زوج بالا-پایین و بیت ۰ با زوج پایین-بالا.
در بسیاری از پروتکلهای پیوند داده برای اطمینان بیشتر، از ترکیب روشهای گفته شده استفاده میشود.
کنترل خطا
[ویرایش | اشتراکگذاری]جهت کنترل خطای دریافت اطلاعات به طور معمول از دو سازوکار استفاده میشود:
- تصدیق دریافت: گیرنده، دریافت بسته را تصدیق میکند.
- استفاده از زمانسنج: اگر بستهای در مدت زمان معین به مقصد نرسد، دوباره ارسال میشود .
کنترل جریان
[ویرایش | اشتراکگذاری]برای یکی کردن سرعت ارسال و دریافت بستههای اطلاعاتی معمولاً از راهکارهای کنترل جریان استفاده میشود. شماری از این راهکار در زیر بیان شده است.
- کنترل جریان بر اساس بازخورد: گیرنده آمادگی خود را برای دریافت بستهها اعلام میکند.
- کنترل جریان بر اساس نرخ
پروتکلهای لینک داده
[ویرایش | اشتراکگذاری]- پروتکل یکطرفه نامقید
- پروتکل توقف-انتظار یکطرفه
- پروتکل یکطرفه برای کانالهای نویز دار
- پروتکل پنجره لغزنده ۱-بیتی
- پروتکل 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 */
}
}
ارزیابی پروتکلها
[ویرایش | اشتراکگذاری]تکنیکهایی جهت ارزیابی پروتکلهای شبکه وجود دارد. دو روش زیر از مهمترین این روشها هستند:
پیوند به بیرون
[ویرایش | اشتراکگذاری]منابع
[ویرایش | اشتراکگذاری]- ↑ «لایهٔ پیوند دادهای» [مهندسی مخابرات] همارزِ «data link layer» (انگلیسی)؛ منبع: گروه واژهگزینی. فرهنگ واژههای مصوب فرهنگستان. تهران: انتشارات فرهنگستان زبان و ادب فارسی.
شبکههای کامپیوتری - آندرواس. تَنن بام - ویراست چهارم۲۰۰۳