Download Document

Survey
yes no Was this document useful for you?
   Thank you for your participation!

* Your assessment is very important for improving the workof artificial intelligence, which forms the content of this project

Document related concepts

Asynchronous Transfer Mode wikipedia , lookup

Zigbee wikipedia , lookup

Backpressure routing wikipedia , lookup

Net bias wikipedia , lookup

IEEE 1355 wikipedia , lookup

CAN bus 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

Peering 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

Routing in delay-tolerant networking wikipedia , lookup

Routing wikipedia , lookup

Transcript
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