Topic 6 Routing Network Layer Network Layer Routing

  • Slides: 53
Download presentation
Topic 6: Routing (Network Layer) Network Layer Routing in Packet Networks Shortest Path Routing

Topic 6: Routing (Network Layer) Network Layer Routing in Packet Networks Shortest Path Routing Reference A. Leon-Garcia and I. Widjaja, Communication Networks, pp. 492 -495, 515 -520, 522 -534. (Reserved in the DC library. Call No. TK 5105. L 46 2004. )

6. 1 Network Layer Overview Network Layer Services Network Layer Functions

6. 1 Network Layer Overview Network Layer Services Network Layer Functions

Network Layer Overview l Network Layer: the most complex layer l l Requires the

Network Layer Overview l Network Layer: the most complex layer l l Requires the coordinated actions of multiple, geographically distributed network elements (switches & routers) Must be able to deal with very large scales l l Billions of users (people & communicating devices) Biggest Challenges l l Addressing: where should information be directed to? Routing: what path should be used to get information there? 3

Network Layer Services Messages Segments Transport layer Network service Network layer Data link layer

Network Layer Services Messages Segments Transport layer Network service Network layer Data link layer layer Physical layer End system Physical α l l l End system β Network layer can offer a variety of services to transport layer Connection-oriented service or connectionless service 4 Best-effort or delay/loss guarantees

Network Layer Functions Essential l Routing: mechanisms for determining the set of best paths

Network Layer Functions Essential l Routing: mechanisms for determining the set of best paths for routing packets requires the collaboration of network elements l Forwarding: transfer of packets from NE inputs to outputs l Priority & Scheduling: determining order of packet transmission in each NE Optional: congestion control, segmentation & reassembly, security 5

6. 2 Routing in Packet Networks Routing Tables Routing Algorithms IP Addressing

6. 2 Routing in Packet Networks Routing Tables Routing Algorithms IP Addressing

Packet Networks 1 3 6 4 2 l Node (switch or router) Three possible

Packet Networks 1 3 6 4 2 l Node (switch or router) Three possible (loopfree) routes from 1 to 6: l l 5 1 -3 -6, 1 -4 -5 -6, 1 -2 -5 -6 Which is “best”? l Min delay? Min hop? Max bandwidth? Min cost? Max reliability? 7

Routing Tables Node 3 Node 1 Destination Next node 2 2 3 3 4

Routing Tables Node 3 Node 1 Destination Next node 2 2 3 3 4 4 5 2 6 3 Destination 1 3 4 5 6 Node 2 Next node 1 1 4 5 5 Destination 1 2 4 5 6 Next node 1 4 4 6 6 Destination 1 2 3 5 6 Node 4 Next node 1 2 3 5 3 Node 6 Destination Next node 1 3 2 5 3 3 4 3 5 5 Node 5 Destination Next node 1 4 2 2 3 4 4 4 6 6 8

Routing Algorithm: Requirements l Rapid and accurate delivery of packets l l l Responsiveness

Routing Algorithm: Requirements l Rapid and accurate delivery of packets l l l Responsiveness to changes and avoid routing loops l l l Resource utilization, path length Robustness l l Topology or bandwidth changes, congestion Freedom from persistent loops Optimality l l Must operate correctly Rapid convergence Continues working under high load, congestion, faults Simplicity l Efficient implementation, reasonable processing load 9

Routing Algorithm: Classification A. Centralized vs Distributed Routing l Centralized Routing l l l

Routing Algorithm: Classification A. Centralized vs Distributed Routing l Centralized Routing l l l All routes determined by a central node All state information sent to central node Problems adapting to frequent topology changes Does not scale Distributed Routing l l Routes determined by routers using distributed algorithm State information exchanged by routers Adapts to topology and other changes Better scalability 10

B. Static vs Dynamic Routing l Static Routing l l l Set up manually,

B. Static vs Dynamic Routing l Static Routing l l l Set up manually, do not change; requires administration Works when traffic predictable & network is simple Used to override some routes set by dynamic algorithm Used to provide default router Dynamic Routing l l l Adapt to changes in network conditions Automated Calculates routes based on received updated network state information 11

C. Flat vs Hierarchical Routing l Flat Routing l l l All routers are

C. Flat vs Hierarchical Routing l Flat Routing l l l All routers are peers Does not scale Hierarchical Routing l l Partitioning: Domains, autonomous systems, areas. . . Some routers part of routing backbone Some routers only communicate within an area Scales 12

 • Example: Non-Hierarchical Addresses and Routing 0000 0111 1010 1101 1 0011 0110

