* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project
Download Document
Asynchronous Transfer Mode wikipedia , lookup
Backpressure routing wikipedia , lookup
Distributed firewall wikipedia , lookup
Zero-configuration networking wikipedia , lookup
Deep packet inspection wikipedia , lookup
Wake-on-LAN wikipedia , lookup
Multiprotocol Label Switching wikipedia , lookup
Cracking of wireless networks wikipedia , lookup
Network tap wikipedia , lookup
Piggybacking (Internet access) wikipedia , lookup
Internet protocol suite wikipedia , lookup
Computer network wikipedia , lookup
IEEE 802.1aq wikipedia , lookup
Airborne Networking wikipedia , lookup
Recursive InterNetwork Architecture (RINA) wikipedia , lookup
Chapter 4
Network Layer
The slides are adaptation of the slides made
available by the authors of the course’s main
textbook
Computer
Networking: A Top
Down Approach
6th edition
Jim Kurose, Keith Ross
Addison-Wesley
March 2012
Network Layer 4-1
Roadmap
Understand principles of network layer services
The Internet Network layer
Routing
Introduction
Routing Algorithms
Routing in the Internet
Network Layer 4-2
Interplay between routing, forwarding
routing algorithm determines
end-end-path through network
routing algorithm
local forwarding table
dest address output link
address-range 1
address-range 2
address-range 3
address-range 4
forwarding table determines
local forwarding at this router
3
2
2
1
IP destination address in
arriving packet’s header
1
3 2
Network Layer 4-3
Graph abstraction
5
v
w
2
u
2
1
graph: G = (N,E)
3
x
3
5
z
1
y
2
1
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) }
Besides: 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-4
Graph abstraction: costs
5
v
3
w
2
u
2
1
x
3
5
z
1
y
1
c(x,x’) = cost of link (x,x’)
e.g., c(w,z) = 5
2
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)
key question: what is the least-cost path between u and z ?
routing algorithm: algorithm that finds that least cost path
Network Layer 4-5
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-6
Roadmap
Understand principles of network layer services
The Internet Network layer
Routing
Introduction
Routing Algorithms
• Link State, Distant Vector
• Hierarchical Routing
Routing in the Internet
Network Layer 4-7
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
notation:
c(x,y): link cost from
iterative: after k
iterations, know least cost
path to k dest.’s
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-8
Dijkstra’s algorithm: example
Step
0
1
2
3
4
5
D(v),p(v) D(w),p(w)
2,u
5,u
2,u
4,x
2,u
3,y
3,y
N'
u
ux
uxy
uxyv
uxyvw
uxyvwz
5
v
3
w
2
u
2
1
x
3
z
1
y
1
5
2
D(x),p(x)
1,u
D(y),p(y)
∞
2,x
D(z),p(z)
∞
∞
4,y
4,y
4,y
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-9
Dijkstra’s algorithm: example (2)
resulting shortest-path tree from u:
v
w
u
z
x
y
resulting forwarding table in u:
destination
link
5
v
x
(u,v)
(u,x)
v
y
(u,x)
w
(u,x)
z
(u,x)
3
w
2
u
2
1
x
3
5
z
1
y
2
1
Network Layer 4-10
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., support link cost equals amount of carried traffic:
A
1
D
1
B
0
0
0
1+e
C
e
2+e
D
A
0
B
1+e 1
0
C
0
0
D
A
0
1
C
2+e
B
0
1+e
2+e
D
A
0
B
1+e 1
0
C
0
1
e
initially
given these costs,
find new routing….
resulting in new costs
given these costs,
given these costs,
find new routing….
find new routing….
resulting in new costs resulting in new costs
Network Layer 4-11
Distance vector algorithm
Bellman-Ford equation (dynamic programming)
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-12
Bellman-Ford example
5
v
3
w
2
u
2
1
x
3
5
z
1
y
1
clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3
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 achieving minimum is next
hop in shortest path, used in forwarding table
Network Layer 4-13
Distance vector algorithm
Let Dx = [Dx(y): y є N ] be node x’s distance
vector, which is the vector of cost estimates from
x to all other nodes, y, in N.
Each node x maintains the following routing info:
cost to each directly attached neighbor v of x: c(x,v)
the distance vector containing the estimate of the cost
to all destinations, y, in N: Dx = [Dx(y): y є N ]
the distance vector of each neighbor v of x: Dv =
[Dv(y): y є N ]
Network Layer 4-14
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
(if DV to any dest has changed, notify neighbors)
under minor, natural conditions, the estimate Dx(y)
converge to the actual least cost dx(y)
Network Layer 4-15
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
y
2
x ∞ ∞ ∞
y 2 0 1
z ∞∞ ∞
1
z
x
7
from
node z cost to
table x y z
x ∞∞ ∞
y ∞∞ ∞
z 7 1 0
time
Network Layer 4-16
Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)}
= min{2+0 , 7+1} = 2
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
x y z
x ∞ ∞ ∞
y 2 0 1
z ∞∞ ∞
x 0 2 7
y 2 0 1
z 7 1 0
cost to
x 0 2 7
y 2 0 1
z 3 1 0
x 0 2 3
y 2 0 1
z 3 1 0
2
1
z
x
7
cost to
x y z
from
x ∞∞ ∞
y ∞∞ ∞
z 7 1 0
from
x y z
y
x y z
cost to
node z cost to
table x y z
from
cost to
from
from
from
node y cost to
table x y z
cost to
from
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
x 0 2 3
y 2 0 1
z 3 1 0
time
Network Layer 4-17
Comparison 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
O(n2)
LS:
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 node’s table used by
others
• error propagate thru
network
Network Layer 4-18
Roadmap
Understand principles of network layer services
The Internet Network layer
Routing
Introduction
Routing Algorithms
• Link State, Distant Vector
• Hierarchical Routing
Routing in the Internet
Network Layer 4-19
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-20
Hierarchical routing
aggregate routers into
regions, “autonomous
systems” (AS)
routers in same AS
run same routing
protocol
gateway router:
at “edge” of its own AS
has link to router in
another AS
“intra-AS” routing
protocol
routers in different AS
can run different intraAS routing protocol
Network Layer 4-21
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 intraand inter-AS routing
algorithm
intra-AS sets entries
for internal dests
inter-AS & intra-AS
sets entries for
external dests
Network Layer 4-22
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-23
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-24
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!
x
3c
3b
other
networks
3a
AS3
2c
1c
1a
AS1
1d
2a
1b
2b
other
networks
AS2
?
Network Layer 4-25
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-26
Roadmap
Understand principles of network layer services
The Internet Network layer
Routing
Introduction
Routing Algorithms
Routing in the Internet
• RIP
• OSPF
• BGP
Network Layer 4-27
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
IGRP: Interior Gateway Routing Protocol
(Cisco proprietary)
Network Layer 4-28
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)
Links are declared dead after 180 sec of no 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-29
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-30
RIP table processing
RIP routing tables managed by application-level
process called route-d (daemon)
advertisements sent in UDP packets, periodically
repeated
routed
routed
transport
(UDP)
network
(IP)
link
physical
transprt
(UDP)
forwarding
table
forwarding
table
network
(IP)
link
physical
Network Layer 4-32
Roadmap
Understand principles of network layer services
The Internet Network layer
Routing
Introduction
Routing Algorithms
Routing in the Internet
• RIP
• OSPF
• BGP
Network Layer 4-33
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 (rather than
TCP or UDP
IS-IS routing protocol: nearly identical to OSPF
Network Layer 4-34
OSPF “advanced” features (not in RIP)
security: all OSPF messages authenticated (to prevent
malicious intrusion)
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-35
Hierarchical OSPF
boundary router
backbone router
backbone
area
border
routers
area 3
internal
routers
area 1
area 2
Network Layer 4-36
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-37
Roadmap
Understand principles of network layer services
The Internet Network layer
Routing
Introduction
Routing Algorithms
Routing in the Internet
• RIP
• OSPF
• BGP
Network Layer 4-38
Internet inter-AS routing: BGP
BGP (Border Gateway Protocol): the de facto
inter-domain routing protocol
“glue that holds the Internet together”
BGP provides each AS a means to:
eBGP: obtain subnet reachability information from
neighboring ASs.
iBGP: propagate reachability information to all ASinternal routers.
determine “good” routes to other networks based on
reachability information and policy.
allows subnet to advertise its existence to rest of
Internet: “I am here”
Network Layer 4-39
BGP basics
BGP session: two BGP routers (“peers”) exchange BGP
messages:
advertising paths to different destination network prefixes (“path vector”
protocol)
exchanged over semi-permanent TCP connections
when AS3 advertises a prefix to AS1:
AS3 promises it will forward datagrams towards that prefix
AS3 can aggregate prefixes in its advertisement
3c
3b
other
networks
3a
BGP
message
AS3
2c
1c
1a
AS1
1d
2a
1b
2b
other
networks
AS2
Network Layer 4-40
BGP basics: distributing path information
using eBGP session between 3a and 1c, AS3 sends prefix
reachability info to AS1.
1c can then use iBGP do distribute new prefix info to all routers
in AS1
1b can then re-advertise new reachability info to AS2 over 1b-to2a eBGP session
when router learns of new prefix, it creates entry for
prefix in its forwarding table.
eBGP session
3b
other
networks
3a
AS3
iBGP session
2c
1c
1a
AS1
1d
2a
1b
2b
other
networks
AS2
Network Layer 4-41
Path attributes and BGP routes
advertised prefix includes BGP attributes
prefix + attributes = “route”
two important attributes:
AS-PATH: contains ASs through which prefix
advertisement has passed: e.g., AS 67, AS 17
NEXT-HOP: indicates specific internal-AS router to nexthop AS. (may be multiple links from current AS to nexthop-AS)
gateway router receiving route advertisement uses
import policy to accept/decline
e.g., never route through AS x
policy-based routing
Network Layer 4-42
BGP route selection
router may learn about more than 1 route to
destination AS, selects route based on:
1.
2.
3.
4.
local preference value attribute: policy decision
shortest AS-PATH
closest NEXT-HOP router: hot potato routing
additional criteria
Network Layer 4-43
BGP routing policy
legend:
B
W
provider
network
X
A
customer
network:
C
Y
A,B,C are provider networks
X,W,Y are customer (of provider networks)
X is dual-homed: attached to two networks
X does not want to route from B via X to C
.. so X will not advertise to B a route to C
Network Layer 4-45
BGP routing policy (2)
legend:
B
W
provider
network
X
A
customer
network:
C
Y
A advertises path AW to B
B advertises path BAW to X
Should B advertise path BAW to C?
No way! B gets no “revenue” for routing CBAW since neither W nor
C are B’s customers
B wants to force C to route to w via A
B wants to route only to/from its customers!
Network Layer 4-46
Why different Intra-, Inter-AS routing ?
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
Network Layer 4-47