Title: Chapter 4: Network Layer
1Chapter 4 Network Layer
- 4. 1 Introduction
- 4.2 Virtual circuit and datagram networks
- 4.3 Whats inside a router
- 4.4 IP Internet Protocol
- Datagram format
- IPv4 addressing
- ICMP
- IPv6
- 4.5 Routing algorithms
- Link state
- Distance Vector
- Hierarchical routing
- 4.6 Routing in the Internet
- RIP
- OSPF
- BGP
- 4.7 Broadcast and multicast routing
2The Internet Network layer
- Host, router network layer functions
Transport layer TCP, UDP
Network layer
Link layer
physical layer
3IP datagram format
- how much overhead with TCP?
- 20 bytes of TCP
- 20 bytes of IP
- 40 bytes app layer overhead
4Datagram networks
- no call setup at network layer
- routers no state about end-to-end connections
- no network-level concept of connection
- packets forwarded using destination host address
- packets between same source-dest pair may take
different paths
1. Send data
2. Receive data
5Longest prefix matching
Prefix Match
Link Interface
11001000 00010111 00010
0 11001000 00010111
00011000 1
11001000 00010111 00011
2
otherwise
3 Longest prefix
matching!
Examples
Which interface?
DA 11001000 00010111 00010110 10100001
Which interface?
DA 11001000 00010111 00011000 10101010
6IP Fragmentation Reassembly
- network links have MTU (max.transfer size) -
largest possible link-level frame. - different link types, different MTUs
- large IP datagram divided (fragmented) within
net - one datagram becomes several datagrams
- reassembled only at final destination
- IP header bits used to identify, order related
fragments
fragmentation in one large datagram out 3
smaller datagrams
reassembly
7Chapter 4 Network Layer
- 4. 1 Introduction
- 4.2 Virtual circuit and datagram networks
- 4.3 Whats inside a router
- 4.4 IP Internet Protocol
- Datagram format
- IPv4 addressing
- ICMP
- IPv6
- 4.5 Routing algorithms
- Link state
- Distance Vector
- Hierarchical routing
- 4.6 Routing in the Internet
- RIP
- OSPF
- BGP
- 4.7 Broadcast and multicast routing
8Routing
- Given many choices from A to B, which is the
best? - How to define best? -- Routing metrics or cost
- E.g., the number of links going through (hops)
- How to find best one? --Routing algorithms
9Graph abstraction
Graph G (N,E) N set of routers u, v, w,
x, y, z E set of links (u,v), (u,x),
(v,x), (v,w), (x,w), (x,y), (w,y), (w,z), (y,z)
A neighbor a direct link. E.g, (u,v) belongs
to E.
Remark Graph abstraction is useful in other
network contexts Example P2P, where N is set of
peers and E is set of TCP connections
10Graph abstraction costs
- c(a,b) cost of link (a,b)
- - e.g., c(w,z) 5
- c(v,y) infinite
- cost could always be 1, or
- inversely related to bandwidth,
- or inversely related to
- congestion
Cost of path (x1, x2, x3,, xp) c(x1,x2)
c(x2,x3) c(xp-1,xp)
Question Whats the least-cost path between u
and z ? (how many possible paths?)
Routing algorithm algorithm that finds
least-cost path
11Chapter 4 Network Layer
- 4. 1 Introduction
- 4.2 Virtual circuit and datagram networks
- 4.3 Whats inside a router
- 4.4 IP Internet Protocol
- Datagram format
- IPv4 addressing
- ICMP
- IPv6
- 4.5 Routing algorithms
- Link state
- Distance Vector
- Hierarchical routing
- 4.6 Routing in the Internet
- RIP
- OSPF
- BGP
- 4.7 Broadcast and multicast routing
12A Link-State Routing Algorithm
- Dijkstras algorithm
- net topology, link costs known to all nodes
- accomplished via link state broadcast
- all nodes have same info
- computes least cost paths from one node
(source) to all other nodes - gives forwarding table for that node
- iterative after k iterations, know least cost
path to k dest.s
- Notation
- c(x,y) link cost from node x to y 8 if not
direct neighbors - D(v) current value of cost of path from source
to dest. v - p(v) predecessor node along path from source to
v - N' set of nodes whose least cost path
definitively known
13Dijsktras Algorithm
1 Initialization 2 N' u 3 for all
nodes v 4 if v adjacent to u 5
then D(v) c(u,v) 6 else D(v) 8 7 8
Loop 9 find w not in N' such that D(w) is a
minimum 10 add w to N' 11 update D(v) for
all v adjacent to w and not in N' 12
D(v) min( D(v), D(w) c(w,v) ) 13 / new
cost to v is either old cost to v or known 14
shortest path cost to w plus cost from w to v /
15 until all nodes in N'
14Link state, an example (U to Z)
D(v),p(v) 2,u 2,u 2,u
D(x),p(x) 1,u
Step 0 1 2 3 4 5
D(w),p(w) 5,u 4,x 3,y 3,y
D(y),p(y) 8 2,x
N' u ux uxy uxyv uxyvw uxyvwz
D(z),p(z) 8 8 4,y 4,y 4,y
- Notation
- D(v) current value of cost of path from source
to dest. v - p(v) predecessor node along path from source to v
15Dijkstras algorithm example (2)
Resulting shortest-path tree from u
Resulting forwarding table in u
16Dijkstras algorithm, discussion
- Algorithm complexity n nodes
- each iteration need to check all nodes, w, not
in N - n(n1)/2 comparisons O(n2)
- more efficient implementations possible O(nlogn)
- Oscillations possible
- e.g., link cost amount of carried traffic
17Chapter 4 Network Layer
- 4. 1 Introduction
- 4.2 Virtual circuit and datagram networks
- 4.3 Whats inside a router
- 4.4 IP Internet Protocol
- Datagram format
- IPv4 addressing
- ICMP
- IPv6
- 4.5 Routing algorithms
- Link state
- Distance Vector
- Hierarchical routing
- 4.6 Routing in the Internet
- RIP
- OSPF
- BGP
- 4.7 Broadcast and multicast routing
18Distance Vector Algorithm (1)
Network View of Distance Vector Alg
- Bellman-Ford Equation
- Define
- dx(y) cost of least-cost path from x to y
- Then
- dx(y) min c(x,v) dv(y)
- where min is taken over all neighbors of x
-
Q a least cost path U-gtZ? Sketch cost if go
through v? cost if go through w? cost if go
through X?
19Bellman-Ford example (2)
Q a least cost path U-gtZ? Sketch cost if go
through v? Given v-gtz 5 cost if go through w?
Given w-gtz 3 cost if go through X? Given x-gtz
3
Clearly, dv(z) 5, dx(z) 3, dw(z) 3
du(z) min c(u,v) dv(z),
c(u,x) dx(z), c(u,w)
dw(z) min 2 5,
1 3, 5 3 4 From
which neighbor?
Node that achieves minimum is next hop in
shortest path ? forwarding table (for z, go to
x, cost 4)
20Distance Vector Algorithm (3)
- Dx(y) estimate of least cost from x to y
- Node x knows cost to each neighbor v c(x,v)
- Node x maintains distance vector Dx Dx(y) y
? N - Node x also maintains its neighbors distance
vectors - For each neighbor v, x maintains Dv Dv(y) y
? N
21Distance vector algorithm (4)
- Basic idea
- From time-to-time, each node sends its own
distance vector estimate to neighbors - Asynchronous
- When a node x receives new DV estimate from
neighbor, it updates its own DV using B-F
equation
Dx(y) ? minvc(x,v) Dv(y) for each node y ?
N
- Under minor, natural conditions, the estimate
Dx(y) converge to the actual least cost dx(y)
22Distance Vector Algorithm (5)
- Iterative, asynchronous each local iteration
caused by - local link cost change
- DV update message from neighbor
- Distributed
- each node notifies neighbors only when its DV
changes - neighbors then notify their neighbors if necessary
Each node
23Dx(z) minc(x,y) Dy(z), c(x,z)
Dz(z) min21 , 70 3
Dx(y) min c(x,y) Dy(y), c(x,z) Dz(y)
min20 , 71 2
node x table
cost to
x y z
x
0
3
2
y
from
z
time
24Dx(z) minc(x,y) Dy(z), c(x,z)
Dz(z) min21 , 70 3
Dx(y) minc(x,y) Dy(y), c(x,z) Dz(y)
min20 , 71 2
node x table
cost to
cost to
x y z
x y z
x
0 2 3
x
0 2 3
y
from
2 0 1
y
from
2 0 1
z
7 1 0
z
3 1 0
node y table
cost to
cost to
cost to
x y z
x y z
x y z
x
8
8
x
0 2 7
x
0 2 3
8 2 0 1
y
y
from
y
2 0 1
from
from
2 0 1
z
z
8
8
8
z
7 1 0
3 1 0
node z table
cost to
cost to
cost to
x y z
x y z
x y z
x
0 2 3
x
0 2 7
x
8 8 8
y
y
2 0 1
from
from
y
2 0 1
from
8
8
8
z
z
z
3 1 0
3 1 0
7
1
0
time
25Distance Vector link cost changes
- Link cost changes good news travels fast
- node detects local link cost change
- updates routing info, recalculates distance
vector - if DV changes, notify neighbors
At time t0, y detects the link-cost change,
updates its DV, and informs its neighbors. At
time t1, z receives the update from y and updates
its table. It computes a new least cost to x
and sends its neighbors its DV. At time t2, y
receives zs update and updates its distance
table. ys least costs do not change and hence y
does not send any message to z.
26Distance Vector link cost changes
- Link cost changes bad news travels slow
- 44 iterations before algorithm stabilizes see
text - count to infinity problem!
- Poisoned reverse
- If Z routes through Y to get to X
- Z tells Y its (Zs) distance to X is infinite (so
Y wont route to X via Z) - will this completely solve count to infinity
problem?
27Comparison of LS and DV algorithms
- Message complexity
- LS with n nodes, E links, O(nE) msgs sent
- DV exchange between neighbors only
- convergence time varies
- Speed of Convergence
- LS O(n2) algorithm requires O(nE) msgs
- may have oscillations
- DV convergence time varies
- may be routing loops
- count-to-infinity problem
- Robustness what happens if router malfunctions?
- LS
- node can advertise incorrect link cost
- each node computes only its own table
- DV
- DV node can advertise incorrect path cost
- each nodes table used by others
- error propagate thru network
28Routing protocols
- routing determine route taken by packets from
src to dest - How a route know about other routers?
- Initially, a router knows physically-connected
neighbors, and link costs to neighbors. What
else it knows? - Routing update messages (also called
advertisements) -- exchanged between routers - With the knowledge, how a route find the right
path for a source to a destination? - Calculated using a routing algorithms depends
on the knowledge it has. - Routing protocol
- Routing messages and an algorithm
- Outcomes go to forwarding table.
- Two OSPF and RIP