fault tolerant broadcast of routing information
play

Fault-Tolerant Broadcast of Routing Information Radia Perlman - PowerPoint PPT Presentation

Fault-Tolerant Broadcast of Routing Information Radia Perlman Digital Equipment Corp. Computer Networks (1983) Presented by: Yusuf Sarwar 1 ARPANET routing Uses Link State Routing protocol link information (link state packets) to


  1. Fault-Tolerant Broadcast of Routing Information Radia Perlman Digital Equipment Corp. Computer Networks (1983) Presented by: Yusuf Sarwar 1

  2. ARPANET routing • Uses Link State Routing protocol – link information (link state packets) to neighbors are broadcasted to all nodes • By “Flooding” • By “Flooding” • Issues link updates now and then • How to recognize the most recent info? – Global clock • Not quite possible in practice – Local clock • Can have arbitrary skew, and have no global meaning 2

  3. Sequence number • A counter – Possibly large (64 bits) – Incremented each time a link packet is generated • Counter may reach to the maximum value – Can be reset • How to tell all nodes to reset, … – Wrap around • Which is newer, which is older, … • The problem: using seq field, how to manage link updates in the presence of failures 3

  4. Circular sequence number 0 (n) 0 (n) a a # b a + n /2 a < # a > b or b < a ? 4

  5. A quick test Is a < b ? 0 (n) 0 (n) 0 (n) b a a a a a b b 5

  6. A quick test Is a < b ? 0 (n) 0 (n) 0 (n) b a a a a a b b YES 6

  7. A quick test Is a < b ? 0 (n) 0 (n) 0 (n) b a a a a a b b NO YES 7

  8. A quick test Is a < b ? 0 (n) 0 (n) 0 (n) b a a a a a b b NO YES YES 8

  9. Seq. number + Aging • Only sequence number is not enough • There are some problems: – Node goes down and comes back – Network partition – Network partition – Corrupted sequence number • Aging is required – A life-time after which link packet expires • Possibly before seq number wraps around 9

  10. ARPANET routing • MIN-INT: interval between two link packets • MAX-AGE: maximum age, set at source and decremented at others (at every 8 seconds) Seq Age … Seq Age … MAX-AGE Time K + 1 K + 2 K + n /2 K MIN-INT Should not issue more than n/2 packets within MAX-AGE i.e., MAX-AGE / MIN-INT < n /2 10

  11. Problems and fixes • Immortal packets: – Packets that become neither older nor aged – Due to non-aging (holding packets less than 8 seconds) seconds) – Solution: Decrement age with some probability • Premature aging and old packets: – Packets are aged out far before they reach all nodes, or already expired – Solution: Floods the packets with zero age 11

  12. RESTART-TIME • If node restarts after a failure, they cannot send link packets immediately – Don’t know what sequence to use – Have to wait until all previous packets die out – Have to wait until all previous packets die out • Usually, RESTART-TIME > MAX-AGE • This introduces delay in update propagation 12

  13. RESTART-TIME elimination • Three modifications eliminate this waiting – ‘lollipop-shaped’ seq number instead of circular • Allows nodes to start with some seq right away – Send a stored packet to neighbor in response to receipt of an older packet • catches the latest sequence number immediately without waiting for long time – Quick obtaining of all information upon restarting 13

  14. Lollipop-shaped seq space • Circular seq space does not have the smallest seq number 0( n ) • Instead, nodes start from – K , -1 proceeds to 0-n cycle - 2 - 2 – Once in the cycle, remain there – # – K must be smaller than any on- going update • K > MAX-AGE / MIN-INT - K +1 – Node should not be in cycle until - K MAX-AGE elapses 14

  15. How does “Lollipop”help? A sent # b and # b+1 before failure B # - K B 0( n ) A: # b # b … A -1 - 2 - K +1 A - K 15

  16. How does “Lollipop”help? A sent # b and # b+1 before failure B # - K B 0( n ) A: # b # b … A -1 - 2 # b + 1 A C A: ( b +1) … - K +1 # b + 1: confusion A - K # b + 1 < # b +1: confusion < # b + 2 16

  17. Obtaining info after restart • Two alternatives: – The restarted node sends all neighbors “I haven’t ACKed any link state packet, so send them all” – Node A marks B, as line to B goes down and A does not receive ACKs to B • As soon as, B arrives, A sends all current link states to B 17

  18. Summary • Proposes a sequencing technique to handle updated flooding of link state packets – No artificial delay on restart – Less reliance of timers, timers are less prone to – Less reliance of timers, timers are less prone to fire, only on rare events 18

  19. Discussions • What could be the other alternatives to “Lollipop” to eliminate RESTART-TIME? • How to choose parameter values, MAX-AGE • How to choose parameter values, MAX-AGE and MIN-INT? • What are the security implications? 19

  20. Thanks 20

  21. ARPANET approach • Source node – issues link packets at MIN-INT intervals – increments sequence number, seq new = seq old +1 – sets the age field to MAX-AGE (64 seconds) • Receiving node – accepts, stores and floods, if the packet is newer • If the same or older, discard! – decrements ‘age’ in every 8 seconds (clock resolution) • If age becomes zero, holds in database, but does not flood 21

  22. Problems and fixes (cont.) • Old packets – Nodes hold old packets, since they don’t get a new one from the source • But, update may not reach due to routing failure • But, update may not reach due to routing failure – Node holds packets upto MAX-AGE, then? – Solution: Synchronized expiration • Expired packets are flooded with age = 0 • If the seq number is matched with an unexpired one, accept the zero-aged one and flood – Otherwise, discard the packet 22

  23. Other issues • Packets checksum – To detect duplicate of packets • Accidental change to confusion bits • Selecting parameter values • Selecting parameter values – Conflicting goals in MAX-AGE, MAX-INT, MIN-INT 23

Recommend


More recommend