پروتکل S-MAC در شبکههای حسگر بیسیم
شبکههای حسگر بیسیم نوع خاصی از شبکه بیسیم AdHoc هستند و از تعداد زیادی نود و سنسور تشکیل شدهاند. نودها با قدرت باتری کار میکنند که باعث کم مصرف بودن آنها میشود. آرایش نودها از قبل طراحی نشده به این صورت که نودها خودشان خود را سازمان دهی میکنند. در این شبکهها نودها برای یک برنامه مشترک با یکدیگر همکاری میکنند.
قبل از اینکه کارایی انرژی در پروتکل MAC را بررسی کنیم، ابتدا منابع اتلاف انرژی را در نظر میگیریم:
1. تصادم(Collision) : دو نود متفاوت به طور همزمان بستههای خود را ارسال میکنند.
۲. استراق سمع (Overhearing) : نودها بستههایی را که برای نودهای دیگر فرستاده میشود را استفاده میکنند.
۳. بار اضافی بستههای کنترلی : ارسال و دریافت بستههای کنترلی هم باعث مصرف انرژی میشود و ممکن است بستههای اطلاعاتی کمتری ارسال شود.
۴. توجه به نودهای بدون استفاده (Idle Listening) : در بسیاری از برنامههای شبکههای حسگر نودها اگر حس نکنند به حالت Idle میروند. نرخ داده در این زمان خیلی کم است.
حالت Idle Listening مختص شبکههای حسگر است اما بقیه موارد بین همه شبکههای بیسیم مشترک است.
طراحی پروتکل Sensor MAC (S-MAC) :
این پروتکل از تاخیر میکاهد و باعث صرفه جویی هرچه بیشتر انرژی میشود. مولفههای اصلی در S-MAC به صورت زیر است:
۱. حالت دورهای Listen و Sleep
۲. جلوگیری از تصادم
۳. جلوگیری از استراق سمع
۴. انتقال پیام
۱. حالت دورهای Listen و Sleep :
پروتکل S-MAC برای جلوگیری از حالت Idle Listening ، از Listen و Sleep استفاده میکند. به این ترتیب که نودها به صورت دورهای در یکی از حالات Listen یا Sleep هستند. وقتی نودی در حالت Sleep است، رادیوی خود را خاموش میکند. این کار باعث کاهش ۵۰٪ چرخه کاری و ذخیره ۵۰٪ انرژی میشود.
نودها زمانی میتوانند به نود دیگر بسته ارسال کنند که نود گیرنده در حالت Listen باشد. هر نود یک جدول زمان بندی دارد که برنامه زمانی نودهای همسایه خود را در آن ذخیره میکند.
زمان بندی برنامه نودها برای مشخص کردن حالت Listen و Sleep خود به صورت زیر است:
۱. نود برای مدتی گوش میدهد.
2. اگر برنامهای نشنید یک برنامه زمانی تصادفی انتخاب میکند و آن را در یک پیغام Sync به همسایگان خود انتشار میدهد.
3. این پیغام اشاره دارد بر اینکه این نود بعد از t ثانیه به حالت Sleep برود. سایر نودها با برنامه آن همزمان میشوند.
4. در این حالت به نود Synchronizer گفته میشود.
5. اگر نود یک زمان بندی بشنود، از همان پیروی میکند. در این حالت به نود پیرو(Follower) گفته میشود.
به اندازه td صبر میکند بعد برنامه خود را انتشار میدهد. (t – td دیگر به حالت Sleep میرود.
6. اگر نود برنامه زمانی متفاوتی بعد از انتخاب و پخش برنامه خود، دریافت کرد هر دو زمان بندی را قبول میکند.
۲. جلوگیری از تصادم:
پروتکل S-MAC برای حل این مشکل راههای زیر را استفاده میکند:
Virtual Carrier Sense : در هر بسته انتقالی فیلدی وجود دارد که بیانگر این است که ارسال باقی مانده چقدر به طول میانجامد. بنابراین اگر نودی بستهای را دریافت کرد که مقصد آن نود دیگر بود، میفهمد که چقدر باید صبر کند. نود مقداری را ذخیره میکند و آن را در متغیر(Network Allocator Vector) NAV ذخیره میکند و یک Timer برای آن میگذارد. وقتی تایمر NAV روشن شد، نود مقدار NAV را کاهش میدهد تا به صفر برسد. وقتی نودی بستهای برای ارسال دارد. اول به NAV نگاه میکند، اگر مقدار آن صفر نباشد نود متوجه شلوغ بودن کانال میشود و اینکه اجازه ارسال ندارد.
۲. Physical Carrier Sense : روی لایه فیزیکی اجرا میشود.
۳. RTS و CTS را برای کانالهای مخفی استفاده میکند.
۳. جلوگیری از استراق سمع:
برای حل این مشکل وقتی همسایههای نود در حال ارسال یا دریافت بسته هستند نود به حالت Sleep میرود. که در این حالت همه همسایههای نود گیرنده و فرستنده به حالت Sleep میروند.
انتقال پیام:
ارسال پیامهای طولانی باعث مصرف انرژی میشود، اما گیرنده باید کل پیام را قبل از پردازش دریافت کند. برای حل این مشکل پیام را تقسیمبندی میکنیم و آنها را به صورت پیوسته بفرستیم. در این حالت RTS و CTS مسیر را تا پایان فرستادن پیام در اختیار میگیرد. نود گیرنده بعد از دریافت تکه پیغام یک ACK یی به نود فرستنده میفرستد تا دریافت پیام را تایید کند، اگر فرستنده پیغام ACK را دریافت نکند، درخواست زمان اضافی میکند. سایر نودها تا پایان ارسال به حالت Sleep میروند.
برای اطلاع از فنآوریهای نوین ارتباطی شبکههای وایرلس و مایکروویو و مراکز تلفنی تحت شبکه از کانال تلگرامی ما به آدرسهای Wireless_tech@ و Voip_Tech@ دیدن فرمایید.