10/28/2003-10/30/2003 network layer, routing, ip october 28-30, 2003
Post on 19-Dec-2015
227 Views
Preview:
TRANSCRIPT
10/28/2003-10/30/2003
Network Layer, Routing, IP
October 28-30, 2003
10/28/2003-10/30/2003
Assignments
• Homework 4
• Project 2
• Read Chapter 4 sections 4.1-4.4 for this week
10/28/2003-10/30/2003
Network Layer
• Move packet from sender to receiver
• Network layer protocols in every host, router
• Three Functions:– path determination: route
taken by packets from source to dest. Routing algorithms
– forwarding: move packets from router’s input to appropriate router output
– call setup: some network architectures require router call setup along path before data flows
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
networkdata linkphysical
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
10/28/2003-10/30/2003
Service Model
• End-to-end transport of data between sending and receiving systems– How is this different than the transport
layer services?
• Datagram versus Virtual Circuit
10/28/2003-10/30/2003
Virtual Circuit
• Call setup, teardown for each call • Each packet carries VC identifier (not destination
host ID)• Every router on source-dest path maintains
“state” for each passing connection– transport-layer connection only involved two end
systems
• Link, router resources (bandwidth, buffers) may be allocated to VC– to get circuit-like performance
10/28/2003-10/30/2003
Datagram Networks
• Routers: no state about end-to-end connections• Packets forwarded using destination host address• Best-effort service
– No guarantees with respect to delay, in-order delivery
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
1. Send data 2. Receive data
10/28/2003-10/30/2003
Datagram and the Internet
• Why is datagram service okay for the Internet?
10/28/2003-10/30/2003
Routing
• Routing Protocol – Find route from
default/first hop/source router to destination router
• Job of the algorithm –find a “good path”– Use graph abstraction
to represent the network
– Where do the numbers come from?
A
ED
CB
F
2
2
13
1
1
2
53
5
10/28/2003-10/30/2003
Routing Algorithm Classification
Global or decentralized information?
• Global:– all routers have complete
topology, link cost info– “link state” algorithms
• Decentralized: – router knows physically-
connected neighbors, link costs to neighbors
– iterative process of computation, exchange of info with neighbors
– “distance vector” algorithms
Static or dynamic?• Static:
– routes change slowly over time
• Dynamic: – routes change more
quickly• periodic update• in response to link cost
changes
Load sensitive/insensitive
10/28/2003-10/30/2003
A Link-State Routing Algorithm
• Global – every router knows about all others
• How does a node find out about all other nodes?
• Once a node has the complete topology, it runs Dijkstra’s algorithm to generate the routing table
10/28/2003-10/30/2003
Notation
• c(i,j): link cost from node i to j. cost infinite 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, that is next v
• N: set of nodes whose least cost path definitively known
10/28/2003-10/30/2003
Dijsktra’s Algorithm1 Initialization: 2 N = {A} 3 for all nodes v 4 if v adjacent to A 5 then D(v) = c(A,v) 6 else D(v) = infinity 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
10/28/2003-10/30/2003
Dijkstra’s algorithm: exampleStep
012345
start NA
ADADE
ADEBADEBC
ADEBCF
D(B),p(B)2,A2,A2,A
D(C),p(C)5,A4,D3,E3,E
D(D),p(D)1,A
D(E),p(E)infinity
2,D
D(F),p(F)infinityinfinity
4,E4,E4,E
A
ED
CB
F
2
2
13
1
1
2
53
5
10/28/2003-10/30/2003
Discussion• Algorithm complexity
– n nodes
– each iteration: need to check all nodes, w, not in N– n*(n+1)/2 comparisons: O(n**2)– more efficient implementations possible: O(nlogn)
• Oscillations possible:– e.g., link cost = amount of carried traffic– Solution?
A
D
C
B1 1+e
e0
e
1 1
0 0
A
D
C
B2+e 0
001+e1
A
D
C
B0 2+e
1+e10 0
A
D
C
B2+e 0
e01+e1
initially… recompute
routing… recompute … recompute
10/28/2003-10/30/2003
Distance Vector Routing Algorithm
• Iterative, asynchronous, and distributed
• Distance table– all nodes have one– row for all destinations and a column for
neighbors
D (Y,Z)X
distance from X toY, via Z as next hop
c(X,Z) + min {D (Y,w)}Z
w
=
=
10/28/2003-10/30/2003
Distance Table: Example
A
E D
CB7
8
1
2
1
2
D ()
A
B
C
D
A
1
7
6
4
B
14
8
9
11
D
5
5
4
2
Ecost to destination via
dest
inat
ion
D (C,D)E
c(E,D) + min {D (C,w)}D
w== 2+2 = 4
D (A,D)E
c(E,D) + min {D (A,w)}D
w== 2+3 = 5
D (A,B)E
c(E,B) + min {D (A,w)}B
w== 8+6 = 14
loop!
loop!
10/28/2003-10/30/2003
Routing Table
D ()
A
B
C
D
A
1
7
6
4
B
14
8
9
11
D
5
5
4
2
Ecost to destination via
dest
inat
ion
A
B
C
D
A,1
D,5
D,4
D,4
Outgoing link to use, cost
dest
inat
ion
Distance table Routing table
10/28/2003-10/30/2003
DV Overview
wait for (change in local link cost of msg from neighbor)
recompute distance table
if least cost path to any dest
has changed, notify neighbors
Each node:
10/28/2003-10/30/2003
Distance Vector Algorithm
1 Initialization: 2 for all adjacent nodes v: 3 D (*,v) = infinity /* the * operator means "for all rows" */ 4 D (v,v) = c(X,v) 5 for all destinations, y 6 send min D (y,w) to each neighbor /* w over all X's neighbors */
XX
Xw
At all nodes, X:
10/28/2003-10/30/2003
Distance Vector Algorithm8 loop 9 wait (until I see a link cost change to neighbor V 10 or until I receive update from neighbor V) 11 12 if (c(X,V) changes by d) 13 /* change cost to all dest's via neighbor v by d */ 14 /* note: d could be positive or negative */ 15 for all destinations y: D (y,V) = D (y,V) + d 16 17 else if (update received from V wrt destination Y) 18 /* shortest path from V to some Y has changed */ 19 /* V has sent a new value for its min DV(Y,w) */ 20 /* call this received new value is "newval" */ 21 for the single destination y: D (Y,V) = c(X,V) + newval 22 23 if we have a new min D (Y,w)for any destination Y 24 send new value of min D (Y,w) to all neighbors 25 26 forever
w
XX
XX
X
ww
10/28/2003-10/30/2003
Example
X Z12
7
Y
D (Y,Z)X
c(X,Z) + min {D (Y,w)}w=
= 7+1 = 8
Z
D (Z,Y)X
c(X,Y) + min {D (Z,w)}w=
= 2+1 = 3
Y
10/28/2003-10/30/2003
Example
X Z12
7
Y
10/28/2003-10/30/2003
Link Cost Changes• node detects local link cost
change • updates distance table (line 15)• if cost change in least cost path,
notify neighbors (lines 23,24)
X Z14
50
Y1
algorithmterminates“good
news travelsfast”
10/28/2003-10/30/2003
Link Cost Changes• good news travels fast • bad news travels slow -
“count to infinity” problem! X Z14
50
Y60
algorithmcontinues
on!
10/28/2003-10/30/2003
Poisoned ReverseIf 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? X Z
14
50
Y60
algorithmterminates
10/28/2003-10/30/2003
Comparison of LS and DV
• Message Complexity
• Speed of Convergence
• Robustness
10/28/2003-10/30/2003
Hierarchical Routing
• So far – all routers are equal, network is flat– Why is this view a problem?
10/28/2003-10/30/2003
Hierarchical Routing
• Aggregate routers into autonomous systems ASs
• Intra-AS routing
• Each AS has a gateway– responsible for inter-AS routing
10/28/2003-10/30/2003
Intra-AS and Inter-AS routingGateways:
•perform inter-AS routing amongst themselves•perform intra-AS routers with other routers in their AS
inter-AS, intra-AS routing in
gateway A.c
network layer
link layer
physical layer
a
b
b
aaC
A
Bd
A.a
A.c
C.bB.a
cb
c
10/28/2003-10/30/2003
Intra-AS and Inter-AS routing
Host h2
a
b
b
aaC
A
Bd c
A.a
A.c
C.bB.a
cb
Hosth1
Intra-AS routingwithin AS A
Inter-AS routingbetween A and B
Intra-AS routingwithin AS B
• We’ll examine specific inter-AS and intra-AS Internet routing protocols shortly
10/28/2003-10/30/2003
Assignments
• Continue work on Project 2
• Finish reading chapter 4 for next week – we will not talk about 4.6 in class
10/28/2003-10/30/2003
Network Layer
forwardingtable
Routing protocols•path selection•RIP, OSPF, BGP
IP protocol•addressing conventions•datagram format•packet handling conventions
ICMP protocol•error reporting•router “signaling”
Transport layer: TCP, UDP
Link layer
physical layer
Networklayer
10/28/2003-10/30/2003
IP Addressing• IP address
– 32-bit identifier for host, router interface
• interface – connection between host/router and physical link– router’s typically have
multiple interfaces– host may have multiple
interfaces– IP addresses
associated with each interface
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
223.1.1.1 = 11011111 00000001 00000001 00000001
223 1 11
10/28/2003-10/30/2003
IP Addressing• IP address:
– network part (high order bits)
– host part (low order bits) • What’s a network ? (from IP
address perspective)– device interfaces with
same network part of IP address
– can physically reach each other without intervening router
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
network consisting of 3 IP networks(for IP addresses starting with 223, first 24 bits are network address)
LAN
10/28/2003-10/30/2003
Classful Addressing
0network host
10 network host
110 network host
1110 multicast address
A
B
C
D
class1.0.0.0 to127.255.255.255
128.0.0.0 to191.255.255.255
192.0.0.0 to223.255.255.255
224.0.0.0 to239.255.255.255
32 bits
10/28/2003-10/30/2003
CIDR• Classful addressing
– inefficient use of address space, address space exhaustion – example?
• 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 of
address
11001000 00010111 00010000 00000000
networkpart
hostpart
200.23.16.0/23
10/28/2003-10/30/2003
How do I get an IP address?
• Two options – what are they?
• Which is used when and why?
10/28/2003-10/30/2003
What about the network part?
ISP's block 11001000 00010111 00010000 00000000 200.23.16.0/20
Organization 0 11001000 00010111 00010000 00000000 200.23.16.0/23 Organization 1 11001000 00010111 00010010 00000000 200.23.18.0/23 Organization 2 11001000 00010111 00010100 00000000 200.23.20.0/23 ... ….. …. ….
Organization 7 11001000 00010111 00011110 00000000 200.23.30.0/23
10/28/2003-10/30/2003
Route Aggregation
“Send me anythingwith addresses beginning 200.23.16.0/20”
200.23.16.0/23
200.23.18.0/23
200.23.30.0/23
Fly-By-Night-ISP
Organization 0
Organization 7Internet
Organization 1
ISPs-R-Us“Send me anythingwith addresses beginning 199.31.0.0/16”
200.23.20.0/23Organization 2
...
...
Hierarchical addressing allows efficient advertisement of routing information:
10/28/2003-10/30/2003
Constructing a Packet
miscfields
sourceIP addr
destIP addr data
10/28/2003-10/30/2003
Determining the Next HopDest. Net. next router Nhops
223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2misc
fields223.1.1.1223.1.1.3data
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
BE
10/28/2003-10/30/2003
Determining the Next HopDest. Net. next router Nhops
223.1.1 1223.1.2 223.1.1.4 2223.1.3 223.1.1.4 2misc
fields223.1.1.1223.1.2.3 data
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
BE
10/28/2003-10/30/2003
Router Forwarding Table
miscfields223.1.1.1223.1.2.3 data
Dest. Net router Nhops interface
223.1.1 - 1 223.1.1.4 223.1.2 - 1 223.1.2.9
223.1.3 - 1 223.1.3.27
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
BE
10/28/2003-10/30/2003
Datagram Format
ver length
32 bits
data (variable length,typically a TCP
or UDP segment)
16-bit identifier
Internet checksum
time tolive
32 bit source IP address
head.len
type ofservice
flgsfragment
offsetupper layer
32 bit destination IP address
Options (if any)
10/28/2003-10/30/2003
IP Fragmentation & 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
fragmentation: in: one large datagramout: 3 smaller datagrams
reassembly
10/28/2003-10/30/2003
IP Fragmentation and Reassembly
ID=x
offset=0
fragflag=0
length=4000
ID=x
offset=0
fragflag=1
length=1500
ID=x
offset=1480
fragflag=1
length=1500
ID=x
offset=2960
fragflag=0
length=1040
One large datagram becomesseveral smaller datagrams
Example• 4000 byte
datagram• MTU = 1500 bytes
10/28/2003-10/30/2003
ICMP: Internet Control Message Protocol
• used by hosts, routers, gateways to communication network-level 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 Code description0 0 echo reply (ping)3 0 dest. network unreachable3 1 dest host unreachable3 2 dest protocol unreachable3 3 dest port unreachable3 6 dest network unknown3 7 dest host unknown4 0 source quench (congestion control - not used)8 0 echo request (ping)9 0 route advertisement10 0 router discovery11 0 TTL expired12 0 bad IP header
10/28/2003-10/30/2003
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
an “on”– Support for mobile users who want to join network (more shortly)
• 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
10/28/2003-10/30/2003
DHCP client-server scenario
223.1.1.1
223.1.1.2
223.1.1.3
223.1.1.4 223.1.2.9
223.1.2.2
223.1.2.1
223.1.3.2223.1.3.1
223.1.3.27
A
BE
DHCP server
arriving DHCP client needsaddress in thisnetwork
10/28/2003-10/30/2003
DHCP client-server scenarioDHCP server: 223.1.2.5 arriving
client
time
DHCP discover
src : 0.0.0.0, 68 dest.: 255.255.255.255,67yiaddr: 0.0.0.0transaction ID: 654
DHCP offer
src: 223.1.2.5, 67 dest: 255.255.255.255, 68yiaddrr: 223.1.2.4transaction ID: 654Lifetime: 3600 secs
DHCP request
src: 0.0.0.0, 68 dest:: 255.255.255.255, 67yiaddrr: 223.1.2.4transaction ID: 655Lifetime: 3600 secs
DHCP ACK
src: 223.1.2.5, 67 dest: 255.255.255.255, 68yiaddrr: 223.1.2.4transaction ID: 655Lifetime: 3600 secs
10/28/2003-10/30/2003
NAT: Network Address Translation
10.0.0.1
10.0.0.2
10.0.0.3
10.0.0.4
138.76.29.7
local network(e.g., home network)
10.0.0/24
rest ofInternet
Datagrams with source or destination in this networkhave 10.0.0/24 address for
source, destination (as usual)
All datagrams leaving localnetwork have same single source
NAT IP address: 138.76.29.7,different source port numbers
10/28/2003-10/30/2003
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
10/28/2003-10/30/2003
NAT
10.0.0.1
10.0.0.2
10.0.0.3
S: 10.0.0.1, 3345D: 128.119.40.186, 80
1
10.0.0.4
138.76.29.7
1: host 10.0.0.1 sends datagram to 128.119.40, 80
NAT translation tableWAN side addr LAN side addr
138.76.29.7, 5001 10.0.0.1, 3345…… ……
S: 128.119.40.186, 80 D: 10.0.0.1, 3345
4
S: 138.76.29.7, 5001D: 128.119.40.186, 80
2
2: NAT routerchanges datagramsource addr from10.0.0.1, 3345 to138.76.29.7, 5001,updates table
S: 128.119.40.186, 80 D: 138.76.29.7, 5001
3
3: Reply arrives dest. address: 138.76.29.7, 5001
4: NAT routerchanges datagramdest addr from138.76.29.7, 5001 to 10.0.0.1, 3345
10/28/2003-10/30/2003
NAT• 16-bit port-number field:
– 60,000 simultaneous connections with a single LAN-side address!
• NAT is controversial:– routers should only process up to layer 3– violates end-to-end argument
• NAT possibility must be taken into account by app designers, e.g., P2P applications
– address shortage should instead be solved by IPv6
top related