شبکههای کامپیوتری/مسیریابی: تفاوت میان نسخهها
محتوای حذفشده محتوای افزودهشده
بدون خلاصۀ ویرایش |
بدون خلاصۀ ویرایش |
||
خط ۱۱۳:
[[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 />
<br />
{| border=1 cellpadding=5 cellspacing=0 style="text-align: center; background-color: #FFFFDD;"
سطر ۱۵۳ ⟵ ۱۵۶:
|-
| G || <math>\infty</math> || -
|}
در مرحله بعد، هر گره یک پیام را به گره های متصل ارسال می کند. این پیام حاوی لیستی از فاصله هر گره تا گره های دیگر است. به عنوان مثال، گره F به گره A می گوید که می تواند با هزینه 1 به گره G برسد. گره A همچنین می داند که با هزینه ی 1 می تواند به F برسد، بنابراین این هزینه را برای هزینۀ رسیدن به G با استفاده از F می افزاید. از آنجائیکه هزینه فعلی بی نهایت است و 2 کمتر، بنابراین گره A می گوید که می تواند از طریق F به G با هزینه 2 برسد. گره A از گره C می آموزد که گره B را می توان از گره C با هزینه ی 1 رد کرد، بنابراین نتیجه می شود که هزینه رسیدن به B از طریق گره C هزینه 2 در بردارد. از آنجا که این هزینه ، بهینه تر ازهزینه فعلی رسیدن به B که در حال حاضر1 است نمی باشد، اطلاعات جدید نادیده گرفته می شود. جدول نهایی نهایی در گره A در زیر نشان داده شده است:
{| border=1 cellpadding=5 cellspacing=0 style="text-align: center; background-color: #FFFFDD;"
سطر ۱۷۳ ⟵ ۱۷۶:
|}
فرایند دریافت اطلاعات مسیر یابی سازگار به تمام گره ها همگام سازی نامیده می شود. مجموعه نهایی هزینه ها از هر گره به تمام گره های دیگر در جدول زیر نشان داده شده است:
<br />
{| border=1 cellpadding=5 cellspacing=0 style="text-align: center; background-color: #FFFFDD;"
سطر ۱۹۵ ⟵ ۲۰۰:
|-
! G || 2 || 3 || 2 || 1 || 3 || 1 || 0
|}
یکی از مشکلات با الگوریتم های بردار فاصله، "شمارش تا بی نهایت" نامیده می شود. بگذارید مشکل زیر را با یک مثال بررسی کنیم:
یک شبکه را با یک گراف در زیر نشان دهید. تنها یک اتصال بین D و سایر قسمت های شبکه وجود دارد.
[[Image:Dijkstra algorithm example 13.svg]] ▼
{| border=1 cellpadding=10 cellspacing=0 style="text-align: center; background-color: #FFFFDD;" ▼
▲[[Image:Dijkstra algorithm example 13.svg]]
▲{| border=1 cellpadding=10 cellspacing=0 style="text-align: center; background-color: #FFFFDD;"
|-
! !! A !! B !! C !! D
سطر ۲۲۸ ⟵ ۲۲۶:
|}
در حال حاضر لینک C به D دچار تصادم است زیرا برای ارسال بسته با آدرس D باید از لینک CD استفاده شود ، اما اگر گره D در حال ارسال اطلاعات باشد، هزینه ∞ = [C] [D] میشود،
بنابراین گره C باید بردار فاصله خود را مجددا محاسبه و مسیری را انتخاب کند . به همین ترتیب گره D باید بردارهای خود را بروزرسانی کند. پس از به روزرسانی بردارهای خود در C و D، ما داریم :
{| border=1 cellpadding=10 cellspacing=0 style="text-align: center; background-color: #FFFFDD;"
سطر ۲۵۱ ⟵ ۲۴۷:
|}
گره C گره B را به عنوان بهترین مسیر به گره D با هزینه 3 میشناسد، زمانی که گره C بردارهای خود را به گره B ارسال میکند، گره B می فهمد که انتخاب قبلی خود برای ارسال اطلاعات به گره D از طریق گره C هزینه بیشتری دربر دارد بنابراین گره B باید بردارهای خود را دوباره محاسبه کند.
{| border=1 cellpadding=10 cellspacing=0 style="text-align: center; background-color: #FFFFDD;"
|-
|