Chapter 4
Network Layer
A note on the use of these ppt slides:
We’re making these slides freely available to all (faculty, students, readers).
They’re in PowerPoint form so you see the animations; and can add, modify,
and delete slides (including this one) and slide content to suit your needs.
They obviously represent a lot of work on our part. In return for use, we only
ask the following:
 If you use these slides (e.g., in a class) that you mention their source
(after all, we’d like people to use our book!)
 If you post any slides on a www site, that you note that they are adapted
from (or perhaps identical to) our slides, and note our copyright of this
material.
Computer
Networking: A Top
Down Approach
6th edition
Jim Kurose, Keith Ross
Addison-Wesley
March 2012
Thanks and enjoy! JFK/KWR
All material copyright 1996-2013
J.F Kurose and K.W. Ross, All Rights Reserved
Network Layer 4-1
University of Nevada – Reno
Computer Science & Engineering Department
Fall 2015
CPE 400 / 600
Computer Communication Networks
Lecture 11
(Contd.)
Prof. Shamik Sengupta
Office SEM 204
ssengupta@unr.edu
http://www.cse.unr.edu/~shamik/
Network Layer
Network Layer 4-3
The Internet network layer
host, router network layer functions:
transport layer: TCP, UDP
IP protocol
routing protocols
network
layer
• addressing conventions
• datagram format
• packet handling conventions
• path selection
• RIP, OSPF, BGP
forwarding
table
ICMP protocol
• error reporting
• router “signaling”
link layer
physical layer
Network Layer 4-4
IP datagram format
IP protocol version
number
header length
(bytes)
max number
remaining hops
(decremented at
each router)
upper layer protocol
to deliver payload to
how much overhead?
 20+ bytes of TCP
 8 bytes for UDP


20 bytes of IP
= 40 bytes + app
layer overhead
32 bits
total datagram
length (bytes)
ver head. type of
len service
length
16-bit identifier
upper
time to
layer
live
fragment
flgs
offset
header
checksum
for
fragmentation/
reassembly
32 bit source IP address
32 bit destination IP address
options (if any)
data
(variable length,
typically a TCP
or UDP segment)
e.g. timestamp,
record route
taken, specify
list of routers
to visit.
Network Layer 4-5
IP fragmentation, reassembly

fragmentation:
in: one large datagram
out: 3 smaller datagrams
…

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
Network Layer 4-6
IP fragmentation, reassembly
example:


4000 byte datagram
MTU = 1500 bytes
1480 bytes in
data field
offset =
1480/8
length ID fragflag
=4000 =x
=0
offset
=0
one large datagram becomes
several smaller datagrams
length ID fragflag
=1500 =x
=1
offset
=0
length ID fragflag
=1500 =x
=1
offset
=185
length ID fragflag
=1040 =x
=0
offset
=370
Why divide by 8?
Network Layer 4-7
IP addressing: introduction


IP address: 32-bit
223.1.1.1
identifier for host, router
interface
223.1.1.2
interface: connection
between host/router and
physical link
223.1.2.1
223.1.1.4
223.1.3.27
223.1.1.3
223.1.2.2
 router’s typically have
multiple interfaces
 host typically has one or
two interfaces (e.g., wired
Ethernet, wireless 802.11)

IP addresses associated
with each interface
223.1.2.9
223.1.3.1
223.1.3.2
223.1.1.1 = 11011111 00000001 00000001 00000001
223
1
1
1
Network Layer 4-8
Subnets
 IP
address:
subnet part
• high order bits
host part
• low order bits
 what
’s a subnet ?
device interfaces with
same subnet part of IP
address
can physically reach each
other without intervening
router
223.1.1.1
223.1.1.2
223.1.1.4
223.1.2.1
223.1.2.9
223.1.2.2
223.1.1.3
223.1.3.27
subnet
223.1.3.1
223.1.3.2
network consisting of 3 subnets
Network Layer 4-9
Subnets
223.1.1.0/24
223.1.2.0/24
recipe
 to determine the
subnets, detach each
interface from its
host or router,
creating islands of
isolated networks
223.1.1.1
223.1.1.2
223.1.1.4
each isolated network
is called a subnet
223.1.2.9
223.1.2.2
223.1.1.3
223.1.3.27
subnet
223.1.3.1

223.1.2.1
223.1.3.2
223.1.3.0/24
subnet mask: /24
Network Layer 4-10
Subnets
223.1.1.2
how many?
223.1.1.1
223.1.1.4
223.1.1.3
223.1.9.2
223.1.7.0
223.1.9.1
223.1.7.1
223.1.8.1
223.1.8.0
223.1.2.6
223.1.2.1
223.1.3.27
223.1.2.2
223.1.3.1
223.1.3.2
Network Layer 4-11
University of Nevada – Reno
Computer Science & Engineering Department
Fall 2015
CPE 400 / 600
Computer Communication Networks
Lecture 12
Prof. Shamik Sengupta
Office SEM 204
ssengupta@unr.edu
http://www.cse.unr.edu/~shamik/
Announcements

Assignment 2 uploaded, Due by Wednesday, Oct 13th

Quiz 2 on Wednesday, Oct 7th
Introduction 1-13
IP Address classes
Address Class
Range of IP addresses
Class A
1.0.0.0
127.255.255.255
Class B
128.0.0.0
191.255.255.255
Class C
192.0.0.0
223.255.255.255
Class D
224.0.0.0
239.255.255.255
Some special IP addresses

0.0.0.0 – lowest IP address
 Not used for a host connected to the Internet
 Used for hosts when they start (boot)

255.255.255.255 – highest IP address
 Not used for a host
 Used for broadcasting
“Classful” IP addressing
problem


Suppose you have a company with 200 hosts. Which IP address
class would you choose and why?
Suppose you have a company with 300 hosts. Which IP address
class would you choose and why?
IP addressing: CIDR
CIDR: Classless InterDomain Routing
 subnet portion of address of arbitrary length
 address format: a.b.c.d/x, where x is # bits in
