Distance vector routing — RIP, Bellman-Ford, count-to-infinity
4.3.15· Coding › Computer Networks
KYA hai Distance Vector Routing?
Isse Link-State routing (OSPF) se compare karo, jisme har router poori topology jaanta hai. DV global knowledge ki jagah simplicity choose karta hai: "sirf neighbours ko batao, sab kuch batao."
Sirf neighbours ke saath share kyun? Kyunki ek router physically sirf apne direct neighbours ka cost measure kar sakta hai (link cost). Usse aage ki sab cheez doosre se sun ke seekhni padti hai. Toh information dhire dhire bahar failti hai, ek hop per exchange.
KAISE: Bellman-Ford update scratch se derive karna
Maano = node se node tak ka sabse sasta cost. Maano = ke neighbour tak ka direct link cost.
Step 1 — first principles. se tak ka koi bhi path (jab ) kisi na kisi neighbour se hoke guzrega. Jab aap se jaane ka decision le lete ho, toh uske baad best aap kar sakte ho (jo khud tak pahunchne ka best kar sakta hai).
Step 2 — se jaane ka cost. Yeh step kyun? Total = ( tak pahunchne ki kimat) + ( ke paas journey finish karne ki best kimat).
Step 3 — best neighbour choose karo. Kyunki hum sabse sasta path chahte hain aur pata nahi kaun sa neighbour best hai, hum sab neighbours par minimise karte hain:
Yeh correct kyun hai? Yeh sirf optimality ka principle hai: ek shortest path ke sub-paths bhi shortest hote hain. Agar tak best route jaata hai, toh portion khud ka tak shortest route hona chahiye — warna hum ek sasta tail swap kar ke apne hi "shortest" path ko beat kar sakte hain (contradiction).
Distributed twist: node khud compute nahi karta — apne distance-vector message mein ko apna current estimate batata hai. Toh practically har router yeh chalata hai: jahan woh latest estimate hai jo ne se receive ki hai ke liye. Jab bhi koi change hota hai, apna naya vector neighbours ko broadcast karta hai.

RIP — real-world DV protocol
Key RIP facts (WHY woh hain):
| Feature | Value | Kyun |
|---|---|---|
| Metric | hop count (1 per link) | simple, bandwidth measurement ki zaroorat nahi |
| Max valid cost | 15 | 16 ka cost = ∞ (unreachable) → count-to-infinity ko cap karta hai |
| Update period | har 30 s | periodic full-vector broadcast to neighbours |
| Route timeout | 180 s | agar 6 periods mein koi update nahi, route dead declare |
| Transport | UDP 520 | lightweight; missing updates agli period mein fix ho jaate hain |
Count-to-Infinity Problem
KAISE hota hai (HAR STEP KYUN): Socho A — B — C, sab link costs 1.
- Steady state: tak cost 1 pe pahunchta hai (direct); tak cost 2 pe pahunchta hai B ke zariye.
- Link B–C toot jaata hai.
- ko ab ko unreachable dekhna chahiye. Lekin ne haal hi mein ko bataya tha: "Main C tak cost 2 pe pahunch sakta hoon!" — ko nahi pata ki ka C ka route B se hi hoke jaata tha.
- Toh sochta hai: "Main C tak A se jaaunga: cost ." (GALAT — woh path loop karta hai .)
- ko batata hai "C 3 pe hai", toh update karta hai "C via B cost pe"… aur woh ping-pong karte hain: 5, 6, 7 … 16 = ∞ tak.
Root cause: ek router route wapas usi neighbour ko advertise karta hai jisse usne seekha tha.
Fixes
Worked Example 1 — ek Bellman-Ford update
Network: A—B=2, B—C=3, A—C=7. ka tak cost nikalo.
- ke neighbours: (cost 2) aur (cost 7).
- se: . Kyun? Destination tak direct link.
- se: . Kyun? ne already advertise kiya tha ki woh tak 3 pe pahunchta hai.
- , next-hop . B kyun? Dono options mein yeh sasta hai.
Worked Example 2 — count-to-infinity trace
A—B—C, costs 1. Link B–C toot jaata hai. "C tak cost" ke tables:
| Exchange | Kyun | ||
|---|---|---|---|
| break se pehle | 1 (direct) | 2 (via B) | steady state |
| break, no split horizon | 3 (via A!) | 2 | B ke stale "2" par trust karta hai |
| agli baar | 3 | 4 (via B) | A, B ke "3" par trust karta hai |
| … | 5 | 6 | ping-pong |
| eventually | 16=∞ | 16=∞ | RIP cap rok deta hai |
Yeh disaster kyun hai: jab tak woh 16 nahi hit karte, C ke packets A↔B mein forever loop hote hain.
Worked Example 3 — split horizon rokta hai
Same break, split horizon ke saath: ne C B ke zariye seekha tha, toh ko "C = ∞" advertise karta hai. Ab jab B–C toot ta hai, ke paas koi false alternative nahi (A ne use ∞ bataya), toh turant C ko unreachable mark karta hai. Kyun kaam karta hai: looping estimate kabhi inject hi nahi hua wapas.
Flashcards
What equation does distance vector routing implement?
In DV routing, what does each router send and to whom?
What metric and transport does RIP use?
In RIP, what cost value means "unreachable"?
What is count-to-infinity?
Root cause of count-to-infinity?
What is split horizon?
What is poison reverse?
Why doesn't split horizon fully solve count-to-infinity?
How many exchanges until DV converges in an n-node network (no failures)?
RIP route timeout period?
Why does "good news travel fast but bad news slow"?
Recall Feynman: 12-saal ke bachche ko samjhao
Socho ek line mein bachche hain, har ek sirf apne saath wale se whisper kar sakta hai. Tum chahte ho ki sabko pata chale "candy shop kitne steps door hai." Jo bachcha shop par hai woh kehta hai "0 steps." Uska neighbour "0" sunke kehta hai "Main 1 step hoon." Har bachcha bas apne sunne wale sabse chhote number mein 1 add karke aage bhejta hai. Jald hi sabko apni distance pata chal jaati hai — bina kisi ne poori map dekhe! Problem yeh hai: agar shop achanak band ho jaaye, ek bachcha phir bhi purana "Main shop ke paas hoon" whisper sun sakta hai ek doost se jiska raasta usse hoke gaya tha. Toh woh sochta hai "oh, main doost ke zariye shop jaaunga!" — lekin uska doost usse hoke ja raha tha. Woh 1, 1, 1 add karte rehte hain… forever count karte hain. Yeh rule ki "kisi doost ko woh route mat batao jo tumne usi doost se seekha" unhe saath mein silly hone se rokta hai.
Connections
- Link-State Routing (OSPF) — global-map alternative jo Dijkstra's Algorithm use karta hai
- Bellman-Ford Algorithm — graph-theory core (negative edges bhi handle karta hai, unlike Dijkstra)
- Principle of Optimality / Dynamic Programming — kyun shortest paths ke sub-paths bhi shortest hote hain
- BGP — ek path-vector protocol; scale par count-to-infinity theek karne ke liye full AS-paths advertise karta hai
- UDP — transport jis par RIP depend karta hai (port 520)
- Routing Tables and Next-Hop Forwarding