• Example: Non-Hierarchical Addresses and Routing 0000 0111 1010 1101 1 0011 0110 1001 1100 l l 4 3 2 0001 0100 1011 1110 R 1 0000 0111 1010 … 1 1 1 … R 2 0001 0100 1011 … 5 4 4 4 … 0011 0101 1000 1111 No relationship between addresses & routing proximity Routing tables require 16 entries each 13

 • Example: Hierarchical Addresses and Routing 0000 0001 0010 0011 1 1000 1001

• Example: Hierarchical Addresses and Routing 0000 0001 0010 0011 1 1000 1001 1010 1011 l l 4 3 2 0100 0101 0110 0111 R 1 00 01 10 11 1 3 2 3 R 2 00 01 10 11 5 3 4 3 5 1100 1101 1110 1111 Prefix indicates network where host is attached Routing tables require 4 entries each 14

IP Addressing l l l Each host on Internet has unique 32 bit IP

IP Addressing l l l Each host on Internet has unique 32 bit IP address Each address has two parts: netid and hostid netid unique & administered by l American Registry for Internet Numbers (ARIN) l Reseaux IP Europeens (RIPE) l Asia Pacific Network Information Centre (APNIC) Facilitates routing Dotted-Decimal Notation: int 1. int 2. int 3. int 4 where intj = integer value of jth octet IP address of 10000000 10000111 0100 00000101 is 128. 135. 68. 5 in dotted-decimal notation

Classful Addresses Class A 7 bits 126 networks with up to 16 million hosts

Classful Addresses Class A 7 bits 126 networks with up to 16 million hosts Class B 14 bits 1 • hostid netid 0 • 24 bits 0 netid 1. 0. 0. 0 to 127. 255 16 bits hostid 16, 382 networks with up to 64, 000 hosts 128. 0. 0. 0 to 191. 255

Class C 22 bits 1 • 1 0 8 bits netid hostid 2 million

Class C 22 bits 1 • 1 0 8 bits netid hostid 2 million networks with up to 254 hosts Class D 1 192. 0. 0. 0 to 223. 255 28 bits 1 1 0 multicast address 224. 0. 0. 0 to 239. 255

Private IP Addresses l l l Specific ranges of IP addresses set aside for

Private IP Addresses l l l Specific ranges of IP addresses set aside for use in private networks (RFC 1918) Use restricted to private internets; routers in public Internet discard packets with these addresses Range 1: 10. 0 to 10. 255 Range 2: 172. 16. 0. 0 to 172. 31. 255 Range 3: 192. 168. 0. 0 to 192. 168. 255 Network Address Translation (NAT) used to convert between private & global IP addresses

Example of IP Addressing 178. 140. 5. 40 178. 135. 40. 1 Interface Address

Example of IP Addressing 178. 140. 5. 40 178. 135. 40. 1 Interface Address is 178. 135. 10. 2 H Network 178. 135. 0. 0 H 178. 135. 10. 20 Interface Address is 178. 140. 5. 35 R H 178. 135. 10. 21 Address with host ID=all 0 s refers to the network Address with host ID=all 1 s refers to a broadcast packet H Network 178. 140. 0. 0 H 178. 140. 5. 36 R = router H = host

Subnet Addressing l l Subnet addressing introduces another hierarchical level Transparent to remote networks

Subnet Addressing l l Subnet addressing introduces another hierarchical level Transparent to remote networks Simplifies management of multiplicity of LANs Masking used to find subnet number

Subnetting Example l l Organization has Class B address (16 host ID bits) with

Subnetting Example l l Organization has Class B address (16 host ID bits) with network ID: 150. 100. 0. 0 Create subnets with up to 100 hosts each l l l 7 bits sufficient for each subnet 16 -7=9 bits for subnet ID Apply subnet mask to IP addresses to find corresponding subnet l l l Example: Find subnet for 150. 100. 12. 176 IP add = 100101100100 00001100 10110000 Mask = 11111111 10000000 AND = 100101100100 00001100 10000000 Subnet = 150. 100. 128 Subnet address used by routers within organization

Subnet Example H 1 H 2 150. 100. 12. 154 150. 100. 12. 176

Subnet Example H 1 H 2 150. 100. 12. 154 150. 100. 12. 176 150. 100. 128 150. 100. 129 150. 100. 0. 0 To the rest of the Internet R 1 150. 100. 12. 4 H 3 H 4 150. 100. 12. 24 150. 100. 12. 0 150. 100. 12. 55 150. 100. 12. 1 R 2 H 5 150. 100. 15. 54 150. 100. 15. 0 150. 100. 15. 11