subnet portion of address
subnet
part
host
part
11001000 00010111 00010000 00000000
200.23.16.0/23
Network Layer 4-17
IP addresses: how to get one?
Q: How does a host get IP address?


hard-coded by system admin in a file
DHCP: Dynamic Host Configuration Protocol:
dynamically get address from a server
“plug-and-play”
Network Layer 4-18
DHCP: Dynamic Host Configuration Protocol
goal: allow host to dynamically obtain its IP address from network
server when it joins network
 can renew its lease on address in use
 allows reuse of addresses
• only hold address while connected
 support for mobile users who want to join network
DHCP overview:




host broadcasts “DHCP discover” msg
DHCP server responds with “DHCP offer” msg
host requests IP address: “DHCP request” msg
DHCP server sends address: “DHCP ack” msg
Network Layer 4-19
DHCP client-server scenario
DHCP
server
223.1.1.0/24
223.1.2.1
223.1.1.1
223.1.1.2
223.1.1.4
223.1.1.3
223.1.2.9
223.1.3.27
223.1.2.2
arriving DHCP
client needs
address in this
network
223.1.2.0/24
223.1.3.2
223.1.3.1
223.1.3.0/24
Network Layer 4-20
DHCP client-server scenario
DHCP server: 223.1.2.5
DHCP discover
src : 0.0.0.0, 68
dest.: 255.255.255.255, 67
yiaddr: 0.0.0.0
transaction ID: 654
arriving
client
DHCP offer
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 654
lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68
dest:: 255.255.255.255, 67
yiaddrr: 223.1.2.4
transaction ID: 655
lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67
dest: 255.255.255.255, 68
yiaddrr: 223.1.2.4
transaction ID: 655
lifetime: 3600 secs
Network Layer 4-21
DHCP: more than IP addresses
DHCP can return more than just allocated IP
address on subnet:
 address of first-hop router for client
 name and IP address of DNS sever
 network mask
 indicating network versus host portion of address
Network Layer 4-22
DHCP: example

 its IP address,
 addr of first-hop router,
 addr of DNS server
DHCP
UDP
IP
Eth
Phy
DHCP
DHCP
DHCP
DHCP


DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
UDP
IP
Eth
Phy
connecting laptop needs
168.1.1.1
router with DHCP
server built into
router


use DHCP
DHCP request
 encapsulated in UDP,
 encapsulated in IP,
 encapsulated in
802.3 Ethernet
Ethernet frame broadcast on
LAN,
 received at router
running DHCP server
Ethernet
 to IP
 to UDP
 to DHCP
4-23
DHCP: example

DHCP
UDP
IP
Eth
Phy
DHCP
DHCP
DHCP
DHCP
 client’s IP address,
 IP address of first-hop router
for client,
 name & IP address of DNS
server

DHCP
DHCP
DHCP
DHCP
DHCP
DHCP
UDP
IP
Eth
Phy
DCP server formulates
DHCP ACK containing


router with DHCP
server built into
router

encapsulation of DHCP server,
frame forwarded to client,
up to DHCP at client
client now knows
 its IP address,
 name and IP address of
DNS server,
 IP address of its firsthop router
Network Layer 4-24
DHCP not enough!
NAT
Network Layer 4-25
NAT: network address translation
rest of
Internet
local network
(e.g., home network)
10.0.0/24
10.0.0.1
10.0.0.4
10.0.0.2
138.76.29.7
10.0.0.3
all datagrams leaving local
network have same single
source NAT IP address:
138.76.29.7,different source
port numbers
datagrams with source or
destination in this network
have 10.0.0/24 address for
source, destination (as usual)
Network Layer 4-26
NAT: network address translation
motivation: local network uses just one IP address as far
as outside world is concerned:
 range of addresses not needed from ISP:
 just one IP address for all devices
 can change addresses of devices in local network
without notifying outside world
 can change ISP without changing addresses of
devices in local network
 devices inside local net not explicitly addressable,
visible by outside world
 a security plus
