SLIDE 1 Networking — Network layer
Three concepts
- Naming
- A way to identify the source/destination
- E.g., house address
- Routing
- Finding “how to” move towards the destination
- E.g., which airplane should the stuff go on
- Forwarding
- Actually “moving” towards the destination
- E.g., Using airplane/truck/rail
SLIDE 2
Network layer — Forwarding
SLIDE 3
Network layer — Forwarding
Lets come up with an approach? Generalize Ethernet ideas?
SLIDE 4
Network layer — Forwarding
SLIDE 5
Attempt 1: Broadcast
Network layer — Forwarding
SLIDE 6 Attempt 1: Broadcast
Network layer — Forwarding
SLIDE 7 Attempt 1: Broadcast
Network layer — Forwarding
SLIDE 8 Attempt 1: Broadcast
- Send to everybody
- Goods
- Oh, well, simplicity
Network layer — Forwarding
SLIDE 9 Attempt 1: Broadcast
- Send to everybody
- Goods
- Oh, well, simplicity
- Not-so-goods
Network layer — Forwarding
SLIDE 10 Attempt 1: Broadcast
- Send to everybody
- Goods
- Oh, well, simplicity
- Not-so-goods
- Oh, well, everything else
Network layer — Forwarding
SLIDE 11 Attempt 1: Broadcast
- Send to everybody
- Goods
- Oh, well, simplicity
- Not-so-goods
- Oh, well, everything else
- Bandwidth overheads
Network layer — Forwarding
SLIDE 12
Network layer — Forwarding
SLIDE 13
Attempt 2: Time division Multiplexing
Network layer — Forwarding
SLIDE 14 Attempt 2: Time division Multiplexing
- Each source-destination pair assigned a time slot
Network layer — Forwarding
SLIDE 15 Attempt 2: Time division Multiplexing
- Each source-destination pair assigned a time slot
- Can send data only during that slot
Network layer — Forwarding
SLIDE 16 Attempt 2: Time division Multiplexing
- Each source-destination pair assigned a time slot
- Can send data only during that slot
- Goods
Network layer — Forwarding
SLIDE 17 Attempt 2: Time division Multiplexing
- Each source-destination pair assigned a time slot
- Can send data only during that slot
- Goods
- No collisions
Network layer — Forwarding
SLIDE 18 Attempt 2: Time division Multiplexing
- Each source-destination pair assigned a time slot
- Can send data only during that slot
- Goods
- No collisions
- Not-so-goods
Network layer — Forwarding
SLIDE 19 Attempt 2: Time division Multiplexing
- Each source-destination pair assigned a time slot
- Can send data only during that slot
- Goods
- No collisions
- Not-so-goods
- Underutilization of resources
Network layer — Forwarding
SLIDE 20
Network layer — Forwarding
SLIDE 21
Attempt 3: Frequency division Multiplexing
Network layer — Forwarding
SLIDE 22 Attempt 3: Frequency division Multiplexing
- Each source-destination pair assigned a subset of resources
Network layer — Forwarding
SLIDE 23 Attempt 3: Frequency division Multiplexing
- Each source-destination pair assigned a subset of resources
- Can use only “assigned” resources (e.g., bandwidth)
Network layer — Forwarding
SLIDE 24 Attempt 3: Frequency division Multiplexing
- Each source-destination pair assigned a subset of resources
- Can use only “assigned” resources (e.g., bandwidth)
- Goods
Network layer — Forwarding
SLIDE 25 Attempt 3: Frequency division Multiplexing
- Each source-destination pair assigned a subset of resources
- Can use only “assigned” resources (e.g., bandwidth)
- Goods
- Predictable performance
Network layer — Forwarding
SLIDE 26 Attempt 3: Frequency division Multiplexing
- Each source-destination pair assigned a subset of resources
- Can use only “assigned” resources (e.g., bandwidth)
- Goods
- Predictable performance
- Not-so-goods
Network layer — Forwarding
SLIDE 27 Attempt 3: Frequency division Multiplexing
- Each source-destination pair assigned a subset of resources
- Can use only “assigned” resources (e.g., bandwidth)
- Goods
- Predictable performance
- Not-so-goods
- Underutilization of resources
Network layer — Forwarding
SLIDE 28
Network layer — Forwarding
SLIDE 29
Attempt 2 and 3: Circuit Switching
Network layer — Forwarding
SLIDE 30 Attempt 2 and 3: Circuit Switching
- Source establishes connection
Network layer — Forwarding
SLIDE 31 Attempt 2 and 3: Circuit Switching
- Source establishes connection
- Resources along the path are reserved
Network layer — Forwarding
SLIDE 32 Attempt 2 and 3: Circuit Switching
- Source establishes connection
- Resources along the path are reserved
- Source sends data
Network layer — Forwarding
SLIDE 33 Attempt 2 and 3: Circuit Switching
- Source establishes connection
- Resources along the path are reserved
- Source sends data
- Transmit data using the reserved resources
Network layer — Forwarding
SLIDE 34 Attempt 2 and 3: Circuit Switching
- Source establishes connection
- Resources along the path are reserved
- Source sends data
- Transmit data using the reserved resources
- Source tears down connection
Network layer — Forwarding
SLIDE 35 Attempt 2 and 3: Circuit Switching
- Source establishes connection
- Resources along the path are reserved
- Source sends data
- Transmit data using the reserved resources
- Source tears down connection
- Free resources for others to use
Network layer — Forwarding
SLIDE 36
Network layer — Forwarding
SLIDE 37
Circuit Switching
Network layer — Forwarding
SLIDE 38 Circuit Switching
Network layer — Forwarding
SLIDE 39 Circuit Switching
- Goods:
- Predictable performance
Network layer — Forwarding
SLIDE 40 Circuit Switching
- Goods:
- Predictable performance
- Reliable delivery
Network layer — Forwarding
SLIDE 41 Circuit Switching
- Goods:
- Predictable performance
- Reliable delivery
- Simple forwarding mechanism
Network layer — Forwarding
SLIDE 42 Circuit Switching
- Goods:
- Predictable performance
- Reliable delivery
- Simple forwarding mechanism
- Not-so-goods
Network layer — Forwarding
SLIDE 43 Circuit Switching
- Goods:
- Predictable performance
- Reliable delivery
- Simple forwarding mechanism
- Not-so-goods
- Resource underutilization
Network layer — Forwarding
SLIDE 44 Circuit Switching
- Goods:
- Predictable performance
- Reliable delivery
- Simple forwarding mechanism
- Not-so-goods
- Resource underutilization
- Blocked connections
Network layer — Forwarding
SLIDE 45 Circuit Switching
- Goods:
- Predictable performance
- Reliable delivery
- Simple forwarding mechanism
- Not-so-goods
- Resource underutilization
- Blocked connections
- Connection set up overheads
Network layer — Forwarding
SLIDE 46 Circuit Switching
- Goods:
- Predictable performance
- Reliable delivery
- Simple forwarding mechanism
- Not-so-goods
- Resource underutilization
- Blocked connections
- Connection set up overheads
- Per-connection state in switches (scalability problem)
Network layer — Forwarding
SLIDE 47
Network layer — Forwarding
SLIDE 48
Attempt 4: Packet Switching
Network layer — Forwarding
SLIDE 49 Attempt 4: Packet Switching
- Divide the message into packets
Network layer — Forwarding
SLIDE 50 Attempt 4: Packet Switching
- Divide the message into packets
- Put destination address in the header of each packet
Network layer — Forwarding
SLIDE 51 Attempt 4: Packet Switching
- Divide the message into packets
- Put destination address in the header of each packet
- Just like shipping stuff
Network layer — Forwarding
SLIDE 52 Attempt 4: Packet Switching
- Divide the message into packets
- Put destination address in the header of each packet
- Just like shipping stuff
- Each device stores a “look-up table”
Network layer — Forwarding
SLIDE 53 Attempt 4: Packet Switching
- Divide the message into packets
- Put destination address in the header of each packet
- Just like shipping stuff
- Each device stores a “look-up table”
- Whats the next hop towards the destination?
Network layer — Forwarding
SLIDE 54 Attempt 4: Packet Switching
- Divide the message into packets
- Put destination address in the header of each packet
- Just like shipping stuff
- Each device stores a “look-up table”
- Whats the next hop towards the destination?
- Destination receives the packet(s)
Network layer — Forwarding
SLIDE 55 Attempt 4: Packet Switching
- Divide the message into packets
- Put destination address in the header of each packet
- Just like shipping stuff
- Each device stores a “look-up table”
- Whats the next hop towards the destination?
- Destination receives the packet(s)
- And reconstructs the message
Network layer — Forwarding
SLIDE 56
Network layer — Forwarding
SLIDE 57
Packet Switched forwarding
Network layer — Forwarding
SLIDE 58 Packet Switched forwarding
Network layer — Forwarding
SLIDE 59 Packet Switched forwarding
- Hop-by-hop forwarding
- Each router has a “look-up table” (forwarding information base)
Network layer — Forwarding
SLIDE 60 Packet Switched forwarding
- Hop-by-hop forwarding
- Each router has a “look-up table” (forwarding information base)
- What should be stored in this table?
Network layer — Forwarding
SLIDE 61 Packet Switched forwarding
- Hop-by-hop forwarding
- Each router has a “look-up table” (forwarding information base)
- What should be stored in this table?
Network layer — Forwarding
SLIDE 62 Packet Switched forwarding
- Hop-by-hop forwarding
- Each router has a “look-up table” (forwarding information base)
- What should be stored in this table?
- Prefix-based forwarding (longest-prefix matching)
Network layer — Forwarding
SLIDE 63 Packet Switched forwarding
- Hop-by-hop forwarding
- Each router has a “look-up table” (forwarding information base)
- What should be stored in this table?
- Prefix-based forwarding (longest-prefix matching)
- Maps prefixes to the next-hop
Network layer — Forwarding
SLIDE 64
Network layer — Forwarding
SLIDE 65
Packet Switching
Network layer — Forwarding
SLIDE 66 Packet Switching
Network layer — Forwarding
SLIDE 67 Packet Switching
- Goods:
- No resource underutilization
Network layer — Forwarding
SLIDE 68 Packet Switching
- Goods:
- No resource underutilization
- A source can send more if others don’t use resources
Network layer — Forwarding
SLIDE 69 Packet Switching
- Goods:
- No resource underutilization
- A source can send more if others don’t use resources
- No blocked connection problem
Network layer — Forwarding
SLIDE 70 Packet Switching
- Goods:
- No resource underutilization
- A source can send more if others don’t use resources
- No blocked connection problem
- No per-connection state
Network layer — Forwarding
SLIDE 71 Packet Switching
- Goods:
- No resource underutilization
- A source can send more if others don’t use resources
- No blocked connection problem
- No per-connection state
- No set-up cost
Network layer — Forwarding
SLIDE 72 Packet Switching
- Goods:
- No resource underutilization
- A source can send more if others don’t use resources
- No blocked connection problem
- No per-connection state
- No set-up cost
- Not-so-goods:
Network layer — Forwarding
SLIDE 73 Packet Switching
- Goods:
- No resource underutilization
- A source can send more if others don’t use resources
- No blocked connection problem
- No per-connection state
- No set-up cost
- Not-so-goods:
- Packet header overhead
Network layer — Forwarding
SLIDE 74 Packet Switching
- Goods:
- No resource underutilization
- A source can send more if others don’t use resources
- No blocked connection problem
- No per-connection state
- No set-up cost
- Not-so-goods:
- Packet header overhead
- Network failures become a problem
Network layer — Forwarding
SLIDE 75 Networking — Network layer
Three concepts
- Naming
- A way to identify the source/destination
- E.g., house address
- Routing
- Finding “how to” move towards the destination
- E.g., which airplane should the stuff go on
- Forwarding
- Actually “moving” towards the destination
- E.g., Using airplane/truck/rail
SLIDE 76
Network layer — Example
C
1 2 3 1 7
B A Dest.
SLIDE 77
Network layer — Routing
SLIDE 78
Lets come up with a routing scheme
Network layer — Routing
SLIDE 79
Network layer — Routing
C
1 2 3 1 7
B A Dest.
SLIDE 80
Network layer — Routing
C
1 2 3 1 7
B A Dest.
A wants to find a path to Dest. {(A, 0)}
SLIDE 81
Network layer — Routing
C
1 2 3 1 7
B A Dest.
A wants to find a path to Dest. {(A, 0)} A wants to find a path to Dest. {(A, 0), (B, 2)}
SLIDE 82
Network layer — Routing
C
1 2 3 1 7
B A Dest.
A wants to find a path to Dest. {(A, 0)} A wants to find a path to Dest. {(A, 0), (B, 2)} A wants to find a path to Dest. {(A, 0), (C, 7)}
SLIDE 83
Network layer — Routing
C
1 2 3 1 7
B A Dest.
A wants to find a path to Dest. {(A, 0)} A wants to find a path to Dest. {(A, 0), (B, 2)} A wants to find a path to Dest. {(A, 0), (C, 7)} Path to Dest. {(A, 0), (B, 2), (D, 3)}
SLIDE 84
Network layer — Routing
C
1 2 3 1 7
B A Dest.
A wants to find a path to Dest. {(A, 0)} A wants to find a path to Dest. {(A, 0), (B, 2)} A wants to find a path to Dest. {(A, 0), (C, 7)} Path to Dest. {(A, 0), (B, 2), (D, 3)} Path to Dest. {(A, 0), (C, 7), (D, 1)}
SLIDE 85
Network layer — Routing
C
1 2 3 1 7
B A Dest.
A wants to find a path to Dest. {(A, 0)} A wants to find a path to Dest. {(A, 0), (B, 2)} A wants to find a path to Dest. {(A, 0), (C, 7)} Path to Dest. {(A, 0), (B, 2), (D, 3)} A wants to find a path to Dest. {(A, 0), (B, 2), (C, 1)} Path to Dest. {(A, 0), (C, 7), (D, 1)}
SLIDE 86
Network layer — Routing
C
1 2 3 1 7
B A Dest.
A wants to find a path to Dest. {(A, 0)} A wants to find a path to Dest. {(A, 0), (B, 2)} A wants to find a path to Dest. {(A, 0), (C, 7)} Path to Dest. {(A, 0), (B, 2), (D, 3)} A wants to find a path to Dest. {(A, 0), (B, 2), (C, 1)} Path to Dest. {(A, 0), (C, 7), (D, 1)} Path to Dest. {(A, 0), (B, 2), (C, 1), (D, 1)}
SLIDE 87
Network layer — Routing
SLIDE 88
Attempt 1: Dynamic Source Routing
Network layer — Routing
SLIDE 89 Attempt 1: Dynamic Source Routing
- Broadcast a Route Request Packet for destination d
Network layer — Routing
SLIDE 90 Attempt 1: Dynamic Source Routing
- Broadcast a Route Request Packet for destination d
- Put source ID in the packet header
Network layer — Routing
SLIDE 91 Attempt 1: Dynamic Source Routing
- Broadcast a Route Request Packet for destination d
- Put source ID in the packet header
- At each router
Network layer — Routing
SLIDE 92 Attempt 1: Dynamic Source Routing
- Broadcast a Route Request Packet for destination d
- Put source ID in the packet header
- At each router
- If a path not known to the destination
Network layer — Routing
SLIDE 93 Attempt 1: Dynamic Source Routing
- Broadcast a Route Request Packet for destination d
- Put source ID in the packet header
- At each router
- If a path not known to the destination
- Put its {ID, cost} in the packet header
Network layer — Routing
SLIDE 94 Attempt 1: Dynamic Source Routing
- Broadcast a Route Request Packet for destination d
- Put source ID in the packet header
- At each router
- If a path not known to the destination
- Put its {ID, cost} in the packet header
- Broadcast the Route Request Packet
Network layer — Routing
SLIDE 95 Attempt 1: Dynamic Source Routing
- Broadcast a Route Request Packet for destination d
- Put source ID in the packet header
- At each router
- If a path not known to the destination
- Put its {ID, cost} in the packet header
- Broadcast the Route Request Packet
- Else
Network layer — Routing
SLIDE 96 Attempt 1: Dynamic Source Routing
- Broadcast a Route Request Packet for destination d
- Put source ID in the packet header
- At each router
- If a path not known to the destination
- Put its {ID, cost} in the packet header
- Broadcast the Route Request Packet
- Else
- Respond with a Route Reply packet
Network layer — Routing
SLIDE 97 Attempt 1: Dynamic Source Routing
- Broadcast a Route Request Packet for destination d
- Put source ID in the packet header
- At each router
- If a path not known to the destination
- Put its {ID, cost} in the packet header
- Broadcast the Route Request Packet
- Else
- Respond with a Route Reply packet
- Put known path in the packet header
Network layer — Routing
SLIDE 98 Attempt 1: Dynamic Source Routing
- Broadcast a Route Request Packet for destination d
- Put source ID in the packet header
- At each router
- If a path not known to the destination
- Put its {ID, cost} in the packet header
- Broadcast the Route Request Packet
- Else
- Respond with a Route Reply packet
- Put known path in the packet header
- Challenge?
Network layer — Routing
SLIDE 99
Network layer — Routing
C
1 2 3 1 7
B A Dest.
SLIDE 100
Network layer — Routing
C
1 2 3 1 7
B A Dest.
{(A-B, 0), (A-C, 7)}
SLIDE 101
Network layer — Routing
C
1 2 3 1 7
B A Dest.
{(A-B, 0), (A-C, 7)} {(A-B, 2), (B-C, 1), (B-D, 3)}
SLIDE 102
Network layer — Routing
C
1 2 3 1 7
B A Dest.
{(A-B, 0), (A-C, 7)} {(A-B, 2), (B-C, 1), (B-D, 3)} {(A-C, 7), (B-C, 1)}
SLIDE 103
Network layer — Routing
C
1 2 3 1 7
B A Dest.
{(A-B, 0), (A-C, 7)} {(A-B, 2), (B-C, 1), (B-D, 3)} {(A-C, 7), (B-C, 1)} {(B-D, 3), (C-D, 1)}
SLIDE 104
Network layer — Routing
C
1 2 3 1 7
B A Dest.
{(A-B, 0), (A-C, 7)} {(A-B, 2), (B-C, 1), (B-D, 3)} {(A-C, 7), (B-C, 1)} {(B-D, 3), (C-D, 1)} {(A-B, 0), (A-C, 7)}
SLIDE 105
Network layer — Routing
C
1 2 3 1 7
B A Dest.
{(A-B, 0), (A-C, 7)} {(A-B, 2), (B-C, 1), (B-D, 3)} {(A-C, 7), (B-C, 1)} {(B-D, 3), (C-D, 1)} {(A-B, 0), (A-C, 7)} {(B-D, 3), (C-D, 1)}
SLIDE 106
Network layer — Routing
C
1 2 3 1 7
B A Dest.
{(A-B, 0), (A-C, 7)} {(A-B, 2), (B-C, 1), (B-D, 3)} {(A-C, 7), (B-C, 1)} {(B-D, 3), (C-D, 1)} {(A-B, 0), (A-C, 7)} {(B-D, 3), (C-D, 1)} {(A-C, 7), (B-C, 1)}
SLIDE 107
Network layer — Routing
SLIDE 108
Attempt 2: Link State Routing
Network layer — Routing
SLIDE 109 Attempt 2: Link State Routing
- Each router maintains its local “link state” (LS)
Network layer — Routing
SLIDE 110 Attempt 2: Link State Routing
- Each router maintains its local “link state” (LS)
- Each router periodically “floods” its LS
Network layer — Routing
SLIDE 111 Attempt 2: Link State Routing
- Each router maintains its local “link state” (LS)
- Each router periodically “floods” its LS
- And forwards all the LS received from other routers
Network layer — Routing
SLIDE 112 Attempt 2: Link State Routing
- Each router maintains its local “link state” (LS)
- Each router periodically “floods” its LS
- And forwards all the LS received from other routers
- At one point
Network layer — Routing
SLIDE 113 Attempt 2: Link State Routing
- Each router maintains its local “link state” (LS)
- Each router periodically “floods” its LS
- And forwards all the LS received from other routers
- At one point
- Every router knows the entire topology
Network layer — Routing
SLIDE 114 Attempt 2: Link State Routing
- Each router maintains its local “link state” (LS)
- Each router periodically “floods” its LS
- And forwards all the LS received from other routers
- At one point
- Every router knows the entire topology
- Run a shortest path algorithm (e.g., Dijkstra) locally
Network layer — Routing
SLIDE 115 Attempt 2: Link State Routing
- Each router maintains its local “link state” (LS)
- Each router periodically “floods” its LS
- And forwards all the LS received from other routers
- At one point
- Every router knows the entire topology
- Run a shortest path algorithm (e.g., Dijkstra) locally
- Find path to the destination
Network layer — Routing
SLIDE 116 Attempt 2: Link State Routing
- Each router maintains its local “link state” (LS)
- Each router periodically “floods” its LS
- And forwards all the LS received from other routers
- At one point
- Every router knows the entire topology
- Run a shortest path algorithm (e.g., Dijkstra) locally
- Find path to the destination
- More importantly, find next-hop to the destination
Network layer — Routing
SLIDE 117 Attempt 2: Link State Routing
- Each router maintains its local “link state” (LS)
- Each router periodically “floods” its LS
- And forwards all the LS received from other routers
- At one point
- Every router knows the entire topology
- Run a shortest path algorithm (e.g., Dijkstra) locally
- Find path to the destination
- More importantly, find next-hop to the destination
- Challenge?
Network layer — Routing
SLIDE 118
Network layer — Routing
SLIDE 119
Attempt 3: Distance Vector Routing
Network layer — Routing
SLIDE 120 Attempt 3: Distance Vector Routing
Network layer — Routing
SLIDE 121 Attempt 3: Distance Vector Routing
- Each router
- maintains its “current distance to destination”
Network layer — Routing
SLIDE 122 Attempt 3: Distance Vector Routing
- Each router
- maintains its “current distance to destination”
- Periodically announces it to all its neighbors
Network layer — Routing
SLIDE 123 Attempt 3: Distance Vector Routing
- Each router
- maintains its “current distance to destination”
- Periodically announces it to all its neighbors
- Update its local table
Network layer — Routing
SLIDE 124 Attempt 3: Distance Vector Routing
- Each router
- maintains its “current distance to destination”
- Periodically announces it to all its neighbors
- Update its local table
- d(A, dest) = min{d(A, neighbor) + d(neighbor, dest)}
Network layer — Routing
SLIDE 125 Attempt 3: Distance Vector Routing
- Each router
- maintains its “current distance to destination”
- Periodically announces it to all its neighbors
- Update its local table
- d(A, dest) = min{d(A, neighbor) + d(neighbor, dest)}
- {dest — distance, neighbor-that-minimizes-distance}
Network layer — Routing
SLIDE 126 Attempt 3: Distance Vector Routing
- Each router
- maintains its “current distance to destination”
- Periodically announces it to all its neighbors
- Update its local table
- d(A, dest) = min{d(A, neighbor) + d(neighbor, dest)}
- {dest — distance, neighbor-that-minimizes-distance}
- Broadcast to all its neighbors
Network layer — Routing
SLIDE 127