Routing with Subnetworks l l IP layer in hosts and routers maintain a routing

Routing with Subnetworks l l IP layer in hosts and routers maintain a routing table Originating host: To send an IP packet, consult routing table l l l If destination host is in same network, send packet directly using appropriate network interface Otherwise, send packet indirectly; typically, routing table indicates a default router Router: Examine IP destination address in arriving packet l If dest IP address not own, router consults routing table to determine next-hop and associated network interface & forwards packet

6. 3 Shortest Path Routing Shortest Path Problem Routing Metrics Shortest Path Protocols

6. 3 Shortest Path Routing Shortest Path Problem Routing Metrics Shortest Path Protocols

Shortest Paths Problem l l Many possible paths connect any given source and to

Shortest Paths Problem l l Many possible paths connect any given source and to any given destination Routing involves the selection of the path to be used to accomplish a given transfer Typically it is possible to attach a cost or distance to a link connecting two nodes Routing can then be posed as a shortest path problem 25

Routing Metrics Means for measuring desirability of a path l Path Length = sum

Routing Metrics Means for measuring desirability of a path l Path Length = sum of costs or distances l Possible metrics l l l Hop count: rough measure of resources used Reliability: link availability; BER Delay: sum of delays along path; complex & dynamic Bandwidth: “available capacity” in a path Load: Link & router utilization along path Cost: $$$ 26

Shortest Path Protocols Distance Vector Protocols l Neighbors exchange list of distances to destinations

Shortest Path Protocols Distance Vector Protocols l Neighbors exchange list of distances to destinations l Best next-hop determined for each destination l Bellman-Ford (distributed) shortest path algorithm Link State Protocols l Link state information flooded to all routers l Routers have complete topology information l Shortest path (& hence next hop) calculated l Dijkstra (centralized) shortest path algorithm 27

6. 3. 1 Distance Vector Do you know the way to San Jose? Sa

6. 3. 1 Distance Vector Do you know the way to San Jose? Sa n. J os e 29 San Jose 596 4 e os J n Sa S an 2 39 Jose 250 28

Distance Vector Local Signpost l Direction l Distance Routing Table For each destination list:

Distance Vector Local Signpost l Direction l Distance Routing Table For each destination list: l Next Node dest next dist l Distance Table Synthesis l Neighbors exchange table entries l Determine current best next hop l Inform neighbors l l Periodically After changes 29

Shortest Path to SJ Focus on how nodes find their shortest path to a

Shortest Path to SJ Focus on how nodes find their shortest path to a given destination node, i. e. SJ Dj Cij i Di San Jos e j If Di is the shortest distance to SJ from i and if j is a neighbor on the shortest path, then Di = Cij + Dj 30

But we don’t know the shortest paths i only has local info from neighbors

But we don’t know the shortest paths i only has local info from neighbors Dj' San Jos e j' Cij' i Di j Cij” j" Dj Dj" Pick current shortest path 31

Why Distance Vector Works. SJ sends accurate info 3 Hops From SJ 2 Hops

Why Distance Vector Works. SJ sends accurate info 3 Hops From SJ 2 Hops From SJ 1 Hop From SJ Accurate info about SJ ripples across network, Shortest Path Converges San Jos e Hop-1 nodes calculate current (next hop, dist), & send to neighbors 32

Bellman-Ford Algorithm l l Consider computations for one destination d Initialization l Each node

Bellman-Ford Algorithm l l Consider computations for one destination d Initialization l Each node table has 1 row for destination d l Distance of node d to itself is zero: Dd=0 l Distance of other node j to d is infinite: Dj= , for j d l Next hop node nj = -1 to indicate not yet defined for j d Send Step l Send new distance vector to immediate neighbors across local link Receive Step l At node j, find the next hop that gives the minimum distance to d, l l l Minj { Cij + Dj } Replace old (nj, Dj(d)) by new (nj*, Dj*(d)) if new next node or distance Go to send step 33

Bellman-Ford Algorithm l l Now consider parallel computations for all destinations d Initialization l

