معرفی شبکههای بیسیم حسگر WSN
معرفی شبکههای بیسیم حسگر WSN پیشرفتهای اخیر در زمینه الکترونیک و مخابرات بیسیم توانایی طراحی و ساخت حسگرهایی را با توان مصرفی پایین، اندازه کوچک، قیمت مناسب و کاربریهای گوناگون داده است. این حسگرهای کوچک که توانایی انجام اعمالی چون دریافت اطلاعات مختلف محیطی (بر اساس نوع حسگر، پردازش و ارسال آن اطلاعات را دارند، موجب پیدایش ایدهای برای ایجاد و گسترش شبکههای موسوم به شبکههای بیسیم حسگر WSN شدهاند. یک شبکه حسگر متشکل از تعداد زیادی گرههای حسگری است که در یک محیط به طور گسترده پخش شده و به جمعآوری اطلاعات از محیط میپردازند.
معرفی شبکههای بیسیم حسگر WSN
معرفی شبکههای بیسیم حسگر WSN پیشرفتهای اخیر در زمینه الکترونیک و مخابرات بیسیم توانایی طراحی و ساخت حسگرهایی را با توان مصرفی پایین، اندازه کوچک، قیمت مناسب و کاربریهای گوناگون داده است. این حسگرهای کوچک که توانایی انجام اعمالی چون دریافت اطلاعات مختلف محیطی (بر اساس نوع حسگر، پردازش و ارسال آن اطلاعات را دارند، موجب پیدایش ایدهای برای ایجاد و گسترش شبکههای موسوم به شبکههای بیسیم حسگر WSN شدهاند. یک شبکه حسگر متشکل از تعداد زیادی گرههای حسگری است که در یک محیط به طور گسترده پخش شده و به جمعآوری اطلاعات از محیط میپردازند. لزوماً مکان قرار گرفتن گرههای حسگری، از قبلتعیینشده و مشخص نیست. چنین خصوصیتی این امکان را فراهم میآورد که بتوانیم آنها را در مکانهای خطرناک و یا غیرقابل دسترس رها کنیم از طرف دیگر این بدان معنی است که پروتکلها و الگوریتمهای شبکههای حسگری باید دارای تواناییهای خودساماندهی باشند. دیگر خصوصیتهای منحصر به فرد شبکههای حسگری، توانایی همکاری و هماهنگی بین گرههای حسگری است. هر گره حسگر روی برد خود دارای یک پردازشگر است و به جای فرستادن تمامی اطلاعات خام به مرکز یا به گرهای که مسئول پردازش و نتیجهگیری اطلاعات است، ابتدا خود یک سری پردازشهای اولیه و ساده را روی اطلاعاتی که به دست آورده است، انجام میدهد و سپس دادههای نیمه پردازش شده را ارسال میکند. با اینکه هر حسگر به تنهایی توانایی ناچیزی دارد، ترکیب صدها حسگر کوچک امکانات جدیدی را عرضه میکند. در واقع قدرت شبکههای بیسیم حسگر در توانایی بهکارگیری تعداد زیادی گره کوچک است که خود قادرند سرهم و سازماندهی شوند و در موارد متعددی چون مسیریابی همزمان، نظارت بر شرایط محیطی، نظارت بر سلامت ساختارها یا تجهیزات یک سیستم به کار گرفته شوند. گستره کاربری شبکههای بیسیم حسگر بسیار وسیع بوده و از کاربردهای کشاورزی، پزشکی و صنعتی تا کاربردهای نظامی را شامل میشود. به عنوان مثال یکی از متداولترین کاربردهای این تکنولوژی، نظارت بر یک محیط دور از دسترس است. مثلاً نشتی یک کارخانه شیمیایی در محیط وسیع کارخانه میتواند توسط صدها حسگر که به طور خودکار یک شبکه بیسیم را تشکیل میدهند، نظارت شده و در هنگام بروز نشت شیمیایی به سرعت به مرکز اطلاع داده شود. در این سیستمها بر خلاف سیستمهای سیمی قدیمی، از یک سو هزینههای پیکربندی و آرایش شبکه کاسته میشود از سوی دیگر به جای نصب هزاران متر سیم فقط باید دستگاههای کوچکی را که تقریباً به اندازه یک سکه هستند شبکه حسگر بیسیم (Wireless Sensor Network/ WSN) به یک شبکه بی سیم از حسگرهای خودراهبر گفته میشود که با فاصله پخش شده اند و برای اندازه گیری گروهی برخی از کمیتهای فیزیکی یا شرایط محیطی مانند دما، صدا، لرزش، فشار، حرکت یا آلاینده ها، در مکانهای مختلف یک محدوده کاربرد دارد. شبکههای حسگر با انگیزه استفاده در کاربردهای نظامی مانند نظارت بر میدان جنگ، توسعه پیدا کرد. اما امروزه شبکههای حسگر بی سیم در صنعت و بسیاری از مقاصد غیر نظامی استفاده میشوند، از جمله نظارت و کنترل فرآیندهای صنعتی، نظارت بر سلامت دستگاهها، نظارت بر محیط و یا خانه، کاربردهای مراقبت از سلامتی، خانههای هوشمند و کنترل ترافیک.
علاوه بر یک یا چند سنسور، هر گره از شبکه معمولاً مجهز به یک فرستنده و گیرنده رادیویی (یا هر وسیله مخابراتی بی سیم دیگر)، یک میکروکنترلر کوچک، و یک منبع انرژی (معمولا یک باتری) است. اندازه یک گره سنسوری بسته به اندازه بسته بندی آن تغییر کرده و تا یک دانه شن قابل کوچک سازی است. که قطعات این شنریزه در ابعاد میکروسکوپی هنوز باید ساخته شود. به طور مشابه قیمت هر گره حسگر میتواند بین چند صد دلار تا چند سنت، بسته به اندازه و پیچیدگی مورد نیاز یک گره متفاوت باشد. محدودیتهای قیمت و اندازه در گرههای حسگر منجر به محدودیت در منابعی مانند انرژی، حافظه، سرعت پردازش و پهنای باند در آنها میشود.
یک شبکه سنسور معمولاً تشکیل یک شبکههای بیسیم اقتضایی (ad-hoc) را می دهد، به این معنی که هر گره از الگوریتم مسیریابی multi-hop استفاده میکند. (تعداد زیادی گره یک بسته اطلاعاتی را جلو برده و به ایستگاه مرکزی می رساند).
در حال حاضر شبکههای بی سیم حسگر یکی از موضوعات فعال تحقیقاتی در علوم کامپیوتر و ارتباطات است که هر ساله تعداد بیشماری کارگاه و کنفرانس در این زمینه انجام میشود.
كنترل ازدحام براي جريان هاي ويديو در شبكه هاي حسگر بي سيم
انتقال جريان هاي ويديويي در شبكه هاي حسگر، چالش هاي زيادي به همراه دارد. يكي از اين چالش ها احتمال زياد وقوع ازدحام است كه به دليل بالا بودن نرخ و خاصيت انفجاري جريان هاي ويديويي و همچنين محدوديت منابع در شبكه هاي حسگر پديد مي آيد. در اين مقاله، يك روش كنترل ازدحام جديد براي اين نوع شبكه ها معرفي شده است. اين روش هم محدوديت هاي موجود در شبكه هاي حسگر مانند محدوديت انرژي و حجم بافر كم گره ها و هم محدوديت هاي كاربردهاي ويديويي مانند حساسيت به تاخير و تغييرات آن را در نظر گرفته است . روش پيشنهادي از تفاوت هايي كه ميان اولويت بسته هاي ويديويي وجود دارد، براي كنترل ازدحام استفاده مي كند. نتايج ارزيابي كه با شبيه ساز NS2 وابزار Evalvid انجام شده، نشان مي دهد كه استفاده از اين روش علاوه بر بالا بردن كيفيت ويديوي دريافتي، انرژي كمتري از گره ها را نيز مصرف مي كند
شبکه هاي سنسوري بي سيم
پيشرفتهايي که امروزه در زمينه ارتباطات بي سيم ، سخت افزار و الکترونيک انجام گرفته ، بسيار چشم گير می باشد. اين موضوع به همراه تمايل روزافزون به محصولات کم قيمت با کارايي بالا ، همگي دست به دست هم داده اند تا زمينه هاي لازم براي پيشترفت شبکه هاي سنسوري بي سيم را فراهم کنند. اين شبکه ها مجموعه اي از حسگر ها هستند که در يک محيط نزديک به هم و يا درون منطقه اي خاص قرار گرفته اند. اين حسگرها اجزاي کوچکي هستند که نيازهاي اطلاعاتي ما را با دريافت ، پردازش و انتقال آن ها برآورده مي سازند. و برای اندازه گیری گروهی برخی از کمیت های فیزیکی یا شرایط محیطی مانند دما، صدا، لرزش، فشار، حرکت یا آلاینده ها، در مکانهای مختلف یک محدوده کاربرد دارد. شبکه های حسگر با انگیزه استفاده در کاربردهای نظامی مانند نظارت بر میدان جنگ، توسعه پیدا کرد. اما امروزه شبکه های حسگر بی سیم در صنعت و بسیاری از مقاصد غیر نظامی استفاده میشوند، از جمله نظارت و کنترل فرآیندهای صنعتی، نظارت بر سلامت دستگاهها، نظارت بر محیط و یا خانه، کاربردهای مراقبت از سلامتی، خانههای هوشمند و کنترل ترافیک.
علاوه بر یک یا چند سنسور، هر گره از شبکه معمولا مجهز به یک فرستنده و گیرنده رادیویی (یا هر وسیله مخابراتی بی سیم دیگر)، یک میکروکنترلر کوچک، و یک منبع انرژی (معمولا یک باتری) است. اندازه یک گره سنسوری بسته به اندازه بسته بندی آن تغییر کرده و تا یک دانه شن قابل کوچک سازی است محدودیت های قیمت و اندازه در گره های حسگر منجر به محدودیت در منابعی مانند انرژی، حافظه، سرعت پردازش و پهنای باند در آنها میشود.
یک شبکه سنسور معمولا تشکیل یک شبکه (ad-hoc) را می دهد، به این معنی که هر گره از الگوریتم مسیریابی multi-hop استفاده میکند. (تعداد زیادی گره یک بسته اطلاعاتی را جلو برده و به ایستگاه مرکزی می رساند).
ساختار ارتباطي شبکههاي حسگر
گرههاي حسگر در يک منطقه پراکنده ميشوند. همانطور كه قبلاً هم اشاره كرديم گرههاي حسگري داراي توانايي خودساماندهي هستند. هر کدام از اين گرههاي پخششده داراي توانايي جمعکردن اطلاعات و ارسال آنها به پايانهاي موسوم به sink است. اين اطلاعات از يک مسير چند مرحلهاي که زيرساخت مشخصي ندارد به سينک فرستاده ميشوند و سينک ميتواند توسط لينک ماهواره يا اينترنت با گره task manager ارتباط برقرار کند.
اين سنسورها مزاياي بسيار زيادي نسبت به سنسورهاي عادي دارند. در بسياري از موارد ، به اين سنسورها با ديد گره هاي يک گراف و به خطوط ارتباطي ميان اين گره ها به چشم يالهاي گراف نگاه مي شود و در بسياري از تحليل ها و الگوريتم هاي ارايه شده از قوانين حاکم بر گرافها استفاده مي شود. با توجه بدان چه گفته شد ، شباهت هاي بسيار زيادي ميان اين نوع شبکه ها و شبکه هاي مرسوم مي توان يافت ، ولي با ذکر چندين نمونه تفاوتهاي اين دو نوع را با هم بيان مي کنيم :
• سنسورها و گره هاي اين شبکه در معرض خرابي و از کار افتادگي با ضريب بالا هستند.
• همبندي اين شبکه ها مي تواند به تناوب تغيير کند.
• در اين شبکه ها از ارتباطات همه پخشیbroadcasاستفاده مي شود ولي در شبکه هاي مرسوم عموما از ارتباطات نقطه به نقطه استفاده مي شود.
• منابع انرژي اين گره ها محدود است.
• در يک شبکه ممکن است هيچ شناسه جامعي براي گره ها وجود نداشته باشد.
اين گونه از شبکه ها علي رغم شباهت هايي که با شبکه هاي بي سيم ad-hoc دارند . تفاوتهاي فراواني نيز دارند. اين اختلافات را در جدول 1 آورده ايم.
جدول 1 : مقايسه شبکه های بی سيم و سنسوری
شبکه هاي بي سيم شبکه هاي بي سيم سنسوري
هر گره داراي يک شناسه عمومي مي باشد گره ها ممکن است شناسه عمومي نداشته باشند
عموما از روش Point-to-Point براي ارتباطات استفاده مي کنند عموما از روش broadcast براي ارتباطات استفاده مي کنند
تعداد گره هاي آنها عموما کم است تعداد گره هاي آنها عموما زياد است
از لحاظ منابع محاسباتي ، انرژي و حافظه در محدوديت نيستند از لحاظ منابع محاسباتي ، انرژي و حافظه در محدوديت هستند
همبندي گره ها در شبکه بصورت ديناميک است همبندي گره ها در شبکه بصورت متناوب تغيير مي کند
ارتباطات بصورت Bluetoth ، 802.11 و Ultrawideband است ارتباطات بصورت AM/FM است
پروتکلهاي ارتباطي TCP و UDP است روشهايFlooding و Gossiping مد نظر است
اين دسته از شبکه ها کاربردهاي فراواني دارند که به اختصار عبارتند از :
• کاربردهاي شهري و صنعتي
o ترافيک
o تشخيص هويت
o امنيت منازل و ساير اماکن
• کاربردهاي نظامي
o طراحيهاي نظامي
o کنترل مسير حرکت ارتش
o تشخيص مينهاي زير زميني
• کاربردهاي پزشکي
o بررسي علايم حياتي بيمار
در اين شبکه ها همواره امکان از کار افتادگي حسگرها بنابر عوامل متعدد همچون کمبود انرژي ، آسيب فيزيکي و ... وجود دارد ، ولي شبکه بايد توانايي ادامه فعاليت خود را داشته باشد . قابليت اطمينان يک حسگر با نرخ وقوع خطا با ميانگين و توزيع پواسن به صورت زير است :
بعد از اين آشنايي کوتاه به تحمل پذيری خطا در اين شبکه ها می پردازيم :
بررسي تحمل پذيري خطا در شبکه هاي بي سيم سنسوري
در زير ، مسئله تحمل پذيری خطای ناهمگون را به کمکی مثالی توضيح می دهيم. برای شروع ، با يک مثال شروع می کنيم .
يک شبکه سنسوري با مشخصات زير در نطر بگيريد که هدف آن تشخيص هويت است. براي نمونه فرض کنيد در شرکتي شش نفر کار مي کنند. اين سيستم از دو دسته سنسور تشکيل شده است :
• حسگرهايي که ارتفاع را تشخيص مي دهندو مجموعه اي سري از حسگرهاي نوري هستند
• حسگرهايي که صدا را تشخيص مي دهند که همان ميکروفون است
شکل زير نشان دهنده مشخصات شناسايي شده اين شش نفر را نشان مي دهد. بسادگي مشخص مي شود که سيستم توانايي تشخيص دو نفر که در دو مربع متفاوت قرار دارند را دارد. اگر تمامی سنسور ها درست کارکنند هر فرد را در يک مربع مي توان قرار داد. در اکثريت حالات حتي اگر يکي از حسگرهاي ارتفاع و يا صدا از کار بيفتد ، سيستم قادر به تشخيص افراد است. ولي حالاتي هم وجود دارد که در صورت ايجاد خطا ، تشخيص امکان پذير نخواهد بود.
شکل1 - مشخصات شناسايي شده اعضا
براي مثال افراد BوE را در نظر بگيريد که هر کدام داراي يک ارتفاع هستند. در اين حالت بدون داشتن صدا تشخيص اين دو امکانپذير نخواهد بود. اگر يکي از افراد B يا Eرا از سيستم حذف کنيم ، امکان تشخيص با يک حسگر هم مهيا خواهد بود.طراحی چنين سيستم هايي با تحمل پذيری خطای ناهمگون مقاومت سيستم را در برابر انواع مشخصی از حسگر ها بالا خواهد برد.
در اين قسمت هدف ما بررسي تحمل پذيري خطا در چهار سطح انتزاعي شبکه است که از بخش سخت افزار آغاز و به ميان افزار و برنامه هاي اجرايي ختم مي شود . در ابتدا به بحث تحمل پذيري خطا درون اجزای مختلف يک گره که شامل موارد زير است مي پردازيم :
• قسمت محاسباتي
• قسمت ارتباطات
• قسمت ذخيره سازي
• منبع تغذيه
• سنسورها
• فعال کننده ها و محرکها
در مرحله بعدي يک حسگر را به عنوان قسمتي و يا عنصري از يک شبکه مدنظر قرار داده و تحمل پذيري خطا را در آن بررسي مي کنيم و در آخر تحمل پذيري حسگر رادر شبکه توزيعی توکار بررسي مي کنيم. دليل اين امر آن است که در اين شبکه ها به دليل وجود محدوديتهاي بسيار زياد منابع ، همواره امکان ايجاد خطا در هر سطح شبکه وجود دارد . در مباحث بررسي تحمل پذيري خطا به سه مورد توجه مي شود :
• مدل سازي خطا
• تشخيص خطا و برطرف کردن آن
• ايجاد مقاومت در سيستم
تحمل پذيري خطا ی سنتي
تحمل پذيري خطا از سالها قبل وارد مباحث کامپيوتري و طراحيهاي سيستمهاي ديجيتال شده است و همواره روش هايي براي بالا بردن ميزان تحمل پذيري خطا در اين سيستمها ارائه شده است. امروزه با ظهور و پيشرفت VLSI ، اين مباحث در تمام سطوح انتزاعي گسترده شده اند. اين سطوح عبارتند از :
• سطح مداري
• سطح منطقي
• سطح رجيستر
• سطح برنامه
• سطح سيستم
بنابراين براي توليد يک سيستم تحمل پذيرخطا بايستي دقت خود را بر سه مرحله متمرکز کنيم :
• طراحي
• توليد
• استفاده
در ابتدا توضيحي مختصر در مورد مباني اوليه تحمل پذيري خطا بيان مي کنيم. اشکال[1] در حقيقت ظهور آثار يک خطا در يک برنامه و يا سيستم است.خطا [2]در حقيقت حالتي نادرست در وضعيت يک سخت افزار يا برنامه است. براي بررسي يک خطا بايستي خواص آنرا در نظر بگيريم.
زماني که ما در هر يک از سطوح انتزاعي قرار داريم ، نوع خطاهاي ما متفاوت است .براي مثال زماني که در سطح گيت هستيم ، خطاهاي زير را مي توانيم در نظر بگيريم :
• Stuck At
• Bridging
• Open Circuit
• Short Circuit
نکته جالب توجه اين است که در اکثر مدل ها ما سعي در مواجهه با خطاهاي تک بيتي يا تکي داريم. حال براي ايجاد يک سيستم تحمل پذيرخطا و قابل اطمينان اجراي مراحل زير لازم است :
• تشخيص خطا
• مکان يابي خطا
• محدود کردن خطا
• رفع خطا
تا اينجا مقدماتي را در مورد مباحث تحمل پذيري خطا بيان نموديم . براي کسب اطلاعات بيشتر در اين زمينه مي توان به کتب و مقالات متعدد در اين زمينه مراجعه نمود .
بررسی تحمل پذيري خطا در لايه های مختلف
بررسي تحمل پذيري خطا در لايه فيزيکي ارتباط
لايه فيزيکي وظيفه برقراري ارتباط در يک رسانه را بر عهده دارد. در حقيقت وظيفه برقراري ارتباط بين گره ها را بر عهده دارد .وظايف معمول اين لايه مدولاسيون و ديکدينگ و انکودينگ است. از قديم از يک ساختار کاملا سخت افزاري استفاده می شد، زيرا هزينه ها را کاهش داده وانرژی را بيشينه می کند. راديوی نرم افزاری ، وسيله ارتباطی است که پياده سازی قسمت هايي از لايه فيزيکی ، به وسيله نرم افزار ، انجام می شود.بدين وسيله وفق پذيری به تغييرات کانال را خواهيم داشت. با توجه به بررسيهاي انجام شده مشخص شده است که تکنيک های لايه پيوند وفق پذير، کارايی شبکه های بي سيم را افزايش چشم گير خواهد داد. بنابر اين در يک طراحي خوب از بخشهاي نرم افزاري هم استفاده مي شود. طراحيهاي دوگانه براي لايه فيزيکي ،تحمل پذيري خطا را افزايش مي دهند. براي مثال اگر برخي از اجزاي نرم افزاري نتوانند فعاليت خود را انجام دهند از واحدهاي سخت افزاري براي اين عمل استفاده مي کنيم .
بررسي تحمل پذيري خطا در سطح سخت افزار
بررسي سخت افزار را در سطوح مختلف مي توان بررسی کرد . گروهی واحدهاي محاسباتي ، پردازشي و منابع حافظه و سيستم تامين انرژي خواهد بود. با توجه به تکنولوژي امروزه ، تمام اين واحدها همگي از قابليت اطمينان بالايي برخوردار هستند. براي مثال پردازنده هاي عادي موجود در بازار و يا کنترلرو پردازنده هاي خاص منظوره مانند DSP ، همگي از درجه بالاي قابليت اطمينان برخوردارند. ولي با ارائه سه دليل مي توان نشان داد که علي رغم قابليت اطمينان بالا ، نمي توان بسادگي از کنار اين قسمتها گذشت .
اول آنکه به دليل بايستي گره ها از لحاظ هزينه در پايينترين سطح باشند، نمي توان از قطعات با کارايي و کيفيت عالي استفاده نمود. قطعات عادي نيز قابليت اطمينان کمتري دارند.
دوم آنکه اين سيستمها اصولا براي محيطهاي خشن و نامناسب کاربرد دارند.
سوم آنکه کمي منابع انرژي امکان استفاده از هر روش و حتي محاسبات زياد را از ما مي گيرد.
بنابراين در سيستمهاي پردازشي ، ما انتظار داريم در صورت وقوع خطا با روشهايي مانند کدينگ آنها را شناسايي کنيم که اين يک افزونگي اطلاعاتي است . به اين روش تصحيح خودکار مي گويند.علاوه اين شايد بتوان در مواردي خاص از روش افزونگي سخت افزاري براي ايجاد تحمل پذيري خطا در سيستم استفاده نمود . در اين روش علاوه بر قسمت های اصلي چندين يدکي نيز براي سيستم در نظر مي گيريم . در اين روش تا زماني که ما يدکي در سيستم داريم، مي توانيم در هنگام بروز خطا ، قسمت خراب را جايگزين کنيم . در حقيقت اين روش يک افزونگي ترکيبي است . البته بايد توجه داشت که سربارهزينه عموما سبب مي شود از اين روش استفاده نکنيم.
در مواجهه با حافظه ها چه حافظه هاي فرار و چه غير فرار ، اين گونه نشان داده شده است که به دليل قابليت اطمينان بالا ، استفاده ساده از آنها مشکلي را عموما براي سيستم ايجاد نمي کند و بندرت خطا در اين قسمت رخ مي دهد.
جزء ديگري که نياز به بحث دارد سيستم تامين انرژي است . يکي از روشهای سنتي استفاده از باطري است که بسيار معمول است . از قديم ، منبع انرژی، استفاده از باطريهاي قابل شارژ است و براي افزايش قابليت اطمينان از يک باطري ذخيره به عنوان افزونگي سخت افزاري تنها روش ممکن است. البته امروزه از سلولهاي سوختي و سيستمهاي آن نيز استفاده مي شود.اگرچه اين سيستمها بسيار قابل اطمينان بنظر مي رسند ولي اين روشها آنچنان کارايي از خود نشان نداده اند.
دسته ای ديگر امواج راديويي هستند. سيستم راديويي به محيط خارج خود بسيار وابسته است .راه استاندارد مرسوم براي ايجاد قابليت اطمينان براي اين سيستم ، بازارسال و تصحيح خطا است. هردوي اينها نمونه اي از افزونگي هستند.، اولي افزونگي زماني و دومي افزونگي اطلاعات .در برخي موارد در يک گره چندين سيستم راديويي قرار داده شده است که هدف اصلي آنها کاهش مصرف است ولي بصورت خودکار قابليت اطمينان سيستم را بالا مي برند.
دسته بعدی سنسورها و محرکها هستند.اين دو جزء بيشتر از همه در معرض خرابي قرار دارند . در مورد سنسورها سه دسته عمده خرابيها را مي توان نام برد :
• خطا در تنظيمات و دقت تشخيص
• نويزپذيري زياد
• از کار افتادگي کامل به هر دليل
که براي دو مورد اول از افزونگي زماني و براي مورد آخر از افزونگي سخت افزاري براي ايجاد تحمل پذيري خطا مي توان استفاده کرد. تا کنون جز افزونگي سخت افزاري مدلي براي افزايش و يا ايجاد تحمل پذيري خطا در محرکها تصور نشده است.
بررسي تحمل پذيري خطا در سطح نرم افزار
نرم افزار سيستم از دو قسمت تشکيل شده است ، يکي سيستم عامل و ديگري برنامه هاي کاربردي . براي ايجاد تحمل پذيري خطا در نرم افزار روشهاي مختلفي وجود دارند که مرسوم ترين آنها روش چند گونه نويسي[3] است. چند نمونه از يک برنا مه را به اميد داشتن خطا های يکسان پياده سازی می کنيم. مهمترين قسمتي که از تحمل پذيري خطا در نرم افزار سود مي برد ، قسمت مرتبط با ارسال و دريافت است. مثلا می توان پيغام ها را از مسير های مختلف در شبکه های چند پرشی ارسال کرد.از سوي ديگر يکي از مهمترين قسمتهاي نرم افزار قسمتي است که تنظيم دقت سنسورها و محرکها را بر عهده دارد که امروزه روشهاي بسياري براي انجام اين منظور ارائه شده است . يکي ديگر ازاجزاي مهم نرم افزارآن است که وظيفه انجام پردازش توزيع شده الگوريتمهاي شبکه اي را بر عهده دارد. براي مثال در زمينه کم کردن مصرف انرژي با توجه به محدوديتهاي عملياتي حسگرها ، پروتکلهاي بسياري در اين راستا طراحي و ارائه شده است . در تمام پروتکلهاي ارائه شده، ايجاد يک موازنه ميان کارايي و پيچيدگي همواره امري مهم است .
بررسي تحمل پذيري خطا در سطح ميان افزار
زماني که در سطح ميان افزارها به بحث مي پردازيم ، تاکيد ما بر روي مسائلي همچون کنترل فيلتر کردن داده ها ، کنترل تراکم داده ها و ترکيب حسگرها با هم است. اين بدان معناست که مثلا مي توان در يک گره از چند نوع حسگر استفاده نمود و با نوشتن يک ميان افزار مناسب نتايج خوانده شده از اين حسگرها را با هم مقايسه و ترکيب نموده و نتيجه را استخراج نمود. تنها مسئله اين است که در مورد تعداد حسگرها و عملکرد سيستم عامل بايستي بحث نمود و به سادگي نمي توان از آن گذشت. يکي از ساده ترين و رايجترين سيستم عاملها Tiny OS است . يکي از مزاياي اين سيستم عامل حجم کد کم و ماژوله بودن آن است و نيازهاي اساسي شبکه را بسادگي ارضا مي کند.
با توجه به آنچه تا کنون بيان نموديم ، در طراحي يک ميان افزار مناسب با در نظر داشتن نيازهاي طبيعي شبکه و نيز برنامه هاي اجرايي بايستي به نکات زير توجه کنيم :
استفاده بهينه از انرژي و منابع موجود که توضيح آن بدليل وضوح مطلب ضروري نمي باشد
داشتن قابليت تطابق با تغييرات در اندازه شبکه ، بدون نياز به انجام تغييرات اساس در ساختار سرويس هاي ارايه شده و نيز در ميزان کارايي آنها
يک ميان افزار مناسب بايستي توانايي تشخيص خطا در گره را داشته باشد و از آنجايي که گره هاي ما همواره در حال تغيير چه از جهت مکان و چه از جهت محيط هستند ، توانايي هماهنگ شدن با اين تغييرات را بايستي دارا باشد تا بتواند خود و در نتيجه فعاليتهاي گره را با محيط و شبکه هماهنگ سازد.
يکي از مهمترين خواص شبکه هاي سنسوري Real-Time بودن آنهاست که بايستي در خواص ميان افزار لحاظ شود.
يکي از توانايي هاي يک ميان افزار مناسب در اين شبکه ها ، توانايي تعامل با منابع متغير مانند انرژي و پهناي باند مي باشد.
يکي ديگر از نيازمنديهاي يک ميان افزار خوب بر خورداري از خاصيت QOS مي باشد. اين سرويس داراي تعاريف متعددي مي باشد ولي بطور کلي داراي دو جنبه است . اولي از ديد شبکه و ديگري از ديد برنامه . ولي روشهاي استفاده شده در شبکه هاي مرسوم براي شبکه اي با شرايط متغير و منابع محدود کارايي لازم را ندارد ، بنابراين ميان افزار ما بايستي با در نظر گرفتن شرايط هوشمند تر عمل نمايد.
به دليل نحوه فعاليت و شرايط اين شبکه ها عموما سربار اطلاعات انتقالي از حجم محاسبات بيشتر است و از سمت ديگر به دليل ايجاد تراکم داده اي گاها در نقاط خاص از شبکه ساختار انتقال بر اساس آدرس[4] را به ساختار مبتني بر داده[5] تغيير داده است . در روشهاي مبتني بر آدرس همواره کوتاهترين مسير انتخاب و داده ارسال مي شود ولي در مدل دوم که سربار انتقال زياد است محتوا بررسي مي شود و در صورت لزوم بسته از سيستم حذف مي شود .
قابليت ايجاد امنيت به دليل وجود کاربردهاي مهم ، بسيار مهم مي نمايد و يک ميان افزار اين ابزارها را بايستي در ساختارهاي خود آماده داشته باشد. يکي از اين مشکلات پديده DOS [6]است .
بررسي تحمل پذيري خطا در سطح برنامه
در نهايت يکي از ساده ترين راه هاي ايجاد تحمل پذيري خطا ايجاد افزونگي نرم افزاري مي باشد که اين بدان معناست که با افزايش دقت برنامه ها و ايجاد چند نسخه متفاوت از آن،مي توان به گونه اي عمل کرد که هم خطا را تشخيص داد و هم گاها منبع آنرا نيز مشخص نمود.
تشخيص ناسازگاري داده در شبکه
خطاهايي که از تغيير در محتواي دودويي بسته هاي ارسالي ، زماني که داده درون يک گره در حال پردازش است ، رخ مي دهد را ناسازگاري داده گويند. بنابراين اين امکان وجود دارد که داده اي را که يک گره مي فرستد تا رسيدن به مقصد محتوايش تغيير کند . براي بررسي اين گونه خطا ها و ايجاد توانايي تشخيص و رفع آنها ، ما شبکه اي را تصور مي کنيم که داراي تعداد زيادي گره است که در محيط پراکنده شده اند. شعاع ارتباطي هر گره ثابت است و نوع ارتباط ، بي سيم و از نوع همه پخشی است .چگالي و پراکندگي گره ها بگونه اي است که بين مبدا و مقصد مي توان چندين مسير ايجاد نمود. در اين شبکه فرضي ، ساير خطاهاي احتمالي را با احتمالي برابر صفر در نظر مي گيريم تا شبيه سازي شبکه به نوع خطاي مورد بحث معطوف شود. در ضمن تمام گره ها را در شروع فعال در نظر مي گيريم و تنها شرط از کار افتادگي را اتمام باطري مي دانيم. در اين روش ما چندين مرحله داريم :
• ايجاد مسيرهاي بين گره اي
• تشخيص و رفع خطا
• عيب يابي سيستم
ايجاد مسيرهاي بين گره اي
بطورکلي هرچه تعداد مسيرهاي ارسالي بيشتر باشد ، الگوريتم ما کارامدتر خواهد بود ولي ترافيک شبکه اي و مصرف انرژی نيز بيشتر مي شود. براي ايجاد يک تعادل ميان اين دو ، در اين روش دو مسير انتخاب شده است. در ابتدا گرهSink با ارسال درخواستهايي از ساير گره ها ،اطلاعات مورد نظر را درخواست مي کند و آنها نيز در صورت داشتن خصوصيات موردنظر اطلاعات درخواستي را ارسال می کنند. به کمک اين اطلاعات وثبت زمان دريافت جوات ، sink جدولي تهيه کند که بوسيله آن اطلاعات نودهای پاسخگو دارای کوتاهترين تاخير را شناسايي می کند. سپس sink بايستي براي هر گره يک مسير بهينه ،براي ارسال اطلاعات به آن نود را مشخص کند. يکي از اين اطلاعات مهم تعيين گره نزديک و بهينه از ميان همسايگان است.
پيغام های بهبود مسير برای ايجاد چندين مسير از sink به مبدا فرستاده می شوند.براي اين کار ابتدا پيغام اولين مسير[7]ارسال مي شود . مبناي تصميم کمينه بودن تاخير است. بنابراين اين پيغام از گره sink حرکت مي کند و از گره هاي مجاور به آن گره اي مي رود که کمترين تاخير را دارد. اين امر تا رسيدن به گره مقصد ادامه دارد. پس از پايان اين مرحله پيغام دومين مسير را نيز ارسال مي کند و بدنبال آن مسير دوم هم با همان شرايط انتخاب مي شود. اين دو مسير در هيچ گره اي نبايد اشتراک داشته باشند. در صورت انتخاب گره عضو مسير اول در مسير دوم ، گره پيغام خطا را به فرستنده مي فرستد تا گره ديگري را انتخاب کند.
شکل1- a-کمترين تاخير PREP ، b- ايجاد اولين مسير ، c- ايجاد اشتراک در دو مسير ، d – ايجاد مسير دوم
تشخيص و رفع خطا
تشخيص خطا
هدف در اين مرحله آن است که داده اي را که از دو مسير توسط يک گره فرستاده شده است را در sink بررسي کنيم. در اين مرحله داده دريافتي را در يک بافر ذخيره مي کنيم و منتظر داده بعدي مي شويم. در صورت تشابه هر دو را درست فرض مي کنيم ولي در صورت عدم تشابه وقوع خطا را مطلع مي شويم و وارد فاز رفع خطا می شويم. در صورت عدم وقوع خطا ، داده هاي دريافتي را بکار مي بريم و بافر را خالي مي کنيم.
رفع خطا
اين مرحله زماني آغاز مي شود که خطايي در سيستم رخ داده باشد . در اين حالت ، يک پيغام براي ايجاد سومين مسير نيز ارسال مي شود . بعد از ايجاد ، داده مجددا از هر سه مسير ارسال مي شود. پس از دريافت هر سه و يا پايان زمان مشخص شده براي سيستم ، بر اساس حالات زير تصميمات مقتضي گرفته مي شود :
• سه داده مشابه اند که هر سه صحيحند
• سه داده دريافت شده و يکي با بقيه متفاوت است . پس مي توان مسير خرابی وجوددارد.
• دو داده مشابه دريافت شده که است .اين صورت دو مسير درست می باشند.
در مابقي حالت ، ما کاري نمي توانيم انجام دهيم . مگر آنکه داده ها را ناديده بگيريم. در صورتيکه بتوانيم مسير خطادار را تشخيص دهيم ، وارد مرحله بعدي مي شويم. در انتها بافر را خالي مي کنيم.
عيب يابي سيستم
در اين مرحله گره Sink پيام SET به گره هاي موجود در مسير خطادار و پيام Clear را براي گره هاي موجود در مسيرهاي درست مي فرستد. هر گره داراي جدولي شامل دو قسمت است :
• تعداد خطا
• گره هاي بالاسري
زماني که گره اي Set را دريافت مي کند ، تعداد خطا را يکي افزايش داده و گره اي که اين پيام را داده است را در ليست گره هاي بالاسري خود قرار مي دهد. زماني که گره اي پيام Clear را دريافت مي کند ، شماره تعداد خطا را صفر مي کند و قسمت گره هاي بالا سري را خالي مي کند. زماني که يک گره ، تعداد خطاهايش به حد معيني برسد ، خاموش مي شود تا از انتخاب مجدد اين گره ، جلوگيری شود. در اين شبکه، خطاهاي رخ داده شده بصورت دائمي در نظر گرفته شده اند. بدين ترتيب با هر بار وقوع ناسازگاري داده ها مي توان مسيرهاي داراي خطا را حذف نمود و يا با تعويض گره هاي خطادار ، آن مسير را درست نمود. نحوه ارسال پيامهاي Set و Clear نيز مهم است و به صورت دست دادن[8] عمل می کنيم.در اين روش ، نودی که پيغام SET/CLEAR که در آن هر گره پس از دريافت SET/CLEAR ، دريافت را با جوابی يکسان با پيغام SET/CLEAR اوليه، بايستي به گره بالاسری گزارش دهد و در صورت آمدن تاييد از گره بالاسری، آن نود اجازه ارسال پيام به نود پايين دستی دارد. در غير اينصورت بسته ، انداخته می شود. بدين ترتيب ، اگر نود انتقال دهنده دارای خطا باشد ، جواب ارسالی آن با پيغام اوليه متفاوت خواهد بود و نود بالا دستی آن نود را دور خواهد زد و مستقيما ، پيغام را به نود پايين دستی ارسال می کند. و همچنين ، بقيه نودها را از اين نود خراب ، مطلع می کند.شکل زير نحوه ی عمل اين الگوريتم را نشان می دهد.
شکل : مثالی از تشخيص اشتباه
1 - الگوريتم تشخيص از کار افتادگي گره [17]
براي توضيح بيشتر اين روش ابتدا به بيان شرايط و مفروضات اين مدل مي پردازيم .اين سيستم از N گره تشکيل شده است. گره ها مشابه و ارتباط بي سيم با شعاع محدود و منبع انرژي محدود هستند. هر گره مي تواند Sink باشد. بنا براين گره Sink مزيتي نسبت به بقيه ندارد ، بلکه بسته به نياز کاربر تغيير مي کند. هر گره يا سالم است يا خراب و در شروع تمام گره ها را سالم فرض مي کنيم. گره ها امکان تعمير دارند و خطاهاي سيستم را دائمي مي دانيم بطوريکه تا زمانيکه تعمير نشوند سالم نمي شوند. ارتباطات يک گره به صورت همه طرفه است . علاوه بر آنچه گفتيم موارد زير نيز در زمره مفروضات ما هستند :
• هر گره داراي شناسه يکتاست
• هر گره شناسه خود و همسايگانش را دارد
• در طول عمليات عيب يابي هيچ خطايي رخ نمي دهد
• همبندي شبکه در طول اجراي اين روش ثابت است
• گراف ارتباطات همبند و متقارن است
پروتکل در سطح لايه Link وجود دارد که سرويسهاي زير را به ما مي دهد :
روشهاي ارسال به چند صورت است :
• ارسال به تمام همسايگان[9] (1hB)
• ارسال به تنها يکي از همسايگان [10](ss)
براي حل مشکل برخوردها از پروتکل لايه MAC استفاده مي شود
در اين روش زمان نقش بسيار مهمي دارد ، يعني محدوديت زماني براي اجرا عمليات خود داريم که در پايان آن بايستي شناسه هاي گره هاي سالم و خراب مشخص شده باشند. در اين روش عيب يابي زماني ممکن است که تعداد گره هاي خراب از تعداد معيني ( t ) بالاتر نرفته باشد که در غير اين صورت امکان عيب يابي سيستم وجود ندارد. فرض بر اين است که در خواست انجام الگوريتم توسط کاربر صادر مي شود که اين امر تنها در کم کردن توان مصرفي موثر است ولي نقش کاربر را پر رنگتر مي کند. در اين روش نيز هزينه اجرا براي ما بسيار مهم است .براي محاسبه هزينه اجرا ، سه عامل موثر است :
• زمان اجرا
• حجم داده ارسالي
• انرژي مصرفي
در مورد سومين پارامتر بايد گفت که با حجم داده ارتباط مستقيمي دارد. پروتکل مورد بحث ما WSDIAG نام دارد. فرض ما بر اين است که اين عمل درون يک گره سالم انجام مي شود که به آن آغازگر[11] مي گويند. در اين روش ما دو نوع پيام داريم :
IMA [12]: توسط هر گره ارسال مي شود وداراي دو بخش است (u,v) . u نشانگر فرستنده پيام و v نشانگر گره اي است پيام را براي او فرستاده اند.
Diagnostic : عبارت است از پيامي که آن نيز خود داراي دو قسمت است .(u,Fu) . u نشانگر گره فرستنده است و Fu نمايشگر مجموعه اي از شناسه هاي گره هاي خراب است که توسط گره u شناسايي شده اند.
اجراي اين روش سه مرحله دارد که به شرح زير است :
• ارسال پيامهاي IMA : گره آغازگر ، پيام 1-hB را که از نوع IMA است به همسايگان خود ارسال مي کند.
• هر گره پس از ارسال پيام تا رسيدن زمان Timeout منتظر گرفتن جواب آن پيام مي شود . در صورت گرفتن پاسخ گره سالم و در غير اين صورت گره خراب است .
• ارسال رو به عقب پيامهاي Diagnosis : در هنگام ارسال در مرحله اول درختي ايجاد مي شود . در مرحله دوم هر گره عمليات عيب يابي را براي گره هاي همسايه خود انجام مي دهد. هر گره پدر ، در درخت ارسال ، منتظر مي ماند تا فرزندانش داده هاي خود را به او بدهند. با دريافت آنها ، اين اطلاعات را با اطلاعات خود ترکيب مي کند. آنرا به گره پدر مي دهد.
انتشار نهايي نتايج عيب يابي : زماني که در نهايت اطلاعات به گره آغازگر رسيد ، آنها را با هم ترکيب و نتايج کلي را در راستاي درخت منتشر مي کند.
شکل : ( aنودها در شبکه حسگر b -) گراف ارتباطی نودها
2 مقايسه ميان چندين پروتکل[14]
همانطور که اشاره شد ،يکی از مهمترين فعاليت اين شبکه ها جمع آوري اطلاعات خام و ارسال آنها به يک مقصد نهايي است. هدف ما در اين قسمت پرداختن به ايجاد ساختاري قابل اطمينان در رابطه با ارتباطات پيچيده بين گره ها مي باشد. براي شروع به بررسي يک روش بنام روش سيل آسا[13] مي پردازيم . در اين روش ، داده خام را به صورت همه پخشی ارسال مي کنيم. اين روش اگرچه اين امکان را فراهم مي کند که داده به نحوي به مقصد برسد ولي داراي معايب فراواني مي باشد که از آن جمله به موارد زير مي توان اشاره نمود :
• تخليه توان گره ها
• تداخل امواج
• ايجاد تراکم بي مورد در شبکه
• ايجاد تنازع بر سر ارتباط با يک گره ميان دو فرستنده
بنابراين اين روش مناسب بنظر نمي رسد ، ولي با ايجاد تغييراتي مي توان آنرا بهينه نمود و آن اين است که جهت حرکت داده ها را به سمت گره مقصد که همان Sink است متمرکز مي کنيم که اين روش را ConvergeCast نيز مي گونيد. براي توضيح بيشتر به مثال زير توجه کنيد. در يک سيستم تشخيص وقوع حريق ، نياز و هدف ، تشخيص آتش و اطلاع آن در زمان محدود است. در شکل 1 دو حالت متفاوت بيان شده است. فرض بر اين است که عملکرد شبکه بدين صورت است که گره sink ، زماني داده را مي فرستد که تعداد پيغام هاي دريافتي نشان دهنده وقوع حريق ،از تعداد خاصي بيشتر باشد. اگر خطوط انتقال داخل شبکه اي (شکل 1-الف) ويا خطوط ارتباطي با گره Sink ( شکل 1-ب) دچار ايراد شود ، در هر دو حالت شبکه کار خود را انجام نداده است .
شکل1 – نمونه اي از سيستم تشخيص حريق
بنا بر اين تمام مسيرها از ابتدا تا انتها در کارايي شبکه نقش موثري دارند و بايستي در نظر گرفته شوند.
2-1 مدلسازي يک ارتباط قابل اطمينان
فرض کنيد که شبکه ما داراي N گره است . هر گره خود بوسيله يک يا چند حسگر تجهيز شده است و داراي قسمت ارتباطي با شعاع کم است و نيز منابع انرژي ، ذخيره سازي و پردازشي محدود دارند. اين شبکه داراي گره هاي Sink با قدرت پردازش بالا و منابع لازم هستند. در اين مدل ما يکsink را براي سادگي کار در نظر مي گيريم. در ضمن فرض ما بر اين است که گره ها حرکت نمي کنند ولي همبندي شبکه بر اساس وقوع خطاهاي شبکه اي تغيير مي کند. نحوه ارتباطي آنها بر اساس روش CSMA در پروتکل لايه MAC است.
2-2 مدلسازي خطا
بعد از مشخص شدن مشخصات سيستم مورد بحث ، بررسي ساختارهاي خطاهاي مورد بحث امري حياتي است. در اين مدل ، ما خطاهاي موجود را به دو دسته قابل تحمل و غير قابل تحمل تقسيم مي کنيم.
2-3 خطاهاي برطرف نشدني
اين خطا ها ، خطاهايي هستند که لايه حمل ، نمی تواند برای آنها کاری کند. کاربرد حسگر ها ، در شرايط سخت ، مانند تشخيص حريق، ممکن است کلا حسگر را از کار بياندازد. يکي از اين خطاها ، خراب شدن گره Sink است و خطاهاي ديگر از بين رفتن تقسيم بندي شبکه است. اگر از سيستم نگهداری شود ،ممکن است بعضی خطاهاي برطرف نشدني به خطاهاي برطرف شدني تبديل شود.
2-4 خطاهاي برطرف شدني
آن دسته خطاهايي هستند که تاثيرات آنها را با استفاده از پروتکلهاي انتقالي مي توان از بين برد. اين دسته خود به د و دسته تقسيم مي شوند.
2-4-1 خطاهاي ارتباطي
اين دسته بزرگترين و بيشترين خطاها را شامل مي شود که شامل گم شدن داده و يا تاخير زماني بيش از حد است. اين نوع خطاها تاثير مستقيم روي پاسخ گويي سيستم دارند. تداخل ، برخورد و رقابت عوامل مهم در گم شدن بسته ها هستند. تراکم شبکه ها عمده ترين دليل ايجاد تاخير بيش از حد است.
2-4-2 خطا هاي گره اي
اين خطا ها ناشي از ايجاد تغييرات در همبندي شبکه هستند که روي پاسخ گويي شبکه تاثير دارند. اين خطاها را مي توان به چهار دسته تقسيم نمود .
• خطاهاي تصادفي که همواره از کار افتادگي دائمي يک گره توسط عوامل محيطي است را نيز شامل مي شود.
• خطاهاي حسگرها که از آنجا ناشي مي شود که بدليل آنکه گره ها در محيطهاي نامناسب استفاده مي شوند ، اين امکان وجود دارد که بدليل محيط نامناسب و يا زمان طولاني کارکرد ، خطاهايي در دريافتها و عملکرد آنها ايجاد شود.
• خطاهاي ناشي از تخليه انرژي که باعث توقف کار گره مي شود.
• خطاهاي زودگذر سخت افزار يا نرم افزار که تاثيراتشان معمولا با شروع به کار مجدد سيستم، برطرف شدني مي باشد.
2-5 منظور از حمل داده
يکي از معروفترين معانی در اين زمينه، انتقال پيام انتها به انتها[14] است . استفاده از اين روش در شبکه هاي بي سيم کاربرد فراواني دارد ولي به دليل محدوديتهاي زياد شبکه هاي WSN در مقايسه با شبکه هاي سيمي ، اين روشها عمدتا مناسب نيستند . روش ديگر اتفاق به انتها[15] است . در اين روش هر گره اي که واقعه اي را ثبت کرد ، داده را به گره Sink مي رساند. اگرچه اين مدل از روش اول بهينه تر است ولي توجه به خطوط ارتباطي و قابليت اطمينان آن نشده است
روش بعدی که ما از آن استفاده می کنيم به کمک "پردازش داخل شبکه ای"[16] است. به محض تشخيص رخداد ، گره ها اطلاعات خام را به گره هايي به سمت sink ارسال مي کنند . در هر مرحله ارسال ، روي داده هاي خام پردازش هايي انجام مي شودکه عبارتند از فيلتر کردن ، جمع آوري و مسيريابي شکل 2 ، بيانگر اين مدل است.
شکل2 –ايده نحوه انتشار داده در شبکه
بنابراين با توجه به روش آخر تعريف خود از حمل و نقل داده در شبکه های حسگر را اين گونه بيان مي کنيم :
تعريف يک : انتقال اطلاعات در شبکه ها از مرحله توليد اطلاعات تا رسيدن به گره Sink دربر گيرنده مجموعه اي از فعاليت هاست که آن را حمل و نقل داده می ناميم .
عوامل موثر در طراحی پروتکل های مسیر یابی
برای طراحی الگوریتم های موثر مسیریابی، باید به چندین عامل موثر در طراحی دقت نمود که در زیر بیان می شود:
پویایی شبکه . سه عنصر مهم در شبکه های سنسوری ، نودجمع آوری کننده ، نودهای سنسوری و اتفاق های مورد بررسی می باشند که به صورت ثابت و یا متحرکند . مسیریابی نودهای متحرک (چه نود جمع آوری و یا چه نودهای سنسوری)کار پیچیده تری می باشد. به همین ترتیب دنبال کردن اتفاقات پویا نیز دشوارتر خواهد بود.
چیدمان نود. چیدمان نود ها می تواند از پیش تعیین شده یا اتفاقی باشد. چیدمان معین نودها، براساس طرحی از پیش تعیین شده می باشد و داده از مسیرهای از پیش تعیین شده می تواند مسیر یابی شود. در صورتیکه ، به کارگیری اتفاقی نودها چندین مسئله از جمله پوشش، کلاسترینگ بهینه و موارد دیگر را پیش می آورد که باید بررسی شوند.
شبکه چند پرشه و یا یک پرشه . از آنجا که انرژی ارسالی با مجذور فاصله در ارتباط مستقیم است ، شبکه های چند پرشه برای صرفه جویی در انرژی مناسب ترند. اما شبکه های چند پرشه مسائلی چون ، مدیریت توپولوژی ،و کنترل دسترسی به مدیا را نیز به همراه می آورند.
مدل های گزارش داده . در شبکه های سنسوری ، مدل های گزارش می تواند به صورت ممتد، براساس پرسش ، و یا بر اساس یک اتفاق باشد.مدل های گزارش طراحی شبکه را تحت تاثیر قرار می دهند. مثلا مدل ممتد مقدار زیادی داده تولید می کند و بنابراین مسیریابی باید به جمع آوری داده نیز دقت داشته باشد.
تنوع نودها . بعضی کاربردها ، ممکن است نیاز به ترکیب نودهای سنسوری با انواع دیگر نود با قابلیت های متفاوت را داشته باشند. داده ی تولیدی از چندین سنسور متفاوت می تواند منجر به تولید داده با نرخ های متفاوت ، مدل های متفاوت گزارشی و محدودیت های مختلف کیفیت سرویسی ، شود. چنین محیط ناهمگنی نیاز به مسیریابی پیچیده تری دارد.
جمع آوری داده . جمع آوری داده ترکیب داده های حاصل از چندین منبع مختلف بر اساس تابع جمع آوری کننده ی خاصی چون : حذف تکراری ها، کمینه گیری ،بیشینه گیری و یا حداقل سازی می باشد.این روش برای کاهش داده ی تولیدی از چندین منبع و صرفه جویی در انرژی صورت می گیرد. اما این روش به افزایش پیچیدگی کمک کرده و استفاده از روش های امنیتی را تقریبا غیر ممکن می سازد.
ویژگی های مطلوب در مسیریابی
از ویژگی های مطلوب مسیریابی می توان به موارد زیر اشاره کرد:
عملیات توزیعی : پروتکل قطعا باید توزیعی باشد و نباید بر نود مرکزی وابسته باشد که در شبکه های ایستا مشاهده می شود. تفاوت در اینجاست که در شبکه های موردی نودها به راحتی به سیستم وارد و یا از آن خارج می شوند و به دلیل تحرک ، شبکه می تواند تکه تکه شود.
بدون حلقه بودن : برای افزایش کارایی نیاز به مسیریابی هایی داریم که تضمین کند مسیر بدون حلقه است تا از اتلاف پهنای باند جلوگیری شود.
عملیات مبتنی بر تقاضا: برای کاهش سربار کنترلی در شبکه و نیز جلوگیری از اتلاف منابع شبکه ، پروتکل باید واکنشی باشد. یعنی فقط در هنگام نیاز اطلاعات کنترلی ، پخش شود.
حمایت از پیوندهای یک طرفه : در محیط رادیویی ممکن است ، پیوندهای یک طرفه بوجود آید. استفاده از این پیوندها ، باعث بهبود کارایی پروتکل می شود.
امنیت : محیط رادیویی بیشتر در معرض خطر حمله تظاهر[17]، می باشد. پس باید مسیریابی بگونه ای باشد که مطمئن باشیم که پروتکل رفتار مطلوب ما را ارائه می دهد. تشخیص هویت و رمز نگاری ، به همراه کلید های توزیعی در دست نودها،به نظر راهی برای این امر می باشد. استفاده از IP-sec* با استفاده از روش تونل زنی برای ارسال بسته ها نیز مورد بحث می باشد.
نگهداری انرژی : نودها در شبکه می تواند رایانه ی همراه و یا PDA و یا سنسور با انرژی محدود باشند. پس مسیر یابی با توجه به این نکته امری مهم می باشد.
چند مسیری : برای کاهش واکنشی به تغییرات توپولوژیکی و نیز ازدحام در شبکه ، نیاز به چند مسیری داریم. اگر مسیری غیرمعتبر شود ممکن است امکان استفاده از مسیر دیگر همچنان مهیا باشد و از ایجاد مسیر دیگر و سربار عملیات کشف مسیر جلوگیری می کند.
پشتیبانی از کیفیت سرویس : پشتیبانی از نیاز های کیفیت سرویس امری بسیار مطلوب می باشد که برای کاربردهایی چون realtime مورد استفاده قرار می گیرد.
جلوه های متفاوت ارسال به جلو
در این قسمت مسیر یابی را از دید دیگری بررسی می کنیم. مسیریابی تک پخشی ، همه پخشی و انواع آن را بیان خواهیم کرد.
روش های ارسال به جلو و انواع آن
هرگاه که نود منبعی نتواند داده را مستقیما به مقصد برساند و مجبور به اتکا به نودهای میانی باشد شبکه ی چند پرشی [18] ،ایجاد شده است مانند شکل 1-3. در چنین شبکه ای نود میانی باید تصمیم بگیرد که به کدام همسایه، بسته ی آمده را ارسال کند. این عمل ارسال به جلو[19] نامیده می شود.
شکل 1-3. نمونه ای از مسیریابی چند پرشه- نود S بسته به نود D ارسال می کند.
ساده ترین ارسال به جلو عمل flooding می باشد. ارسال به تمام همسایگان انجام میگیرد و مطمئنا داده به مقصد میرسد. برای گردش بیش از حد آن ، نودها فقط باید بسته هایی که تاکنون ندیده اند را ارسال به جلو کنند. همچنین از زمان انقضا (همچون حداکثر تعداد پرش ها)نیز برای بسته ها معمولا استفاده می شود.
روش دیگر ارسال بسته نه به