اکثر شبکه های حسگر طراحی شده اند که برای مدتی طولانی کار کنند بنابراین مدت زمان زیادی را در حالت خواب به سر میبرند. بنابراین گوش دادن بیهوده بخش زیادی از هرز رفتن انرژی را سبب میشود.
۳-۴ مروری بر روی MAC های موجود
پروتکل MAC زمینه تحقیقاتی گسترده ای است که تحقیقات بسیاری در آن برای شبکه های بیسیم حسگر و کم مصرف انجام میگیرد.پروتکلهایی که تاکنون طراحی شده اند میتوان به دو دسته رقابتی و TDMA تقسیم کرد.
MAC های رقابتی: استاندارد IEEE802.11 نمونه یک پروتکل بر پایه رقابت و بر پایه یک تابع هماهنگ توزیع شده میباشد و بر اساس پروتکل تحقیقاتی MACAW ساخته شده است.این پروتکل به دلیل سادگی و مقاومت آن دربرابر مشکل Hidden Terminal بسیار مورد استفاده قرار گرفته است.ولی اندازه گیریهای صورت گرفته نشان میدهد که این MAC دارای مصرف انرژی بسیار بالایی حتی در حالت غیر فعال میباشد که علت اصلی آن گوش دادن بیهوده به شبکه میباشد.PAMAS تلاش میکند این مشکل را تا حدی با مسئله هرز گوش دادن بین گره های همسایه حل کند.PAMAS تلاشی برای حل مشکل گوش دادن هرز نمیکند.
روش های بر پایهTDMA:کلاس دیگری از پروتکلهایMAC روش های مبتنی بر رزرو کردن و زمانبندی میباشد که به آنها روش های بر پایهTDMA گفته میشود.این روش ها به صورت ذاتی مصرف انرژی کمتری نسبت به روش های بر پایه رقابت دارند.زیرا دوره فعالیت واحد رادیویی کاهش یافته و هیچ سرباری به خاطر رقابت و برخورد به وجود نمی آید.درعوضTDMA نیاز دارد که گره ها خوشه های ارتباطی واقعی تشکیل دهند (مانندBluetoothویا LEACH). در اکثر روشها گره هایی که درون یک خوشه قرار میگیرند باید تنها با گره های داخل خوشه ارتباط برقرار کنند .به علاوه هنگامی که تعداد گره های داخل خوشه تغییر میکند تغییر زمانبندی گره ها و طول پنجره برای TDMA بسیار دشوار است.بنابراین مقیاس پذیری آن در مقایسه با روش های برپایه رقابت مناسب نیست.برای مثال درBlutooth حداکثر هشت گره میتوانند فعال باشند.
در[۶۲] یک روش برای خود سامان دهی گره های حسگر ارائه شده است.هر گره یک فریم شبیه TDMA نگهداری میکند که به آن Super Frame گفته میشود و از آن برای زمانبندی ارسال در یک دوره به همسایگان استفاده میشود.به این ترتیب با اینکه Super Frame شبیه یکTDMA Frame میباشد ولی به همسایگان این اجازه داده میشود که همزمان به رسانه دسترسی پیدا کنند.این قابلیت به لطف استفاده از CDMA ویاFDMA به دست می آید.مشکل این روش کاهش استفاده از پهنای باند در اختیار است.برای مثال اگر یک گره تنها قصد ارسال به یک همسایه را داشته باشد قادر به استفاده از دوره های دیگر زمانی برای ارسال به سایر همسایه ها نیست.
در[۵۶] تنظیمات مختلفCSMA مورد بررسی قرار گرفته است و یک روش پویا و سازگار پذیر برای کنترل نرخ ارائه شده است که هدف آن در اختیار دادن عادلانه پهنای باند در اختیار تمامی گره ها در یک شبکه چندگامه است.ازmote ها وTinyOS برای تست انواع مختلف MAC ها استفاده شده است.
دراین قسمت به بررسی کاملتری ازSensor-MAC که ویژه شبکه های حسگر طراحی شده و یک روش بر پایه رقابت میباشد می پردازیم.
۳-۵ S-MAC
درS-MAC تلاش می شود که اتلاف انرژی در تمام مواردی که پیش از این اشاره شد کاهش پیدا کند.اما پیش از اینکه به توضیح جزئیات S-MAC بپردازیم لازم است که پیش فرضهایی که برای شبکه حسگر در نظر گرفته شده است را بهتر بشناسیم.
شبکه حسگر از تعداد زیادی گره با ارسال رادیوی با دامنه کوتاه و مصرف کم تشکیل شده است که دارای ارتباطات چندگامه میباشند.بیشتر ارتباطات بین گره ها به عنوان هم رده صورت میگیرد تا اینکه برای یک ایستگاه مرکزی فرستاده شود.پردازش درون شبکه ای دارای اهمیت بسیاری است به این معنی که پیام ابتدا دریافت، پردازش و ذخیره میشود و سپس برای گره بعدی فرستاده میشود.
واحدهای کوچکتر پیام تنها باعث افزایش تاخیر میگردند.درپایان این فرض وجود دارد که برنامه کاربردی دارای دوره های طولانی بدون فعالیت است و میتواند تاخیر ناشی از به خواب رفتن گره ها را تحمل کند.
۳-۵-۱گوش دادن و به خواب رفتن دوره ای
چنانکه در بالا مورد اشاره قرار گرفت ، در بسیاری از شبکه های حسگر، گره ها برای مدتی طولانی غیر فعال هستندو هیچ رویدادی برای گزارش در شبکه وجود ندارد.در چنین مواقعی نیازی نیست که گره فعال باشد و بی مورد به شبکه گوش کند.S-MAC با خواباندن دوره ای گره این دوره گوش دادن را کاهش میدهد.شمای ساده ای از این روش در شکل۳-۱نمایش داده شده است. هر گره برای مدت زمانی به خواب می رود و پس از بیدار شدن به شبکه گوش میدهد تا ببیند آیا گره ای قصد تماس با او را دارد یا نه . در دوره خواب گره ،رادیوی خود را خاموش میکند و یک تایمر را برای بیدار کردن خود تنظیم میکند.
Listen
Listen
Sleep Sleep Sleep
Time
شکل۳-۱: دوره های کار و خواب گره
به یک چرخه کامل خواب وبیداری یک چارچوب گفته میشود.دوره گوش دادن معمولا براساس متغیرهای لایه فیزیکی وMAC وپهنای باند و پنجره رقابت تعیین میشود و ثابت میباشد.چرخه فعالیت به صورت نسبت دوره گوش دادن گره به طول چارچوب گفته میشود.فاصله بین دوره های گوش دادن بر اساس نیاز برنامه کاربردی تعیین میشود. برای سادگی این مقادیربرای تمام گره ها یکسان میباشد.همه گره ها آزاد هستند که برنامه خواب وبیداری خود را جداگانه انتخاب کنند ولی برای کاهش سربار کنترل ترجیح داده میشود که گره های همسایه با یکدیگر هماهنگ گردند.به این معنی که با یکدیگر به شبکه گوش دهند و با یکدیگر به خواب روند.باید توجه داشت که تمامی گره های همسایه را نمیتوان در یک شبکه چندگامه هماهنگ کرد.چنانکه در شکل۳-۲ نشان داده شده است دو گره همسایهA,B ممکن است دارای زمانبندی متفاوتی باشند در صورتیکه خود را با گره های همسایه C,D هماهنگ کرده باشند.
D B A C
شکل۳-۲:گره های A,B دارای زمانبندی متفاوت هستند وبه ترتیب با گره های C,D هماهنگ می باشند.
گره ها برنامه زمانبندی خود را از طریق پخش یک بستهSYNC به همسایگان آنی خود فرستاده و آنهارا مطلع میکند.
یک گره با همسایگان خود در زمان گوش دادن آنها ارتباط برقرار میکند ، بنابراین گره ها در صورتیکه دارای برنامه متفاوتی نیز باشند قادر به ارتباط با یکدیگر خواهند بود.برای مثال در شکل ۳-۲ اگر گره A بخواهد با گره B ارتباط برقرار کند باید منتظر شود تا این گره دوره گوش دادن خود را آغاز کند.به دوره ای که در آن بستهSYNC فرستاده می شوددوره همزمان سازی گفته می شود.
یکی از ویژگی های S-MAC این است که ساختار شبکه در آن مسطح و یک به یک میباشد.S-MAC به هماهنگی از طریق سرخوشه ها نیاز ندارد.در عوض گره ها جزئی از خوشه های مجازی دارای زمانبندی های مشابهی میباشند ولی ارتباط آنها فقط با هم درجگان خود میباشد.یک مزیت این روش هماهنگی نرم مقاومت آن نسبت به تغییرات در پیکر بندی شبکه در مقایسه با روش های بر پایه خوشه بندی میباشد.
ضعف این روش افزایش تاخیر به دلیل خواب دوره ای گره ها میباشد. به علاوه تاخیر بصورت تجمعی بر روی هرگام افزایش پیدا میکند.
در صورتیکه چندین گره قصد ارسال به یک گره را داشته باشند،همگی سعی میکنند در زمانیکه آن گره شروع به گوش دادن میکند به او پیام ارسال کنند. در چنین شرایطی لازم است که این گره ها با یکدیگر رقابت کنند.بین روش های بر پایه رقابت،۸۰۲٫۱۱ کار مناسبی را برای پیشگیری از برخورد ارائه میدهد.S-MAC از روش های مشابهی از جمله حس کردن رسانه و استفاده ازRTS/CTS برای پیشگیری از مشکل Hidden Terminal استفاده میکند.
هرکدام از این بسته ها دارای یک بخش مدت زمان هستند که مدت زمانباقیمانده تا پایان ارسال را نشان میدهد.در صورتیکه گره ای بسته ای مربوط به گره دیگر را دریافت کند میفهمد که برای چه مدتی باید در این منطقه ساکت باقی بماند.به این مقدار ، بردار تخصیص شبکه یا به اختصارNAV[71] گفته میشود.و هرگره تایمری را برای آن تنظیم میکند.هربار که تایمر یک تیک داشته باشد از مقدار NAV یک واحد کاسته میشود تا این مقدار به صفر کاهش پیدا کند تا زمانیکه این مقدار به صفر نرسد گره در نظر میگیرد که رسانه اشغال است.به این کار حس کردن مجازی رسانه گفته میشود.
حس کردن رسانه به صورت فیزیکی در لایه فیزیکی و با گوش دادن به شبکه برای ارسال احتمالی همسایگان صورت میگیرد.زمان گوش دادن به شبکه تصادفی میباشد و در پنجره رقابت صورت میگیردتا از برخورد وگرسنگی گره ها خودداری کند.رسانه تنها در حالی خالی در نظر گرفته میشودکه هم گوش دادن فیزیکی و هم مجازی، رسانه را آزاد اعلام کنند.
تمامی فرستندگان کار گوش دادن به رسانه و بررسی آزاد بودن آن را انجام میدهند.اگر فرستنده نتواند که رسانه را در اختیار بگیردبه خواب می رود و هنگامی که گیرنده آزاد و در حال گوش دادن است دوباره بیدار میشود.بسته های پخشی بدون RTS/CTS فرستاده میشوند.بسته هایی که دارای مقصد یکتا هستند باید یک رشته RTS/CTS/DATA/ACK را بین فرستنده و گیرنده طی کنند.پس از رد وبدل موفقیت آمیز RTS,CTS دو گره زمان عادی خواب خود را برای انتقال داده استفاده میکنند.
باداشتن دوره فعالیت کوتاه و روش های رقابتی در بین هر دوره گوش دادن، S-MAC قادر است که به خوبی مسئله اتلاف انرژی در اثر گوش دادن بیهوده و برخوردها را کاهش دهد. در قسمت بعدی ، جزئیات خواب دوره ای گره ها و هماهنگی آن را بررسی میکنیم.
۳-۵-۲ به خواب رفتن زمانبندی شده
به خواب رفتن دوره ای اتلاف انرژی در اثر گوش دادن بیهوده را بسیار کاهش میدهد.درS-MAC گره ها خوابیدن خود را هماهنگ میکنند به جای اینکه تنها بصورت تصادفی به خواب بروند.در این قسمت به بررسی جزئیات به خواب رفتن گره ها میپردازیم.در ادامه به توضیح روشی برای کاهش تاخیر به دلیل خوابیدن گره ها خواهیم پرداخت.
انتخاب و نگهداری زمانبندی ها
پیش از آنکه هر گره ای خواب و بیداری دوره ای خود را آغاز کند ، لازم است که ابتدا زمانبندی ای را انتخاب و آن را با همسایگانش رد و بدل کند.هر گره دارای یک جدول زمانبندی می باشدکه در آن زمانبندی کار همه گره های همسایه ای که میشناسد را در آن نگهداری میکند.گامهای زیر برای انتخاب و ساخت جدول زمانبندی برداشته میشود.
یک گره برای مدت زمان ثابتی گوش میدهد ، که طول آن حداقل به اندازه دوره همزمان سازی میباشد.درصورتیکه هیچ زمانبندی را از گره های اطراف نشنود، بلافاصله زمانبندی خود را انتخاب کرده و آن را دنبال میکند.در این ضمن گره برنامه خود را با فرستادن یک بستهSync به همسایگان خود اعلام میکندکه فرستادن این بسته SYNC یک روند عادی رقابت را طی میکند.این روش دسترسی تصادفی شانس برخورد بسته ها را کاهش میدهد.
در صورتیکه یک گره پیش از انتخاب و فرستادن برنامه خود برنامه ای را از گره های همسایه دریافت کند ، برنامه اعلام شده توسط آن گره را به عنوان برنامه خود انتخاب میکند.سپس این گره تلاش میکند که برنامه خود را در نوبت بعدی برای بقیه بفرستد.
در صورتیکه گره ای پس از اینکه زمانبندی خود را انتخاب و اعلام کرده است ، زمانبندی دیگری را دریافت کند دوحالت رخ میدهد:درصورتیکه همسایه دیگری نداشتهباشد زمانبندی فعلی خود را دور انداخته و زمانبندی دریافتی را انتخاب میکند.درصورتیکه برنامه فعلی را نیز از همسایه ای دریافت کرده است باید در زمان گوش دادن هردو همسایه ها بیدار شده و به شبکه گوش فرا دهد.
برای درک بهتر این الگوریتم شبکه ای را در نظر بگیرید که در آن تمامی گره ها میتوانند پیامهای یکدیگر را دریافت کنند.گره ای که زودتر از بقیه شروع بکار کند باید زمانبندی را زودتر از سایرین انتخاب کند و ارسال زمانبندی آن بقیه گره ها را با آن هماهنگ میکند.دزصورتیکه یک یا چند گره همزمان شروع به کار کنند همگی گوش دادن اولیه را با یکدیگر به اتمام رسانده و بصورت مستقل همزمان برنامه یکسانی را انتخاب میکنند.فرقی نمیکند که کدام گره در رقابت موفق شده وSYNC را میفرستد زیرا در نهایت همین پیام همه گره های دیگر را همزمان میکند.
ولی درصورتیکه دو گره قادر نباشند که پیام همدیگر را بشنوند ممکن است که زمانبندی متفاوتی را انتخاب کنند. در این صورت گره هایی که در دامنه هر دو زمانبندی هستندباید هر دو زمانبندی را قبول کنند.برای مثال گره های A,B باید در زمان گوش دادن هر دو زمانبندی بیدارشوند.(شکل۳-۲) به این ترتیب در صورتیکه گره ای قصد فرستادن یک بسته پخشی را داشته باشد ، تنها لازم است که این کار را یکبار انجام دهد.ضرر این روش این است گره های مرزی وقت کمتری برای خواب دارند ومصرف انرژی بالاتری دارند.
راه دیگر آن است که گره مرزی تنها یکی از دو زمانبندی را دنبال کند و چون زمان بیداری گره دیگر را میداند میتواند با او ارتباط برقرار کند ولی برای بسته های پخشی لازم است که بسته را دوبار ارسال کند.مزیت این روش این است که گره های مرزی نیز دارای همان الگوی خواب و بیداری مانند سایر گره ها میباشند.
انتظار میرود که زمانبندی های چندگانه کمی در شبکه بوجود بیایند زیرا هرگره تلاش میکند که زمانبندی که به او داده شده است را دنبال کند.ولی ممکن است که یک گره نتواند گره همسایه خودرا به برخی از دلایل پیدا کند.بستهSYNC همسایه ممکن است که به دلیل برخورد یا اختلال خراب شده باشد.گره همسایه ممکن استبه دلیل اشغال بودن رسانه بستهSYNC را خیلی دیر فرستاده باشد.در صورتیکه یک گره در مرز دو زمانبندی باشد ممکن است یکی از آنها را دریافت نکنددر صورتیکه زمانبندی دو دسته باهم همپوشانی نداشته باشد.
برای آنکه دو گره همسایه برای مدت نامحدودی از یکدیگر بی خبر باقی نمانند (زمانی که دارای دو زمانبندی کاملا مجزا هستند.)،S-MAC از روش کشف دوره ای همسایه ها استفاده میکندکه در آن یک گره هر از چند گاهی برای کل دوره همزمان سازی بیدار می ماندو به رسانه گوش فرا میدهد.
بسامد کشف دوره ای همسایه ها بستگی به تعداد همسایه های گره دارد، در صورتیکه گره ای دارای همسایه ای نباشد با بسامد بیشتری نسبت به حالتی که دارای همسایه میباشد به کشف همسایگان میپردازد.از آنجاکه مصرف انرژی در این حالت زیاد میباشد ، اینکار نباید زیاد انجام شود.در پیاده سازیS-MAC طول دوره همزمان سازی ۱۰ثانیه میباشدوهر گره در صورتیکه حداقل دارای یک همسایه باشد اینکار را هردو دقیقه انجام میدهد.
حفظ زمانبندی
از آنجا که گره های همسایه برنامه زمانبندی خود راهماهنگ میکنند،خطای راندگی ساعت گره ها ممکن است که همزمانی گره ها را برهم زند.از دو روش برای مقاوم سازی همزمانی گره ها در برابر چنین خطایی استفاده میشود.نخست آنکه تمامی زمان های ارسال شده نسبی هستند ونه مطلق. دوم آنکه، دوره گوش دادن به صورت مشخصی از نرخ خطای راندگی ساعتها بیشتر است. برای مثال دوره گوش دادن گره۰٫۵ ثانیه است که ده برابر بیشتر از خطای راندگی در حالت عادی است.در مقایسه با روش های TDMA که دارای پنجره های بسیار کوچکی هستند،S-MAC به همزمان سازی بسیار سست تری نیاز دارد.
با آنکه طولانی بودن دوره گوش دادن گره ها نسبت به خطای راندگی تا حد زیادی مشکل همزمان سازی را حل میکند ولی گره ها نیاز دارند هراز چند گاهی زمانبندی خود را برای دیگران ارسال کنند تا از خطای راندگی در دراز مدت جلوگیری شود.دوره همزمان سازی میتواند به نسبت بلند باشد.اندازه گیری های انجام شده برروی یک شبکه حسگر آزمایشی نشان میدهد که خطای راندگی بین دو گره بیشتر از ۰٫۲میلی ثانیه نمیشود.
راهنمای ﻧﮕﺎرش ﻣﻘﺎﻟﻪ ﭘﮋوهشی درباره : تحقیق پیرامون زمان بندی به خواب رفتن گره ها درشبکه های ...