Network Layer

# Network Layer

Télécharger la présentation

## Network Layer

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
##### Presentation Transcript

1. Network Layer

2. 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

3. Main Network Layer Design Issues • Routing: Where to send the packets received?

4. 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

5. 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.

6. 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?

7. Shortest Path Algorithm • 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 • for other nodes not in set 7) if distance(s, m) > distance(s, d) + dist(d, m) then distance(s, m) = distance(s, d) + dist (d, m)

8. 5 3 5 2 2 1 3 1 2 1 A D E B F C Dijkstra’s algorithm: example D(B),p(B) 2,A 2,A 2,A D(D),p(D) 1,A D(C),p(C) 5,A 4,D 3,E 3,E D(E),p(E) infinity 2,D Step 0 1 2 3 4 5 start N A AD ADE ADEB ADEBC ADEBCF D(F),p(F) infinity infinity 4,E 4,E 4,E

9. Shortest Path • Node added to the set has found its minimum distance path (visiting ONLY the nodes currently in the set, of course) 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. • So if we added W, we are using the shortest path. • Note that any subpath on an optimal path is still optimal.

10. Link State Algorithm • Each router independently computes optimal paths • Must make sure that • Each router sees the same cost for each link (using the same network topology) • Uses the same algorithm (shortest path algorithm for OSPF) to compute the best path

11. Distance Vector Algorithm • The LS algorithm works for relatively small networks, because it is necessarily a centralized algorithm. • For larger networks, too expensive to store and disseminate the network topology, use DV algorithms.

12. distance from X to Y, via Z as next hop X = D (Y,Z) Z c(X,Z) + min {D (Y,w)} = w Distance Vector Routing Algorithm • Distance Table data structure • each node has its own row for each possible destination • column for each directly-attached neighbor to node • example: in node X, for dest. Y via neighbor Z:

13. cost to destination via A B C D A 1 7 6 4 B 14 8 9 11 D 5 5 4 2 1 7 2 8 1 destination 2 A D B E C Distance Table of E

14. cost to destination via A B C D A 1 7 6 4 B 14 8 9 11 D 5 5 4 2 destination Routing Table of E Outgoing link to use, cost A B C D A,1 D,5 D,4 D,2 destination Routing table Distance table

15. wait for (change in local link cost or msg from neighbor) recompute distance table if least cost path to any dest has changed, notify neighbors Distance Vector Algorithm • Iterative, asynchronous: each iteration caused by: • local link cost change • message from neighbor: its least cost path change from neighbor • Distributed: • each node notifies neighbors only when its least cost path to any destination changes • neighbors then notify their neighbors if necessary Each node:

16. 2 1 7 Y X X Z c(X,Y) + min {D (Z,w)} c(X,Z) + min {D (Y,w)} D (Y,Z) D (Z,Y) = = w w = = 7+1 = 8 2+1 = 3 X Z Y Example

17. 2 1 7 X Z Y Example

18. 1 4 1 50 X Z Y Convergence of the algorithm router detects local link cost change updates distance table if cost change in least cost path, notify neighbors “good news travels fast” algorithm terminates

19. 60 4 1 50 X Z Y Problems with DV Routing • Link cost changes: • good news travels fast • bad news travels slow • “count to infinity” problem! algorithm continues on!

20. Path Vector Algorithm C • The neighbor also tells about the path it is using. • Line FG goes down. • Node F wants to find path to D. • B: BCD • E: EFGCD • I: IFGCD • F can quickly decide to ignore the paths from I and E. B D A G F H E J I