Network Layer, Routing, IP

54
10/28/2003-10/30/2 003 Network Layer, Routing, IP October 28-30, 2003

description

Network Layer, Routing, IP. October 28-30, 2003. Assignments. Homework 4 Project 2 Read Chapter 4 sections 4.1-4.4 for this week. network data link physical. network data link physical. network data link physical. network data link physical. network data link physical. network - PowerPoint PPT Presentation

Transcript of Network Layer, Routing, IP

Page 1: Network Layer, Routing, IP

10/28/2003-10/30/2003

Network Layer, Routing, IP

October 28-30, 2003

Page 2: Network Layer, Routing, IP

10/28/2003-10/30/2003

Assignments

• Homework 4

• Project 2

• Read Chapter 4 sections 4.1-4.4 for this week

Page 3: Network Layer, Routing, IP

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

Page 4: Network Layer, Routing, IP

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

Page 5: Network Layer, Routing, IP

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

Page 6: Network Layer, Routing, IP

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

Page 7: Network Layer, Routing, IP

10/28/2003-10/30/2003

Datagram and the Internet

• Why is datagram service okay for the Internet?

Page 8: Network Layer, Routing, IP

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

Page 9: Network Layer, Routing, IP

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

Page 10: Network Layer, Routing, IP

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

Page 11: Network Layer, Routing, IP

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

Page 12: Network Layer, Routing, IP

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

Page 13: Network Layer, Routing, IP

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

Page 14: Network Layer, Routing, IP

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

Page 15: Network Layer, Routing, IP

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

=

=

Page 16: Network Layer, Routing, IP

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!

Page 17: Network Layer, Routing, IP

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

Page 18: Network Layer, Routing, IP

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:

Page 19: Network Layer, Routing, IP

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:

Page 20: Network Layer, Routing, IP

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

Page 21: Network Layer, Routing, IP

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

Page 22: Network Layer, Routing, IP

10/28/2003-10/30/2003

Example

X Z12

7

Y

Page 23: Network Layer, Routing, IP

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”

Page 24: Network Layer, Routing, IP

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!

Page 25: Network Layer, Routing, IP

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

Page 26: Network Layer, Routing, IP

10/28/2003-10/30/2003

Comparison of LS and DV

• Message Complexity

• Speed of Convergence

• Robustness

Page 27: Network Layer, Routing, IP

10/28/2003-10/30/2003

Hierarchical Routing

• So far – all routers are equal, network is flat– Why is this view a problem?

Page 28: Network Layer, Routing, IP

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

Page 29: Network Layer, Routing, IP

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

Page 30: Network Layer, Routing, IP

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

Page 31: Network Layer, Routing, IP

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

Page 32: Network Layer, Routing, IP

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

Page 33: Network Layer, Routing, IP

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

Page 34: Network Layer, Routing, IP

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

Page 35: Network Layer, Routing, IP

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

Page 36: Network Layer, Routing, IP

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

Page 37: Network Layer, Routing, IP

10/28/2003-10/30/2003

How do I get an IP address?

• Two options – what are they?

• Which is used when and why?

Page 38: Network Layer, Routing, IP

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

Page 39: Network Layer, Routing, IP

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:

Page 40: Network Layer, Routing, IP

10/28/2003-10/30/2003

Constructing a Packet

miscfields

sourceIP addr

destIP addr data

Page 41: Network Layer, Routing, IP

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

Page 42: Network Layer, Routing, IP

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

Page 43: Network Layer, Routing, IP

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

Page 44: Network Layer, Routing, IP

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)

Page 45: Network Layer, Routing, IP

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

Page 46: Network Layer, Routing, IP

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

Page 47: Network Layer, Routing, IP

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

Page 48: Network Layer, Routing, IP

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

Page 49: Network Layer, Routing, IP

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

Page 50: Network Layer, Routing, IP

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

Page 51: Network Layer, Routing, IP

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

Page 52: Network Layer, Routing, IP

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

Page 53: Network Layer, Routing, IP

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

Page 54: Network Layer, Routing, IP

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