شبیه ساز شبکه اقتضایی بر مبنای پروتکل مسیریابی وفقی چندمسیره محلی بهینه Mobile Ad-hoc Network (MANET) Simulator based on Efficient Local-Multipath Adaptive Routing (ELMAR) Protocol شبيه ساز MANET 1 مقدمهدر اين بخش شبيه ساز MANET که براي شبيه سازي پروتکل پيشنهادي SELMAR طراحي شده است، معرفي مي شود. در بخش هاي بعدي نحوه کارکرد شبيه ساز بيان مي شود و برخي از کلاس ها، متغيرها و توابع مهم شبيه ساز توضيح داده مي شود و در نهايت نتايج شبيه سازي پروتکلSELMAR با توجه به خودخواهي و حمله لانه کرمي بررسي مي شود. شبيه ساز MANET براي شبيه سازي پروتکل هاي شبکه هاي اقتضايي پياده سازي شده است، و خصوصا براي آناليز عملکرد پروتکل SELMAR مورد استفاده قرار می گیرد. شبيه ساز MANET با زبان برنامه نويسي Visual C++ نوشته شده است که تحت سيستم عامل Windows کار مي کند. 2 نحوه کارکرد شبيه سازبه منظور شبيه سازي يک شبکه اقتضايي ابتدا اجزاي آن که شامل مسيرياب ها، لينک ها و ترافيک ها است، بايستي مشخص شوند. مسيرياب ها مطابق توپولوژي مورد نظر مي توانند به صورت تک تک اضافه شوند يا به صورت تصادفي يک گروه 100 تايي از گره ها (با توجه به شکل 1) توليد شوند و در صفحه مختصات قرار بگيرند. شکل 1 نحوه ايجاد توپولوژي تصادفي بعد از قرارگيري مسيرياب هاي تصادفي در صفحه مختصات (مانند شکل 2) مي توان مسيرياب ها را با ماوس حرکت داد. در ضمن با کليک راست بر روي گره ها مي توان آن ها را پاک کرد يا برخي خصوصيات کاربري مسيرياب را اصلاح کرد.
شکل 2 نمايش توپولوژي تصادفي بوجود آمده توسط MANET خصوصيات کاربري مسيرياب هم از طريق نوار ابزار و هم از طريق کليک راست قابل دسترسي است. خصوصيات مسيرياب ها شامل عنوان (نامي منحصر به فرد براي هر مسيرياب)، پوشش راديويي (برحسب واحد نقطه)، تاخير پردازش اطلاعاتي (برحسب واحد تيک)، اندازه بافر (برحسب واحد بسته)، مسير فيزيکي عکس مسيرياب در ديسک سخت، مختصات افقي مسيرياب، مختصات عمودي مسيرياب، طول قالب (برحسب واحد نقطه)، عرض قالب (برحسب واحد نقطه) و نوع مسيرياب (اقتضايي، مخرب يا خودخواه) است. (شکل 3) شکل 3 ديالوگ تنظيم مشخصات مسيرياب لينک هاي بي سيم بين گره هاي همسايه توسط خطوط رنگي نمايش داده مي شود. نرم افزار بعد از تنظيم مکان گره ها توسط کاربر با توجه به شکل 4 با انتخاب گزينه ايجاد لينک مي تواند لينک هاي بي سيم ممکن بين گره ها را نمايش دهد. نرم افزار فاصله بين گره ها را با محدوده پوشش راديويي آن ها مقايسه مي کند و در صورتي که فاصله بين دو گره از پوشش راديويي هر دو گره کمتر باشد، لينک واصل بين دو گره نمايش داده مي شود.
شکل 4 نحوه ايجاد ارتباطات ميان گره ها پس از نمايش لينک ها نيز مي توان گره ها را جابجا نمود. اما اگر گره ها از بازه راديويي يکديگر خارج شوند (شکل 5)، لينک واصل به نشانه از دست رفتن ارتباط بي سيم بين دو گره قرمز رنگ مي شود.
شکل 5 خارج شدن گره شماره 10 از پوشش گره هاي شماره 17 و 19 حال بايستي ترافيک بين گره ها را تعريف کنيم. براي برقراري ارتباط ميان گره ها مي توان ترافيک بين هر مبدا و مقصد معين را با توجه به پروتکل مربوطه تنظيم کرد. همان گونه که در شکل 6 نشان داده شده است، مي توان زمان شروع ارتباط را هم برحسب تيک تعيين کرد تا ترافيک مورد نظر در زمان مورد نظر بين مبدا و مقصد بوسيله پروتکل مربوطه جريان يابد.
شکل 6 نحوه بازکردن ديالوگ تعريف ترافيک پنجره مربوط به تنظيم ترافيک بين مبدا و مقصد مشخص در زمان مورد نظر با توجه به پروتکل مربوطه در شکل 7 نشان داده شده است.
شکل 7 ديالوگ تنظيم ترافيک بين گره ها براي انجام عمل شبيه سازي مي توانيد گزينه Profile را از قسمت شبيه سازي در نوار ابزار برنامه مطابق شکل 8 انتخاب کنيد.
شکل 8 نحوه راه اندازي پنجره شبيه سازي سپس پنجره مربوط به عمل شبيه سازي باز مي شود (شکل 9). با فشردن دکمه Resume عمل شبيه سازي ادامه مي يابد و دکمه Resume به Pause تبديل مي شود، همچنين با کليک دکمه Pause عمل شبيه سازي متوقف مي شود و دکمه Pause به Resume مبدل مي شود. براي کنترل سرعت عمل شبيه سازي مي توانيد نشان لغزنده [1] را حرکت دهيد تا سرعت عمل شبيه سازي افزايش يا کاهش يابد (بصورت پيش فرض سرعت عمل شبيه سازي بر روي حداقل مقدار خود قرار دارد).
شکل 9 ديالوگ کنترل عمليات شبيه سازي در دنياي واقعي هر مسيرياب به طور مستقل با استفاده از پردازنده داخلي خود اعمال شبکه مربوط به خودش را انجام مي دهد. در دنياي مجازي شبيه سازي سعي مي شود که با تعريف خصوصيات ويژه و اساسي مسيرياب ها تفاوت هاي آن ها بارزتر شود و کل اعمال شبکه را بتوان با استفاده از يک پردازنده دنبال کرد. در عمل همه مسيرياب ها به صورت موازي کار مي کنند اما براي شبيه سازي مجبوريم که وظايف خواسته شده از هر گره را در بازه هاي زماني مشخص با توجه به قدرت پردازنده و ديگر مشخصات رايانه انجام دهيم. در نرم افزار MANET براي سرعت بخشيدن به عمل شبيه سازي سعي شده است که در هر تيک زماني تمام مسيرياب ها يک بار ساعت[2] بخورند. به منظور واقعي تر شدن عمل شبيه سازي در هر بار اجراي حلقه زماني برحسب تيک همه مسيرياب ها به اندازه يک واحد زماني (تيک) کارهاي محوله خود را انجام مي دهند. اعمال خواسته شده از هر گره شامل دانلود[3] (به معناي دريافت بسته رسيده در انتهاي لينک مورد نظر متصل به گره)، پردازش بسته ها و آپلود[4] (به معناي ارسال بسته پردازش شده به ابتداي لينک مورد نظر متصل به گره) است. براي آن که اعمال دانلود و آپلود تنها يک باردر هر حلقه زماني انجام شوند از يک بيت به منظور شناسايي لينک فعال يا غيرفعال استفاده مي شود. روش مورد استفاده فوق از نظر طراح برنامه بسيار سودمندتر از ساير روش ها به نظر رسيد! با شروع زمان ارسال ترافيک، گره مبدا ابتدا عمل مسيريابي را انجام مي دهد و مرحله کشف مسير را آغاز مي کند. بدين منظور بسته درخواست مسير را به وجود مي آورد و به همسايگانش پخش مي کند. توجه شود که بسته درخواست مسير به دليل آن که پروتکل مورد استفاده بر مبناي بردار فاصله برحسب نياز کار مي کند، تنها يک بار در حافظه ايجاد مي شود و از آن به بعد گره ها تنها اشاره گر بسته را پخش مي کنند. اين کار به افزايش سرعت شبيه سازي بسيار کمک مي کند. حلقه ساعت زني گره ها با توجه به مقادير انتخابي کاربر در پنجره شبيه سازي هر چند ميلي ثانيه يکبار تکرار مي شود تا عمل شبيه سازي شبکه به همين منوال جلو رود. هر مسيرياب شبکه در هر بار اجراي حلقه ساعت زني گره ها به لينک هاي واصل خود گوش مي دهد تا چنانچه بسته اي به انتهاي مسير خود رسيد، توسط مسيرياب دانلود و دريافت شود. بسته هاي دريافتي گره ها در بافر گيرنده ذخيره مي شود و به ترتيب پردازش مي شوند. براي مثال گره هاي مياني بسته هاي دريافتي را بررسي مي کنند که به کدام گره بعدي بفرستند و بسته هاي داده نيز توسط مقصد جمع آوري مي شوند. بسته هاي ارسالي گره ها در بافر فرستنده قرار مي گيرند و به ترتيب براي همسايه هاي مورد نظر از طريق لينک هاي مربوطه فرستاده مي شوند. با اين وصف مي توان فهميد که براي مدل سازي تاخير لينک ها نيز بافرهايي تعريف شده است که بسته هاي آپلود شده در داخل آن ها قرار مي گيرند و در واقع از يک سو سوار بر لينک مي شوند تا به سوي ديگر آن برسند. در انتها (سر ديگر لينک) نيز توسط گره همسايه دانلود مي شوند و اين راه کار در مورد همه لينک ها وجود دارد. در ضمن در هر بار اجراي حلقه ساعت زني، گره ها خود جداگانه ساعت زني لينک هاي خود را براي حرکت بسته ها در داخل آن ها انجام مي دهند. مقدار تاخير بسته ها در داخل لينک ها (برحسب تعداد تيک ها) بر اساس فاصله گره هاي واصل توسط لينک محاسبه مي شود و به ازاي هر بار ساعت زني يک واحد از آن کسر مي شود. صفر شدن شمارنده تاخير به معناي رسيدن بسته به انتهاي لينک يا سر مقابل لينک است تا گره همسايه در ساعت بعدي آن را دريافت کند. لينک هاي موجود بين مسيرياب ها در اولين گام به رنگ مشکي هستند. با عبور بسته هاي درخواست مسير از لينک ها رنگ آن ها آبي مي شود و در هنگام حرکت بسته هاي جواب مسير از لينک ها رنگ آن ها زرد مي گردد. وقتي که بسته داده در داخل لينک قرار مي گيرد، رنگ لينک بنفش مي شود و در نهايت با بازگشت بسته ACK به مبدا رنگ لينک هاي مسير به نشانه برقراري موفقيت آميز ارتباط سبز مي شود. نحوه پردازش و مسيريابي گره ها بر مبناي پروتکل ترافيک لايه شبکه است که در هنگام تعريف ترافيک توسط کاربر لحاظ شده است. پردازش بسته ها به نوع بسته ها بستگي دارد. مثلا بسته درخواست مسير در صورت نبود مسير مشخص به مقصد به همسايگان پخش مي شود ولي بسته ACK به گره بعدي سوي مبدا جلوراني مي شود. در ضمن گره هاي مولد ترافيک علاوه بر پردازش هاي معمول بايستي زمان بين رفت بسته درخواست و آمد بسته جواب را اندازه گيري کنند و همواره به ازاي ارسال تعداد مشخصي بسته داده منتظر دريافت يک پيغام ACK مبتني بر سالم به مقصد رسيدن داده ها باشند. در برنامه MANET پروتکل هاي لايه پيوند داده و لايه فيزيکي به صورت ساده مدل شده اند. در مدل لايه فيزيکي بسته ها بدون نويز به صورت اشاره گر بايتي ارسال و دريافت مي شوند. در اين پروژه از عوامل متعدد مؤثر در مخابرات ديجيتال از جمله نويز، فيدينگ، چند مسيره بودن و غيره صرف نظر شده است و مدل لايه فيزيکي به ساده ترين شکل در نظر گرفته شده است. زيرا هدف از انجام پروژه بررسي اثر حملات شناخته شده بر روي پروتکل هاي لايه شبکه است و چنين عواملي به دليل اثر ناچيزشان در نظر گرفته نشده اند. همچنين لايه پيوند داده و زير لايه کنترل دسترسي فضا[5] نيز به صورت کاملا دو طرفه بدون تصادم در نظر گرفته شده است، بدين معني که گره هاي مرتبط مي توانند از هر جهت به داخل لينک واصل بين خودشان داده ارسال کنند و اين داده ها با يکديگر تلاقي نمي کنند و به راحتي در انتها توسط خود گره ها قابل دريافت هستند. 3 معرفي کلاس ها (متغيرها و توابع)3-1 مقدمهنرم افزار MANET شامل پنج کلاس اصلي است و بقيه کلاس هاي نرم افزار، زيرکلاسي از اين پنج کلاس هستند و يا از کلاس هاي پيش تعريف MFC [6] هستند. پنج کلاس عمده برنامه MANET عبارتند از کلاس CLink، کلاس CPacket، کلاسCRouter، کلاسCTable و کلاسCTraffic. در ادامه اين بخش به بيان هر يک از کلاس هاي مورد استفاده در نرم افزار به انضمام متغيرها و توابع هرکدام مي پردازيم. 3-2 کلاس CLinkکلاس CLink براي مدل سازي لينک هاي واصل بين گره ها در شبکه اقتضايي به کار مي رود. هر متغيري که از نوع کلاس CLink تعريف شود، بايستي به دو گره اقتضايي به نشانه دو سر لينک اشاره کند. همچنين بسته به نوع ارتباط و پهناي باند آن مي توان فرکانس ارسال بيت در لينک را با متغيرFrequency تنظيم کرد. متغيرهاي Router1 و Router2 از کلاس CLink اشاره گرهاي مسيرياب هاي دو انتهاي لينک را مشخص مي کنند. متغير Start و End مختصات نقطه ابتدا و انتها لينک را در صفحه نشان مي دهند. روال (تابع) Draw براي رنگ آميزي لينک به کار مي رود. رنگ لينک توسط نوع آخرين بسته اي که وارد آن شده است، تعيين مي شود. براي مثال بسته درخواست مسير رنگ لينک را آبي مي کند، بسته جواب مسير رنگ لينک را زرد مي کند، بسته داده رنگ لينک را بنفش مي کند و بسته ACK رنگ لينک را سبز مي کند. براي دسترسي به رنگ ها متغير rgb از نوع COLORREF استفاده مي شود. روال Distance2 توان دوم فاصله بين گره هاي ابتدا و انتهاي لينک را محاسبه مي کند و از خروجي اين روال براي محاسبه متغير تاخير (Delay) در لينک استفاده مي شود. متغير Duplex يک طرفه يا دو طرفه بودن لينک را نشان مي دهد. اشاره گر بسته هاي آپلود شده توسط گره اول در متغير آرايه اي p1s و اشاره گر بسته هاي آپلود شده توسط گره دوم در متغير آرايه اي p2s نگهداري مي شوند. در ضمن زمان تاخير انتشار هر کدام از اين دسته ها نيز به ترتيب در متغيرهاي آرايه اي pd1s و pds2 ذخيره مي شوند. روال هاي مهم مورد استفاده در کلاس Clink عبارتند از Transmit، Download و Upload. از روال Transmit براي حرکت بسته ها به ازاي هر بار ساعت زني با توجه به مقدار تاخير هر بسته استفاده مي شود. مسيرياب ها با استفاده از روال Uploadي لينک هاي خود مي توانند بسته هاي ارسالي خود را بر روي لينک ها سوار کنند و از جهت ديگر هم پس از صفر شدن متغير تاخير هر بسته مسيرياب مورد نظر مي تواند با کمک روال Downloadي لينک مربوطه بسته را از روي آن دانلود و دريافت کند. 3-3 کلاس CPacketکلاس CPacket براي مدل سازي بسته هاي مورد استفاده در شبکه هاي اقتضايي به کار مي رود. هر متغير از نوع کلاس CPacket حاوي يک شناسه (متغيرID) منحصر به فرد است که اغلب به صورت تصادفي تعيين مي شود. همچنين متغير Type نوع بسته را مشخص مي کند که به صورت پيش فرض برابر صفر است يعني بسته از نوع بسته درخواست مسير است. اگر مقدار متغير Type ، يک باشد بسته از نوع جواب مسير است، اگر مقدار آن دو باشد بسته از نوع داده است و اگر مقدار آن سه باشد بسته از نوع ACK خواهد بود. علاوه بر اين ها کلاس CPacket حاوي اسامي منبع و مقصد (متغيرهاي Source و Destination) از نوع رشته اي[7] است، تا مبدا و پايان حرکت بسته در سرآيند آن مشخص باشد. درضمن متغير SeqNum آخرين شماره مسلسل دريافتي از مبدا را نشان مي دهد و به گره هاي مياني کمک مي کند تا جدول مسيريابي خود را در صورت جديد بودن اين شماره به روز رساني کنند. متغير Expiration نيز طول عمر بسته را نشان مي دهد که با عبور بسته از هر گره يک واحد از مقدار آن کسر مي شود. متغير Protocol نوع پروتکلي را که بسته بر مبناي آن توليد و پردازش مي شود را نشان مي دهد. متغير ChangePath از کلاس CPacket در صورت فعال شدن (مقدار بزرگتر از صفر) باعث تغيير مسير در گره هاي مياني مي شود. اين متغير نقش بسزايي در عمل مسيريابي پروتکل دارد. 3-4 کلاس CTrafficکلاس CTraffic به منظور مدل سازي ترافيک شبکه هاي اقتضايي طراحي شده است. هر شيء که از کلاس CTraffic تعريف شود، حاوي دو اشاره گر از کلاس CRouter است که به مبدا و مقصد ترافيک اشاره مي کند. گره هاي ابتدا و انتهاي کلاس CTraffic همان متغيرهاي Source وDestinationي کلاس CTraffic هستند. متغير Protocol در کلاس CTraffic نوع پروتکلي که ترافيک بر مبناي آن تعريف مي شود را بيان مي کند و متغير Start زمان شروع توليد ترافيک در شبکه را بر حسب تيک بيان مي کند. پروتکل پيش فرض مورد استفاده در اين کلاس همان پروتکلELMAR است و مقدار پيش فرض شروع ترافيک همواره صفر (مبدا شبيه سازي) است. 3-5 کلاس CTableکلاس CTable براي مدل سازي جداول مسيريابي گره ها طرح ريزي شده است. هر متغير از نوع کلاس CTable بايستي توسط متغير رشته اي Destination به نام منحصر به فرد مقصد اشاره کند. هر مسيرياب به ازاي هر مقصد ممکن است که تعدادي مسير در اختيار داشته باشد. تعداد مسيرهاي در اختيار گره به ازاي هر مقصد از تعداد همسايه هاي گره کوچکترمساوي است. هر متغير کلاس CTable آرايه اي از مسيرها (از نوع کلاس CPath) را در اختيار دارد که هر متغير از نوع کلاس CPath در اينجا تنها پرش بعدي براي رسيدن به مقصد را نشان مي دهد، زيرا پروتکل هاي مورد استفاده با بردار فاصله کار مي کنند و از نوع "مسير از مبدا" نيستند. متغير Index انديس مسير فعلي در آرايه مسيرها را که گره از آن استفاده مي کند، نشان مي دهد. در صورتي که متغير Index تمام مسيرهاي موجود را غربال کند، متغير Round فعال مي شود و حداقل يک دور جستجوي کامل مسيرها را نشان مي دهد. اين دو متغير براي پيدا کردن مسير مناسب بين مبدا و مقصد در زيرگراف القايي توپولوژي شبکه نقش اساسي دارند. 3-6 کلاس CRouterکلاس CRouter مسيرياب هاي شبکه اقتضايي را مدل مي کند و در واقع اصلي ترين کلاس نرم افزار شبيه ساز MANET محسوب مي شود. هر شيء از نوع کلاس CRouter، نام منحصر به فردي از نوع رشته اي به عنوان نشاني IP دارد که در متغير Caption ذخيره مي شود. مختصات افقي، مختصات عمودي، طول و عرض مستطيلي که نشان دهنده مسيرياب در صفحه است، به ترتيب توسط متغيرهاي X ،Y ، RectLength و RectWidth تعريف مي شوند. برخي ديگر از پارامترهايي که توسط کاربر قابل تغيير هستند، شامل پوشش راديويي، تاخير، اندازه بافر، نوع مسيرياب و مسير فيزيکي تصوير گره در ديسک سخت است، که به ترتيب در متغيرهاي Coverage، Delay، BufferSize، Type و ImagePath نگهداري مي شوند. نوع مسيرياب مي تواند اقتضايي (Adhoc)، خودخواه (Selfish) و يا مخرب (Malicious) باشد. مسيرياب کلاس CRouter به آرايه هاي اشاره گر بسياري دسترسي دارد و بدين وسيله مي تواند اعمال شبکه را مدل سازي کند. آرايه links شامل اشاره گر تمام لينک هاي متصل به مسيرياب از کلاس CLink است. آرايه traffics شامل اشاره گر همه ترافيک ها از کلاس CTraffic است که بايستي توسط مسيرياب توليد شوند. آرايه هاي receivedpackets، generatedpackets، processedpackets وdatapackets به ترتيب حاوي اشاره گر همه بسته هاي دريافت شده، توليد شده، پردازش شده و داده (از نوع کلاس CPacket) است که مسيرياب با آن ها در ارتباط بوده است. آرايه tables شامل اشاره گر جداول مسيريابي مقاصد مشخص است. همسايه هاي مسيرياب که خود از نوع کلاس CRouter هستند، در آرايه neighbors قرار مي گيرند و ترتيب همسايگان در آرايه neighbors با ترتيب لينک ها در آرايه links همخواني دارد. براي مثال همسايه شماره 7 با لينک شماره 7 به مسيرياب وصل مي شود. هر مسيرياب کلاس CRouter شماره مسلسل هاي بسته هاي مختلف و زمان هاي انقضاي آن ها را در متغيرهايي که به ترتيب به SeqNum و Exp ختم مي شوند، نگهداري مي کند. در ضمن هر مسيرياب براي خود ساعتي دارد که تعداد تيک هاي گذشته از زمان روشن شدن مسيرياب را توسط متغيرClock اندازه گيري مي کند. متغير کنترلي SendData نيز زمان ارسال داده را کنترل مي کند و بعد از انجام عمل مسيريابي فعال مي شود. هسته اصلي مسيرياب کلاس CRouter روال tick است، که با هر بار اجراي آن توسط حلقه ساعت زني برنامه، يک واحد به مقدار متغير Cloakي مسيرياب افزوده مي شود و سپس روال هاي Receive ، Process و SparkTraffic فراخواني مي شوند. روال Receive نقش دانلود و دريافت بسته ها (در صورت وجود) از لينک ها را دارد. روال Process شامل چهار قسمت است که برجسب نوع بسته فعلي خوانده شده از بافر مسيرياب، يکي از توابع ProcessRReqPacket، ProcessRREpPacket، ProcessDataPacket و ProcessACKPacket اجرا مي شوند. تابع SparkTraffic براي توليد ترافيک در شبکه استفاده مي شود. زمان تاخير پردازش بسته ها توسط روال GetProcessDelay محاسبه مي شود. براي توليد بسته هاي درخواست مسير، جواب مسير، داده و ACK به ترتيب از روال هاي GenRReq، GenRRep، GenDataPacket و GenAckPacket استفاده مي شود. مسيرياب با استفاده از آرايه هاي بسته ها و روال IsProcessed تکراري نبودن بسته هاي دريافتي را بررسي مي کند تا در ساعت زني هاي بعدي اين بسته هاي دريافتي غيرتکراري را پردازش کند. مسيرياب به منظور پخش بسته مورد نظر براي همسايگان از توابع Broadcast خود استفاده مي کند تا بسته مورد نظر بر روي همه لينک ها آپلود شود. مسيرياب با دريافت بسته هاي مختلف جداول مسيريابي خود را با استفاده از تابع Update تنظيم و به روزرساني مي کند. گره کلاس CRouter براي بدست آوردن انديس جدول مربوط به مقصد خاص تابع GetTableIndexToDest را به کار مي برد و به منظور بدست آوردن انديس جدول مربوط به مبدا مورد نظر روال GetTableIndexToSource را استفاده مي شود. مسيرياب کلاس CRouter از تابع GetNextHop براي مسيريابي بسته دريافتي به مقصد مورد نظر استفاده مي کند. با اين توضيحات خلاصه شده مسيرياب کلاس CRouter قادر خواهد بود که کليه وظايف متناسب با پروتکل را به صورت خودکفا انجام دهد. 4 نتايج شبيه سازيدر اين قسمت پروتکل SELMAR در يک توپولوژي شبکه 50 گره اي که به صورت تصادفي کنار يکديگر قرارگرفته اند، شبيه سازي شده است (شکل 10). گره هايي که قصد برقراري ارتباط دارند با رنگ قرمز دورشان مشخص شده اند. گره مبدا گره شماره صفر و گره مقصد گره شماره 49 است.
شکل 10 توپولوژي شبکه دلخواه 50 گره اي با انجام عمل شبيه سازي بسته هاي درخواست مسير در شبکه پخش مي شوند و لينک ها را آبي مي کنند. سپس بسته هاي جواب مسير در شبکه حرکت مي کنند و رنگ لينک ها را زرد مي کنند. نمايي از توپولوژي شبکه در ميان عمل شبيه سازي در شکل 11 نشان داده شده است.
شکل 11 پخش شدن بسته هاي درخواست و جواب مسير در شبکه سپس گره صفر بسته هاي داده را به سمت گره 49 با انتخاب کوتاه ترين مسير در جدول مسيريابي ارسال مي کند. گره هاي مياني ترافيک را در جهت انديس ورودي جداول خود مي فرستند. مسير بنفش مسير جلوراني داده از مبدا به مقصد را نشان مي دهد. بسته َََACK مسير معکوس (مسير سبز) برگشتي به مبدا را مي پيمايد (شکل 12)، چراکه گره هاي مياني پرش معکوس بازگشتي به مبدا را در جداول خود تنظيم مي کنند. لذا مسير سبز برگشتي به مبدا مسير بنفش رفت به مقصد را دوباره رنگ آميزي مي کند.
شکل 12 مسير سبز رنگ دريافت بسته ACK گره شماره 28 همسايه گره 49 (مقصد) در شکل 12 با دايره سياه دورش نشان داده شده است. گره 28 همسايه مقصد در مسير انتخابي ارتباط قرار گرفته است، لذا براي آزمايش مقاومت پروتکل در برابر خودخواهي خاصيت گره 28 را از اقتضايي به خودخواه تغيير مي دهيم و عمل شبيه سازي را براي همان توپولوژي دو مرتبه انجام مي دهيم. در نهايت همان طور که در شکل 13 نشان داده شده است، مسير جايگزين (49-30-25-36-27-0) به جاي مسير قبلي (49-28- 19-40-6-0) انتخاب مي شود. عمل خودخواه سازي گره هاي همسايه مقصد را ادامه مي دهيم و اين بار گره 30 را خودخواه مي کنيم. نتايج شبيه سازي نشان مي دهد که مسير بهينه محلي مسير 49-4-20-37-42-0 خواهد بود.
شکل 13 مقاومت پروتکل SELMAR در مقابل خودخواهي گره شماره 28 حال نوع گره شماره 4 که همسايه مقصد است، را نيز به خودخواه تغيير مي دهيم. اين بار تعداد دفعات متوقف شدن ارتباط افزايش مي يابد و پروتکل پس از امتحان تعداد زيادي از مسيرها مي تواند از طريق گره شماره "يک" راهي به گره مقصد بيابد. مسير انتخابي در اين حالت مطابق شکل 14 به صورت 49-1-26-2-43-5-0 است.
شکل 14 توانايي پروتکل SELMAR در مقابله با خودخواهي گره ها علي رغم اينکه تعداد اقدامات براي برقراري ارتباط افزايش مي يابد هنگامي که تعداد گره هاي خودخواه افزايش مي يابد، هر اقدام براي ايجاد ارتباط انديس ورودي گره هاي مياني را از سمت گره هاي خودخواه (مشابها براي گره هاي مخرب) خود به خود دور مي کند. لذا افزايش تعداد اين اقدامات، به برقراري ارتباط هاي بعدي کمک شاياني مي کند، زيرا گره هاي مياني انديس ورودي جداول مسيريابي خود را براي اقدامات ايجاد ارتباط بعدي تغيير داده اند و گره هاي خودخواه براي همکاري جلوراني بسته هاي داده انتخاب نمي شوند، بنابراين تعداد اقدامات براي برقراري ارتباط هاي بعدي کاهش مي يابد. براي نشان دادن مقاومت پروتکل SELMAR در مقابل حمله فعال لانه کرمي نيز همان توپولوژي تصادفي قبلي را در نظر مي گيريم و يک لينک لانه کرمي (خط قرمز) بين گره شماره 24 (همسايه گره مبدا) و گره شماره 30 (همسايه گره مقصد) اضافه مي کنيم. همان طور که در شکل 15 نشان داده شده است، کوتاه ترين مسير بين مبدا (گره صفر) و مقصد (گره 49) مسير شامل گره هاي 49-30-24-0 خواهد بود.
شکل 15 مقاومت پروتکل SELMAR در مقابل حمله لانه کرمي گره هاي يال لانه کرمي بسته هاي داده را دور مي ريزند. با انجام عمل شبيه سازي مشاهده مي شود که پس از انجام 5 تلاش براي ايجاد ارتباط پروتکل SELMAR مي تواند مسير بهينه محلي 49-4-29-43-5-0 را رديابي کند. به اين ترتيب مي توان درک کرد که لانه کرم ها از گره هاي خودخواه خطرناک تر هستند و افزايش لينک هاي لانه کرمي باعث مي شود که يافتن مسير مناسب بيشتر به طول انجامد. لانه کرم ها بيشتر ترافيک هاي شبکه را مانند سياهچاله ها به سمت خود جذب مي کنند. نتايج شبيه سازي نشان مي دهد که هر چه طول لانه کرم بيشتر باشد تهديد خطرناک تري براي شبکه محسوب مي شود و تلاش بيشتري بايد صورت گيرد تا الگوريتم مسيريابي همگرا شود و مسير ارتباط بين مبدا و مقصد برقرار گردد. در عوض گره هاي مهاجم نيز بايستي هزينه بيشتري براي برقراري لانه کرم بلندتر بپردازند! همانند روش جلوگيري از رشد خودخواهي، چنانچه تعداد اقدامات براي برقراري ارتباط افزايش يابد، جهت پرش هاي بعدي گره هاي مياني از سمت مهاجمان لانه کرم ها تغيير مي کند. اين نکته سودمندي در رابطه با افزايش عملکرد پروتکل در ايجاد ارتباط هاي بعدي بين گره هاي شبکه است. 5 نتيجه گيريدر اين فصل نحوه عملکرد شبيه ساز MANET مورد استفاده در اين پروژه را توضيح داديم و کلاسها، متغيرها و توابع مهم تعريف شده در اين نرم افزار را معرفي کرديم. در نهايت پروتکل SELMAR را توسط برنامه MANET شبيه سازي کرديم. با توجه به نتايج شبيه سازي و استدلال هاي فصل پيشين مي توان چنين نتيجه گرفت که پروتکل SELMAR در مقابل حملات فعال و غيرفعال شناخته شده تاکنون از مقاومت لازم برخوردار است و امنيت مورد نظر را برقرار مي کند. همچنين با توجه به خواص الگوريتم مبناي خود ELMAR نسبت به پروتکل هاي چندمسيريابي پيشين عملکرد بروندهي مطلوبتري نيز دارد.
|
Friday, October 21, 2011
Monday, September 12, 2011
Student Branch of C4I
Student Branch of Command, Control, Communications, Computers and Intelligence
- Activities
- Members
- Links
- SBC4I Table of Contents
- Contact
- doc/constitution.pdf
- doc/form.pdf
- image/sbc4i.jpg
Student Branch of of Command, Control, Communications, Computers and Intelligence at Sharif University of Technology
Monday, May 30, 2011
Best Golf Bags For Sale
golf bags
best golf bags
golf bag for sale
golf bag off
golf bag off for slae
best golf bags off for sale
This Week Only: FREE Shipping To Mainland USA &
NO US Sales Tax on All Golf Bags For Sale!
Looking for the best golf bags for sale online? Then you've come to the right golf store. We carry a wide selection of stand, cart, and staff bags, from major brand names including Callaway and TaylorMade. At Golf Bag Center you can be sure to find the best golf bags to protect your clubs and gear, while giving you the best price on the Internet.
A quality bag may not directly improve your game, but it can definitely give you an enjoyable and comfortable golfing experience. You can fit your golf clubs, shoes, apparel, balls, snacks, or any other accessories in your bag and carry them with you when you go from hole to hole. Knowing that you have access to all your gear at any time on the course, is such a mental relief. No matter what your needs are or what your skill level is, we have the right bag with the right features in the right color for you.
Do you like to walk on the course and carry your gear with you? No problem. Our selection of quality golf stand bags is your best choice. Most of them are lightweight and come with wide and comfortable shoulder straps, which make them easy to carry.
Are you the type of person that likes to hop on a cart? That's fine. Most of our golf cart bags have pockets that face away from the cart and you can easily take out a power bar, your GPS, or any other gear while enjoying your ride on the cart. Our cart bags have many cool features like accordion expandable side pockets, insulated cooler pocket, or removable coolers.
Thinking of turning pro? Problem solved. It's your time to go for a tour or staff bag. It can hold a full set of clubs and any supplies and equipments you may need. Your full arsenal of Drivers, Fairway Woods, Irons, Wedges, and Putter clubs will be at arm's reach in your bag. The stylish and professional looks of these bags will make you stand out on the course.
If you have any questions, give us a call. Be sure to take advantage of our SUPER SAVER WEEK that ends this week. You can save up to 30% off our entire store. Moreover, this week only, you can enjoy FREE shipping to mainland USA and NO SALES TAX on all golf bags on sale. There's no better time to get your new golf bag than right now!
Sunday, May 22, 2011
Game-theoretic approach to mitigate packet dropping in wireless Ad-hoc networks
Game-theoretic approach to mitigate packet dropping in wireless Ad-hoc networks
Tootaghaj, Diman Zad ; Farhat, Farshid ; Pakravan, Mohammad-Reza ; Aref, Mohammad-Reza ;
Information Systems and Security Lab (ISSL), Department of Electrical Engineering, Sharif University of Technology, Tehran, Iran
This paper appears in: Consumer Communications and Networking Conference (CCNC), 2011 IEEE
Issue Date : 9-12 Jan. 2011
On page(s): 163
Print ISBN: 978-1-4244-8789-9
Digital Object Identifier : 10.1109/CCNC.2011.5766444
Date of Current Version : 12 May 2011
ABSTRACT
Performance of routing is severely degraded when misbehaving nodes drop packets instead of properly forwarding them. In this paper, we propose a Game-Theoretic Adaptive Multipath Routing (GTAMR) protocol to detect and punish selfish or malicious nodes which try to drop information packets in routing phase and defend against collaborative attacks in which nodes try to disrupt communication or save their power. Our proposed algorithm outranks previous schemes because it is resilient against attacks in which more than one node coordinate their misbehavior and can be used in networks which wireless nodes use directional antennas. We then propose a game theoretic strategy, ERTFT, for nodes to promote cooperation. In comparison with other proposed TFT-like strategies, ours is resilient to systematic errors in detection of selfish nodes and does not lead to unending death spirals.
Risk of attack coefficient effect on availability of Ad-hoc networks
Risk of attack coefficient effect on availability of Ad-hoc networks
Tootaghaj, Diman Zad ; Farhat, Farshid ; Pakravan, Mohammad-Reza ; Aref, Mohammad-Reza ;
Information Systems and Security Lab (ISSL), Department of Electrical Engineering, Sharif University of Technology, Tehran, Iran
This paper appears in: Consumer Communications and Networking Conference (CCNC), 2011 IEEE
Issue Date : 9-12 Jan. 2011
On page(s): 166
Print ISBN: 978-1-4244-8789-9
Digital Object Identifier : 10.1109/CCNC.2011.5766445
Date of Current Version : 12 May 2011
ABSTRACT
Security techniques have been designed to obtain certain objectives. One of the most important objectives all security mechanisms try to achieve is the availability, which insures that network services are available to various entities in the network when required. But there has not been any certain parameter to measure this objective in network. In this paper we consider availability as a security parameter in ad-hoc networks. However this parameter can be used in other networks as well. We also present the connectivity coefficient of nodes in a network which shows how important is a node in a network and how much damage is caused if a certain node is compromised.
Wednesday, May 18, 2011
Game-Theoretic Approach in Network Security, Availability and Privacy
Game-Theoretic Network Simulator
This is GTNS: game theoretic network simulator help document. In order to download GTNS click it. To download samples click it!
Introduction:
GTNS is a discrete-event network simulator targeted primarily for research and educational use.
GTNS is written in Visual C++ programming language and supports different network topologies. This simulator was first produced to implement locally multipath adaptive routing (LMAR) protocol, classified as a new reactive distance vector routing protocol for MANETs. LMAR can find an ad-hoc path without selfish nodes and wormholes using an exhaustive search algorithm in polynomial time. Also when the primary path fails, it discovers an alternative safe path if network graph remains connected after eliminating selfish/malicious nodes. The key feature of LMAR to seek safe route free of selfish and malicious nodes in polynomial time is its searching algorithm and flooding stage that its generated traffic is equi-loaded compared to single-path routing protocols but its security efficiency to bypass the attacks is much better than the other multi-path routing protocols. LMAR concept is introduced to provide the security feature known as availability and a simulator has been developed to analyze its behavior in complex network environments [1]. Then we have added detection mechanism to the simulator, which can detect selfish nodes in network. The proposed algorithm is resilient against collision and can be used in networks which wireless nodes use directional antennas and it also defend against an attack that malicious nodes try to break communications by relaying the packets in a specific direction. Some game theoretic strategies to enforce cooperation in network have been implemented in GTNS, for example Forwarding-Ratio Strategy, TFT-Strategy and ERTFT. This tutorial helps new users to get familiar with GTNS and run different network scenarios.
Getting Started with GTNS:
After debugging GTNS simulator you can see the following window:
Figure 1- GTNS simulator environment
Network-Router:
To implement your own network you can click on Network-Router as you can see in figure 2 and 3 you can add one node by clicking on add button, or you can add different number of nodes, randomly placed over screen by clicking the Self-Generate button. In figure 4 you can see a sample network topology created by adding 5 nodes to the network. You can change the default preferences of node by clicking on Default Preferences button, or you can change different parameters of any node in the network by clicking on that node in the screen. Any node in the network can be deleted or you can change its parameters during simulation or you can force it as a selfish node. Figure 5 shows different parameters of nodes that can be changed. You can change the router's caption, its coverage range, delay, X_axis and Y_axis of the router in the screen, the length and width of router image and battery power of any router can be changed in the network.
Figure 2- Network-Router button
Figure 3- Network-Router-Self-Generate button
Figure 4- A sample of network topology created by adding 5 nodes in GTNS environment
Figure 5- Editing node parameters by clicking on any node on the screen
Creating Links between nodes in GTNS:
As it is seen in figure 6 you can add links between nodes by clicking on Network-Link-Self-Generate button. All nodes which are in the coverage range of each other will be connected with a full-duplex link.
You can also add links between any two nodes in network by clicking on Network-Link-Add. Figure 7 shows different parameters that can be changed by clicking this button. You can select two routers that you want to make a link between them and frequency and duplicity of the link. You can add wormhole links between any two nodes by creating links between nodes which are not in the coverage range of each other. During simulation you can add or delete a specific link between any two nodes in network.
Figure 8 shows a sample topology created by using Link-Self-Generate button.
Figure 6- Adding links between nodes in GTNS simulator
Figure 7- Different parameters that can be changed by clicking Link-Add button
Figure 8- A sample network created by adding self-generate links between 10 nodes in GTNS
Adding Traffic to network:
As you see from figure 9, you can add traffic between any two nodes in network by clicking Network-Traffic-Add. Figure 10 shows different parameters that you can change when you want to add traffic between any two source and destination node in network. You can select routing protocol and start time of traffic sparks.
Figure 9- Adding traffic to the network
In GTNS you can add random traffic to network. Figure 11 shows the window when you click on Network-Traffic-Self-Generate-Ad-hoc. You can select the starting and stopping time of random traffic generated, and number of connections during this interval. Data traffic rate and different protocols can be selected in this window.
Figure 10- different parameters that can be changed during adding traffic between any two nodes
Figure 11- Different parameters that can be selected by adding random traffic in network
Simulation in GTNS:
To simulate the network created in GTNS, you should click on Simulation-Profile button as you can see in figure 12. Then the Simulation window will be opened where you can see the clock and view events. Figure 13 shows Simulation window. You can also change the speed of simulation by moving Master and slave speed buttons.
By clicking on Resume button you can run the simulation and see different packet exchange in network.
For example we have created one connection between node 1 and 64. After clicking Resume button node 1 will broadcast RReq packets. Figure 14 shows broadcasting of RReq packets, when RReq passes a link, it will become blue. When the first RReq packet reaches to destination, node 64 will broadcast RRep packets. Figure 15 shows broadcasting of RRep packets. Links become yellow when RRep packets pass them.
Figure 12- A sample grid network topology and simulation button in GTNS
Figure 13- Simulation-Profile window
Figure 14- A sample grid network topology and broadcasting of RReq packets
Figure 15- A sample grid network topology and broadcasting of RRep packets
Afterwards node 1 sends the traffic towards node 64 by choosing the shortest path in its routing table. The intermediate nodes send the traffic towards their first index entry, the best path. The purple line in Figure 16 shows the forwarding path from the source to the destination (this line is overwritten by the return path of ACK packet). The ACK packet traverses the reverse path (the green line) back to the source, as the intermediate nodes set the reverse hop back to the source in their routing tables. So the green line of reverse path over-color the purple line of forwarding path.
Figure 16: Established connection with the shortest path
Getting results:
You can see different statistic results of the simulation by clicking on Simulation-Statistic button as shown in figure 17. Figure 18 shows the Statistics window opened when you click on this button. You can see different parameters of network. For example you can see number of data packets that have been forwarded by intermediate nodes in Data Trans. No, you can see number of forwarded RReq and RRep packets in the fields RReq Trans. No and RRep Trans. No respectively. Also number of data packets and number of Ack packets generated during simulation are shown in Gen. Data No. CN and Gen. Ack No. CN. Number of established connections and total power of network after simulation and number of ad-hoc nodes and selfish nodes of type 1 and 2 and clock of the system is shown in this window.
Also after clicking on Simulation-Statistics button, the results of simulation will be saved in my_file.txt file. An example of this file and simulation results of some simulations are shown in figure 19.
Figure 17- Simulation-Statistics button in GTNS
Figure 18- The Statistics window which shows the simulation results created in GTNS
Figure 19- Simulation results written in my_file.txt in GTNS
REFERENCES:
[1] F. Farhat, M. R. Pakravan, M. Salmasizadeh, M. R. Aref, "Locally Multipath Adaptive Routing Protocol Resilient to Selfishness and Wormholes", ISPEC 2010: 187-200.
[2] http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5766445
[3] http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=5766444
- Location and data privacy
- Privacy and security mechanisms with selfish players
We study security/privacy mechanisms in the presence of selfish stakeholders, notably by means of game theory. For more information,
click here. We are applying this approach notably to:
. Securing online advertisement
. Recommendation systems
. Revocation
. Location privacy
- Secure neighbor discovery
Other aspects of wireless networks (these projects have been phased out)
- Secure vehicular communications
- Non-cooperative behavior in wireless networks
- Key management in decentralized wireless networks
- DOMINO (protecting WiFi hotspots against greedy behavior)
- CommonSense (Water management in rural areas by means of wireless sensors)
- Wireless Sensor Networks with Mobile Elements
- Group Communication in ad hoc networks
Tuesday, April 26, 2011
Information Systems and Security Lab
Information Systems and Security Lab
Home
- People
- Groups
- Publications
- papers/ghabeli/Commletter.pdf
- papers/ghabeli/IET1.pdf
- papers/ghabeli/IET2.pdf
- papers/salimi/IET1.pdf
- papers/salimi/IET2.pdf
- papers/yassae/Yasaee Slepian-Wolf Coding Over Cooperative Relay Networks.pdf
- papers/akhbari/IET_5494868.pdf
- papers/akhbari/ITW09.pdf
- papers/farhat
- papers/farhat/lmar.pdf
- papers/farhat/1569353017.pdf
- papers/farhat/1569353021.pdf
- Links
- Contents
- Contact
Tuesday, January 18, 2011
Mobile Ad-hoc Network (MANET) Simulator based on Efficient Local-Multipath Adaptive Routing (ELMAR) Protocol
Attachments (22)
- Attacker.h - on Sep 11, 2010 3:06 PM by Farshid Farhat (version 1)
1k Download - Caption.h - on Sep 11, 2010 3:06 PM by Farshid Farhat (version 1)
1k Download - CaptionDialog.h - on Sep 11, 2010 3:06 PM by Farshid Farhat (version 1)
1k Download - End2End.h - on Sep 11, 2010 3:07 PM by Farshid Farhat (version 1)
1k Download - Farshid.Farhat.Resume.pdf - on Dec 18, 2010 3:23 PM by Farshid Farhat (version 1)
112k View Download - Link.cpp - on Sep 11, 2010 3:11 PM by Farshid Farhat (version 1)
6k Download - Link.h - on Sep 11, 2010 3:07 PM by Farshid Farhat (version 1)
1k Download - LinkDialog.h - on Sep 11, 2010 3:07 PM by Farshid Farhat (version 1)
1k Download - MANET.h - on Sep 11, 2010 3:07 PM by Farshid Farhat (version 1)
1k Download - MANETDoc.h - on Sep 11, 2010 3:07 PM by Farshid Farhat (version 1)
2k Download - MANETView.h - on Sep 11, 2010 3:07 PM by Farshid Farhat (version 1)
4k Download - MainFrm.h - on Sep 11, 2010 3:07 PM by Farshid Farhat (version 1)
1k Download - Packet.h - on Sep 11, 2010 3:07 PM by Farshid Farhat (version 1)
2k Download - Path.h - on Sep 11, 2010 3:07 PM by Farshid Farhat (version 1)
1k Download - Router.h - on Sep 11, 2010 3:08 PM by Farshid Farhat (version 1)
6k Download - RouterDialog.h - on Sep 11, 2010 3:08 PM by Farshid Farhat (version 1)
2k Download - SimDlg.h - on Sep 11, 2010 3:10 PM by Farshid Farhat (version 1)
2k Download - StdAfx.h - on Sep 11, 2010 3:10 PM by Farshid Farhat (version 1)
1k Download - Table.h - on Sep 11, 2010 3:10 PM by Farshid Farhat (version 1)
1k Download - Traffic.h - on Sep 11, 2010 3:10 PM by Farshid Farhat (version 1)
1k Download - resource.h - on Sep 11, 2010 3:08 PM by Farshid Farhat (version 1)
4k Download - trafficdialog.h - on Sep 11, 2010 3:10 PM by Farshid Farhat (version 1)
1k Download