CS419: Computer NetworksLecture 5, Part 2: Feb 16, 2005Internet Routing:CS419This is a graphCS419Networks can be modeled as a graphCS419Trees on graphs| You can superimpose a directed tree on a graphz No loops (or cycles)| This tree is rooted at a destination| Every directed edge (link) in this tree represents a “next hop”| Forming these trees (per destination) is the essence of the routing problem| By the way, what do you get if you reverse the directions of the tree edges?CS419Trees on graphs| Lots of trees are possible| Two of interest:z Shortest path spanning tree• Sum of weights on links from any node to destination is the smallestz Minimum weight spanning tree• Sum of weights of all links is the smallest| In the internet, we calculate shortest pathsCS419Setting costs on links| Each “link” is actually two unidirectional linksz But we’ll pretend they are bidirectional in the lecture for convenience| One way: set link cost as the inverse of the BWz i.e., take highest BW link, give it a cost of one, weight all other links inverse proportionally| Does this work?CS419Setting costs on links| Ultimate goal is to balance traffic over linksz No overloaded or underloaded links| Load on links depends on traffic matrixz That is, amount of traffic between every src-dest pair| In practice, costs are “hand tuned” to get good balancez Of course, BW is added or removed as needed| Link underloaded? Lower its cost a bit . . .CS419Can we dynamically set costs?| Measure volume of traffic, increase cost as volume increases, decrease cost as volume decreases| It turns out that this is hard to get rightz Route oscillations---must be dampedCS419Can we dynamically set costs?| If network is lightly loaded, traffic-sensitive routing doesn’t helpz All routes are good| If network is overloaded, traffic-sensitive routing also doesn’t helpz Alternate routes also bad| What you really want is to throttle sources at times of overload. This is the big win.CS419Multiple link metrics?| What if we care about BW and latency and MTU and QoS???| Many people have studied multi-metric routingz It gets complex, and it is hard to figure out what to do with it| In practice: Over-provision, throttle sources!CS419Three classes of IP routing algorithm in the Internet today| Distance-vectorz RIP| Distance-pathz A variant of distance-vectorz BGP| Link-statez OSPF, IS-ISCS419Distance Vector| Also known as Bellman-Ford| Each node’s routing table:z The distance to each destination via each neighbor| Building the forwarding table:z The next hop to each destination is the neighbor with the shortest distance| The algorithm:z Periodically tell each neighbor the shortest distance to all destinationsz This is the so-called “distance vector”CS419Example RIB, FIB, and routing update messageCS419Examples| Show establishment of tree| Show link addition and changes in tree| Show link deletion and changes in tree| Show node removal and count-to-infinityCS419ExamplesCS419Count-to-infinity fix| Split horizonz Don’t advertise reachability to a neighbor if the destination is reached via that neighbor| Also triggered updatesz Instantly report changes (not just periodically)z Count-to-infinity fast!| This fixes “ping-pong” CTI, but doesn’t solve the general problem…CS419Example with split horizonCS419RIP-2 header (RFC 2453)0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Address Family Identifier (2) | Route Tag (2) |+-------------------------------+-------------------------------+ | IP Address (4) | +---------------------------------------------------------------+| Subnet Mask (4) | +---------------------------------------------------------------+| Next Hop (4) | +---------------------------------------------------------------+| Metric (4) | +---------------------------------------------------------------+CS419Distance-path| The problem with distance-vector is that a node never knows whether a path loops back through itself| With distance-path algorithm, the entire path to the destination is reportedz This is not so much overhead, because network diameters are generally smallCS419Distance-path exampleCS419Distance-path pros and cons| New paths have to be advertised even when the distance doesn’t changez More traffic overhead…this has caused havoc in BGP| More policy control (BGP)z Path is known, so can make more intelligent selection among alternativesz But still “hostage” to policy decisions made before you in the
View Full Document