شبکههای کامپیوتری/مسیریابی: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
بدون خلاصۀ ویرایش |
بدون خلاصۀ ویرایش |
||
خط ۴۴:
الگوریتم فاصله راس ها از متریک به عنوان هزینه مسیر برای مشخص کردن بهترین مسیر (مسیری با کمترین هزینه) به مقصد استفاده می کند. زمانی که روتر از الگوریتم فاصله راس ها استفاده میکند ، هزینه ها توسط هر روتر جمع آوری
<math>M(i,k) = min [M(i,t) + M(t,k)]</math>
این فرمول بیان می دارد که بهترین مسیر بین دو شبکه
<math>5(A,C) = min[2(A,B) + 3(B,C)]</math>
خط ۵۸:
<math>6(A,C) = min[6(A,C)]</math>
این مثال نشان می دهد که چگونه الگوریتم های بردار فاصله از اطلاعات منتقل شده به آنها برای
[[Image:Dijkstra algorithm example 5.svg]]
خط ۱۰۵:
[[Image:Pic DV 1.svg]]
هزینه هر پیوند 1 تنظیم شده است. بنابراین، مسیری با کمترین هزینه، تنها مسیری است که هزینه آن کمترین باشد . جدول زیر نشان دهنده دانش هر گره از فاصله به تمام گره های دیگر است:<br />
سطر ۱۲۸ ⟵ ۱۲۷:
! G || <math>\infty</math> || <math>\infty</math> || <math>\infty</math> || 1 || <math>\infty</math> || 1 || 0
|}
در ابتدا، هر گره هزینه 1 را به گره هایی که مستقیما به آن متصل هستند و مقدار بی نهایت به تمامی گره های دیگر می دهد. در زیر جدول مسیریابی اولیه در گره A نشان داده شده است:<br />
خط ۱۴۷:
|}
در مرحله بعد، هر گره یک پیام را به گره های متصل ارسال می کند. این پیام حاوی لیستی از فاصله هر گره تا گره های دیگر است. به عنوان مثال، گره F به گره A می گوید که می تواند با هزینه 1 به گره G برسد. گره A همچنین می داند که با هزینه ی 1 می تواند به F برسد، بنابراین این هزینه را
{| border=1 cellpadding=5 cellspacing=0 style="text-align: center; background-color: #FFFFDD;"
خط ۱۶۵:
|}
فرایند دریافت اطلاعات مسیر یابی سازگار به تمام گره ها همگام سازی نامیده می شود. مجموعه نهایی هزینه ها از هر گره به تمام گره های دیگر در جدول زیر نشان داده شده است:<br />▼
▲فرایند دریافت اطلاعات مسیر یابی سازگار به تمام گره ها همگام سازی نامیده می شود. مجموعه نهایی هزینه ها از هر گره به تمام گره های دیگر در جدول زیر نشان داده شده است:
<br />▼
{| border=1 cellpadding=5 cellspacing=0 style="text-align: center; background-color: #FFFFDD;"
سطر ۱۹۱ ⟵ ۱۸۸:
|}
▲کی از مشکلات با الگوریتم های بردار فاصله، "شمارش تا بی نهایت" نامیده می شود. بگذارید مشکل زیر را با یک مثال بررسی کنیم:
یک شبکه را با یک گراف در زیر نشان دهید. تنها یک اتصال بین D و سایر قسمت های شبکه وجود دارد.
سطر ۲۱۶ ⟵ ۲۱۱:
|}
در حال حاضر لینک C به D دچار تصادم است
{| border=1 cellpadding=10 cellspacing=0 style="text-align: center; background-color: #FFFFDD;"
سطر ۲۳۴ ⟵ ۲۲۹:
| <math>\infty</math> || <math>\infty</math> || <math>\infty</math> || 0
|}
سطر ۲۵۶ ⟵ ۲۵۲:
|}
با توجه به سطر گره B می توان نتیجه گرفت که مسیریابی به گره D می تواند از طریق گره A یاگره C با هزینه مساوی انجام شود بنابراین گره B بردار خودرا به روزرسانی و ارسال می کند. هر دو گره A وC بردار به روز شده گره B را دریافت می کنند و متوجه میشوند که مسیرترجیحی خود به گره D در حال حاضر دارای هزینه بالایی است، بنابراین بردارهای خود را مجددا محاسبه میکنند.▼
▲<br />
▲با توجه به سطر گره B می توان نتیجه گرفت که مسیریابی به گره D می تواند از طریق گره A یاگره C با هزینه مساوی انجام شود بنابراین گره B بردار خودرا به روزرسانی و ارسال می کند. هر دو گره A وC بردار به روز شده گره B را دریافت می کنند و متوجه میشوند که مسیرترجیحی خود به گره D در حال حاضر دارای هزینه بالایی است، بنابراین بردارهای خود را مجددا محاسبه میکنند.
{| border=1 cellpadding=10 cellspacing=0 style="text-align: center; background-color: #FFFFDD;"
سطر ۲۷۷ ⟵ ۲۷۳:
|}
سپس گره A و C بردارهای خود را ارسال می کنند وگره B باید بردار خود را با توجه به بردارهای دریافتی دوباره به روزرسانی کند، و سپس اطلاعات خودرا برای آنها می فرستند که در اینجا با یک حلقه مواجح میشویم.▼
<br />▼
▲سپس گره A و C بردارهای خود را ارسال می کنند وگره B باید بردار خود را با توجه به بردارهای دریافتی دوباره به روزرسانی کند، و سپس اطلاعات خودرا برای آنها می فرستند که در اینجا با یک حلقه مواجح میشویم.
{| border=1 cellpadding=10 cellspacing=0 style="text-align: center; background-color: #FFFFDD;"
سطر ۲۹۷ ⟵ ۲۹۳:
| <math>\infty</math> || <math>\infty</math> || <math>\infty</math> || 0
|}
توجه داشته باشید که همچین برداری در واقعیت به ندرت پیش می آید:
سطر ۳۰۵ ⟵ ۳۰۲:
این حلقه تا زمانی که تمام گره ها متوجه شوند وزن لینک به گره D بی نهایت است ادامه پیدا میکند. به این ترتیب، کارشناسان می گویند که الگوریتم های بردار فاصله یک نرخ همگرایی آهسته دارند. در نتیجه، الگوریتم بردار فاصله الگوریتم کاملی (در حلقه گیر میکند و جواب درستی نمی دهد) نیست. یکی از راه حل های این مشکل این است که روترها اطلاعات را فقط برای همسایگان ارسال کنند که لینک منحصر به فردی به مقصد نداشته باشند. به عنوان مثال، در این مورد، گره B نباید به گره C اطلاعات مربوط به گره D را ارسال کند، زیرا گره C تنها راه برای رسیدن به گره D است.
▲<br />
== الگوریتم های حالت لینک (Link-State Algorithms) ==
|