Network Layer Network layer Physical layer move bits
Network Layer
Network layer • Physical layer: move bits between physically connected stations • Data link layer: move frames between physically connected stations • Network layer: move packets from source A to destination B where A and B can be world-apart
Main Network Layer Design Issues • Service interface: what kind of services to be supported at the network layer? • Routing: Where to send the packets received?
Service Interface • Should be independent of router technology • The upper layer shouldn’t worry about the topology • Network address should be uniform
Routing • Routing – Determining the path from the source to the destination. At a router, it means which output port should a packet to be sent to • Desirable properties of the routing algorithms: – correctness: of course – simplicity: for efficiency – robustness: must be able to sustain the changes in the networks (cannot just rely on reboot) – stability: when run long enough, should converge to equilibrium – fairness: every one gets to send – optimality: as efficient as possible, of course • sometimes, these properties may conflict
Flooding • Flooding – send all the incoming packet to all outgoing links except the one the packet arrived on – Reliable, fast, large overhead, not scalable – user: military, distributed database(update everything), highly reliable packets.
Flooding • Problems? • A packet will be sent for infinite number of times • Hop count. Don’t forward the same packet for more than H times. – How to set H?
Shortest Path • find the shortest path from the source to all other nodes. • Dijkstra algorithm: finding the shortest paths from the source s to all other nodes in the network. 1) Initial set = empty, 2) maintain the distance from s to all other nodes (distance(s, s) = 0, distance(s, t) = infinite) 3) repeat until all nodes are included in the set 4) find a node d currently no in the set with shortest distance 5) include d in the set 6) update the distance from s to all other nodes using 7) if distance(s, m) > distance(s, d) + dist(d, m) then 8) distance(s, m) = distance(s, d) + dist (d, m)
Dijkstra’s algorithm: example Step 0 1 2 3 4 5 start N A AD ADEBCF D(B), p(B) D(C), p(C) D(D), p(D) D(E), p(E) D(F), p(F) 2, A 1, A 5, A infinity 2, A 4, D 2, D infinity 2, A 3, E 4, E 5 2 A B 2 1 D 3 C 3 1 5 F 1 E 2
Shortest Path • Why this gives the shortest path? • Node added to the set has found its minimum distance to the source. Suppose this is not true. At a step, we add node W to the set. If there is another path s---Z---W with distance shorter than d(W), where Z is the first node in the path currently not in the set. d(Z) must be less than d(W) (why? ) and we would have added Z to the set at this step rather than W.
Link State Algorithm • Each router independently computes optimal paths – From itself to every destination – Routes are guaranteed to be loop free if • Each router sees the same cost for each link • Uses the same algorithm (shortest path algorithm for OSPF) to compute the best path
Topology Dissemination • Each router creates a set of link state packets – Describing its links to neighbors – LSP contains • Router id, neighbor’s id, and cost to its neighbor • Copies of LSPs are distributed to all routers – Using controlled flooding • Each router maintains a topology database – Database containing all LSPs
- Slides: 12