1. برای کسب اطلاعات بیشتر در ساعات 9 الی 13 و 16 الی 18 با شماره 08138270182 یا 08138268809 تماس حاصل فرمایید.
    آدرس ایمیل: info@wsnlab.ir
    آدرس کانال تلگرام http://telegram.me/gloriot
  2. بدین وسیله به اطلاع پژوهشگران محترم می رسانیم که سامانه پیامکی لابراتوار شبکه حسگر بی سیم راه اندازی شد. از این پس می توانید با ثبت شماره تلفن همراه خود از اطلاعیه ها و اخبار پژوهشی لابراتوار آگاه شوید.
    ضمناً آگاهی از کلیه اطلاعات نحوه ارایه خدمات به شما دوستان نیز از طریق همین سامانه امکان پذیر است.
    شماره سامانه: 30001818270182

شرح کار پروتکل مسیریابی AODV

شروع موضوع توسط Homaei 15/3/13 در انجمن مسیریابی در شبکه حسگر بی سیم

تلفن سفارش: 08138311237 تلفن سفارش: 08138311237
  1. Homaei مدیر کل سایت

    تاریخ عضویت:
    25/2/12
    تعداد ارسال ها:
    2,038
    تشکر شده:
    11,617
    امتیاز دستاورد:
    12,265
    وب سایت:
    پروتکل مسیریابی AODV یک پروتکل مسیریابی On-Demand است که در آن همه مسیرها فقط وقتیکه مورد نیاز باشند کشف می شوند و تنها در طول مدتی که مورد استفاده قرار می گیرند نگهداری می شوند.مسیرها در طول یک Flooding کشف می شوند که در طی آن نودهای شبکه در فرآیند جستجوی یک مسیر به سمت مقصد مورد سوال قرار می گیرند.وقتی یک نود با یک مسیر به مقصد کشف می شود آن مسیر به عقب و به نود مبدائی که درخواست مسیر کرده بود گزارشمی شود.
    AODV برای تحقق اهداف مانند زیر طراحی شده است:
    1- حداقل سربار کنترلی 2- حداقل سربار پردازشی 3- قابلیت مسیریابی چندگامی 4- نگهداری پویای توپولوژی 5- عاری بودن از حلقه .
    چون منابع در شبکه های متحرک Ad hoc کمیاب هستند AODV سعی می کند تا سربار کنترلی را با محدود کردن بروزرسانی های متناوب مسیر و همچنین تنها استفاده از پیغام های On-Demand به حداقل برساند.برای به حداقل رساندن سربار پردازشی ٬ پیغام های AODV ساختار ساده ای دارند و نیاز به محاسبات کمی دارند . در یک شبکه Ad hoc منابع ومقصدها ممکن است در خارج از محدوده ارتباطی مستقیم یکدیگر باشندکه این به خاطر محدودیت حوزه ارسال تجهیزات بیسیم است. از اینرو AODV نودها را قادر می سازد بتوانند از کشف مسیرهای چندگامی به سمت مقصد استفاده کنند و این مسیرها را تا وقتی که توپولوژی شبکهبه طورمدام تغییر می کند نگهداری کنند . همچنین در برابر حلقه های مسیریابی به شدت مقابله می کنند چون آنها در هر شبکه ای پر هزینه هستنند مخصوصا در یک شبکه بیسیم که ظرفیت سیگنالینگ و توان پردازشی نود محدود است . AODV در هر نود شماره های ترتیبی را برای جلوگیری از حلقه های مسیریابی بکار می برد. این پروتکل شامل دو فاز می باشد 1- کشف مسیر 2- نگهداری مسیر.
    AODV انواع پیغام های زیر را تعریف می کند: 1- Route Request) RREQ) 2-Route Reply) RREP) 3- Route Error) REER) 4- Route Reply Acknowledgment) RREP-ACK)
    در فرآیند کشف مسیر وقتی یک نود مبدأ نیاز به یک مسیر به یک نود مقصد داشته باشد و مسیر معتبری در جدول مسیریابی نباشد، نود مبدأ یک بسته درخواست مسیر (RREQ) را به سمت نود مقصد همه پخشی می کند. وقتی هر نودRREQ را دریافت می کند، یک ورودی مسیر برعکس به سمت نود مبدأ را در جدول مسیریابی ایجاد یا بروزرسانی می کند و اگر یک مسیر معتبر در جدول مسیریابی به سمت نود مقصد ، ندارد RREQ را دوباره همه پخشی می کند . وقتی Flooding بسته RREQ از نود مبدأ به نود مقصد برسد، نود مقصد ورودی مسیر برعکس را ایجاد یا بروزرسانی می کند و یک بسته پاسخ مسیر (RREP) را که یک شمارهترتیب افزایش یافته دارد در مسیر برعکس تک پخشی می کند. وقتی RREP به نود مبدأ و در طول مسیر برعکس می رسد، یک مسیر رو به جلو را به سمت مقصد ایجاد یا بروزرسانی کرده و ارتباطات شروع می شود.
    در فرآیند نگهداری مسیر هر نود بطور متناوب یک بسته Hello را برای اتصالات محلی همه پخشی کرده و RREP را با TTL=1 همانند بسته Hello همه پخشی می کند. وقتی نود بسته ای را از یک همسایه و در طول چند ثانیه دریافت نکند، فرض می کند که اتصال به همسایه شکسته شده است بعلاوه وقتی یک نود اتصالشکسته ای به یک همسایه و مبتنی بر اعلان لایه MAC را دارد، یک شکست در مسیر به نود مقصد را تشخیص می دهد که گام بعدی مسیر، همان نود همسایه است . وقتی نودی که شکست اتصال را تشخیص داده، نزدیک به نود مقصد باشد(یعنی تعداد گام تا نود مقصد بسیار کمتر از تعداد گام تا نود مبدأ باشد (نیاز به یک مسیر جدید به مقصد دارد که این فرآیند با عنوان تعمیر محلی (Local Repair) نام دارد .
    تعمیر محلی نیز یک فرآیند کشف مسیر است و بسیار شبیه به آن چیزی است که در بخش های قبلی گفته شد. در طول یک تعمیر محلی بسته های دیتای رسیده بافر می شوند. وقتی RREP برسد و تعمیر محلی موفقیت آمیز باشد ، نود ارسال بسته های دیتای بافر شده را آغاز می کند. وقتی نود تشخیص دهد شکست اتصال از نود مقصد دور باشد یا وقتی تعمیر محلی موفقیت آمیز نباشد، نود یک بسته خطای مسیر (RERR)را به سمت نود مبدأ منتشر می کند که شامل آدرس مقاصد غیرقابل دستیابی است . وقتی هر نود میانی RERR را دریافت می کند مسیرهائی که نود مقصد غیرقابل دستیابی هستند و گام بعدی ، نود منتشر کننده RERR است،نامعتبر می شوند و RERRدوباره منتشر می شود. وقتی نود مبدأ RERR را دریافت می کند مسیر به سمت نود مقصد نیز نامعتبر می شود و مسیری را دوباره کشف می کند.

    Roya_J, farzaan, mohebbi and 4 others like this.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  2. مشاوره، آموزش و پیاده سازی پروژه های شبکه های موردی، شبکه حسگر بی سیم و انواع شبکه های کامپیوتری . برای کسب اطلاعات بیشتر با شماره 08138270182 تماس بگیرید. .
  3. mehdi.isakhani کاربر معمولی

    تاریخ عضویت:
    19/11/12
    تعداد ارسال ها:
    25
    تشکر شده:
    31
    امتیاز دستاورد:
    13
    با سلام
    تشکر از توضیحات مفید تون

    طبق اطلاعاتی که من از AODV دارم اگر بسته RREQ به دست نود میانی ای رسید که این نود اطلاعات مسیریابی تا نود مقصد را داشت ، این نود میانی به شرط اینکه مقدار destination sequence number اش از مقدار destination sequence number بسته RREQ بیشتر باشد انگاه می تواند بسته RREP را تولید کرده و به سمت نود مبدا ارسال کند
    حال سوال
    1-مقدر فیلد destination sequence number برای RREQ ارسالی از سمت نود مبدا که در ابتدای کار هیچ اطلاعی از نود مقصد در Route Table اش ندارد از کجا بدست می اید؟

    2-مقادیر sequence number در چه مواقعی بروز رسانی (افزایش) می شود؟

    3-ایا هر نود باید مقادیر sequence number مربوط به تمام نودهای دیگری که اطلاعات مسیر انها را در جدول مسیریابی اش قرار دارد را داشته باشد؟

    4-اگر جواب سوال 3 بلی است فیلد sequence number در نودهای میانی در چه مواقعی بروز رسانی می شود؟

    پیشاپیش از راهنمایی های خوب شما دوستان عزیز تشکر می کنم
    Habibi and Homaei like this.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  4. itech کاربر تازه وارد

    تاریخ عضویت:
    24/2/13
    تعداد ارسال ها:
    26
    تشکر شده:
    13
    امتیاز دستاورد:
    3
    سلام
    توضیحی راجع به فیلدهای بسته ی RREQ در پروتکل AODV می خواستم
    با تشکر
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  5. mohebbi کاربر تازه وارد

    تاریخ عضویت:
    27/1/13
    تعداد ارسال ها:
    12
    تشکر شده:
    18
    امتیاز دستاورد:
    3
    سلام
    فابل پیوست فلوچارت عملکرد پروتکل aodv هست.زمانی که خودم روی این پروتکل تحقیق می کردم این فلوچارت رو تهییه کردم.استادم هم روند کاری اون رو تایید کرده.البته اگر مشکلی در اون پیدا کردید حتما به من اطلاع بدید.امیدوارم به دردتون بخوره.
    :)

    پیوست ها:

    vahid_mm1991, farzaan, itech and 4 others like this.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  6. itech کاربر تازه وارد

    تاریخ عضویت:
    24/2/13
    تعداد ارسال ها:
    26
    تشکر شده:
    13
    امتیاز دستاورد:
    3
    ممنون از فلوچارتی که آماده کردین، واقعا مفید بود :)
    فیلد source sequence number توی بسته ی RREQ واسه اولین بار مقدارش چنده؟ مثه فیلد ID مقدار اولیه اش رندوم انتخاب میشه یا نه؟
    Habibi likes this.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  7. itech کاربر تازه وارد

    تاریخ عضویت:
    24/2/13
    تعداد ارسال ها:
    26
    تشکر شده:
    13
    امتیاز دستاورد:
    3
    دوتا سوال دیگه هم که واسم پیش اومد اینه که ...
    توی قسمت (1) چک میشه آیا اطلاعات مقصد موجود هست یا نه ...
    1. منظورتون از اطلاعات مقصد چیه؟چه اطلاعاتی؟
    2. منظورتون از موجود بودن اطلاعات، توی جدول نودی که درخواست مسیر داره هست؟
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  8. sepide کاربر معمولی

    تاریخ عضویت:
    29/8/12
    تعداد ارسال ها:
    134
    تشکر شده:
    107
    امتیاز دستاورد:
    43
    اطلاعات مقصد منظور فیلدهایی هست که تو بسته RREQ داره ارسال میشه آیا این فیلدها با فیلدهای مقصد یکی هست یا نه؟ یعنی گره اطلاعاتش را برای خود مقصد ارسال میکنه یا برای گره ای که به سمت مقصد مسیر داره.
    در قسمت بعد اگر اطلاعات مقصد در جدول مسیریابی گره مبدا وجود داشت(یعنی خود مبدا به سمت مقصد مسیر داشته باشد) ارسال اطلاعات انجام میگیره و اگر خود مبدا به سمت مقصد مسیر نداشته باشد از طریق گره های همسایه جستجو میکنه تا مسیری پیدا بشه.
    Habibi and itech like this.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  9. itech کاربر تازه وارد

    تاریخ عضویت:
    24/2/13
    تعداد ارسال ها:
    26
    تشکر شده:
    13
    امتیاز دستاورد:
    3
    ممنون از اطلاعات کامل و مفیدتون :)
    شما میدونین مقدار اولیه فیلد source seq num تصادفی هست یا نه؟
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  10. sepide کاربر معمولی

    تاریخ عضویت:
    29/8/12
    تعداد ارسال ها:
    134
    تشکر شده:
    107
    امتیاز دستاورد:
    43
    نمی دونم ولی برای بار اول مقدارش اگرهم تصادفی انتخاب بشه مهم مقایسه هایی هستش که بعدا برای بزرگتر یا کوچکتر بودن انجام میشه منظورم اینه که مقدار اولیه به هر روشی انتخاب بشه نباید مهم باشه البته این نظر منه.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  11. itech کاربر تازه وارد

    تاریخ عضویت:
    24/2/13
    تعداد ارسال ها:
    26
    تشکر شده:
    13
    امتیاز دستاورد:
    3
    فک کنم قسمت (31) فلوچارت به جای Destination sequence number باید Destination IP Address باشه
    درسته؟
    sepide likes this.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  12. sepide کاربر معمولی

    تاریخ عضویت:
    29/8/12
    تعداد ارسال ها:
    134
    تشکر شده:
    107
    امتیاز دستاورد:
    43
    آره چون اگه گره ای که RREQ را دریافت کرده خود مقصد نباشه باید جدول رهیابیش چک بشه که ایا با آدرس شناسه مقصد مورد نظر مسیری تو جدولش داره یا نه؟ که اگر مسیری نداشته باشه دوباره بسته درخواست مسیر همه پخشی میشه یعنی واسه گره های همسایه فرستاده میشه و اگرهم مسیری داشته باشه جدول رهیابیشو به روز می کنه.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  13. sepide کاربر معمولی

    تاریخ عضویت:
    29/8/12
    تعداد ارسال ها:
    134
    تشکر شده:
    107
    امتیاز دستاورد:
    43
    سلام شما می دونید فلگ های A،G،N برای چی استفاده می شه؟
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  14. mohebbi کاربر تازه وارد

    تاریخ عضویت:
    27/1/13
    تعداد ارسال ها:
    12
    تشکر شده:
    18
    امتیاز دستاورد:
    3
    itech : کدهای aodv تو c++برای sequenceno از مقدار اولیه 2 استفاده شده و بعد از اون هر بار که می خواد افزایش بده 2 واحد بهش اضافه می کنه .
    sepide : فلگ G رو الگوریتمی که ارائه دادم مشخص کردم برای چی هست نود میانی که به نود مقصد مسیر داره برای اینکه به نود مقصد اعلام کنه بسته ای براش اومده یه بسته RREP با فلگ G بهش ارسال میکنه.
    در مورد فلگ A باید بگم تو مکانیزم Repair ازش استفاده میشه زمانی که مسیر دوباره احیا میشه و بسته ای به عنوان سالم بودن مسیر به نودهای دیگه ارسال میشه .
    در مورد فلگ N زمانی که چندین RREP در یک نود دریافت میشه hopcount ها مقایسه میشن و در صورتی که hopcount جدیده بزرگتر از قبلی باشه تو RREP فگ N رو تنظیم می کنه.
    Habibi, itech and sepide like this.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  15. mohebbi کاربر تازه وارد

    تاریخ عضویت:
    27/1/13
    تعداد ارسال ها:
    12
    تشکر شده:
    18
    امتیاز دستاورد:
    3
    مرسی از این دقت حق با شماست :)
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  16. sepide کاربر معمولی

    تاریخ عضویت:
    29/8/12
    تعداد ارسال ها:
    134
    تشکر شده:
    107
    امتیاز دستاورد:
    43
    ;) ممنونم عزیزان mohebbi و itech
    mohebbi likes this.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  17. hd_uni_pro کاربر معمولی

    تاریخ عضویت:
    5/12/13
    تعداد ارسال ها:
    198
    تشکر شده:
    2
    امتیاز دستاورد:
    18
    مرسی
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  18. hd_uni_pro کاربر معمولی

    تاریخ عضویت:
    5/12/13
    تعداد ارسال ها:
    198
    تشکر شده:
    2
    امتیاز دستاورد:
    18
    سلام این پروتکل رو چه طوری میشه به صورت نرمافزاری منظورم برنامه نویسی میکرویی هستش پیاده سازیش کرد ؟
    ضمنا من قبول دارم که پروتکی خوبی هستش فقط یکم خطاهای املائی داره ؟!:rolleyes::D
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  19. hd_uni_pro کاربر معمولی

    تاریخ عضویت:
    5/12/13
    تعداد ارسال ها:
    198
    تشکر شده:
    2
    امتیاز دستاورد:
    18
    یک سوال :
    جدول ردیابی که یک نود داره باید چه طور تنظیم بشه منظورم اینه که یک نودی که پیوسته در حال حرکت است باید در ابتدای شناسایی آدرس شناسه همه نودها رو ذخیره کنه در جدول مسیر یابیش یا نه ؟ این کار حتما باید پیوسته انجام بشه و از نود های اطراف خودشون مطلع بشن این پروسه و ارسال rreq , rrep چه طوریه انجام میشه من یک کم سردر گم شدم !؟
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  20. rad.bahar کاربر معمولی

    تاریخ عضویت:
    23/9/13
    تعداد ارسال ها:
    118
    تشکر شده:
    22
    امتیاز دستاورد:
    18
    انقدری که خودم از aodv فهمیدم فرایند ارسال rrepو rreq این طوری هست که
    در شروع شبیه سازی جدول مسیریابی همه ی نودها خالی است .هیچ نودی از نودهای همسایه اش تا زمانی که بسته ای را از ان همسایه دریافت کند اطلاعی ندارد. فرض کنید در همان شروع شبیه سازی نود مبدا قصد ارسال داده به نود مقصدی را دارد چون در جدول مسیریابی اش درایه ای وجود ندارد که مشخص کند برای این نود مقصد، هاب بعدی (next hob) کدام است بسته rreq را broadcast می کند وقتی نود همسایه rreq را دریافت می کند از روی مشخصات بسته برای اولین بار می فهمد که نود مبدا همسایه اش است پس در جدول مسیریابی اش درایه ای درج می کند به این مضمون که برای رسیدن به نود مبدا ،هاب بعدی نود مبدا می باشد. خوب حالا سعی می کند در جدول مسیریابی اش به دنبال درایه ای بگردد که مشخص کند برای رسیدن به نود مقصد هاب بعدی کدام است. اگر چنین درایه ای باشد بسته rreq را به سمت هاب بعدی که در درایه ذکر شده ارسال می کند وگرنه hob count بسته rreq را یکی اضافه می کند و بسته را broadcast می کند. وقتی بسته به دست همسایه بعدی رسید اول یک درایه به جدول مسیریابی اش به این مضمون اضافه می کند که برای رسیدن به نود میدا هاب قبلی برابر ادرس همسایه قبلی اش می باشد و برای ارسال مجدد rreq همان کاری که در همسایه قبلی انجام شده بود دوباره تکرار می شود
    تا بلاخره در نهایت بسته rreq به مقصد برسد مقصد درایه جدیدی به جدول مسیریابی به این مضمون اضافه می کند که برای رسیدن به نود مبدا هاب بعدی ادرس همان نودی است که rreq از ان دریافت شده بعد مقصد rrep ایجاد می کند و ان را به همان نودی که rreq از ان دریافت شده ارسال می کند هر نودی که rrep را دریافت می کند درایه ای در جدول مسیریابی اش اضافه میکند به این مضمون که برای رسیدن به نود مقصد هاب بعدی نودی است که rrep از ان دریافت شده و حالا باید rrep را به مبدا ارسال می کند جدول مسیریابی اش را جستجو می کند و درایه مربوط به نود مبدا را می یابد چون این درایه در زمانی که بسته rreq در این نود دریافت شده بود ایجاد شده و با توجه به درایه rrep را به هاب بعدی ارسال می کند تا بلاخره بسته rrep به دست مبدا می رسد
    حالا مبدا و مقصئ و تمام نودهای میان مسیر جدول مسیریابی اشان دارای درایه مربوط به این مسیر هست و مبدا می تواند داده هایش را به مقصد ارسال کند.
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.
  21. hd_uni_pro کاربر معمولی

    تاریخ عضویت:
    5/12/13
    تعداد ارسال ها:
    198
    تشکر شده:
    2
    امتیاز دستاورد:
    18

    سلام
    عالیه دقیقا همینه
    درایه ها چی می تونن باشن مثلا آدرس mac و hop count هم حتما یک کانتر هست دیگه ؟
    لطفاً انجمن را به دوستان خود معرفی نمایید تا محیطی پویا تر داشته باشیم.

به اشتراک بگذارید