Upload
elwin-knight
View
243
Download
0
Tags:
Embed Size (px)
Citation preview
WAN technologies and routing
• Packet switches and store and forward• Hierarchical addresses, routing and routing
tables• Routing table computation• Example WAN technologies
Categories of network technology
• Local Area Network (LAN)• Metropolitan Area Network (MAN)• Wide Area network (WAN)• Key distinguishing feature is scale:
– geographic distance AND– number of connected computers
Packet Switches• In order to grow, WANs use many switches• Basic component is the packet switch that
can connect to local computers and to other packet switches
WAN topology• Chosen to accommodate expected traffic
and to provide redundancy
Store and forward
• Each switch receives packets, queues them in its memory and then sends them out when possible (i.e., when the destination is available)
• Many computers can send packets simultaneously
Physical addressing in a WAN
• A WAN defines a frame format and assigns physical addresses to its computers
• Hierarchical addressing, e.g.,– first part identifies packet switch– second part identifies computer on this switch
switch 1 switch 2
A
B
C
D
[1,2]
[1,5]
[2,2]
[2,6]
address
Next hop forwarding
• A packet switch determines the destination for each packet from the destination address– local computer or– another packet switch
• Only has information about how to reach the next switch - next hop
• This is held in a routing table
Example routing table
A
B
C
D
E F
S1
S2
S3
Routing table for S2Destination Next Hop
[1,2] interface 1[1,5] interface 1[3,2] interface 4[3,5] interface 4[2,1] computer E[2,6] computer F
[1,2]
[1,5]
[2,1] [2,6]
[3,2]
[3,5]
Source independence
• The next hop depends upon the destination address but not on the source address
Hierarchical addresses and routing• Routing is the process of forwarding a
packet to its next hop• Hierarchical addresses simplify routing
– smaller routing tables– more efficient look up
Routing in a WAN
• Large WANs use interior switches and exterior switches
• Their routing tables must guarantee that– Universal routing - there must be a next hop for
every possible destination– Optimal routes - the next hop must point to the
“shortest path” to the destination
Default routes• A routing table may be simplified by including
(at most) one default route
Switch 1Destn next hop1 -* interface 3
Switch 2Destn next hop2 -4 interface 4* interface 3
Switch 3Destn next hop3 -• interface 2• interface 34 interface 4
Routing table computation
• Manual computation is not feasible for large networks
• Static routing - program computes and installs routes when a switch boots; these routes do not change.
• Dynamic routing - program builds an initial table when the switch boots; this alters as conditions change.
WANs and graphs• A Wan can be modelled as a graph• Nodes are switches: 1, 2, 3, 4• Edges are connections between switches: (1,3) (2,3) (2,4) (3,4)• Weights are ‘distance’ along a connection
Computing the shortest path
• Dijkstra’s algorithm - find the distance from a source node to each other node in a graph
• Run this for each switch and create next-hop routing table as part of the process
• “Distance” represented by weights on edges
Example of the shortest path
Dijkstra’s algorithm• S = set of nodes, labelled with current distance
from source, but for which minimum distance is not yet known
• Initialise S to everything but the source• Iterate:
– select the node, u, from S that has smallest current distance from source
– examine each neighbour of u and if distance to the neighbour from source is less via u than is currently recorded in S then update
Implementation
• Data structure to store information about the graph (nodes and edges)
• Integer labels for the nodes [1..n]• Three data structures:
– current distance to each node - array - D[1..n]– next hop destination for each node array - R[1..n]– set S of remaining nodes - linked list - S
• weight(i, j) function (infinity if no edge)
Given:a graph with nonnegative weight assigned to each edge and a designated source node
Compute:the shortest distance from the source node to each other node and a next-hop routing table
Method:Initialise the set S to contain all nodes except the sourceInitialise D so that D[u] = weight(source, u)Initialise R so that R[v] = v if there is an edge from the source to v and zero otherwise
while ( set S is not empty ) {choose a node u from S such that D[u] is minimumif ( D[u] is infinity ) {
error: no path exists to nodes in S; quit}delete u from set Sfor each node v such that (u, v) is an edge {
if v still in S {c = D[u] + weight (u,v);if c < D[v] {
R[v] = R[u]D[v] = c;
}}
}}
Example
S = { 1, 2, 3, 4, 5, 6, 7 }
Distance D1 2 3 4 5 6 7
Next hop route R1 2 3 4 5 6 7
Example
S = { 1, 2, 3, 4, 5, 6, 7 }
Distance D1 2 3 4 5 6 7
Next hop route R1 2 3 4 5 6 7
S = source = 6
∞ 8 2 ∞ ∞ - 5
0 2 3 0 0 - 7
X
5
X
13 0 3 3 3 0 - 7
Distributed route computation
• Dijkstra’s algorithm requires each switch to hold a complete description of the network
• In distributed route computation computation, each switch periodically computes a new local table and sends it to its neighbours
• After a while, the switches learn shortest routes or adapt to changes in the network
Given:
a local routing table, a weight for each link that connects to another switch and an incoming routing message
Compute:an updated routing table
Method:maintain a distance field in each routing table entryinitialise routing table with a single entry that has the destination equal to the local packet switch, the next hop unused and the distance set to sero
Repeat forever {
wait for the next routing message to arrive over the network; let the sender be switch Nfor each entry in the message {
let V be the destination in the entry and D the distancecompute C as D plus the weight of the link over which the message arrived
examine and update the local routing table {if ( no route exists to V ) {
add an entry to the local table for V with next hop N and distance C
} else if ( a route exists with next hop N ) {replace existing distance with C
} else if (route exists with distance > C )change next hop to N and distance to C
}}
}
Link state routing
• Each switch periodically broadcasts state of specific links to other switches
• Switches collect these messages and then apply Dijkstra’s algorithm to their version of the state of the network