مقدمه الگوریتمهای مسیریابی
در هریک از سه قرم گذشته فناوری خاصی رونق داشته باشد قرن هجدهم زمان توسعه سیستم های مکانیکی بزرگ به همراه انقلاب صنعتی بود. قرن نوزدهم عصر موتور بخار بود. قرن بیستم زمان جمع آو ری ،پردازش ، و توزیع اطلاعات بودو در بین سایر پیشرفت ها ،شاهد نصب شبکه های جهانی تلفن، اختراع رادیو و تلویزیون ، تولید و رشد بی سایقه صنعت کامپیوتر و پرتاب ماهواره های ارتباطی بوده ایم.
با پیشرفت فناوری این موارد د رحال همگرایی است و تفاوت هایی بین جمع آوری ، انتثال ذخیره و پردازش اطلاعات به شدت در حال محو شدن است سازمان هایی با صدها شعبه در نقاط مختلف جغرافیایی ،ب فشردن کلید وضعیت فعلی را حتی در دورترین نقاط بررسی می کنند. با افزایش فدرت جمع آوری، پردازش و توزیع اطلاعات، تقاضای پردازش اطلاعات پیچیده تر نیز افزایش می یابد
-
الگوریتمهای مسیر یابی
وظیفه اصلی لایه شبکه ، هدایت بستهها از ماشین منبع به ماشین مقصد است در اغلب زیر شبکهها ، بستهها باید چند جهش انجام دهند. تا به مقصد برسند. برای شبکههای پخشی،استثنایی وجود دارد، وای در اینجا نیز اگر منبع و مقصد در یک شبکه نباشد مسیر یابی مشکل محسوب میشود. الگورتیم هایی که مسیرها و ساختمان دادههای مربوط به آن را انتخاب میکنند، موضوع مهم را طراحی لایه شبکه اند.
الگوریتم مسیر یابی بخشی از نرم افزار لایه شبکه است که تعیین میکند بسته ورودی باید به کدام خط خروجی منتقل شود. اگر زیر شبکه از دادهها گرامها استفاده کند، این تصمیم گیری دوباره باید برای هر بسته ورودی تکرار شود ،چون تا آن موقع امکان دارد بهترین مسیر، تغییر کند اگر زیر شبکه از مدارهای مجازی استفاده کند ، تصمیمات مسیر یابی وقتی اتخاذ میشوند که مدار مجازی جدیدی استفاده گردد. از آن پس ، بستههای دادهها فقط از مسیر ایجاد شده قبلی منتقل میشوند.حالت دوم گاهی مسیر یابی تماس دارد ، زیرا مسیر در طول مدت تمسا کاربر باقی میماند ( مثل کار کردن با پایانه یا انتقال فایل ) صرف نظر از این که آیا مسیرها برای هر بسته به طور مستقل انتخاب میشوند یا فقط وقتی که اتصال جدیدی برقرار میشود انتخاب میگردند، خواصی وجود دارند. که در الگوریتمهای مسیر یابی مطلوباند صحت ، سهولت تحمل عیب، پایداری ، عدالت و بهینگی صخت وسهولت نیازی به توضیح ندارند، اما نیاز به تحمل عیب چندان روشن نیست. انتظار میرود که شبکههای بزرگ ، سالها بدون عیب کلی سیستم به کار خود ادامه دهند. در این مدت ممکن است اشکالات سخت افزاری و نرم افزاری گوناگونی به وجود آید. میزبانها مسیر یابها مسیر یابها بدون نیاز به توقف انجام انجام کارها در مسیر یابها و راه اندازی مجدد شبکه در هر بار متلاشی شدن مسیریاباز عهده تغییرات در توپولوژی و ترافیک برآید.
پایداری نیز برای الگوریتم مسیر یابی هدف مهمی است. الگوریتمهای مسیر یابی وجود دارند که هرگز وجود دارندکه هرگز به حالت پایداری نمیرسند.مدت زمان اجرای آن بی تاثیر است عدالت وبهینگی مممکن است ساده به نظر میرسند یقیینا کسی با آن مخالف نیست. اماهمان طور که روشن است اهداف متناقضی دارند به عنوان مثال از این تناقض ، شکل 1 را بینید. فرض کنید ترافیک کافی بین A و ش، بین B,B وبین C, C وجود دارد تا پیوندهای افقی را اشباع نماید برای بیشینه کردن کل جریان ترافیک X, X باید کاملا از بین برود. متاسفانه از نظر X وX عادلانه نیست بدیهی است که توافقی بین کارایی کلی و عدالت اتصالهای منفرد لازم است.
قبل از اینکه به متوزان کردن عدالت وبهینگی بپردازیم . باید تصمیم بگیریم که چه چیزی را بهینه کنیم . بدیهی است تاخیر بسته باید کمینه شود ولی توان شبکه باید بیشینه شود. علاوه براین این دو هدف نیز با هم تضاد دارند، زیرا عملکرد هر سیستم صف بندی در حد ظرفیت تاخیر صف بندی را زیاد ی کند. اغلب شبکهها سعی میکنند تعدداد جهشهای بستههای را کمینه نمایند زیرا کاهش تعدادجهش موجب بهبود تاخیر و نیزکاهش میزان پهنای باند مصرفی است که منجر به بهبود توان عملیاتی میشود.
الگوریتمهای مسیر یابی به میتوانند به دو دسته تقسیم شوند غیر وفقی و وفقی الگوریتمهای غیر وفقی تصمیات مسیر یابی خود را بر اندازه گیری یا تخمین توپولوژی و ترافیک فعلی بنا نمینهند بلکه برای انتخاب مسری جهت رسیدن از I به J برای تمام I را به تمام J از قبل محاسبه میشود در حالت OFF-LINE و هنگام راه اندازی شبکه به مسیر یابها بار میشود این روند گاهی مسیر یابی ایستا نام دارد.
برعکس الگوریتمهای وقفی تصمیات مسیر یابی خود را براساس تغییرات توپولوژی و ترافیک تغییر میدهند الگوریتمهای وفقی ، وقتی که مسیرها را عوض میکنند. مثلا هر ثانیه وقتی بار تغییر میکند، با وقتی توپولوژی تغییر میکند از نظر جایی که اطلاعات را میگیرند مثلا محلی از مسیریابهمجوار یا تمام مسیریابومعیارهایی که برای بهینه سازی مورد استفاده قرارمی گیرند. (مثلا ، محلی از مسیریاب همجواریا تمام مسیر یابها و معیارهایی که برای بهینه سازی مورد استفاده قرار میگیرند (مثلاً فاصله ، تعداد جهشها یا زمان انتقال تقریبی با یکدیگر متفاوتاند . در بخشهای بعدی الگوریتمهای الگوریتمهای گوناگونی را چه ایستا و چه پویا ،مورد بررسی قرار میدهیم.
اصل بهینگی
قبل از پرداختن به الگوریتم توجه به مهم است که صرف نظر از توپولوژی شبکه وتر افیکی ، میتوان حکمی کلی راجع به مسیرهای بهینه ارائه کرد این حکم را به عنوان اصل بهینگی شناخته میشود. این اصل بیا میکند که اگر مسیریابJ از مسیریاب I به مسیریابK در مسیریاب بهینهای شناخته میکند آنگاه مسر بهینهای از J و K نیز در مسیر مشابهی قرار میگیرد. برای مشاهده این موضوع ، بخشی از مسیر I به J را به بنامید و بقیه را نامگذاری کنید اگر مسیری بهتر از وجود داشت میتوانست با الحاق شود تا مسیری از I به K بهبود بخشد، و حکم ما را میگوید ? بهینه است نقض کند.
از اصل بهینگی میتوان نتیجه گرفت که مجموعهای از مسیرهای بهینه از تمام منابع به مقصدی معین ، درختی را تشکیل مید هد که ریشه اش مقصد است چنین درختی، درخت بایگانی نام دارد.شکل 2 در این درخت مقیاس فاصله تعداد جهشها است توجه داشته باشید. که درختهای دیگری با همان طول مسیر وجود داشته باشند هدف الگوریتمهای مسیر یابی، یافتن درختهای بایگانی و استفاده از انها برای تمام مسیر یابها است .
چون درخت بایگانی یک درخت است، فاقد هرگونه حلقه است. لذا هر بسته در تعداد مشخصی از جهشهای دریافت میشود. در عمل همیشه به این سادگی نیست.در اثنای کار، پیوندهای ومسیریابمیتوانند به طرف پایین بروند وبه طرف بالا برگردند. بنابراین امکان دارد مسیر یابهای مختلف راجع بع توپولوژی فعلی ایدههای متفاوتی داشته باشند .همچنین سوال دیگری که مطرح بود این بود که آیا هر مسیریابمجبور است به طور انفرادی اطلاعات مورد نیاز جهت محاسبه درخت بایگانی را به دست آورد یا این اطلاعات توسط وسایل دیگری جمع آوری میشوند در ادامه به طور مختصر به این موضوع میپردازیم با این وجود، اصل بهینگی ودرخت بایگانیهای معیارهایی را تهیه کردند که سایر الگوریتمهای مسیر یابی میتوانند براساس آنها ارزیابی شوند.
مسیر یابی کوتاه ترین مسیر
مطالعه الگوریتمهای مسیر یابی را با تکنیکی که به طور گسترده به شکلهای مختلفی به کار میرود شروع میکنیم، زیرا الگوریتم سادهای است ودرک آن آسان است. ایده ، ساختن گرافی از زیر شبکه است ، به طوری که ، هر گره گراف نشان دهنده مسیریاب است و هریال نشان دهنده خط ارتباطی است ( که اغلب پیوند نام دارد.) برای انتخاب مسیری بین دو مسیریابمعین ، الگوریتم ، کوتاهترین مسیر بین آنها را درگراف مییابد.
در مورد کوتاهترین مسیر توضیحاتی باید ارائه شود . یک راه اندازه گیری طول مسیر ، تعداد جهش است با این معیار ، طول مسیرهای ABC,ABE در شکل 3 یکسان است.و معیار دیگر معیار دیگر فاصله جغرافیایی به کیلومتراست ، در این حالت بدیهی است که ABC خیلی طولانی تر از ABE است با فرض این که شکل با مقیاس رسم شده است.
علاوه بر جهشها و فاصله فیزیکی معیارهای دیگری نیز قابل استفادهاند به عنوان مثال هریال میتواند به میانگین تاخیر صف بندی و انتقال برای بعضی از بستههای آزمایشی برچسب گذاری شود. با این برچسب گذاری، کوتاهترین مسیر به جای مسیری به جای مسیری که با کمترین یال یا فاصله سریع تر مسیر است.
در حالت کلی، برچسبهای یالها باید به صورت تابعی از فاصله ، پهنای باند، میانگین ترافیک هزینه ارتباط میانگین طول صف تاخیر اندازه گیری شده و سایر عوامل محاسبه شود. با تغییر تابع وزنی ، الگوریتم ،کوتاهترین مسیر وزن دار را براساس هریک از معیارهای فوق یا ترکیبی از آنها محاسبه میکند.
الگوریتمهای متعددی برای محاسبه کوتاهترین مسیربین در گره گراف شناسایی شدهاند یکی از این الگوریتمهای به دیکسترا 1995 نسبت داده میشود. هر گره دارای برچسب هایی در پرانتز است که فاصله آن تا گره منبع، از طریق بهترین مسیر شناخته شده نیست لذا تمام گرهها دارای بر چسب بی نهایت هستند .با ادامه اجرای الگوریتم وپیدا شدن مسیرها، امکان دارد برچسبها تغییر کنند تا مسیرهای بهتری منعکس نمایند. برچسب ممکن است موقتی یا دائمی باشد. در آغاز ، تمام برچسبها موقتیاند وقتی مشخص شد که برچسبی کوتاهترین مسیر بین منبع به آن گروه تمام برچسبها مو قتی اندوقتی مشخص شد که برچسبی کوتاهترین مسیر بین منبع به آن گره را نمایش میدهد، دائمی میشود و از آن پس تغییر نمیکند.
برای اینکه که مشخص شود الگوریتن برچسب گذاری چگونه کار میکند. گراف وزن دار بدون جهت شکل 3 الف را در نظر بگیرید. که وزنها ، مثلا فاصله را نشان میدهد میخواهیم کوتاهترین مسیر از A به D را بیابیم. با علامت گذاری گره A به عنوان گره ثابت که به صورت دایره پر نشان شده است. شروع میکنیم. سپس نوبت ، تمام همجوار A همجوار A گره کاری را تست میکنیم .هر کدام را با فاصله آن به A مجددا برچسب میدهیم. هر وقت گرهای مجددا برچسب دهی شد، آن رابا گره اس که کار از آنجا آغاز شد برچسب میدهیم به این ترتیب میتوانیم مسیر نهایی را بازسازی کنیم. با بررسی تمام گرهها همجوار A تمام گره هایی را که در کل گراف به طور موقت برچسب دهی شدند بررسی میکنیم و گرهای که دارای کوچک ترین برچسب است دائمی میکنیم. (شکل 3- ب) این گروه به عنوان گره کاری جدید انتخاب میشود.
اکنون از B شروع میکنیم و تمام گره هایی همجوار آن را مورد بررسی قرار میدهیم. اگر مجموع برچسب در B و فاصله B تا گرهای که باید در نظر گرفته شود کمتر از برچسب موجود در ان گره باشد کوتاهترین مسیر پیدا شده ، این گره مجددا برچسب گذاری میشود.
پس از این تمام کرهها همجوار گره کاری بررسی شدند و گرههای موقتی تغییر کردند ، کل گراف مورد جست وجو قرار میگیرد تا گرهای موقتی با کمترین مقدار برچسب گذاری میشود
برای پی بردن به عملکرد الگوریتم شکل 3 ج را ببیند در این شکل، E دائمی است فرض کنید مسیر AXYZA کوتاهتر از ABE باشد دو امکان وجود دارد: یا گره Z به عنوان گره دائمی منظور شده است یا نشده است اگر دائمی باشد E تاکنون بررسی شده است در سیکلی بعد از ان که Z دائمی شد. لذا AXYZE از دید ما خارج نبوده است و نمیتواند مسیر کوتاهتری باشد
اکنون حالتی را در نظر بگیرید که هنوز بر چسب Z موقتی باشد.برچسب موجود در Z بزرگتر یا مساوری برچسب در E است که در این حالت XYZE نسبت به ABC مسیر کوتاهتری نیست، یا کمتر از E است که در این حالت Z وE تاکنون بررسی مورد جستجو قرار میگیرد.
این الگوریتم در شکل 4 آمده است متغیرهایی عمومی N و DIST گراف را توصیف میکنند و قبل از فراخوانی SHORTEST PATH مقدار میگیرند . تنها بین برنامه والگوریتمی که تشریح شد این است که کوتاهترین مانند کوتاهترین مسیر از Sبه T محاسبه شده است .چون کوتاهترین مسیر از T به S در گراف بدون جهت است مهم نیست که از کدام طرف شروع کنیم مکر اینکه کوتاهترین مسیر متعددی وجود داشته باشد که در آن حالت جست و جستجوی معکوس مسیر دیگری را انتخاب مینماید. دلیل جستجوی معکوس این است که هرگره با گره قبلی خود (به جای گره بعدی) برچسب گذاری میشود. هنگام کپی کردن مسیر نهایی در متغیر خروجی PATH مسیر، معکوس میشود با معکوس کردن جستجو این دو اثر خنثی میشود. پاسخ به ترتیب درستی تولید میگردد.
الگوریتم غرق کردن
الگوریتم ایبستای دیگر غرق کردن است که درآن، هر بسته ورودی به تمام خطوط خروجی به جز خطی که از آن آمده است ارسال میشود. این الگوریتم ،بستههای تکراری زیادی در واقع نامحدود ایجاد میکند. مگر اینکه تدبیری اندیشیده شود که این کار را کند نماید یکی از این مقیاسها قرار داردن شمارنده جهش در سرآیندهر بسته است مقدار این شمارنده در هر جهش بسته یک واحد کم میشود. وقتی که این شمارنده به صفر رسید بسته دور انداخته میشود ایده آل این است که مقدار اولیه شمارنده جهش برابر با طول مسیر از منبع به مقصد قرار گیرد. اگر فرستنده طول مسیر را نداند، میتواند مقدار آن را برابربا بدترین حالت، یعنی ، قطر کامل زیرشبکه، قرار دهد،
تکنیک دیگر برای محدود کردن الگوریتم غرق کردن این است که بسته هایی که تاکنون ارسال شدهاند مشخص باشند، تا مجددا ارسال نگردند یک روش انجام این کار این است که مسیریابمنبع ، در بسته هایی که از میزبانهایش دریافت میکند شماره ترتیبی را قرار دهد در این صورت هر مسیریاببه ازای هر مسیریابمنبع به لیستی نیاز دارد تا مشخث کند کدام شماره ترتیب هایی که تاکنون از منبع ارسال شدند دریافت گردیدند. اگر بسته ورودی در آن لیست موجود باشد: ارسال نشده است.
برای جلوگیری از رشد بی رویه لیست، هر لیست باید دارای شمارندهای به نام K باشد،معنایش این است که تمام شماره ترتیبها از 1 تا K مشاهده شدهاند وقتی بستهای دریافت میشود، به راحتی میتوان تشخیص داد که این آیا تکراری است یا خیر اگر تکراری باشد، از آن صرف نظر میگردد. علاوه بر این ،به لیست کامل کمتر ازK نیازی نیست،زیرا K آن را خلاصه میکند.
شکل خاصی از الگوریتم غرق کردن که عملی تر است غرق کردن انتخابی نام دارد. در این الگوریتم،مسیر یابها هر بسته ورودی را به تمام خطوط خروجی نمیفرستند ، فقط به خط هایی میفرستند که تقریبا درجهت درستی منتقل میشوند کمتر اتفاق میافتد بستهای که میخواهد به غرب برود به خطی در قسمت شرق ارسال شود، مگر این که توپولوژی ویژهای به کار گرفته شود ومسیریاببه این حقیقت مطمئن باشد.
الگوریتم غرق کردن، در اغلب کاربردها عملی نیست، اما کاربردهایی دارد به عنوان مثال در کاربردهیای نظامی ، که لازم است در هر لحظه بیت هایی برای بسیاری از مسیر یابها ارسال شود، الگوریتم غرق کردن توانمند نوسازی شوند سومین کاربرد غرق کردن همواره کوتاهترین مسیر را انتخاب میکند، زیرا تمام مسیرهای ممکن را به طور موازی آزمایش میکند در نتیجه هیچ الگوریتم دیگری نمیتواند تاخیر کمتری ایجاد نماید. اگر سربار حاصل ازخود فرایند غرق کردن را نادیده بگیریم.
مسیر یابی بردار فاصله
شبکه هایی کامپیوتری مدرن به جای الگوریتمهای مسیر یابی ایستا از الگوریتم مسیریابی پویا استفاده میکنند، زیرا الگوریتمهای ایستا بار فعلی شبکه را در نظر نمیگیرند و دو الگوریتم پویا به نامهای مسیر یابی بردار فاصله و مسیر یابی حالت پیوند، عمومیت بیشتری دارند در این بخش به الگوریتم مسیر یالی بردار فاصله و در بخش بعدی به الگوریتم مسیر یابی حالت پیوند میپردازیم.
در الگوریتمهای مسیریابی بردار فاصله هر مسیریابجدول یا برداری دارد که بهترین فاصله به هر مقصد را نگهداری میکند خطی را که برای رسیدن به آن مقصد لازم است مشخص میکند. این جدولها از طریق تبادل اطلاعات با همسایهها بازسازی میشوند.
الگوریتم مسیر یابی بردار فاصله به اسامی دیگر نیز خوانده میشود. ازجمله الگوریتم مسیر یابی بلمن –فورد و الگوریتم و الگوریتم فورد – فورکرسون که نامگذاری آنها را نام مخترعین آنها بلمن 1975- فورد و فوکرسون، 1962 اقتباس شده است. این الگوریتم مسیر یابی ARPANET اولیه بود و تحت نام RIP در اینترنت مورد استفاده قرارگرفت.
درمسیر یابی بردار فاصله ، هر مسیر باب دارای جدول است که به ازای هر مسیر در زیر شبکه یک وارده دارد این وارده دو بخش است : خط خروجی پیشنهادی برای استفاده از آن مقصد و تخمینی از زمان یا فاصله به آن مقصد مقیاس مورد استفاده ممکن است تعداد جهشها ، زمان تاخیر به میلی ثانیه ، بسته هایی که در مسیر در صف قرار گرفتهاند یا چیزهایی مشابه آنها باشند.
فرض میشود که مسیریابفاصله خود تا هر همسایه اش را میداند و اگر مقیاس ، جهش باشد، فاصله فقط یک جهش است اگر مقیاس طول صف باشد مسیر باب هر صف را بررسی میکنداگر مقیاس تاخیر باشد، مسیر باب میتواند آنرا مستقیما با بسته ECHO خاصی از هر طرف گیرنده ارسال میشود اندازه گیری کند.
به عنوان مثال ، فرض کنید تاخیر به عنوان مقیاس به کار میرود و مسیریاب، تاخیر به هر همسایه خودش را میداند . هر مسیریابدر هر T میلی ثانیه لیستی از تاخیرهای تخمینی خود را به هر مقصد را ارسال میکند ولیست مشابهی از هر همسایه خود دریافت میکند فرض کنید یکی از این جدولها از همسایهها X میرسد، به طوری که X زمان رسیدن به مسیریاب I باشد که X آن را تخمین زده است اگر مسیریاببداند تاخیر تا X برابر با M میلی ثانیه باشد، میداند که اگر بخواهد از طریق X به مسیریابI برسدX+M میلی ثانیه طول میکشد. با انجام این محاسبات برای هر همسایههای مسیریابمیتواند بهترین تخمین را تشخیص دهد و میتواند از این تخمین و خط متناظر در جدول مسیر یابی جدید استفاده نماید توجه داشته باشیدو که جدول مسیر یابی قبلی، در محاسبه به کار نمیآید.
این فرآیند بازسازی در شکل 5 آمده است بخش الف زیر شبکهای را نشان میدهد چهار ستون اول بخش (ب) بردارهایی تاخیری را که از همسایه هایی مسیریابJ آمدهاند نشان میدهد تاخیر از A به B برابر با 12 میلی ثانیه و از A به C برابر با 25 میلی ثانیه و از A به D برابر 40 میلی ثانیه و غیره است فرض کنید تاخیرهایی J به همسایه هایش A,H,I,A به ترتیب عبارتست از 8و10و12و6 میلی ثانیه .
چگونگی محاسبه مسیر جدید از J به G را در نظر بگیرید J میداند که میتواند با 8 میلی ثانیه تاخیر به A برسد و A با 18 میلی ثانیه به G میرسد لذا J میداندکه اگر بخواهد از طریق A به G برسد 26 میلی ثانیه طول میکشد. به طور مشابه به تاخیر رسیدن به J را در جدول ،18 میلی ثانیه ثبت میکند و آن، از طریق H است محاسبه مشابهی برای تمام مقصدها صورت میگیرد به طوری که جدول مسیر یابی جدید را به صورت آخرین به صورت اخرین ستون شکل در میآید.
مسئله بی نهایت گرایی
مسیر یابی بردار فاصله از نظرو تئوری کار میکند، اما در عمل مشکل جدی دارد با این که پاسخ صحیح میدهد، ولی به کندی عمل میکند به ویژه به خبرهای خوب، واکنش سریع ولی به خبرهای بد واکنش نشان میدهد مسیر یابی را در نظر بگیرید که بهترین مسیر آن را به X بزرگ باشد، ادگر در مبادله بعدی ، همسایه A ناگهان تاخیر اندکی به X را گزارش کند، مسیریاباز خطی که به A میآید برای ارسال ترافیک به X استفاده میکند در یک مبادله بردار، اخبار خوب پردازش میشوند.
برای مشاهده چگونگی انتشارخبرهای خوب، زیر شبکه پنج گرهای خطی شکل 6 رادر نظر بگیرید،که درآن تعداد جهشها به عنوان مقیاس است فرض کنید A از همان اول از کار افتاد و تمام مسیر یابهای دیگر این را میدانند به عبارت دیگر تمام آنها تاخیرهای رسیدن به A رت بخ صورت بی نهایت ضبط کرده اند
وقتی A را به کار میافتد . سایر مسیر یابها از طریق مبادله بردار ، آگاه مس شوند برای سهولت فرض کنیم زنگ بزرگی وجود دارد که برای شروع همزمان مبادله بردار در تمام مسیر یابها به صدا در میآید در زمان مبادله نخست B میفهمد که همسایه چپ آن تا A آن را تاخیری ندارد صفراست سپس B در جدول مسیر یابی خود ثبت میکند که A تا همسایه چپ ، یک جهش فاصله دارد سایر مسیر یابها فکر میکنند که A هنوز از کار افتاده است در این لحظه وارده هایی جدول مسیر یابی A در سطر دوم شکل 6 برابر است الف لذا جدول مسیر یابی را بازسازی میکند تا مسیری به طول 2 را نشان دهد اما D و E تاکنون خبرهای جدید را نشنیده اندن بدیهی است که خبرهای جدید با سرعت یک جهش درهر مبادله بخش میشود در زیرشبکههای که طولانی ترین مسیر که ان به طول N جهش است. در N مبادله هرکسی از خطوط از خطوط و مسیریاب هایی که تازه فعال شدهاند باخبر میشود.
اکنون وضعیت شکل 6 (ب) را در نظر میگیریم در این شکل تمام خطوط و مسیریابها در آغاز فعالاند وفاصله مسیر یابهای Aتا, E,D,C,B به ترتیب عبارتند از 1و2.3و4 ناگهان A از کار میافتد یا خط بین A, B قطع میشود از دید B فرقی نمیکند که کدامیک اتفاق افتاده است.
در مبادله اولین بسته، B چیزی از A نمیشنود خوشبختانه C میگوید نگران نباشید من مسیری به طول 2 به A دارم لذا B میداندکه مسیر C از طریق خود B میداند که C ممکن است ده خط خروجی داشته باشد .که هر کدام دارای مسیرهای مستقلی به A هستند که طول آنها 2 است در نتیجه B فکر میکند که میتواند از طریق C به A برسد با مسیرهای به طول 3 در مبادله اول E,D واردههای خود را برای A را بازسازی میکنند.
در مبادله دوم C در مییابدکه هریک از همسایه هایش ادعا میکنند که طول مسیر انها را به A برابر با 3 است یکی از آنها به طور تصادفی انتخاب میکندو فاصله جدید به A را برابر با 4 منظور میکند سطر سوم از شکل 6 الف مبادلههای بعدی نتایج بقیه شکل 6 الف را تولید میکنند.
از این شکل پیدا است که چرا خبرهای بد کندی ارسال میشوند : هیچ مسیر یابی مقداری بیش از کمترین مقدار تمام همسایه هایش را ندارد گاهی تمام مسیر یابها بی نهایت بار کار میکنند.به همین دلیل ، عاقلانه است که بی نهایت را برابر با طولانی ترین مسیر به علاوه 1 قرار داد اگر مقیاس تاخیر زمان باشدو حد بالایی تعریف شدهای وجود ندارد لذا برای با طولانی ترین مسیر با تاخیر طولانی مثل مسیر از کار افتاده رفتار نشود وجود نداردلذا برای اینکه با مسیری با تاخیر طولانی، مثل مسیر از کار افتاده نشود ،نیاز به حد بالایی است لذا این مسئله بی نهایت گرایی نام دارد تلاش زیادی برای حل آن انجام شد ، ولی هیچ کدام موفق نبوده اند. مسئله مهم این است که وقتی X به Y میگوید مسیری در اختیار دارد،Y نمیتواند بفهمد که آیا خودش در آن مسیر قراردارد یا خیر .
مسیر یابی حالت پیوند
مسیر یابی فاصله تا سال 1979 در ARPANET مورد استفاده قرار گرفت و از ان پس جای خود را به مسیر یابی حالت پیوند داد. و مشکل عمده موجب مرگ آن شد. یکی از این که مقیاس تاخیر، طول صف بود و هنگام انتخاب مسیریابها پهنای باند را در نظر نمیگرفت در آغاز تمام خطها 56KBPS بودند لذا پهنای باند موضوع مهمی نبود اما وقتی بعضی از خطوط به 235KBPS وبعضی دیگر به MBPS 55/1 تغییر یافتند عدم توجه به پهنای باند را به عنوان مقیاس در نظر گرفت اما مشکل دوم نیز وجود داشت، یعنی الگوریتم برای همگرا شدن به زمان زیادی نیاز دارد . بی نهایت گرایی به این دلایل الگوریتم دیگری به نام مسیریابی حالت پیوند جای ان را گرفت اکنون شکلهای گوناگونی از مسیر یابی حالت پیوند مورد استفاده قرار میگیرد.
ایده مسیر یابی حالت پیوند ساده است ودر پنج بخش بیان میشود هر مسیریابباید:
1-همسایه هایش را تشخیص داده و آدرس شکبهها آنها را بداند.
2-تاخیر با هزینه تا همسایه هایش را اندازه گیری کند.
3- ایجاد بستهای که اطلاعات به دست آمده از همسایهها را نگهداری کند.
4-این بستهها را به تمام مسیریابها ارسال نماید.
5-کوتاهترین مسیر به هر مسیر دیگر را محاسبه کند.
در نتیجه کل توپولوژی و تمام تاخیرها به طور آزمایشی اندازه گیری میشود وبه مسیر یابهای دیگر توزیع میگردد. سپس الگوریتمهای دیکسترا میتواندبرای یافتن کوتاهترین مسیرها را به مسیر یابها دیر مورد استفاده قرار گیرد هریک از پنج مرحله را به تفضیل مورد بررسی قرار میدهیم.
کسب اطلاعاتی راجع به همسایهها
وقتی مسیر فعال شد، اولین کارش این است که همسایه اش را بشناسد این کار با ارسال بسته HELLO ویژهای به هر خط نقطه به نقطه انجام میشود. انتظار میرود مسیریابطرف دیگر پاسخی بدهد وخود را معرفی کند این اسامی باید منحصر به فرد باشند زیرا وقتی مسیریاب دور،می یابدبه F متصل اندباید مشخص کند که آیا منظور هر سه ، همان F است یا خیر؟
وقتی دو یا چند مسیریاببا شبکههای محلی را به هم متصل باشند. وضعیت کمی پیچیده تر است. شکل 7 الف شبکه محلی را با سه مسیریابA,C,F نشان میدهد که مستقیما به آن متصلاند هرکدام از این مسیریابها به یک یا چند مسیریاب دیگر متصل شدهاند .
یک روش مدل سازی شبکه محلی این است که به عنوان یک گروه در نظر گرفته شود شکل( 7 ب )در اینجا گره جدید و مصنوعی به نام N را معرفی میکردیم . که F,C,A به آن متصل اند امکان رفتن از A به C در شبکه محلی ، با مسیر ANC مشخص شده است.
اندازه گیری هزینه خط
در الگوریتم مسیر حالت پیوند لازم است. هر مسیریاباندازه تاخیر تا همسایه هایش را بداند. و یا حداقل ، اندازه تقریبی آن مشخص باشد مستقیم، ترین راه برای تعیین این تاخیر، ارسال بسته ECHO ویژهای در خط است که طرف دیگر آن را فوراً برگرداند، با اندازه گیری زمان رفت وبرگشت و تقسیم ان بردو ، مسیریابفرستنده میتواند تخمین معقولی از تاخیر را به دست اورد حتی برای نتایج بهتر، این کار میتوان چند بار انجام داد و میانگین را مورد استفاده قراردارد. در این روش به طور ضمنی فرض میشودکه تاخیرها متقارن اند. درحالی که همیشه این طور نیست.
موضوع جالب این است که آیا هنگام اندازه گیری تاخیر، با را باید درنظر گرفت یا خیر برای در نظر گرفتن بار، تایمر رفت وبرگشت باید از زمانی که ECHO در صف قرار میگیرد. شروع به کار کند برای صرف نظر از بار،تایمر رفت وبرگشت باید از زمانی که ECHO به جلوی صف رسیده باشد.
هر دو روش بحث هایی را میطلبد معنای به حساب آوردن تاخیرهای مربوط به ترافیک ، این است که وقتی مسیریاب دو خط با پهنای باند مساوی را در پیش روا داشته باشد، به طوری که یکی از آنها همواره تحت بار سنگین قراردارد و دیگری این این طور نباشد مسیر مربوط به خط فاقد بار را به عنوان مسیر کوتاهتر در نظر میگیرد. این روش کارایی بهتری دارد متاسفانه با در نظر گرفتن بار در محاسبات تاخیر مخالفت هایی صورت گرفت زیر شبکه شکل 8 را در نظر بگیرید که به دو بخش شرقی و غربی تقسیم شده است و توسط دو خط CF-, EI به هم متصل شدهاند فرض کنید بیشترین ترافیک بین شرق غرب از خط ترافیک شرقی – غربی از طریق EI منتقل میشودو بار ان افزون میگردد. در نتیجه در بازسازی بعدی، CF کوتاهترین مسیر خواهد بود. لذا امکان دارد جدولهای مسیر یابی شدیدا تغییر میکنندو منجر به مسیر یابی غیر عادی و بسیاری از مشکلات دیگر شوند. اگر از بار صرف نظر شودو فقط پنهای باند منظور گردد، این مشکل نمیآید از طرف دیگر بار میتواند در هر دو خط پخش شود. اما این راه حل ، بهترین مسیر را مورد استفاده قرار نمیدهد با این وجود برای اجتناب از برخورد در انتخاب بهترین مسیر، معقول است که بار در چندین خط توزیع شود.
فرمت این مقاله به صورت Word و با قابلیت ویرایش میباشد
تعداد صفحات این مقاله 142 صفحه
پس از پرداخت ، میتوانید مقاله را به صورت انلاین دانلود کنید
دانلود مقاله الگوریتمهای مسیریابی