10/28/2003-10/30/2003 network layer, routing, ip october 28-30, 2003

Post on 19-Dec-2015

226 Views

Category:

Documents

6 Downloads

Preview:

Click to see full reader

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