Bellman-Ford Algorithm l l Now consider parallel computations for all destinations d Initialization l Each node has 1 row for each destination d l Distance of node d to itself is zero: Dd(d)=0 l Distance of other node j to d is infinite: Dj(d)= , for j d l Next node nj = -1 since not yet defined Send Step l Send new distance vector to immediate neighbors across local link Receive Step l For each destination d, find the next hop that gives the minimum distance to d, l l l Minj { Cij+ Dj(d) } Replace old (nj, Di(d)) by new (nj*, Dj*(d)) if new next node or distance found Go to send step 34

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (-1, )

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (-1, ) (-1, ) 1 2 3 Table entry @ node 3 for dest SJ Table entry @ node 1 for dest SJ 2 1 3 5 San Jose 1 2 4 3 1 2 6 3 4 5 2 35

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (-1, )

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (-1, ) (-1, ) 1 (-1, ) (6, 1) (-1, ) (6, 2) 2 3 D 3=D 6+1 n 3=6 D 6=0 3 1 2 1 5 1 2 0 4 3 1 2 6 3 4 D 5=D 6+2 n 5=6 San Jose 2 5 2 D 6=0 36

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (-1, )

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (-1, ) (-1, ) 1 (-1, ) (6, 1) (-1, ) (6, 2) 2 (3, 3) (5, 6) (6, 1) (3, 3) (6, 2) 3 3 1 2 3 1 5 3 1 2 0 4 3 1 2 6 6 3 4 5 San Jose 2 2 37

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (-1, )

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (-1, ) (-1, ) 1 (-1, ) (6, 1) (-1, ) (6, 2) 2 (3, 3) (5, 6) (6, 1) (3, 3) (6, 2) 3 (3, 3) (4, 4) (6, 1) (3, 3) (6, 2) 3 1 2 3 1 5 3 1 2 0 4 3 1 2 6 4 6 3 4 5 San Jose 2 2 38

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (3, 3)

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (3, 3) (4, 4) (6, 1) (3, 3) (6, 2) 1 (3, 3) (4, 4) (4, 5) (3, 3) (6, 2) 2 3 3 1 5 2 3 1 5 3 1 2 0 4 3 1 4 2 6 3 4 5 San Jose 2 2 Network disconnected; Loop created between nodes 3 and 4 39

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (3, 3)

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (3, 3) (4, 4) (6, 1) (3, 3) (6, 2) 1 (3, 3) (4, 4) (4, 5) (3, 3) (6, 2) 2 (3, 7) (4, 4) (4, 5) (5, 5) (6, 2) 3 5 37 2 1 5 3 53 1 2 0 4 3 1 2 4 6 3 4 San Jose 2 5 2 Node 4 could have chosen 2 as next node because of tie 40

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (3, 3)

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 Initial (3, 3) (4, 4) (6, 1) (3, 3) (6, 2) 1 (3, 3) (4, 4) (4, 5) (3, 3) (6, 2) 2 (3, 7) (4, 4) (4, 5) (5, 5) (6, 2) 3 (3, 7) (4, 6) (4, 7) (5, 5) (6, 2) 7 5 7 2 3 1 5 5 1 2 0 4 3 1 2 46 6 3 4 5 San Jose 2 2 Node 2 could have chosen 5 as next node because of tie 41

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 1 (3, 3)

Iteration Node 1 Node 2 Node 3 Node 4 Node 5 1 (3, 3) (4, 4) (4, 5) (3, 3) (6, 2) 2 (3, 7) (4, 4) (4, 5) (2, 5) (6, 2) 3 (3, 7) (4, 6) (4, 7) (5, 5) (6, 2) 4 (2, 9) (4, 6) (4, 7) (5, 5) (6, 2) 79 2 3 1 5 5 7 1 2 0 4 3 1 2 6 6 3 4 5 San Jose 2 2 Node 1 could have chose 3 as next node because of tie 42

Counting to Infinity Problem (a) 1 (b) 1 1 1 2 2 1 1

Counting to Infinity Problem (a) 1 (b) 1 1 1 2 2 1 1 3 3 4 1 4 X Nodes believe best path is through each other (Destination is node 4) Update Node 1 Node 2 Node 3 Before break (2, 3) (3, 2) (4, 1) After break (2, 3) (3, 2) (2, 3) 1 (2, 3) (3, 4) (2, 3) 2 (2, 5) (3, 4) (2, 5) 3 (2, 5) (3, 6) (2, 5) 4 (2, 7) (3, 6) (2, 7) 5 (2, 7) (3, 8) (2, 7) … … 43

Problem: Bad News Travels Slowly Remedies l Split Horizon l l Do not report

Problem: Bad News Travels Slowly Remedies l Split Horizon l l Do not report route to a destination to the neighbor from which route was learned Poisoned Reverse l l l Report route to a destination to the neighbor from which route was learned, but with infinite distance Breaks erroneous direct loops immediately Does not work on some indirect loops 44

