Uzaklık Vektörü Algoritması Dx(y) = x’den y’ye en az maliyetin kestirimi X düğümü her komşusuna olan maliyeti bilir v: c(x,v) X düğümü bir uzaklık vektörüne sahiptir Dx = [Dx(y): y є N ] x düğümü komşularının uzaklık vektörlerine de sahiptir Her komşu v için, x Dv = [Dv(y): y є N ] uzaklık vektörüne sahiptir Network Layer
Uzaklık Vektörü Algoritması Temel fikir: Her düğüm periyodik olarak kendi uzaklık vektörü tahminlerini komşularına gönderir X düğümü yeni DV tahminini aldığında kendi tablosunu B-F eşitliğini kullanarak günceller: Dx(y) ← minv{c(x,v) + Dv(y)} her y ∊ N düğümü için Normal olarak Dx(y) asıl en az maliyet olan dx(y)’ye yakınsar Network Layer
Uzaklık Vektörü Algoritması Tekrarlı, asenkron: her yerel tekrar: Yerel link maliyet değişiminde Komşudan gelen DV güncelleme durumunda yapılır. Dağıtık: Her düğüm komşusunu sadece kendi DV’si değişince bilgilendirir komşular sonra eğer gerekirse kendi komşularını bilgilendirir Her düğüm: bekle ( yerel link maliyetindeki değişim ya da komşunun güncellemesi için) Yeniden hesapla (tahminleri) Eğer DV değişirse komşuları uyar Network Layer
z y x Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 3 Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2 x düğüm tablosu x y z x y z 0 2 7 ∞ kaynak hedef hedef x y z x 2 3 kaynak y 2 0 1 z 7 1 0 y düğüm tablosu hedef x z 1 2 7 y x y z x ∞ ∞ ∞ 2 0 1 kaynak y z ∞ ∞ ∞ z düğüm tablosu hedef x y z x ∞ ∞ ∞ kaynak y ∞ ∞ ∞ z 7 1 zaman Network Layer
z y x Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)} = min{2+1 , 7+0} = 3 Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2 node x table x y z x y z 0 2 7 ∞ from cost to cost to cost to x y z x y z x 0 2 3 x 0 2 3 from y 2 0 1 from y 2 0 1 z 7 1 0 z 3 1 0 node y table cost to cost to cost to x z 1 2 7 y x y z x y z x y z x ∞ ∞ x 0 2 7 ∞ 2 0 1 x 0 2 3 y from y from 2 0 1 from y 2 0 1 z z ∞ ∞ ∞ 7 1 0 z 3 1 0 node z table cost to cost to cost to x y z x y z x y z x 0 2 7 x 0 2 3 x ∞ ∞ ∞ from y from y 2 0 1 from y 2 0 1 ∞ ∞ ∞ z z z 3 1 0 3 1 0 7 1 zaman Network Layer
Uzaklık Vektörü: link maliyet değişimleri Link cost changes: Düğüm yerel maliyet değişimini algılar Yönlendirme bilgisini günceller ve maliyeti yeniden hesaplar Eğer DV değişirse komşularını bilgilendirir x z 1 4 50 y t0 anında, y maliyet değişimini algılar, DV’sini günceller, Ve komşularına haber verir. “iyi haber çabuk yayılır” t1 anında, z y’den güncellemeyi alır ve tablosunu günceller. X’e yeni en az maliyeti hesaplar ve komşularına gönderir t2 anında, y z’den güncellemeyi alır ve kendi tablosunu günceller. y’nin en az maliyetleri değişmez. Dolayısıyla y z’ye mesaj göndermez. Network Layer
Uzaklık Vektörü: link maliyet değişimleri İyi haber çabuk yayılır Kötü haber yavaş yayılır - “sonsuza sayma” problemi! Algoritma kararlı hale gelmeden önce 44 tekrar gerekir Zehirli tersleme: If Z X’e gitmek için Y’den geçiyorsa : Z Y’ye kendisinin X’e uzaklığının sonsuz olduğunu söyler (dolayısıyla Y X’e Z üzerinden yönlendirme yapmaz) Bu sonsuza sayma problemini tamamiyle halleder mi? x z 1 4 50 y 60 Network Layer
LS ve DV algoritmalarının karşılaştırılması Mesaj karmaşıklığı LS: n düğüm ve E link için, O(nE) mesaj gönderilir DV: esadece komşular arasında değişim Yakınsama zamanı değişir Yakınsama hızı LS: O(n2) algoritma O(nE) mesaj gerektirir Osilasyonlar olabilir DV: Yakınsama zamanı değişir Döngüde yönlendirebilir Sonsuza sayma problemi Sağlamlık: Eğer yönlendirici hatalı çalışırsa ne olur? LS: Düğüm yanlış link maliyeti bildirebilir Her düğüm sadece kendi tablosunu hesaplar DV: DV düğümü yanlış yol maliyeti bildirebilir Her düğümün tablosu diğerleri tarafından kullanılır Hata ağ boyunca yayılır Network Layer