Professional Documents
Culture Documents
1
Chapter 4: Network Layer
❒ 4. 1 Introduction ❒ 4.4 IP: Internet
❒ 4.2 Virtual circuit and Protocol
datagram networks ❍ Datagram format
❍ IPv4 addressing
❒ 4.3 What’s inside a
❍ ICMP
router
❍ IPv6
Network layer
❒ transport segment from
sending to receiving host application
transport
network
❒ on sending side data link
physical
network
network data link
encapsulates segments data link
physical
physical
network
data link
physical
into datagrams network
data link
❒ on rcving side, delivers physical network
data link
physical
segments to transport network
layer network
data link
data link
physical
physical
❒ network layer protocols network
data link application
2
Two Key Network-Layer Functions
❍ routing algorithms
routing algorithm
value in arriving
packet’s header
0111 1
3 2
3
Connection setup
❒ 3rd important function in some network architectures:
ATM, frame relay, X.25
❍
❒ before datagrams flow, two end hosts and intervening
routers establish virtual connection
❍ routers get involved
❒ network vs transport layer connection service:
❍ network: between two hosts (may also involve
inervening routers in case of VCs)
❍ transport: between two processes
4
Network layer service models:
Guarantees ?
Network Service Congestion
Architecture Model Bandwidth Loss Order Timing feedback
5
Network layer connection and
connection-less service
❒ datagram network provides network-layer
connectionless service
❒ VC network provides network-layer
connection service
❒ analogous to the transport-layer services,
but:
❍ service: host-to-host
❍ no choice: network provides one or the other
❍ implementation: in network core
Virtual circuits
“source-to-dest path behaves much like telephone
circuit”
❍ performance-wise
❍ network actions along source-to-dest path
❒ call setup, teardown for each call before data can flow
❒ each packet carries VC identifier (not destination host
address)
❒ every router on source-dest path maintains “state” for
each passing connection
❒ link, router resources (bandwidth, buffers) may be
allocated to VC (dedicated resources = predictable service)
6
VC implementation
a VC consists of:
1. path from source to destination
2. VC numbers, one number for each link along
path
3. entries in forwarding tables in routers along
path
❒ packet belonging to VC carries VC number
(rather than dest address)
❒ VC number can be changed on each link.
❍ New VC number comes from forwarding table
12 22 32
1 3
2
1 12 3 22
2 63 1 18
3 7 2 17
1 97 3 87
… … … …
7
Virtual circuits: signaling protocols
application
transport 5. Data flow begins 6. Receive data application
transport
network 4. Call connected 3. Accept call
network
data link 1. Initiate call 2. incoming call
data link
physical
physical
Datagram networks
❒ no call setup at network layer
❒ routers: no state about end-to-end connections
❍ no network-level concept of “connection”
application
application
transport
transport
network
network
data link 1. Send data 2. Receive data
data link
physical
physical
8
4 billion
Forwarding table possible entries
otherwise 3
Examples
9
Datagram or VC network: why?
10
Router Architecture Overview
Two key router functions:
❒ run routing algorithms/protocol (RIP, OSPF, BGP)
❒ forwarding datagrams from incoming to outgoing link
Physical layer:
bit-level reception
Data link layer: Decentralized switching:
e.g., Ethernet ❒ given datagram dest., lookup output port
see chapter 5 using forwarding table in input port
memory
❒ goal: complete input port processing at
‘line speed’
❒ queuing: if datagrams arrive faster than
forwarding rate into switch fabric
11
Three types of switching fabrics
System Bus
12
Switching Via a Bus
13
Output Ports
14
Input Port Queuing
❒ Fabric slower than input ports combined -> queueing
may occur at input queues
❒ Head-of-the-Line (HOL) blocking: queued datagram
at front of queue prevents others in queue from
moving forward
❒ queueing delay and loss due to input buffer overflow!
15
The Internet Network layer
Host, router network layer functions:
Link layer
physical layer
16
IP datagram format
IP protocol version
number 32 bits total datagram
header length head. type of length (bytes)
(bytes) ver length
len service for
“type” of data fragment fragmentation/
16-bit identifier flgs
offset reassembly
max number time to upper header
remaining hops live layer checksum
(decremented at
each router) 32 bit source IP address
17
IP Fragmentation and Reassembly
length ID fragflag offset
Example =4000 =x =0 =0
❒ 4000 byte
One large datagram becomes
datagram several smaller datagrams
❒ MTU = 1500 bytes
length ID fragflag offset
=1500 =x =1 =0
1480 bytes in
data field length ID fragflag offset
=1500 =x =1 =185
offset =
1480/8 length ID fragflag offset
=1040 =x =0 =370
18
IP Addressing: introduction
223.1.1.1
❒ IP address: 32-bit
identifier for host, 223.1.2.1
223.1.1.2
router interface 223.1.1.4 223.1.2.9
❒ interface: connection
223.1.2.2
between host/router 223.1.1.3 223.1.3.27
Subnets
223.1.1.1
❒ IP address:
❍ subnet part (high 223.1.2.1
223.1.1.2
order bits) 223.1.1.4 223.1.2.9
❍ host part (low order
bits) 223.1.1.3
223.1.2.2
223.1.3.27
❒ What’s a subnet ?
subnet
❍ device interfaces with
same subnet part of IP 223.1.3.1 223.1.3.2
address
❍ can physically reach
each other without
intervening router network consisting of 3 subnets
19
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.
Each isolated network
is called a subnet. 223.1.3.0/24
Subnets 223.1.1.2
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.3.27
20
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 host
part part
11001000 00010111 00010000 00000000
200.23.16.0/23
Network Layer 4-41
Department of Computer Engineering Yeditepe University ©2010 CSE471 Data Comm. & Comp. Networks
21
IP addresses: how to get one?
Q: How does network get subnet part of IP
addr?
A: gets allocated portion of its provider ISP’s
address space
ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20
Organization 0
200.23.16.0/23
Organization 1
“Send me anything
200.23.18.0/23 with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
beginning
199.31.0.0/16”
22
Hierarchical addressing: more specific
routes
ISPs-R-Us has a more specific route to Organization 1
Organization 0
200.23.16.0/23
“Send me anything
with addresses
Organization 2 beginning
200.23.20.0/23 . Fly-By-Night-ISP 200.23.16.0/20”
.
. . Internet
.
Organization 7 .
200.23.30.0/23
“Send me anything
ISPs-R-Us
with addresses
Organization 1 beginning 199.31.0.0/16
or 200.23.18.0/23”
200.23.18.0/23
23
NAT: Network Address Translation
10.0.0.4
10.0.0.2
138.76.29.7
10.0.0.3
24
NAT: Network Address Translation
Implementation: NAT router must:
25
NAT: Network Address Translation
26
ICMP: Internet Control Message Protocol
27
Chapter 4: Network Layer
❒ 4. 1 Introduction ❒ 4.4 IP: Internet
❒ 4.2 Virtual circuit and Protocol
datagram networks ❍ Datagram format
❍ IPv4 addressing
❒ 4.3 What’s inside a
❍ ICMP
router
❍ IPv6
IPv6
❒ 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
28
IPv6 Header (Cont)
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
29
Transition From IPv4 To IPv6
❒ Not all routers can be upgraded simultaneous
❍ no “flag days”
❍ How will the network operate with mixed IPv4 and
IPv6 routers?
❒ Tunneling: IPv6 carried as payload in IPv4
datagram among IPv4 routers
Tunneling
A B E F
Logical view: tunnel
A B E F
Physical view:
IPv6 IPv6 IPv4 IPv4 IPv6 IPv6
30
Tunneling
A B E F
Logical view: tunnel
A B C D E F
Physical view:
IPv6 IPv6 IPv4 IPv4 IPv6 IPv6
data data
A-to-B: E-to-F:
B-to-C: B-to-C:
IPv6 IPv6
IPv6 inside IPv6 inside
IPv4 IPv4
Network Layer 4-61
Department of Computer Engineering Yeditepe University ©2010 CSE471 Data Comm. & Comp. Networks
31
A Link-State Routing Algorithm
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'
32
Dijkstra’s algorithm: example
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
v 3 w
2 5
u 2 z
1
3
1
x y 2
1
Network Layer 4-65
Department of Computer Engineering Yeditepe University ©2010 CSE471 Data Comm. & Comp. Networks
v w
u z
x y
33
Dijkstra’s algorithm, discussion
Algorithm complexity: n nodes
❒ each iteration: need to check all nodes, w, not in N
❒ n(n+1)/2 comparisons: O(n2)
❒ more efficient implementations possible: O(nlogn)
Oscillations possible:
❒ e.g., link cost = amount of carried traffic
A A A A
1 1+e 2+e 0 0 2+e 2+e
D 0
B D B D B D B
0 0 1+e 1 0 0 1+e 1
0 C e 0 0 1 e
C C 1+e 0 C
1 1
e … recompute … recompute … recompute
initially
routing
Network Layer 4-67
Department of Computer Engineering Yeditepe University ©2010 CSE471 Data Comm. & Comp. Networks
34
Distance Vector Algorithm
Bellman-Ford Equation (dynamic programming)
Define
dx(y) := cost of least-cost path from x to y
Then
dx(y) = min
v
{c(x,v) + dv(y) }
Bellman-Ford example
5
Clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3
v 3 w
2 5
u 2 z B-F equation says:
1
3
1 du(z) = min { c(u,v) + dv(z),
x y 2
1 c(u,x) + dx(z),
c(u,w) + dw(z) }
= min {2 + 5,
1 + 3,
5 + 3} = 4
Node that achieves minimum is next
hop in shortest path ➜ forwarding table
Network Layer 4-70
Department of Computer Engineering Yeditepe University ©2010 CSE471 Data Comm. & Comp. Networks
35
Distance Vector Algorithm
❒ 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 ]
36
Distance Vector Algorithm (5)
Iterative, asynchronous: Each node:
each local iteration caused
by:
❒ local link cost change wait for (change in local link
❒ DV update message from cost or msg from neighbor)
neighbor
Distributed:
recompute estimates
❒ each node notifies
neighbors only when its DV
changes if DV to any dest has
❍ neighbors then notify
changed, notify neighbors
their neighbors if
necessary
37
Distance Vector: link cost changes
Link cost changes:
60
❒ good news travels fast y
❒ bad news travels slow - 4 1
x z
“count to infinity” problem!
50
❒ 44 iterations before
algorithm stabilizes: see
text
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)
❒ will this completely solve
count to infinity problem?
Network Layer 4-75
Department of Computer Engineering Yeditepe University ©2010 CSE471 Data Comm. & Comp. Networks
38
Chapter 4: Network Layer
❒ 4. 1 Introduction ❒ 4.5 Routing algorithms
❒ 4.2 Virtual circuit and ❍ Link state
Hierarchical Routing
Our routing study thus far - idealization
❒ all routers identical
❒ network “flat”
… not true in practice
39
Hierarchical Routing
❒ aggregate routers into Gateway router
regions, “autonomous
❒ Direct link to router in
systems” (AS)
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
Interconnected ASes
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
❒ Forwarding table is
configured by both
intra- and inter-AS
Intra-AS
Routing
Inter-AS
Routing routing algorithm
algorithm algorithm
❍ Intra-AS sets entries
Forwarding for internal dests
table
❍ Inter-AS & Intra-As
sets entries for
external dests
Network Layer 4-80
Department of Computer Engineering Yeditepe University ©2010 CSE471 Data Comm. & Comp. Networks
40
Inter-AS tasks AS1 needs:
❒ Suppose router in AS1 1. to learn which dests
receives datagram for are reachable through
which dest is outside AS2 and which
of AS1 through AS3
❍ Router should forward 2. to propagate this
packet towards one of
reachability info to all
the gateway routers,
but which one? routers in AS1
Job of inter-AS routing!
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
Network Layer 4-81
Department of Computer Engineering Yeditepe University ©2010 CSE471 Data Comm. & Comp. Networks
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
Network Layer 4-82
Department of Computer Engineering Yeditepe University ©2010 CSE471 Data Comm. & Comp. Networks
41
Example: Choosing among multiple ASes
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
1d AS1
42
Chapter 4: Network Layer
❒ 4. 1 Introduction ❒ 4.5 Routing algorithms
❒ 4.2 Virtual circuit and ❍ Link state
Intra-AS Routing
43
Chapter 4: Network Layer
❒ 4. 1 Introduction ❒ 4.5 Routing algorithms
❒ 4.2 Virtual circuit and ❍ Link state
u destination hops
v
u 1
A B w v 2
w 2
x 3
x y 3
z C D z 2
y
44
RIP advertisements
❒ Distance vectors: exchanged among
neighbors every 30 sec via Response
Message (also called advertisement)
❒ Each advertisement: list of up to 25
destination nets within AS
RIP: Example
z
w x y
A D B
C
Destination Network Next Router Num. of hops to dest.
w A 2
y B 2
z B 7
x -- 1
…. …. ....
Routing table in D
45
RIP: Example
Dest Next hops
w - 1 Advertisement
x - 1 from A to D
z C 4
…. … ...
z
w x y
A D B
C
Destination Network Next Router Num. of hops to dest.
w A 2
y B 2
z B A 7 5
x -- 1
…. …. ....
Routing table in D Network Layer 4-91
Department of Computer Engineering Yeditepe University ©2010 CSE471 Data Comm. & Comp. Networks
46
RIP Table processing
Transprt Transprt
(UDP) (UDP)
network forwarding forwarding network
(IP) table table (IP)
link link
physical physical
47
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
48
Hierarchical OSPF
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.
49
Chapter 4: Network Layer
❒ 4. 1 Introduction ❒ 4.5 Routing algorithms
❒ 4.2 Virtual circuit and ❍ Link state
50
BGP basics
❒ Pairs of routers (BGP peers) exchange routing info
over semi-permanent TCP connections: BGP sessions
❍ BGP sessions need not correspond to physical links.
❒ When AS2 advertises a prefix to AS1, AS2 is
promising it will forward any datagrams destined to
that prefix towards the prefix.
❍ AS2 can aggregate prefixes in its advertisement
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
AS1 1d
eBGP session
iBGP session
Network Layer 4-101
Department of Computer Engineering Yeditepe University ©2010 CSE471 Data Comm. & Comp. Networks
3c
3a 2c
3b 2a
AS3 2b
1c AS2
1a 1b
AS1 1d
eBGP session
iBGP session
Network Layer 4-102
Department of Computer Engineering Yeditepe University ©2010 CSE471 Data Comm. & Comp. Networks
51
Path attributes & BGP routes
❒ When advertising a prefix, advert includes BGP
attributes.
❍ prefix + attributes = “route”
❒ Two important attributes:
❍ AS-PATH: contains ASs through which prefix advertisement
has passed: AS 67 AS 17
❍ NEXT-HOP: Indicates specific internal-AS router to next-
hop AS. (There may be multiple links from current AS to
next-hop-AS.)
❒ When gateway router receives route advertisement,
uses import policy to accept/decline.
Policy:
❒ Inter-AS: admin wants control over how its traffic
routed, who routes through its net.
❒ Intra-AS: single admin, so no policy decisions needed
Scale:
❒ hierarchical routing saves table size, reduced update
traffic
Performance:
❒ Intra-AS: can focus on performance
❒ Inter-AS: policy may dominate over performance
52
Chapter 4: Network Layer
❒ 4. 1 Introduction ❒ 4.5 Routing algorithms
❒ 4.2 Virtual circuit and ❍ Link state
Broadcast Routing
❒ Deliver packets from source to all other nodes
❒ Source duplication is inefficient:
duplicate
duplicate R1 creation/transmission R1
duplicate
R2 R2
R3 R4 R3 R4
source in-network
duplication duplication
53
In-network duplication
❒ Flooding: when node receives brdcst pckt,
sends copy to all neighbors
❍ Problems: cycles & broadcast storm
❒ Controlled flooding: node only brdcsts pkt
if it hasn’t brdcst same packet before
❍ Node keeps track of pckt ids already brdcsted
❍ Or reverse path forwarding (RPF): only forward
pckt if it arrived on shortest path between
node and source
❒ Spanning tree
❍ No redundant packets received by any node
Spanning Tree
❒ First construct a spanning tree
❒ Nodes forward copies only along spanning
tree
A A
B B
c c
D D
F E F E
G G
(a) Broadcast initiated at A (b) Broadcast initiated at D
54
Spanning Tree: Creation
❒ Center node
❒ Each node sends unicast join message to center
node
❍ Message forwarded until it arrives at a node already
belonging to spanning tree
A A
3
B B
c c
4
2
D D
F E F E
1 5
G G
(a) Stepwise construction (b) Constructed spanning
of spanning tree tree
Network Layer 4-109
Department of Computer Engineering Yeditepe University ©2010 CSE471 Data Comm. & Comp. Networks
55