Split Horizon with Poison Reverse (a) 1 (b) 1 1 1 2 2 1

Split Horizon with Poison Reverse (a) 1 (b) 1 1 1 2 2 1 1 3 3 1 X 4 4 Nodes believe best path is through each other Update Node 1 Node 2 Node 3 Before break (2, 3) (3, 2) (4, 1) After break (2, 3) (3, 2) (-1, ) Node 2 advertizes its route to 4 to node 3 as having distance infinity; node 3 finds there is no route to 4 1 (2, 3) (-1, ) Node 1 advertizes its route to 4 to node 2 as having distance infinity; node 2 finds there is no route to 4 2 (-1, ) Node 1 finds there is no route to 4 45

6. 3. 2. Link-State Algorithm l Basic idea: two step procedure l l l

6. 3. 2. Link-State Algorithm l Basic idea: two step procedure l l l Each source node gets a map of all nodes and link metrics (link state) of the entire network Find the shortest path on the map from the source node to all destination nodes Broadcast of link-state information l l Every node i in the network broadcasts to every other node in the network: l ID’s of its neighbors: Ni=set of neighbors of i l Distances to its neighbors: {Cij | j Ni} Flooding is a popular method of broadcasting packets 46

Dijkstra Algorithm: Finding shortest paths in order Closest node to s is 1 hop

Dijkstra Algorithm: Finding shortest paths in order Closest node to s is 1 hop away Find shortest paths from source s to all other destinations 2 nd closest node to s is 1 hop away from s or w” 3 rd closest node to s is 1 hop away from s, w”, or x w' z w s x w" z' x' 47

Dijkstra’s algorithm l l N: set of nodes for which shortest path already found

Dijkstra’s algorithm l l N: set of nodes for which shortest path already found Initialization: (Start with source node s) l l l Step A: (Find next closest node i) l l l N = {s}, Ds = 0, “s is distance zero from itself” Dj=Csj for all j s, distances of directly-connected neighbors Find i N such that Di = min Dj for j N Add i to N If N contains all the nodes, stop Step B: (update minimum costs) l l l For each node j N Dj = min (Dj, Di+Cij) Go to Step A Minimum distance from s to 48 j through node i in N

Execution of Dijkstra’s algorithm 2 1 5 4 1 2 4 1 6 2

Execution of Dijkstra’s algorithm 2 1 5 4 1 2 4 1 6 2 3 1 3 2 5 3 4 3 1 2 5 6 2 3 2 1 3 2 5 4 Iteration N D 2 D 3 D 4 D 5 D 6 Initial {1} 3 2 5 1 {1, 3} 3 2 4 3 2 {1, 2, 3} 3 2 4 7 3 3 {1, 2, 3, 6} 3 2 4 5 3 4 {1, 2, 3, 4, 6} 3 2 4 5 3 5 {1, 2, 3, 4, 5, 6} 3 2 4 5 3 49

Shortest Paths in Dijkstra’s Algorithm 2 1 5 3 2 2 5 3 2

Shortest Paths in Dijkstra’s Algorithm 2 1 5 3 2 2 5 3 2 1 2 5 6 2 3 3 2 4 5 5 2 1 3 5 6 2 4 1 2 2 3 3 4 1 4 4 1 6 2 2 1 3 1 5 4 2 5 4 5 2 2 3 3 4 1 1 6 2 3 4 2 1 3 6 2 1 5 4 5 2 1 3 3 4 1 2 1 6 2 3 1 1 3 2 4 50 5

Reaction to Failure l l If a link fails, l Router sets link distance

Reaction to Failure l l If a link fails, l Router sets link distance to infinity & floods the network with an update packet l All routers immediately update their link database & recalculate their shortest paths l Recovery quick But watch out for old update messages l Add time stamp or sequence # to each update message l Check whether each received update message is new l If new, add it to database and broadcast l If older, send update message on arriving link 51

Why is Link State Better? l l l Fast, loopless convergence Support for precise

Why is Link State Better? l l l Fast, loopless convergence Support for precise metrics, and multiple metrics if necessary (throughput, delay, cost, reliability) Support for multiple paths to a destination l algorithm can be modified to find best two paths 52

Topic 6: Routing (Network Layer) Reference Leon-Garcia and I. Widjaja, Communication Networks, pp. 492

Topic 6: Routing (Network Layer) Reference Leon-Garcia and I. Widjaja, Communication Networks, pp. 492 -495, 515 -520, 522 -534. (Reserved in the DC library. Call No. TK 5105. L 46 2004. ) 53