180 likes | 216 Views
Switch controller: Routing. Malathi Veeraraghavan University of Virginia. Connectionless packet switch Routing Forwarding Summarized (aggregated) addresses Control path and data path Path computation: Dijkstra’s algorithm Examples used in practice.
E N D
Switch controller: Routing Malathi Veeraraghavan University of Virginia • Connectionless packet switch • Routing • Forwarding • Summarized (aggregated) addresses • Control path and data path • Path computation: Dijkstra’s algorithm • Examples used in practice
A network of connectionless packet switches • Control path: Routing (determine paths) • Switch controllers exchange routing information • Precompute forwarding tables • Data path: Forwarding (send packets) • Packets are switched from link to link across each switch
Goal of routing algorithms • Find "shortest" path on which to route packets or circuits, where the shortest path is determined by some metric, e.g.: • minimum-weight path (add link weights) • minimum end-to-end delay • path with the most available bandwidth • The algorithm should adapt to changes in • topology (includes administrator-set link weights) • reachability • identify the switch through which a destination address can be reached • destination could be several hops away • loading conditions
Analogy • In the roadways transportation network, where does a driver obtain the three types of routing information: • topology information? • reachability information? • loading information?
Difference between topology and reachability information • Relative to Switch IV: • Topology information: Switch IV has links to hosts IV-A & IV-B (in addition to links to other switches) • Reachability information: Switch IV can reach hosts III-B and III-C, host I-A • addresses that are more than one hop away • implicit: reachability to directly connected hosts (part of topology information) Switch II Host III-B Host I-A Switch III Switch I Host III-C Switch IV Host IV-A Host IV-B
One approach:Routing protocol exchanges + Forwarding table precomputation • Link-state routing protocols • Routing protocol exchanges • Switch controllers send/receive routing protocol messages to exchange information about topology, reachability and loading conditions with each other • Each switch controller thus acquires a picture of the whole network • Forwarding table pre-computation • Each switch controller then executes a shortest-path algorithm, such as Dijkstra's algorithm, to compute the shortest paths from its switch to all other switches • Each switch controller then updates a forwarding table, which shows the next-hop and/or output port for each destination address
Summarized addresses • What are summarized addresses? • An address that represents a group of endpoint addresses • e.g., all 434 numbers, 128.143 IP addresses • Why summarize addresses? • To reduce forwarding table sizes – hold one entry for a summarized address instead of a large number of individual addresses • To reduce routing message lengths that convey reachability information
Dest. Next hop III-B III-B III-C III-C Dest. Next hop III-* III Control path: Routing protocol exchanges + forwarding table pre-computation • I, II, III, IV: switches • Link weights are shown next to links • Host interface addresses are derived from switch addresses (e.g. I-A is connected to switch I) • A few example forwarding table entries shown at switches I, III, IV • III-*: summarized address for all hosts connected to switch III II 4 5 1 Host I-A Host III-B I III 1 1 IV Host III-C Dest. Next hop III-* IV Forwarding table (will have other entries)
Dest. Next hop III-B III-B III-C III-C Dest. Next hop III-* III Data path: User-data transfer(e.g., packet destined to Host III-B) Packet header Packet payload III-B II III-B Host I-A III-B I III-B III Host III-B IV Dest. Next hop III-* IV Host III-C • Packet header carries destination host interface address (unchanged as it passes hop by hop) • Each packet switch does a forwarding table lookup to determine the outgoing next hop switch
Next-hop and/or output ports in forwarding table 4 Switch II 5 Host III-B Host I-A b a Switch III 1 Switch I b c 1 a Host III-C c 1 Switch IV d e Host IV-A Host IV-B link weight Forwarding table (will have other entries) Dest. Next hop Output port Output port Dest. Next hop IV-A IV-B IV-A III ? ? ? ? III-* c III-* IV Forwarding table (will have other entries)
Forwarding table precomputation: Dijkstra’s algorithm • Find shortest paths from source node s to all other nodes. • At each iteration, determine the “next closest node ” from the source s. • For each node that is still not in set M (the set containing nodes to which shortest paths from the source have already been computed), determine if its current distance from s is shorter than the path routed via the selected “next closest node. ” • Find the “next closest node” after finding all the distances. • Move “next closest node ” into set M. • When the set M has all the nodes, stop. "Node" in this application of Dijkstra's algorithm represents a network "Switch."
Dijkstra's algorithm s: source node. wsn:administrator-set link weight for the link from node s to node n M = {s}; for each n M Dn = wsn; while (M all nodes) do Find i M for which Di = min{Dj ; j M}; Add i to M; for each n M Dn = mini [ Dn, Di + win ]; Update route; enddo
Example 5 Administrator-set link weights 2 3 3 5 2 3 1 1 6 2 w56=2 1 2 4 5 1
List path weight and route Simple shortest path: Only static administrator-set link weights considered Loading information not considered in this computation of shortest paths
Resulting forwarding table Forwarding table at node 1Destination Next Hop 2 2 3 4 4 4 5 4 6 4
Examples used in practice • Addressing • IP-routed networks (e.g., Internet) • 4-byte IP addresses • Hierarchical addresses • Address summarization done • Ethernet switched network • 6-byte MAC address • Flat addresses • No address summarization
Examples used in practice • IP-routed networks (e.g., Internet) • Routing protocols • Open Path Shortest First (OSPF) • Border Gateway Protocol (BGP) • Ethernet switched networks • Forwarding table is built up as Ethernet frames are forwarded