Announcement

1 / 34

# Announcement - PowerPoint PPT Presentation

Announcement. CTEC code for TA CS 340 Lin Code: 322. Last class. Network layer - introduction Virtual circuit and datagram networks Routing algorithms Link state. 5. 3. 5. 2. 2. 1. 3. 1. 2. 1. x. z. w. y. u. v. Link-state algorithm: example. D(v),p(v) 2,u 2,u 2,u.

I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.

## PowerPoint Slideshow about 'Announcement' - xanthus-fox

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.

- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
Announcement
• CTEC code for TACS 340LinCode: 322
Last class
• Network layer - introduction
• Virtual circuit and datagram networks
• Routing algorithms

5

3

5

2

2

1

3

1

2

1

x

z

w

y

u

v

D(v),p(v)

2,u

2,u

2,u

D(x),p(x)

1,u

D(w),p(w)

5,u

4,x

3,y

3,y

D(y),p(y)

2,x

Step

0

1

2

3

4

5

N'

u

ux

uxy

uxyv

uxyvw

uxyvwz

D(z),p(z)

4,y

4,y

4,y

Overview
• Distance vector
• IP: Internet Protocol
• Datagram format
• ICMP
• IPv6
Distance Vector Algorithm (1)

Bellman-Ford Equation (dynamic programming)

Define

dx(y) := cost of least-cost path from x to y

Then

dx(y) = min {c(x,v) + dv(y) }

where min is taken over all neighbors of x

5

3

5

2

2

1

3

1

2

1

x

z

w

u

y

v

Bellman-Ford example (2)

Clearly, dv(z) = 5, dx(z) = 3, dw(z) = 3

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 that achieves minimum is next

hop in shortest path ➜

Distance Vector Algorithm (3)
• Estimates:
• Dx(y) = estimate of least cost from x to y
• Distance vector: Dx = [Dx(y): y є N ]
• Each node x:
• Node x knows cost to each neighbor v: c(x,v)
• Node x maintains Dx = [Dx(y): y є N ]
• Node x also maintains its neighbors’ distance vectors
• For each neighbor v, x maintains Dv = [Dv(y): y є N ]
Distance vector algorithm (4)

Basic idea:

• Each node periodically sends its own distance vector estimate to neighbors
• When a node 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

• Under minor, natural conditions, the estimate Dx(y) converge the actual least cost dx(y)
Iterative, asynchronous: each local iteration caused by:

DV update message from neighbor

Distributed:

each node notifies neighbors only when its DV changes

neighbors then notify their neighbors if necessary

The algorithm doesn’t know the entire path – only knows the next hop

wait for (change in local link cost of msg from neighbor)

recompute estimates

if DV to any dest has changed, notify neighbors

Distance Vector Algorithm (5)

Each node:

cost to

x y z

x

0 2 7

y

from

z

2

1

7

z

x

y

Dx(z) = min{c(x,y) + Dy(z), c(x,z) + Dz(z)}

= min{2+1 , 7+0} = 3

Dx(y) = min{c(x,y) + Dy(y), c(x,z) + Dz(y)} = min{2+0 , 7+1} = 2

node x table

cost to

cost to

x y z

x y z

x

0 2 3

x

0 2 3

y

from

2 0 1

y

from

2 0 1

z

7 1 0

z

3 1 0

node y table

cost to

cost to

cost to

x y z

x y z

x y z

x

x

0 2 7

2 0 1

x

0 2 3

y

y

from

2 0 1

y

from

from

2 0 1

z

z

7 1 0

z

3 1 0

node z table

cost to

cost to

cost to

x y z

x y z

x y z

x

0 2 7

x

0 2 3

x

∞ ∞ ∞

y

y

2 0 1

from

from

y

2 0 1

from

z

z

z

3 1 0

3 1 0

7

1

0

time

1

4

1

50

x

z

y

• node detects local link cost change
• updates routing info, recalculates distance vector
• if DV changes, notify neighbors

and informs its neighbors.

At time t1, z receives the update from y and updates its table.

It computes a new least cost to x and sends its neighbors its DV.

At time t2, y receives z’s update and updates its distance table.

y’s least costs do not change and hence y does not send any

message to z.

“good

news

travels

fast”

60

4

1

50

x

z

y

• good news travels fast
• bad news travels slow - “count to infinity” problem!
• 44 iterations before algorithm stabilizes: see text

Poissoned reverse:

• If 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?
Message complexity

LS: with n nodes, E links, O(nE) msgs sent

DV: exchange between neighbors only

convergence time varies

Speed of Convergence

LS: O(n2) 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:

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

Comparison of LS and DV algorithms
Overview
• Distance vector
• IP: Internet Protocol
• Datagram format
• ICMP
• IPv6
Host, router network layer functions:
• ICMP protocol
• error reporting
• router “signaling”
• IP protocol
• datagram format
• packet handling conventions
• Routing protocols
• path selection
• RIP, OSPF, BGP

forwarding

table

The Internet Network layer

Transport layer: TCP, UDP

Network

layer

physical layer

IP protocol version

number

32 bits

total datagram

length (bytes)

(bytes)

type of

service

len

ver

length

for

fragmentation/

reassembly

fragment

offset

“type” of data

flgs

16-bit identifier

max number

remaining hops

(decremented at

each router)

upper

layer

time to

live

Internet

checksum

upper layer protocol

E.g. timestamp,

record route

taken, specify

list of routers

