Instructor Slides Unit 4 Part1
Instructor Slides Unit 4 Part1
TEAM NETWORKS
Department of Computer Science and Engineering
COMPUTER NETWORKS
DHCP overview:
▪ host broadcasts DHCP discover msg [optional]
▪ DHCP server responds with DHCP offer msg [optional]
▪ host requests IP address: DHCP request msg
▪ DHCP server sends address: DHCP ack msg
COMPUTER NETWORKS
DHCP client-server scenario
223.1.1.3
223.1.3.27 arriving DHCP client needs
223.1.2.2 address in this network
223.1.3.1 223.1.3.2
COMPUTER NETWORKS
DHCP client-server scenario
DHCP offer
src: 223.1.2.5, 67
Broadcast: I’m a DHCP
dest: 255.255.255.255, 68
server! Here’s an IP
yiaddrr: 223.1.2.4
transaction
address youID:can
654use
lifetime: 3600 secs
The two steps above can
DHCP request be skipped “if a client
src: 0.0.0.0, 68 remembers and wishes to
dest:: 255.255.255.255, 67
Broadcast: OK. I would reuse a previously
yiaddrr: 223.1.2.4 allocated network address”
like totransaction
use this ID:
IP655
address!
lifetime: 3600 secs
[RFC 2131]
DHCP ACK
src: 223.1.2.5, 67
Broadcast: OK. You’ve
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
got that IPID:
transaction address!
655
lifetime: 3600 secs
COMPUTER NETWORKS
DHCP: more than IP addresses
DHCP
UDP
IP
address of first-hop router for client,
Eth name & IP address of DNS server
Phy
Q: how does an ISP get block of addresses? Q: are there enough 32-bit IP
A: ICANN: Internet Corporation for Assigned addresses?
Names and Numbers ▪ ICANN allocated last chunk of IPv4
http://www.icann.org/ addresses to RRs in 2011
• allocates IP addresses, through 5 ▪ NAT (next) helps IPv4 address space
regional registries (RRs) (who may then exhaustion
allocate to local registries)
• manages DNS root zone, including ▪ IPv6 has 128-bit address space
delegation of individual TLD (.com, .edu,
…) management "Who the hell knew how much address
space we needed?" Vint Cerf (reflecting
on decision to make IPv4 address 32 bits
long)
COMPUTER NETWORKS
Rules:
▪ Discard leading Zero(es)
▪ If two of more blocks contain consecutive zeroes,
omit them all and replace with double colon sign ::
COMPUTER NETWORKS
Introduction to IPv6
Colon hexadecimal
notation
Zero compression
CIDR address
Rule 1
Rule 2
COMPUTER NETWORKS
IPv6 Addressing
Show the unabbreviated colon hex notation for the following IPv6
addresses:
a. An address with 64 0s followed by 64 1s.
b. An address with 128 0s.
c. An address with 128 1s.
d. An address with 128 alternative 1s and 0s.
Solution
a. 0000:0000:0000:0000:FFFF:FFFF:FFFF:FFFF
b. 0000:0000:0000:0000:0000:0000:0000:0000
c. FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
d. AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA
COMPUTER NETWORKS
IPv6 Addressing
a. :: FFFF:FFFF:FFFF:FFFF
b. ::
c. FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF:FFFF
d. AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA:AAAA
COMPUTER NETWORKS
IPv6 Addressing
Solution
a. 0:0:FFFF::
b. 1234:2346::1111
c. 0:1::1200:1000
d. ::FFFF:24.123.12.6
COMPUTER NETWORKS
IPv6 Addressing
Solution
a. 1111:0000:0000:0000:0000:0000:0000:2222
b. 0000:0000:0000:0000:0000:0000:0000:0000
c. 0000:0001:0000:0000:0000:0000:0000:0000
d. AAAA:000A:00AA:0000:0000:0000:0000:1234
COMPUTER NETWORKS
Three Address Types
IPv6 datagram
IPv4 datagram
COMPUTER NETWORKS
Tunneling and Encapsulation
IPv6 datagram
Link-layer frame The usual: datagram as payload in link-layer frame
IPv4 network A B E F
connecting two
IPv6 routers IPv6 IPv6/v4 IPv6/v4 IPv6
IPv4 network
COMPUTER NETWORKS
Tunneling and Encapsulation
IPv6 datagram
Link-layer frame The usual: datagram as payload in link-layer frame
IPv6 datagram
IPv4 datagram tunneling: IPv6 datagram as payload in a IPv4 datagram
COMPUTER NETWORKS
Tunneling
A B IPv4 tunnel E F
connecting IPv6 routers
logical view:
IPv6 IPv6/v4 IPv6/v4 IPv6
A B C D E F
physical view:
IPv6 IPv6/v4 IPv4 IPv4 IPv6/v4 IPv6
A-to-B: E-to-F:
B-to-C: C-to-D: D-to-E:
IPv6 IPv6
IPv6 IPv6 IPv6
inside inside inside
IPv4
COMPUTER NETWORKS
IPv6 Adoption
https://www.akamai.com/us/en/resources/our-thinking/state-of-the-internet
-report/state-of-the-internet-ipv6-adoption-visualization.jsp
COMPUTER NETWORKS
congested” network
link network
physical link
application
transport
network
enterprise link
network physical
COMPUTER NETWORKS
Routing Algorithms
COMPUTER NETWORKS
Routing Protocols
1 Initialization:
2 N' = {u} /* compute least cost path from u to all other nodes */
3 for all nodes v
4 if v adjacent to u /* u initially knows direct-path-cost only to direct neighbors */
5 then D(v) = cu,v /* but may not be minimum cost! */
6 else D(v) = ∞
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) + cw,v )
13 /* new least-path-cost to v is either old least-cost-path to v or known
14 least-cost-path to w plus direct-cost from w to v */
15 until all nodes in N'
COMPUTER NETWORKS
Routing Protocols - Dijkstra’s link-state routing algorithm
Dijkstra’s algorithm: an example
v w x y z
Step N' D(v),p(v) D(w),p(w) D(x),p(x) D(y),p(y) D(z),p(z)
0 u 2,u 5,u 1,u ∞ ∞
1 ux 2,u 4,x 2,x ∞
2 uxy 2,u 3,y 4,y
3 uxyv 3,y 4,y
4 uxyvw 4,y
5 uxyvwz
Initialization (step 0): For all a: if a adjacent to then D(a) = cu,a
5
3 find a not in N' such that D(a) is a minimum
v w 5 add a to N'
2
u 2 1 z update D(b) for all b adjacent to a and not in N' :
3 D(b) = min ( D(b), D(a) + ca,b )
1 2
x 1
y
COMPUTER NETWORKS
Routing Protocols - Dijkstra’s link-state routing algorithm
Example contd..
5
3
v w 5
2
u 2 1 z
3
1 2
x 1
y
v w x y z
D(v), D(w), D(x), D(y), D(z), x
9
Step N' p(v) p(w) p(x) p(y) p(z)
notes:
▪ construct least-cost-path tree by tracing predecessor nodes
▪ ties can exist (can be broken arbitrarily)
COMPUTER NETWORKS
Routing Protocols - Bellman-Ford Distance Vector Routing Algorithm
Bellman-Ford: Example
Suppose that u’s neighboring nodes, x,v,w, know that for destination z:
Bellman-Ford equation says:
Dv(z) = 5 Dw(z) = 3 Du(z) = min { cu,v + Dv(z),
5
cu,x + Dx(z),
3
v w
5 cu,w + Dw(z) }
2
= min {2 + 5,
u 2 1 z
3 1 + 3,
1 2
x y 5 + 3} = 4
1
node achieving minimum (x) is next
Dx(z) = 3 hop on estimated least-cost path to
destination (z)
COMPUTER NETWORKS
Routing Protocols - Bellman-Ford Distance Vector Routing Algorithm
key idea:
▪ from time-to-time, each node sends its own distance vector estimate
to neighbors
▪ when x receives new DV estimate from any neighbor, it updates its
own DV using B-F equation:
Dx(y) ← minv{cx,v + Dv(y)} for each node y ∊ N
t=0 Da(e) = ∞
Da(f) = ∞ 1 1
Da(g) = ∞
▪ All nodes have Da(h) = ∞
distance estimates
Da(i) = ∞ A few asymmetries:
to nearest
▪ missing link
d e f
neighbors (only) 1 1
▪ larger cost
▪ All nodes send
their local
distance vector to 1 1 1
their neighbors
g h i
1 1
COMPUTER NETWORKS
Routing Protocols - Bellman-Ford Distance Vector Routing Algorithm
a b c
8 1
t=1 1 1
All nodes:
▪ receive distance
vectors from
neighbors d e f
▪ compute their new 1 1
local distance
vector
▪ send their new 1 1 1
local distance
vector to neighbors
g h i
1 1
COMPUTER NETWORKS
Routing Protocols - Bellman-Ford Distance Vector Routing Algorithm
a
compute compute
b compute
c
8 1
t=1 1 1
All nodes:
▪ receive distance
vectors from
neighbors d
compute compute
e compute
f
▪ compute their new 1 1
local distance
vector
▪ send their new 1 1 1
local distance
vector to neighbors
g
compute h
compute compute
i
1 1
COMPUTER NETWORKS
Routing Protocols - Bellman-Ford Distance Vector Routing Algorithm
a b c
8 1
t=1 1 1
All nodes:
▪ receive distance
vectors from
neighbors d e f
▪ compute their new 1 1
local distance
vector
▪ send their new 1 1 1
local distance
vector to neighbors
g h i
1 1
COMPUTER NETWORKS
Routing Protocols - Bellman-Ford Distance Vector Routing Algorithm
a b c
8 1
t=2 1 1
All nodes:
▪ receive distance
vectors from
neighbors d e f
▪ compute their new 1 1
local distance
vector
▪ send their new 1 1 1
local distance
vector to neighbors
g h i
1 1
49
COMPUTER NETWORKS
Routing Protocols - Bellman-Ford Distance Vector Routing Algorithm
compute
a compute
b compute
c
2 1
t=2 1 1
All nodes:
▪ receive distance
vectors from
neighbors d
compute compute
e compute
f
▪ compute their new 1 1
local distance
vector
▪ send their new 1 1 1
local distance
vector to neighbors
g
compute compute
h compute
i
8 1
50
COMPUTER NETWORKS
Routing Protocols - Bellman-Ford Distance Vector Routing Algorithm
a b c
8 1
t=2 1 1
All nodes:
▪ receive distance
vectors from
neighbors d e f
▪ compute their new 1 1
local distance
vector
▪ send their new 1 1 1
local distance
vector to neighbors
g h i
1 1
…. and so on
COMPUTER NETWORKS
Routing Protocols - Bellman-Ford Distance Vector Routing Algorithm
DV in b: DV in c:
Dc(a) = ∞
Distance vector example: computation Db(a) = 8 Db(f) = ∞
Dc(b) = 1
Db(c) = 1 Db(g) = ∞
DV in a: Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Da(a)=0 Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Da(b) = 8 Dc(e) = ∞
Da(c) = ∞ a b c Dc(f) = ∞
8 1
Da(d) = 1 Dc(g) = ∞
t=1 Da(e) = ∞
Da(f) = ∞ 1 1
Dc(h) = ∞
Dc(i) = ∞
▪ b receives DVs Da(g) = ∞ DV in e:
from a, c, e Da(h) = ∞ De(a) = ∞
Da(i) = ∞ De(b) = 1
d e f De(c) = ∞
1 1
De(d) = 1
Let’s next take a look at De(e) = 0
De(f) = 1
the iterative 1 1 1
De(g) = ∞
computations at nodes De(h) = 1
De(i) = ∞
g h i
1 1
COMPUTER NETWORKS
Routing Protocols - Bellman-Ford DV in b: DV in c:
Dc(a) = ∞
Db(a) = 8 Db(f) = ∞
Db(c) = 1 Db(g) = ∞ Dc(b) = 1
DV in a: Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Da(a)=0 Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Da(b) = 8 Dc(e) = ∞
Da(c) = ∞ a bb c Dc(f) = ∞
8 compute 1
Da(d) = 1 Dc(g) = ∞
t=1 Da(e) = ∞
Da(f) = ∞ 1 1
Dc(h) = ∞
Dc(i) = ∞
▪ b receives DVs Da(g) = ∞ DV in e:
from a, c, e, Da(h) = ∞ De(a) = ∞
computes: e
Da(i) = ∞ De(b) = 1
d e f De(c) = ∞
1
Db(a) = min{cb,a+Da(a), cb,c +Dc(a), cb,e+De(a)} = min{8,∞,∞} =8 1
De(d) = 1
Db(c) = min{cb,a+Da(c), cb,c +Dc(c), c b,e +De(c)} = min{∞,1,∞} = 1
De(e) = 0
Db(d) = min{cb,a+Da(d), cb,c +Dc(d), c b,e +De(d)} = min{9,2,∞} = 2 De(f) = 1
1 1 1
Db(e) = min{cb,a+Da(e), cb,c +Dc(e), c b,e +De(e)} = min{∞,∞,1} = 1 De(g) = ∞
Db(f) = min{cb,a+Da(f), cb,c +Dc(f), c b,e +De(f)} = min{∞,∞,2} = 2
DV in b: De(h) = 1
Db(g) = min{cb,a+Da(g), cb,c +Dc(g), c b,e+De(g)} = min{∞, ∞, ∞} = ∞ Db(a) = 8 Db(f) =2 De(i) = ∞
g h 1Db(c) = 1 Db(g)i = ∞
1 ∞, 2} = 2
Db(h) = min{cb,a+Da(h), cb,c +Dc(h), c b,e+De(h)} = min{∞,
Db(d) = 2 Db(h) = 2
Db(i) = min{cb,a+Da(i), cb,c +Dc(i), c b,e+De(i)} = min{∞, ∞, ∞} = ∞ Db(e) = 1 Db(i) = ∞
COMPUTER NETWORKS
Routing Protocols - Bellman-Ford
DV in b: DV in c:
Dc(a) = ∞
Db(a) = 8 Db(f) = ∞
Db(c) = 1 Db(g) = ∞ Dc(b) = 1
DV in a: Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Da(a)=0 Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Da(b) = 8 Dc(e) = ∞
Da(c) = ∞ a b c Dc(f) = ∞
8 1
Da(d) = 1 Dc(g) = ∞
t=1 Da(e) = ∞
Da(f) = ∞ 1 1
Dc(h) = ∞
Dc(i) = ∞
▪ c receives DVs Da(g) = ∞ DV in e:
from b Da(h) = ∞ De(a) = ∞
Da(i) = ∞ De(b) = 1
d e f De(c) = ∞
1 1
De(d) = 1
De(e) = 0
De(f) = 1
1 1 1
De(g) = ∞
De(h) = 1
De(i) = ∞
g h i
1 1
COMPUTER NETWORKS
Routing Protocols - Bellman-Ford DV in b: DV in c:
Dc(a) = ∞
Db(a) = 8 Db(f) = ∞
Db(c) = 1 Db(g) = ∞ Dc(b) = 1
Db(d) = ∞ Db(h) = ∞ Dc(c) = 0
Db(e) = 1 Db(i) = ∞ Dc(d) = ∞
Dc(e) = ∞
a b c
compute Dc(f) = ∞
8 1
Dc(g) = ∞
t=1 1 1
Dc(h) = ∞
Dc(i) = ∞
▪ c receives DVs
from b computes:
db(a}} = 1 + 8 = 9
Dc(a) = min{cc,b+D e f
DV in c:
Dc(b) = min{cc,b+Db(b)} = 1 + 0 = 1
Dc(a) = 9
Dc(d) = min{cc,b+Db(d)} = 1+ ∞ = ∞ Dc(b) = 1
Dc(e) = min{cc,b+Db(e)} = 1 + 1 = 2 Dc(c) = 0
Dc(f) = min{cc,b+Db(f)} = 1+ ∞ = ∞ Dc(d) = 2
Dc(g) = min{cc,b+Db(g)} = 1+ ∞ = ∞ Dc(e) = ∞ * Check out the online interactive
Dc(f) = ∞ exercises for more examples:
g b(h)} = 1+ ∞ = ∞
Dc(h) = min{cbc,b+D h i http://gaia.cs.umass.edu/kurose_ross/interactive/
Dc(g) = ∞
Dc(i) = min{cc,b+Db(i)} = 1+ ∞ = ∞
Dc(h) = ∞
COMPUTER NETWORKS
DV in b:
Routing Protocols - Bellman-Ford
Db(a) = 8 Db(f) = ∞
Db(c) = 1 Db(g) = ∞
Db(d) = ∞ Db(h) = ∞ DV in e:
DV in d:
Db(e) = 1 Db(i) = ∞ De(a) = ∞
Dc(a) = 1
De(b) = 1
Dc(b) = ∞ a b c De(c) = ∞
Dc(c) = ∞ 8 1
De(d) = 1
Dc(d) = 0
t=1 Dc(e) = 1
1
Q: what is new DV computed in e at
1t=1?
De(e) = 0
De(f) = 1
▪ e receives DVs Dc(f) = ∞
De(g) = ∞
from b, d, f, h Dc(g) = 1
De(h) = 1
Dc(h) = ∞
De(i) = ∞
Dc(i) = ∞ d compute
e f DV in f:
1 1
DV in h: Dc(a) = ∞
Dc(a) = ∞ Dc(b) = ∞
Dc(b) = ∞ Dc(c) = ∞
Dc(c) = ∞ 1 1 1
Dc(d) = ∞
Dc(d) = ∞ Dc(e) = 1
Dc(e) = 1 Dc(f) = 0
Dc(f) = ∞ g h i Dc(g) = ∞
1 1
Dc(g) = 1 Dc(h) = ∞
Dc(h) = 0 Dc(i) = 1
COMPUTER NETWORKS
Routing Protocols - Bellman-Ford
•problem:
y sees direct link to x has new cost 60, but z has said it has a path at cost of 5. So
y computes “my new cost to x will be 6, via z); notifies z of new cost of 6 to x.
• z learns that path to x via y has new cost 6, so z computes “my new cost to
x will be 7 via y), notifies y of new cost of 7 to x.
• y learns that path to x via z has new cost 7, so y computes “my new cost to
x will be 8 via y), notifies z of new cost of 8 to x.
• z learns that path to x via y has new cost 8, so z computes “my new cost to
x will be 9 via y), notifies y of new cost of 9 to x.
…
▪see text for solutions. Distributed algorithms are tricky!
COMPUTER NETWORKS
Distance Vector vs Link State
Learning about Learn about network only Learn about network from all
network from neighbors routers
Building the Based on inputs from only Based on complete database
routing table neighbors collected from all routers