Network Layer 4-27
NAT: network address translation
implementation: NAT router must:
 outgoing datagrams: replace (source IP address, port #) of
every outgoing datagram to (NAT IP address, new port #)
. . . remote clients/servers will respond using
(NAT IP address, new port #) as destination addr
 remember (in NAT translation table) every (source IP address,
port #) to (NAT IP address, new port #) translation pair
 incoming datagrams: replace (NAT IP address, new port #) in
dest fields of every incoming datagram with corresponding
(source IP address, port #) stored in NAT table
Network Layer 4-28
NAT: network address translation
2: NAT router
changes datagram
source addr from
10.0.0.1, 3345 to
138.76.29.7, 5001,
updates table
NAT translation table
WAN side addr
LAN side addr
1: host 10.0.0.1
sends datagram to
128.119.40.186, 80
138.76.29.7, 5001 10.0.0.1, 3345
……
……
S: 10.0.0.1, 3345
D: 128.119.40.186, 80
10.0.0.1
1
2
S: 138.76.29.7, 5001
D: 128.119.40.186, 80
138.76.29.7
S: 128.119.40.186, 80
D: 138.76.29.7, 5001
3: reply arrives
dest. address:
138.76.29.7, 5001
3
10.0.0.4
S: 128.119.40.186, 80
D: 10.0.0.1, 3345
10.0.0.2
4
10.0.0.3
4: NAT router
changes datagram
dest addr from
138.76.29.7, 5001 to 10.0.0.1, 3345
Network Layer 4-29
NAT: network address translation

NAT is controversial:
 routers should only process up to layer 3
 violates end-to-end argument
 address shortage should instead be solved by IPv6
Network Layer 4-30
NAT traversal problem

client wants to connect to server with
address 10.0.0.1
10.0.0.1
 server address 10.0.0.1 local to LAN
• client can’t use it as destination addr
 only one externally visible NATed address:
138.76.29.7
client

?
138.76.29.7
10.0.0.4
NAT
router
solution: Port forwarding: statically configure
NAT to forward incoming connection requests
at given port to server
 e.g., (123.76.29.7, port 2500) always forwarded
to 10.0.0.1 port 25000
Network Layer 4-31
NAT traversal problem

Solution 2: relaying (used in Skype)
 NATed client establishes connection to relay
 external client connects to relay
 relay bridges packets between two connections
2. connection to
relay initiated
by client
client
3. relaying
established
1. connection to
relay initiated
by NATed host
138.76.29.7
10.0.0.1
NAT
router
Network Layer 4-32
Sample Project Topics

CPE 400
CPE 600
Simulation

 WiFi Medium access control
 ARP and ARP spoofing
 Statistical multiplexing in flow
control of routers in a network
 Optimized Link State Routing
(OLSR) Protocol
 Better Approach To Mobile Adhoc
Networking (B.A.T.M.A.N.)
 Routing in VANET/FANET
 Multicasting and group management
Research Survey Topics
 D2D Communication for future 5G
networks
 Platoon-Based Vehicular CyberPhysical Systems
• Architecture and Challenges
 Internet-of-Things (IoT)
• Self-organization
• Security and privacy issues
 Software Defined Networks
 Interference mitigation in Femtocells
 Crowdsourcing in Heterogeneous
Networked Environments
Introduction 2-33
Some more sample project topics
CPE 400

Simulation





Transmission power/sleep control in sensor networks for extended lifetime
Data aggregation at routers/sensors for bandwidth conservation
Performance of existing routing protocols under error prone networks
Experimenting with positioning technologies for mobile networks
Any kind of system development based on networking
Introduction 2-34
CPE 400 Requirements

Basic requirement
 The program is running, compiling
and giving output
 The program is able to simulate
the protocol/application scenario
well as explained in the
documentation
 You are able to capture the basic
functionalities of the
protocol/application
 There are results (performance
results)
 Some explanations of the results

Advanced requirement
 You are able to handle ALL the
format / functionalities of the
protocol/ application
 You are able to handle the error use
case scenarios
 You are able to tweak the existing
platform/mechanism to come up with
something else that are focused on
something extra
 Able to compare with another similar
protocol
 Able to get some results on your
proposed idea
 And explanations…
Introduction 2-35
University of Nevada – Reno
Computer Science & Engineering Department
Fall 2015
CPE 400 / 600
Computer Communication Networks
Lecture 13
Prof. Shamik Sengupta
Office SEM 204
ssengupta@unr.edu
http://www.cse.unr.edu/~shamik/
Announcements


Quiz #2
Midterm: Monday, Oct 26th
 Previous Wednesday, Oct 21st Midterm discussion
Network Layer 4-37
Routing
Network Layer 4-38
Graph abstraction
5
2
u
2
1
graph: G = (N,E)
v
x
3
w
3
1
5
z
1
y
2
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) }
aside: graph abstraction is useful in other network contexts, e.g.,
P2P, where N is set of peers and E is set of TCP connections
Network Layer 4-39
Graph abstraction: costs
5
2
u
v
2
1
x
3
w
3
1
c(x,x’) = cost of link (x,x’)
e.g., c(w,z) = 5
5
z
1
y
2
cost could always be 1, or
inversely related to bandwidth, or
related to congestion
cost of path (x1, x2, x3,…, xp) = c(x1,x2) + c(x2,x3) + … + c(xp-1,xp)
key question: what is the least-cost path between u and z ?
routing algorithm: algorithm that finds that least cost path
Network Layer 4-40
Routing algorithm classification
Q: global or decentralized
information?
global:
 all routers have complete
topology, link cost info
 “link state” algorithms
decentralized:
 router knows physicallyconnected neighbors, link
costs to neighbors
 iterative process of
computation, exchange of
info with neighbors
 “distance vector” algorithms
Q: static or dynamic?
static:
 routes change slowly over
time
dynamic:
 routes change more
quickly
 periodic update
 in response to link
cost changes
Network Layer 4-41
A Link-State Routing Algorithm
Dijkstra’s 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; = ∞ 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
Network Layer 4-42
Dijsktra’s 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) = ∞
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'
Network Layer 4-43
Dijkstra’s algorithm: example
D(v) D(w) D(x) D(y) D(z)
Step
0
1
2
3
4
5
N'
p(v)
p(w)
p(x)
u
uw
uwx
uwxv
uwxvy
uwxvyz
7,u
6,w
6,w
3,u
∞
∞
5,u
∞
5,u 14,w
12,w 14,x
10,v 14,x
12,y
p(y)
p(z)
x
notes:


construct shortest path tree by
tracing predecessor nodes
ties can exist
 can be broken arbitrarily
5
9
7
4
11
3
u
w
y
2
z
3
4
7
v
Network Layer 4-44
Dijkstra’s algorithm: example
Step
0
1
2
3
4
5
N'
u
ux
uxy
uxyv
uxyvw
uxyvwz
D(v),p(v) D(w),p(w)
2,u
5,u
2,u
4,x
2,u
3,y
3,y
D(x),p(x)
1,u
D(y),p(y)
∞
2,x
D(z),p(z)
∞
∞
4,y
4,y
4,y
5
2
u
v
2
1
x
3
w
3
1
5
z
1
y
2
Network Layer 4-45
Dijkstra’s algorithm: example (2)
resulting shortest-path tree from u:
v
w
u
z
x
y
resulting forwarding table in u:
destination
link
v
x
(u,v)
(u,x)
y
(u,x)
w
(u,x)
z
(u,x)
Network Layer 4-46
University of Nevada – Reno
Computer Science & Engineering Department
Fall 2015
CPE 400 / 600
Computer Communication Networks
Lecture 14
Prof. Shamik Sengupta
Office SEM 204
ssengupta@unr.edu
http://www.cse.unr.edu/~shamik/
Distance vector algorithm
Decentralized:
let
dx(y) := cost of least-cost path from x to y
then
dx(y) = min
{c(x,v)
+
d
(y)
}
v
v
cost from neighbor v to destination y
cost to neighbor v
min taken over all neighbors v of x
Network Layer 4-48
Bellman-Ford example
5
2
u
v
2
1
x
3
w
3
1
dv(z) = 5, dx(z) = 3, dw(z) = 3
5
z
1
y
2
B-F equation says:
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
node looking for shortest path, used in forwarding table
Network Layer 4-49
Distance vector algorithm

Dx(y) = estimate of least cost from x to y
 x maintains distance vector Dx = [Dx(y): y є N ]

node x:
 knows cost to each neighbor v: c(x,v)
 maintains its neighbors’distance vectors.
• For each neighbor v, x maintains Dv = [Dv(y): y є N ]
Network Layer 4-50
Distance vector algorithm
key idea:


from time-to-time, each node sends its own
distance vector estimate to neighbors
when x receives new DV estimate from neighbor,
it updates its own DV using B-F equation:
Dx(y) ← minv{c(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)
Network Layer 4-51
Distance vector algorithm
iterative, asynchronous:

each local iteration caused by:
 local link cost change
 DV update message from neighbor
each node:
wait for (change in local link
cost or msg from neighbor)
distributed:

each node notifies neighbors
only when its DV changes
 neighbors then notify their
neighbors if necessary
recompute estimates
if DV to any dest has
changed, notify neighbors
Network Layer 4-52
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2
x y z
x 0 2 7
y ∞∞ ∞
z ∞∞ ∞
x 0 2 3
y 2 0 1
z 7 1 0
cost to
from
from
node x
cost to
table x y z
Dx(z) = min{c(x,y) + Dy(z),
c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
from
node y cost to
table x y z
2
x ∞ ∞ ∞
y 2 0 1
z ∞∞ ∞
x
y
7
1
z
from
node z cost to
table x y z
x ∞∞ ∞
y ∞∞ ∞
z 7 1 0
time
Network Layer 4-53
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2
Dx(z) = min{c(x,y) + Dy(z),
c(x,z) + Dz(z)}
= min{2+1 , 7+0} = 3
x y z
x y z
x 0 2 7
y ∞∞ ∞
z ∞∞ ∞
x 0 2 3
y 2 0 1
z 7 1 0
x 0 2 3
y 2 0 1
z 3 1 0
cost to
cost to
from
from
from
node x
cost to
table x y z
x y z
x y z
x ∞ ∞ ∞
y 2 0 1
z ∞∞ ∞
x 0 2 7
y 2 0 1
z 7 1 0
x 0 2 3
y 2 0 1
z 3 1 0
cost to
cost to
x ∞∞ ∞
y ∞∞ ∞
z 7 1 0
x 0 2 7
y 2 0 1
z 3 1 0
2
x
y
7
1
z
cost to
x y z
from
x y z
from
node z cost to
table x y z
from
cost to
from
from
from
node y cost to
table x y z
x 0 2 3
y 2 0 1
z 3 1 0
time
Network Layer 4-54
Distance vector: link cost changes
link cost changes:



node detects local link cost change
updates routing info, recalculates
distance vector
if DV changes, notify neighbors
“good
news
travels
fast”
1
x
4
y
50
1
z
t0 : y detects link-cost change, updates its DV, informs its
neighbors.
t1 : z receives update from y, updates its table, computes
new least cost to x , sends its neighbors its DV.
t2 : y receives z’s update, updates its distance table. y’s
least costs do not change, so y does not send a message to
z.
Network Layer 4-55
Distance vector: link cost changes
link cost changes:




60
node detects local link cost change
bad news travels slow
x
“count to infinity” problem!
44 iterations before algorithm stabilizes
4
y
50
1
z
poisoned reverse:

If Z routes through Y to get to X :
 Z tells Y its (Z’s) distance to X is infinite
 so Y won’t route to X via Z
Network Layer 4-56
Hierarchical routing
our routing study thus far - idealization
 all routers identical
 network “flat”
… not true in practice
scale: with 600 million
destinations:


can’t store all dest’s in
routing tables!
routing table exchange
would swamp links!
administrative autonomy


internet = network of networks
each network admin may want
to control routing in its own
network
Network Layer 4-57
Hierarchical routing


aggregate routers into
regions, “autonomous
systems” (AS)
gateway router:


at “edge” of its own AS
has link to router in
another AS
routers in same AS run
same routing protocol
 “intra-AS” routing protocol
 routers in different AS can
run different intra-AS
routing protocol
Network Layer 4-58
Interconnected ASes
3c
3a
3b
AS3
2a
1c
1a
1d
2c
2b
AS2
1b AS1
Intra-AS
Routing
algorithm
Inter-AS
Routing
algorithm
Forwarding
table

forwarding table configured
by both intra- and inter-AS
routing algorithm
 intra-AS sets entries for
internal dests
 inter-AS & intra-AS sets
entries for external
dests
Network Layer 4-59
Inter-AS tasks

suppose router in AS1
receives datagram
destined outside of AS1:
 router should forward
packet to gateway
router, but which one?
AS1 must:
1.
learn which dests are
reachable through AS2,
which through AS3
2.
propagate this reachability
info to all routers in AS1
job of inter-AS routing!
3c
3b
other
networks
3a
AS3
2c
1c
1a
AS1
1d
2a
1b
2b
other
networks
AS2
Network Layer 4-60
Example: setting forwarding table in router 1d


suppose AS1 learns (via inter-AS protocol) that subnet x
reachable via AS3 (gateway 1c), but not via AS2
 inter-AS protocol propagates reachability info to all internal
routers
router 1d determines from intra-AS routing info that its
interface I is on the least cost path to 1c
 installs forwarding table entry (x,I)
x
3c
3b
other
networks
3a
AS3
2c
1c
1a
AS1
1d
2a
1b
2b
other
networks
AS2
Network Layer 4-61
Example: choosing among multiple ASes


now suppose AS1 learns from inter-AS protocol that subnet
x is reachable from AS3 and from AS2.
to configure forwarding table, router 1d must determine
which gateway it should forward packets towards for dest x
 this is also job of inter-AS routing protocol!
x
3c
3b
other
networks
3a
AS3
2c
1c
1a
AS1
1d
2a
1b
2b
other
networks
AS2
?
Network Layer 4-62
Example: choosing among multiple ASes



now suppose AS1 learns from inter-AS protocol that subnet x
is reachable from AS3 and from AS2.
to configure forwarding table, router 1d must determine
towards which gateway it should forward packets for dest x
 this is also job of inter-AS routing protocol!
hot potato routing: send packet towards closest of two routers.
learn from inter-AS
protocol that subnet
x is reachable via
multiple gateways
use routing info
from intra-AS
protocol to determine
costs of least-cost
paths to each
of the gateways
hot potato routing:
choose the gateway
that has the
smallest least cost
determine from
forwarding table the
interface I that leads
to least-cost gateway.
Enter (x,I) in
forwarding table
Network Layer 4-63
Routing in the Internet
 RIP
 OSPF
 BGP
Network Layer 4-64
Intra-AS Routing


also known as interior gateway protocols (IGP)
most common intra-AS routing protocols:
 RIP: Routing Information Protocol
 OSPF: Open Shortest Path First
Network Layer 4-65
RIP ( Routing Information Protocol)


included in BSD-UNIX distribution in 1982
distance vector algorithm
 distance metric: # hops (max = 15 hops), each link has cost 1
 DVs exchanged with neighbors every 30 sec in response message
• aka advertisement
 each advertisement: list of up to 25 destination subnets (in IP addressing
sense)
u
v
A
z
C
B
w
x
D
y
from router A to destination subnets:
subnet hops
u
1
v
2
w
2
x
3
y
3
z
2
Network Layer 4-66
RIP: example
z
w
A
x
y
B
D
C
routing table in router D
destination subnet
next router
# hops to dest
w
y
z
x
A
B
B
--
2
2
7
1
….
….
....
Network Layer 4-67
RIP: example
dest
w
x
z
….
w
A
A-to-D advertisement
next hops
1
1
C
4
… ...
x
z
y
B
D
C
routing table in router D
destination subnet
next router
# hops to dest
w
y
z
x
A
B
A
B
--
2
2
5
7
1
….
….
....
Network Layer 4-68
RIP: link failure, recovery
if no advertisement heard after 180 sec -->
neighbor/link declared dead
 routes via neighbor invalidated
 new advertisements sent to neighbors
 neighbors in turn send out new advertisements
• if tables changed
 link failure info quickly (?) propagates to entire net
 poison reverse used to prevent ping-pong loops
• infinite distance = 16 hops
Network Layer 4-69
University of Nevada – Reno
Computer Science & Engineering Department
Fall 2015
CPE 400 / 600
Computer Communication Networks
Lecture 15
Prof. Shamik Sengupta
Office SEM 204
ssengupta@unr.edu
http://www.cse.unr.edu/~shamik/
OSPF (Open Shortest Path First)


“open”: publicly available
uses link state algorithm
 LS packet dissemination
 topology map at each node
 route computation using Dijkstra’s algorithm

OSPF advertisement carries one entry per neighbor

advertisements flooded to entire AS
 carried in OSPF messages directly over IP
Network Layer 4-71
OSPF “advanced” features (not in RIP)

multiple same-cost paths allowed
 only one path in RIP

for each link, multiple cost metrics for different TOS
 e.g., satellite link cost set “low” for best effort ToS;
high for real time ToS


integrated uni- and multicast support:
 Multicast OSPF (MOSPF) uses same topology data
base as OSPF
hierarchical OSPF in large domains.
Network Layer 4-72
Hierarchical OSPF
boundary router
backbone router
backbone
area
border
routers
area 3
internal
routers
area 1
area 2
Network Layer 4-73
Hierarchical OSPF

two-level hierarchy: local area, backbone.
 link-state advertisements only in area
 each nodes has detailed area topology;
• only know direction (shortest path) to nets in other areas



area border routers: “summarize” distances to nets in
own area, advertise to other Area Border routers
backbone routers: run OSPF routing limited to backbone
boundary routers: connect to other AS’s
Network Layer 4-74
Routing in
Mobile Ad hoc Networks
Why is Ad hoc Routing challenging?
– No infrastructure network facility
– Changing network conditions at a faster scale
– Host mobility
– Energy consumption
– Traditional routing algorithms assume relatively stable network
topology, few router failures
Tradeoff: Proactive vs. Reactive Routing Protocol
 Proactive Protocols
• have lower latency due to maintenance of routes at all times
• can result in much higher overhead due to frequent route updates
 Reactive Protocols may have
• higher latency since the routes have to be discovered when the source
node initiates a route request
• lower overhead since routes are maintained only on-demand basis

Which approach achieves a better tradeoff depends
on the traffic and mobility patterns
Reactive protocol: Dynamic
Source Routing (DSR)



When node S wants to send a packet to node D,
but does not know a route to D, node S initiates
a route discovery
Source node S floods Route Request (RREQ)
Each node appends own identifier when
forwarding RREQ
© 2001 Nitin Vaidya
Route Discovery in DSR
Y
Z
S
E
F
B
C
M
J
A
L
G
H
K
I
D
N
Represents a node that has received RREQ for D from S
© 2001 Nitin Vaidya
Route Discovery in DSR
Y
Broadcast transmission
[S]
S
Z
E
F
B
C
M
J
A
L
G
H
K
D
I
N
Represents transmission of RREQ
[X,Y]
Represents list of identifiers appended to RREQ
© 2001 Nitin Vaidya
Route Discovery in DSR
Y
Z
S
E
[S,E]
F
B
C
A
M
J
[S,C]
H
L
G
K
I
D
N
• Node H receives packet RREQ from two neighbors:
potential for collision
© 2001 Nitin Vaidya
Route Discovery in DSR
Y
Z
S
E
F
B
[S,E,F]
C
M
J
A
L
G
H
I
[S,C,G] K
D
N
• Node C receives RREQ from G and H, but does not forward
it again, because node C has already forwarded RREQ once
© 2001 Nitin Vaidya
Route Discovery in DSR
Y
Z
S
E
[S,E,F,J]
F
B
C
M
J
A
L
G
H
D
K
I
[S,C,G,K]
N
• Nodes J and K both broadcast RREQ to node D
• Since nodes J and K are hidden from each other, their
transmissions may collide
© 2001 Nitin Vaidya
Route Discovery in DSR
Y
Z
S
E
[S,E,F,J,M]
F
B
C
M
J
A
L
G
H
K
I
D
N
• Node D does not forward RREQ, because node D
is the intended target of the route discovery
© 2001 Nitin Vaidya
Route Discovery in DSR



Destination D on receiving the first RREQ, sends
a Route Reply (RREP)
RREP is sent on a route obtained by reversing the
route appended to received RREQ
RREP includes the route from S to D on which
RREQ was received by node D
© 2001 Nitin Vaidya
Route Reply in DSR
Y
Z
S
E
RREP [S,E,F,J,D]
F
B
C
M
J
A
L
G
H
K
I
D
N
Represents RREP control message
© 2001 Nitin Vaidya
Route Reply in DSR



Route Reply can be sent by reversing the route in Route Request (RREQ)
only if links are guaranteed to be bi-directional
 To ensure this, RREQ should be forwarded only if it received on a link
that is known to be bi-directional
If unidirectional (asymmetric) links are allowed, then RREP may need a route
discovery for S from node D
 Unless node D already knows a route to node S
 If a route discovery is initiated by D for a route to S, then the Route
Reply is piggybacked on the Route Request from D.
If IEEE 802.11 MAC is used to send data, then links have to be bi-directional
(since Ack is used)
© 2001 Nitin Vaidya
Dynamic Source Routing (DSR)


Node S on receiving RREP, caches the route
included in the RREP
When node S sends a data packet to D, the
entire route is included in the packet header
 hence the name source routing

Intermediate nodes use the source route included
in a packet to determine to whom a packet
should be forwarded
© 2001 Nitin Vaidya
Data Delivery in DSR
Y
DATA [S,E,F,J,D]
S
Z
E
F
B
C
M
J
A
L
G
H
K
I
D
N
Packet header size grows with route length
© 2001 Nitin Vaidya
When to Perform a Route
Discovery

When node S wants to send data to node D, but
does not know a valid route node D
© 2001 Nitin Vaidya
DSR Optimization:
Route Caching




Each node caches a new route it learns by any means
When node S finds route [S,E,F,J,D] to node D, node S also learns route
[S,E,F] to node F
When node K receives Route Request [S,C,G] destined for node, node K
learns route [K,G,C,S] to node S
When node F forwards Route Reply RREP [S,E,F,J,D], node F learns route
[F,J,D] to node D

When node E forwards Data [S,E,F,J,D] it learns route [E,F,J,D] to node D

A node may also learn a route when it overhears Data packets
© 2001 Nitin Vaidya
Use of Route Caching



When node S learns that a route to node D is broken, it
uses another route from its local cache, if such a route to
D exists in its cache. Otherwise, node S initiates route
discovery by sending a route request
Node X on receiving a Route Request for some node D
can send a Route Reply if node X knows a route to node
D
Use of route cache
 can speed up route discovery
 can reduce propagation of route requests
© 2001 Nitin Vaidya
Use of Route Caching:
Can Speed up Route Discovery
[S,E,F,J,D]
[E,F,J,D]
S
[F,J,D],[F,E,S]
E
F
B
C
[G,C,S]
[C,S]
A
[J,F,E,S]
M
J
L
G
H
I
When node Z sends a route request
for node C, node K sends back a route
reply [Z,K,G,C] to node Z using a locally
cached route
[K,G,C,S] K
D
RREP
N
RREQ
Z
Route Reply Storm!
© 2001 Nitin Vaidya
Route Error (RERR)
Y
RERR [J-D]
S
Z
E
F
B
C
M
J
A
L
G
H
K
D
I
N
J sends a route error to S along route J-F-E-S when its attempt to forward the
data packet S (with route SEFJD) on J-D fails
Nodes hearing RERR update their route cache to remove link J-D
© 2001 Nitin Vaidya
Route Caching: Beware!



Stale caches can adversely affect performance
With passage of time and host mobility, cached
routes may become invalid
A sender host may try several stale routes
(obtained from local cache, or replied from cache
by other nodes), before finding a good route
© 2001 Nitin Vaidya
Dynamic Source Routing:
Advantages

Routes maintained only between nodes who need
to communicate
 reduces overhead of route maintenance


Route caching can further reduce route discovery
overhead
A single route discovery may yield many routes
to the destination, due to intermediate nodes
replying from local caches
© 2001 Nitin Vaidya
Dynamic Source Routing:
Disadvantages


Packet header size grows with route length due to source routing
Care must be taken to avoid collisions between route requests propagated by
neighboring nodes
 Soln: insertion of random delays before forwarding RREQ

Increased contention if too many route replies come back due to nodes
replying using their local cache
 Route Reply Storm problem
 Reply storm may be eased by preventing a node from sending RREP if it
hears another RREP with a shorter route
© 2001 Nitin Vaidya
IP address: Subnetting
Introduction 2-98
IP addressing: Subnetting


IP address: 32-bit identifier for host, router interface
interface: connection between host/router and physical link
 router’s typically have multiple interfaces
 host typically has one or two interfaces (e.g., wired Ethernet,
wireless 802.11)

IP addresses associated with each interface

What is a subnet?
Network Layer 4-99
Subnet Example
Network address 172.19.0.0 with /16 network mask
Network Network
172
19
Host
Host
0
0
• Why would you want to subnet?
– Divide larger network into smaller networks
– Limit layer 2 and layer 3 broadcasts to their subnet.
– Better management of traffic.
Subnet Example
Network address 172.19.0.0 with /16 network mask
Network Network
Host
Host
172
19
0
0
Using Subnets: subnet mask 255.255.255.0 or /24
Network Network
Subnet
Host
Network Mask:
255.255.0.0 or /16
11111111
11111111
00000000
00000000
Subnet Mask:
255.255.255.0 or /24
11111111
11111111
11111111
00000000
• Applying a mask which is larger than the default subnet mask,
will divide your network into subnets.
• Subnet mask used here is 255.255.255.0 or /24
Subnet Example
Network address 172.19.0.0 with /16 network mask
Using Subnets: subnet mask 255.255.255.0 or /24
Network Network
Subnet
Host
172
172
19
19
0
1
Host
Host
172
172
172
172
19
19
19
19
2
3
etc.
254
Host
Host
Host
Host
172
19
255
Host
Subnets
255
Subnets
28 - 1
Cannot use last
subnet as it
contains broadcast
address
Subnet Example
Network address 172.19.0.0 with /16 network mask
Using Subnets: subnet mask 255.255.255.0 or /24
Network Network
Subnet
Host
172
172
19
19
0
1
0
0
172
172
172
172
19
19
19
19
2
3
etc.
254
0
0
0
0
172
19
255
0
Subnets
Addresses
255
Subnets
28 - 1
Cannot use last
subnet as it
contains broadcast
address
Subnet Example
Class B address 172.19.0.0 with /16 network mask
Using Subnets: subnet mask 255.255.255.0 or /24
Network Network
Subnet
Hosts
Hosts
Addresses
172
172
19
19
0
1
1
1
254
254
172
172
172
172
19
19
19
19
2
3
etc.
254
1
1
1
1
254
254
254
172
19
255
Host
254
Each subnet has
254 hosts, 28 – 2
Subnet Example
Network address 172.19.0.0 with /16 network mask
Using Subnets: subnet mask 255.255.255.0 or /24
Network Network
Subnet
Host
172
172
19
19
0
1
255
255
172
172
172
172
19
19
19
19
2
3
etc.
254
255
255
255
255
172
19
255
255
Broadcast
Addresses
255
Subnets
28 - 1
Cannot use last
subnet as it
contains broadcast
address
Subnet Example
Network address 172.19.0.0 with /16 network mask
Using Subnets: subnet mask 255.255.255.0 or /24
172.19.0.0/24
172.19.5.0/24
172.19.10.0/24
172.19.25.0/24
Important things to remember about Subnetting



You can only subnet the host portion, you do not have control of the
network portion.
Subnetting does not give you more hosts, it only allows you to divide
your larger network into smaller networks.
When subnetting, you will actually lose host addresses:
 For each subnet you lose the address of that subnet
 For each subnet you lose the broadcast address of that subnet
 You “may” lose the first and last subnets
University of Nevada – Reno
Computer Science & Engineering Department
Fall 2015
CPE 400 / 600
Computer Communication Networks
Lecture 16
Prof. Shamik Sengupta
Office SEM 204
ssengupta@unr.edu
http://www.cse.unr.edu/~shamik/
Subnetting – Example



Host IP Address: 138.101.114.250
Network Mask: 255.255.0.0 (or /16)
Subnet Mask: 255.255.255.192 (or /26)
Given the following Host IP Address, Network Mask and Subnet mask find the following
information:
 Major Network Information
 Major Network Address
 Major Network Broadcast Address
 Range of Hosts if not subnetted
 Subnet Information
 Subnet Address
 Range of Host Addresses (first host and last host)
 Broadcast Address
 Other Subnet Information
 Total number of subnets
 Number of hosts per subnet
Major Network Information






Host IP Address: 138.101.114.250
Network Mask: 255.255.0.0
Subnet Mask: 255.255.255.192
Major Network Address: 138.101.0.0
Major Network Broadcast Address: 138.101.255.255
Range of Hosts if not Subnetted: 138.101.0.1 to
138.101.255.254
Subnet information?
Introduction 2-111
Step 1: Find the Subnet Address
IP Address
Mask
Network
138.
10001010
11111111
10001010
138
101.
01100101
11111111
01100101
101
114.
01110010
11111111
01110010
114
250
11111010
11000000
11000000
192
Determine the Network (or Subnet) where this Host address lives:
1. Perform a bit-wise AND operation on the IP Address and the Subnet Mask
Note: 1 AND 1 results in a 1, 0 AND anything results in a 0
2. Express the result in Dotted Decimal Notation
3. The result is the Subnet Address of this Subnet or “Wire” which is
138.101.114.192
Step 2: Subnet Range / Host
G.D.
Range
IP Address
Mask
Network
10001010
11111111
10001010
01100101
11111111
01100101
S.D.
01110010
11 111010
11111111
11 000000
01110010
11 000000
 subnet
  host 
counting range
counting
range
Step 2:
Determine which bits in the address contain Network (subnet)
information and which contain Host information:
 Use the Network Mask: 255.255.0.0 and divide (Great Divide) the
network from the rest of the address.
 Use Subnet Mask: 255.255.255.192 and divide (Small Divide) the subnet
from the hosts between the last “1” and the first “0” in the subnet mask.
Step 3: First Host / Last Host
G.D.
S.D.
IP Address
Mask
Network
10001010
11111111
10001010
01100101
11111111
01100101
01110010
11 111010
11111111
11 000000
01110010
11 000000
 subnet
  host 
counting range
counting
range
First Host
10001010
138
01100101
101
01110010
114
11
000001
193
Last Host
10001010
138
01100101
101
01110010
114
11
111110
254
Broadcast
10001010
138
01100101
101
01110010
114
11
111111
255
Host Portion
 Subnet Address: all 0’s
 First Host: all 0’s and a 1
 Last Host: all 1’s and a 0
 Broadcast: all 1’s
Step 4: Total Number of Subnets
G.D.
IP Address
Mask
Network

10001010
11111111
10001010
TotalFirstnumber
of
subnets
10001010
Host
138
 Number of subnet
bits 10
Last
 210
= Host
1,024 10001010
138
 1,024 total subnets
S.D.
01100101
11111111
01100101
01110010
11 111010
11111111
11 000000
01110010
11 000000
 subnet
  host 
counting range
counting
range
01100101
101
01110010
114
11
000001
193
01100101
101
01110010
114
11
111110
254
10001010
01100101
01110010
•Broadcast
Subtract one
“if” all-zeros
subnet cannot
be used11 111111
138
101
114
255
• Subtract one “if” all-ones subnet cannot be used
Step 5: Total Number of Hosts
per Subnet
G.D.
IP Address
Mask
Network

10001010
11111111
10001010
01100101
11111111
01100101
TotalFirstnumber
of
hosts per01100101
subnet
10001010
Host
S.D.
01110010
11 111010
11111111
11 000000
01110010
11 000000
 subnet
  host 
counting range
counting
range
11
101
01110010
114
000001
193
01100101
101
01110010
114
11
111110
254
10001010
01100101
•Broadcast
Subtract one
for the subnet
address 01110010
138
101
114
• Subtract one for the broadcast address
11
111111
255
 Number of host 138
bits 6
10001010
Host
 26Last
= 64
138
 64 host per subnets
 62 hosts per subnet
Example #1

191.54.38.15
 10111111. 00110110. 00100110. 00001111


Network mask: 255.255.0.0
Subnet mask: 255.255.255.0
Given the following Host IP Address, Network Mask and Subnet mask find the following
information:
 Major Network Information
 Major Network Address
 Major Network Broadcast Address
 Range of Hosts if not subnetted
 Subnet Information
 Subnet Address
 Range of Host Addresses (first host and last host)
 Broadcast Address
 Other Subnet Information
 Total number of subnets
 Number of hosts per subnet
Introduction 2-117
Example #2

191.54.38.207
 ???


Network mask: 255.255.255.0
Subnet mask: 255.255.255.224
Given the following Host IP Address, Network Mask and Subnet mask find the following
information:
 Major Network Information
 Major Network Address
 Major Network Broadcast Address
 Range of Hosts if not subnetted
 Subnet Information
 Subnet Address
 Range of Host Addresses (first host and last host)
 Broadcast Address
 Other Subnet Information
 Total number of subnets
 Number of hosts per subnet
Introduction 2-118
IPv6
Introduction 2-119
IPv6: motivation


initial motivation: 32-bit address space soon to be
completely allocated.
additional motivation:
 header format helps speed processing/forwarding
 header changes to facilitate QoS
IPv6 datagram format:
 fixed-length 40 byte header
 no fragmentation allowed
Network Layer 4-120
IPv6 datagram format
priority: identify priority among datagrams in flow
flow Label: identify datagrams in same “flow.”
(concept of “flow” not well defined).
next header: identify upper layer protocol for data
ver
pri
flow label
hop limit
payload len
next hdr
source address
(128 bits)
destination address
(128 bits)
data
32 bits
Network Layer 4-121
Transition from IPv4 to IPv6


not all routers can be upgraded simultaneously
 no “flag days”
 how will network operate with mixed IPv4 and
IPv6 routers?
tunneling: IPv6 datagram carried as payload in IPv4
datagram among IPv4 routers
IPv4 header fields
IPv4 source, dest addr
IPv6 header fields
IPv6 source dest addr
IPv4 payload
UDP/TCP payload
IPv6 datagram
IPv4 datagram
Network Layer 4-122
Tunneling
IPv4 tunnel
connecting IPv6 routers
A
B
IPv6
IPv6
A
B
C
IPv6
IPv6
IPv4
logical view:
E
F
IPv6
IPv6
D
E
F
IPv4
IPv6
IPv6
physical view:
Network Layer 4-123
Tunneling
IPv4 tunnel
connecting IPv6 routers
A
B
IPv6
IPv6
A
B
C
IPv6
IPv6
IPv4
logical view:
E
F
IPv6
IPv6
D
E
F
IPv4
IPv6
IPv6
physical view:
flow: X
src: A
dest: F
data
A-to-B:
IPv6
src:B
dest: E
src:B
dest: E
Flow: X
Src: A
Dest: F
Flow: X
Src: A
Dest: F
data
data
B-to-C:
IPv6 inside
IPv4
B-to-C:
IPv6 inside
IPv4
flow: X
src: A
dest: F
data
E-to-F:
IPv6
Network Layer 4-124
ICMP
Introduction 2-125
ICMP: internet control message protocol

used by hosts & routers
to communicate networklevel information
 error reporting:
unreachable host, network,
port, protocol
 echo request/reply (used by
ping)

network-layer “above” IP:
 ICMP msgs carried in IP
datagrams

ICMP message: type, code
plus first 8 bytes of IP
datagram causing error
Type
0
3
3
3
3
3
3
4
Code
0
0
1
2
3
6
7
0
8
9
10
11
12
0
0
0
0
0
description
echo reply (ping)
dest. network unreachable
dest host unreachable
dest protocol unreachable
dest port unreachable
dest network unknown
dest host unknown
source quench (congestion
control - not used)
echo request (ping)
route advertisement
router discovery
TTL expired
bad IP header
Network Layer 4-126
Traceroute and ICMP

source sends series of
UDP segments to dest
 first set has TTL =1
 second set has TTL=2, etc.
 unlikely port number

when nth set of datagrams
arrives to nth router:
 router discards datagrams
 and sends source ICMP
messages (type 11, code 0)
 ICMP messages includes
name of router & IP address
3 probes

when ICMP messages
arrives, source records
RTTs
stopping criteria:
 UDP segment eventually
arrives at destination host
 destination returns ICMP
“port unreachable”
message (type 3, code 3)
 source stops
3 probes
3 probes
Network Layer 4-127