The Network Layer

Download Report

Transcript The Network Layer

Announcements
• Review session next Friday 03/11
• Homework 5 due on Friday 03/04
• Project 3 due Wednesday 03/16
1
The Network Layer
Purpose of Network layer
• Given a packet, send it across the network to destination
• 2 key issues:
– Portability:
• connect different technologies
– Scalability
• To the Internet scale
application
transport
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
network
data link
physical
application
transport
network
data link
physical
3
What does it involve?
Two important functions:
• routing: determine path from source to dest.
• forwarding: move packets from router’s input to output
T1
T3
Sts-1
T3
T1
4
Network service model
Q: What service model for
“channel” transporting
packets from sender to
receiver?
The most important
abstraction provided
by network layer:
• guaranteed bandwidth?
• preservation of inter-packet
timing (no jitter)?
• loss-free delivery?
• in-order delivery?
• congestion feedback to
sender?
Which things can be “faked” at the transport layer?
? ?
?
virtual circuit
or
datagram?
5
Two connection models
• Connectionless (or “datagram”):
– each packet contains enough information that routers can decide how
to get it to its final destination
b
A
b
• Connection-oriented (or “virtual circuit”)
B
C
– first set up a connection between two nodes
– label it (called a virtual circuit identifier (VCI))
– all packets carry label
A
1
1
1
B
C
6
Virtual circuits: signaling protocols
•
•
•
•
used to setup, maintain teardown VC
setup gives opportunity to reserve resources
used in ATM, frame-relay, X.25
not used in today’s Internet
application
transport 5. Data flow begins
network 4. Call connected
data link 1. Initiate call
physical
6. Receive data application
3. Accept call
2. incoming call
transport
network
data link
physical
7
Virtual circuit switching
• Forming a circuit:
– send a connection request from A to B. Contains VCI + address of B
– rule: VCI must be unique on the link its used on
– switch creates an entry mapping input messages with VCI to output
port
– switch picks a new VCI unique between it and next switch
2
1
2
a
c
1
5
2
1
b
8
Virtual circuit forwarding
• For each VCI switch has a table which maps input link to
output link and gives the new VCI to use
– if a’s messages come into switch 1 on link 2 and go out on link 3 then
the table will be:
(Input link,VCI) (output link, new VCI)
(1, 2)
(?, ?)
(1, 5)
(?, ?)
Switch 1
2
1
2
a
Switch 2
5
2
c
1
Switch 3
1
b
9
Virtual Circuits: Discussion
• Plusses: easy to associate resources with VC
– Easy to provide QoS guarantees (bandwidth, delay)
– Very little state in packet
• Minuses:
– Not good in case of crashes
• Requires explicit connect and teardown phases
– What if teardown does not get to all routers?
– What if one switch crashes?
• Will have to teardown and rebuild route
10
Datagram networks
• no call setup at network layer
• routers: no state about end-to-end connections
– no network-level concept of “connection”
• packets typically routed using destination host ID
– packets between same source-dest pair may take different paths
• Best effort: data corruption, packet drops, route loops
application
transport
network
data link 1. Send data
physical
application
transport
network
2. Receive data
data link
physical
11
Datagrams: Forwarding
How does packet get to the destination?
• switch creates a “forwarding table”, mapping destinations to output
port (ignores input ports)
• when a packet with a destination address in the table arrives, it
pushes it out on the appropriate output port
• when a packet with a destination address not in the table arrives, it
must find out more routing information (next problem)
d
0 S1
2
1
0
S2
c
1
2
a
0
S3
1
b
12
Datagrams
• Plusses:
–
–
–
–
No round trip connection setup time
No explicit route teardown
No resource reservation  each flow could get max bandwidth
Easily handles switch failures; routes around it
• Minuses
– Difficult to provide resource guarantees
– Higher per packet overhead
• Internet uses datagrams: IP (Internet Protocol)
13
Datagrams Forwarding
• How to build forwarding tables?
– Manually enter it
• What if nodes crashed
• What about scale?
• The graph-theoretic routing problem
– Given a graph, with vertices (switches), edges (links), and edge
costs (cost of sending on that link)
– Find the least cost path between any two nodes
• Path cost =  (cost of edges in path)
14
Simple Routing Algorithm
• Choose a central node
– All nodes send their (nbr, cost) information to this node
– Central node uses info to learn entire topology of the network
– It then computes shortest paths between all pairs of nodes
• Using All Pair Shortest Path Algorithm
– Sends the new matrix to every node
• Nice, simple, elegant!
• What is the problem?
– Scalability: centralization hurts scalability
– Central node is “crushed” with traffic
15
Link State Routing
• Basic idea:
– Every node propagates its (nbr, cost) information
– This information at all nodes is enough to construct topology
– Can use a graph algorithm to find the shortest routes
• Mechanisms required:
– Reliable flooding of link information
– Method to calculate shortest route (Dijkstra’s algorithm)
• Example link state update packet:
– [node id, (nbr, cost) list, seq. no., ttl]
• Seq. no. to identify latest updates, ttl specifies when to stop msg.
16
Reliable flooding
receive(pkt)
If already have a copy of LSP from pkt.ID
if pkt’s sequence number <= copy’s
discard pkt
else
decrement pkt.TTL
replace copy with pkt
forward pkt to all links besides the
one that we received it on
# done every 10 minutes or so
gen_LSP()
increment node’s sequence # by one
recompute cost vector
send created LSP to all neighbors
17
Discussion: Link-State Routing
• Plusses:
– Simple, determines the optimal route most of the time
– Used by OSPF
• Minuses:
– Might have oscillations
A
A
D
1
1
0
1+e
0 0
C
B
e
2+e
D
0
1
1+e 1
C
0
B
0
0
D
1
A
0 0
2+e
B
2+e
D
C 1+e
e
Initially start with … everyone goes with … recompute
Least loaded =>
almost equal routes
least loaded
0
A
1+e 1
C
0
B
e
… recompute
Most loaded
– Avoid using load as cost metric, reduce herding effect
18
Is our routing algo scalable?
• Route table size grows with size of network
– Because our address structure is flat!
• Solution: have a hierarchical structure
– Used by OSPF
– Divide the network into areas, each area has unique number
• Nodes carry their area number in the address 1.A, 2.B, etc.
– Nodes know complete topology in their area
– Area border routers (ABR) know how to get to any other area
19
Hierarchical Addressing
Zone 2
2.a
1.b
0 S1
2
1
0
1.a
Forwarding table for switch 1
Destination switch port
2.
?
3.
?
1.b
?
1.a
?
1
2
S2
2.b
3
0
S3
1
3.b
2
Zone 3
3.a
20
IP has 2-layer addressing
• Each IP address is 32 bits
– Network part: which network the host is on?
– Host part: identifies the host.
• All hosts on same network have the same network part
18.26.0.1
network
32-bits
host
• 3 classes of addresses: A, B and C
0 net
1 7
host
24 bits
1 0 net
host
110
net
host
2
16 bits
3
21
821bits
14
IP addressing
• The different classes:
class
Unicast
A
0 network
B
10
C
110
Multicast D
1110
Reserved E
1111
1.0.0.0 to
127.255.255.255
host
network
128.0.0.0 to
191.255.255.255
host
network
multicast address
reserved
host
192.0.0.0 to
223.255.255.255
224.0.0.0 to
239.255.255.255
240.0.0.0 to
255.255.255.255
32 bits
• Problems: inefficient, address space exhaustion
22
IP addressing: CIDR
• Classless InterDomain Routing
– network portion of address of arbitrary length
– address format: a.b.c.d/x, where x is # bits in network portion
network
part
host
part
11001000 00010111 00010000 00000000
– Examples:
200.23.16.0/23
• Class A: /8
• Class B: /16
• Class C: /24
23
Internet Protocol Datagram
IP protocol version
Number
header length
“type” of data
max number
remaining hops
(decremented at
each router)
upper layer protocol
to deliver payload to
32 bits
head. type of
length
len service
fragment
16-bit identifier flgs
offset
time to upper
Internet
layer
live
checksum
ver
total datagram
length (bytes)
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, pecify
list of routers
to visit.
24
Datagram Portability
• IP Goal: To create one logical network from multiple
physical networks
– All intermediate routers should understand IP
– IP header information sufficient to carry the packet to destination
– Goal: Run over anything!
• Problem:
– Physical networks have different MTUs
– “max. transmission unit”: 1500 for Ethernet, 48 for ATM
• Solution 1:
– Fit everything in the MTU (!)
25
IP Fragmentation & Reassembly
• Solution 2: (the one used)
– If packet size > MTU of network, then fragment into pieces
• Each fragment is less than MTU size
• Each has IP headers + frag bit set + frag id + offset
– Packets may get refragmented on the way to destination
– Reassembly only done at the destination
– What is a good initial packet size?
reassembly
fragmentation:
in: one large datagram
out: 3 smaller datagrams
26