to visit.

Options (if any)

data

(variable length,

typically a TCP

or UDP segment)

IP datagram format

• 20 bytes of TCP
• 20 bytes of IP
• = 40 bytes + app layer overhead

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

IP Fragmentation & Reassembly

fragmentation:

in: one large datagram

out: 3 smaller datagrams

reassembly

length

=1500

length

=1500

length

=4000

length

=1040

ID

=x

ID

=x

ID

=x

ID

=x

fragflag

=0

fragflag

=1

fragflag

=1

fragflag

=0

offset

=0

offset

=0

offset

=370

offset

=185

One large datagram becomes

several smaller datagrams

IP Fragmentation and Reassembly

Example

• 4000 byte datagram
• MTU = 1500 bytes

1480 bytes in data field

offset =

1480/8

Overview
• Distance vector
• IP: Internet Protocol
• Datagram format
• ICMP
• IPv6
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.2

223.1.2.1

223.1.3.27

223.1.3.1

223.1.3.2

223.1.2.2

223.1.1.1

223.1.2.9

223.1.1.4

223.1.1.3

223.1.1.1 = 11011111 00000001 00000001 00000001

223

1

1

1

subnet part (high order bits)

host part (low order bits)

What’s a subnet ?

device interfaces with same subnet part of IP address

can physically reach each other without intervening router

Subnets

223.1.1.1

223.1.2.1

223.1.1.2

223.1.2.9

223.1.1.4

223.1.2.2

223.1.1.3

223.1.3.27

LAN

223.1.3.2

223.1.3.1

network consisting of 3 subnets

Recipe

To determine the subnets, detach each interface from its host or router, creating islands of isolated networks. Each isolated network is called a subnet.

223.1.1.0/24

223.1.2.0/24

223.1.3.0/24

Subnets

Q. How many?

A. The IP definition of a subnet is not restricted to Ethernet segments

Subnets

223.1.1.2

223.1.1.1

223.1.1.4

223.1.1.3

223.1.7.0

223.1.9.2

223.1.9.1

223.1.7.1

223.1.8.1

223.1.8.0

223.1.2.6

223.1.3.27

223.1.2.1

223.1.2.2

223.1.3.1

223.1.3.2

host

part

subnet

part

11001000 0001011100010000 00000000

200.23.16.0/23

Before CIDR: only 8-, 16-, and 24- bit masks were available (A, B, and C class networks)

CIDR:Classless InterDomain Routing

• subnet portion of address of arbitrary length
• address format: a.b.c.d/x, where x is # bits in subnet portion of address
IP addresses: how to get one?

Q: How does host get IP address?

• hard-coded by system admin in a file
• Wintel: control-panel->network->configuration->tcp/ip->properties
• UNIX: /etc/rc.config
• DHCP:Dynamic Host Configuration Protocol: dynamically get address from as server
• “plug-and-play”

(more in a couple of weeks)

IP addresses: how to get one?

Q: How does network get subnet part of IP addr?

A: gets allocated portion of its provider ISP’s address space

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

200.23.16.0/23

200.23.18.0/23

200.23.30.0/23

200.23.20.0/23

.

.

.

.

.

.

information:

Organization 0

Organization 1

“Send me anything

beginning

200.23.16.0/20”

Organization 2

Fly-By-Night-ISP

Internet

Organization 7

“Send me anything

beginning

199.31.0.0/16”

ISPs-R-Us

200.23.16.0/23

200.23.18.0/23

200.23.30.0/23

200.23.20.0/23

.

.

.

.

.

.

ISPs-R-Us has a more specific route to Organization 1

Organization 0

“Send me anything

beginning

200.23.16.0/20”

Organization 2

Fly-By-Night-ISP

Internet

Organization 7

“Send me anything

beginning 199.31.0.0/16

or 200.23.18.0/23”

ISPs-R-Us

Organization 1

Q: How does an ISP get block of addresses?

A: ICANN: Internet Corporation for Assigned

Names and Numbers

• manages DNS
• assigns domain names, resolves disputes

rest of

Internet

local network

(e.g., home network)

10.0.0/24

10.0.0.1

10.0.0.4

10.0.0.2

138.76.29.7

10.0.0.3

Datagrams with source or

destination in this network

source, destination (as usual)

All datagrams leaving local

network have same single source NAT IP address: 138.76.29.7,

different source port numbers

• Motivation: local network uses just one IP address as far as outside word is concerned:
• no need to be allocated range of addresses from ISP: - just one IP address is used for all devices
• can change addresses of devices in local network without notifying outside world
• can change ISP without changing addresses of devices in local network
• devices inside local net not explicitly addressable, visible by outside world (a security plus).

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

3

1

2

4

S: 10.0.0.1, 3345

D: 128.119.40.186, 80

S: 138.76.29.7, 5001

D: 128.119.40.186, 80

1: host 10.0.0.1

sends datagram to

128.119.40, 80

2: NAT router

changes datagram

10.0.0.1, 3345 to

138.76.29.7, 5001,

S: 128.119.40.186, 80

D: 10.0.0.1, 3345

S: 128.119.40.186, 80

D: 138.76.29.7, 5001

NAT translation table

138.76.29.7, 5001 10.0.0.1, 3345

…… ……

10.0.0.1

10.0.0.4

10.0.0.2

138.76.29.7

10.0.0.3

4: NAT router

changes datagram

138.76.29.7, 5001 to 10.0.0.1, 3345