  | 
      | 
      | 
      | 
      | 
      | 
      | 
      | 
      | 
      | 
      | 
      | 
      | 
      | 
      | 
      | 
      | 
   
   
    | n | 
    Each
    node maintains a set of triples: 
     | 
     | 
   
   
     | 
   
   
     | 
    (Destination,
    Cost, NextHop) 
     | 
     | 
   
   
     | 
   
   
    | n | 
    Each
    node sends updates to (and receives updates from) its 
     | 
   
   
     | 
   
   
     | 
    directly
    connected neightbors 
     | 
     | 
   
   
     | 
   
   
     | 
    – | 
    periodically
    (on the order of several seconds) 
     | 
     | 
   
   
     | 
   
   
     | 
    – | 
    whenever
    its table changes (called triggered update) 
     | 
     | 
   
   
     | 
   
   
    | n | 
    Each
    update is a list of pairs: 
     | 
     | 
   
   
     | 
   
   
     | 
    (Destination,
    Cost) 
     | 
     | 
   
   
     | 
   
   
    | n | 
    Update
    local table if receive a “better” route 
     | 
     | 
   
   
     | 
   
   
     | 
    – | 
    smaller
    cost 
     | 
     | 
   
   
     | 
   
   
     | 
    – | 
    came
    from next-hop 
     | 
     | 
   
   
     | 
   
   
    | n | 
    Refresh
    existing routes; delete if they time out 
     | 
     |