announcement n.
Download
Skip this Video
Download Presentation
Announcement

Loading in 2 Seconds...

play fullscreen
1 / 34

Announcement - PowerPoint PPT Presentation


  • 86 Views
  • Uploaded on

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.

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

PowerPoint Slideshow about 'Announcement' - xanthus-fox


Download Now An Image/Link below is provided (as is) to download presentation

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
Announcement
  • CTEC code for TACS 340LinCode: 322
last class
Last class
  • Network layer - introduction
  • Virtual circuit and datagram networks
  • Routing algorithms
    • Link state
link state algorithm example

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

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
Overview
    • Distance vector
  • IP: Internet Protocol
    • Datagram format
    • IPv4 addressing
    • ICMP
    • IPv6
distance vector algorithm 1
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

bellman ford example 2

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
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
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)
distance vector algorithm 5
Iterative, asynchronous: each local iteration caused by:

local link cost change

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:

slide10

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

distance vector link cost changes

1

4

1

50

x

z

y

Distance Vector: link cost changes

Link cost changes:

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

At time t0, y detects the link-cost change, updates its DV,

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”

distance vector link cost changes1

60

4

1

50

x

z

y

Distance Vector: link cost changes

Link cost changes:

  • 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?
comparison of ls and dv algorithms
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:

node can advertise incorrect link cost

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
overview1
Overview
    • Distance vector
  • IP: Internet Protocol
    • Datagram format
    • IPv4 addressing
    • ICMP
    • IPv6
the internet network layer
Host, router network layer functions:
  • ICMP protocol
  • error reporting
  • router “signaling”
  • IP protocol
  • addressing conventions
  • datagram format
  • packet handling conventions
  • Routing protocols
  • path selection
  • RIP, OSPF, BGP

forwarding

table

The Internet Network layer

Transport layer: TCP, UDP

Network

layer

Link layer

physical layer

ip datagram format

IP protocol version

number

32 bits

total datagram

length (bytes)

header length

(bytes)

type of

service

head.

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

32 bit source IP address

32 bit destination IP address

upper layer protocol

to deliver payload to

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

how much overhead with TCP?

  • 20 bytes of TCP
  • 20 bytes of IP
  • = 40 bytes + app layer overhead
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

IP Fragmentation & Reassembly

fragmentation:

in: one large datagram

out: 3 smaller datagrams

reassembly

ip fragmentation and 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

overview2
Overview
    • Distance vector
  • IP: Internet Protocol
    • Datagram format
    • IPv4 addressing
    • ICMP
    • IPv6
ip addressing introduction
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

IP Addressing: introduction

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

subnets
IP address:

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

subnets1
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

Subnet mask: /24

subnets2
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

ip addressing cidr

host

part

subnet

part

11001000 0001011100010000 00000000

200.23.16.0/23

IP addressing: CIDR

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
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 one1
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

hierarchical addressing route aggregation

200.23.16.0/23

200.23.18.0/23

200.23.30.0/23

200.23.20.0/23

.

.

.

.

.

.

Hierarchical addressing: route aggregation

Hierarchical addressing allows efficient advertisement of routing

information:

Organization 0

Organization 1

“Send me anything

with addresses

beginning

200.23.16.0/20”

Organization 2

Fly-By-Night-ISP

Internet

Organization 7

“Send me anything

with addresses

beginning

199.31.0.0/16”

ISPs-R-Us

hierarchical addressing more specific routes

200.23.16.0/23

200.23.18.0/23

200.23.30.0/23

200.23.20.0/23

.

.

.

.

.

.

Hierarchical addressing: more specific routes

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

Organization 0

“Send me anything

with addresses

beginning

200.23.16.0/20”

Organization 2

Fly-By-Night-ISP

Internet

Organization 7

“Send me anything

with addresses

beginning 199.31.0.0/16

or 200.23.18.0/23”

ISPs-R-Us

Organization 1

ip addressing the last word
IP addressing: the last word...

Q: How does an ISP get block of addresses?

A: ICANN: Internet Corporation for Assigned

Names and Numbers

  • allocates addresses
  • manages DNS
  • assigns domain names, resolves disputes
nat network address translation
NAT: Network Address Translation

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

have 10.0.0/24 address for

source, destination (as usual)

All datagrams leaving local

network have same single source NAT IP address: 138.76.29.7,

different source port numbers

nat network address translation1
NAT: Network Address Translation
  • 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).
nat network address translation2
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
nat network address translation3

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

source addr from

10.0.0.1, 3345 to

138.76.29.7, 5001,

updates table

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: Network Address Translation

NAT translation table

WAN side addr LAN side addr

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

dest addr from

138.76.29.7, 5001 to 10.0.0.1, 3345

3: Reply arrives

dest. address:

138.76.29.7, 5001

nat network address translation4
NAT: Network Address Translation
  • 16-bit port-number field:
    • 60,000 simultaneous connections with a single LAN-side address!
  • NAT is controversial:
    • Port numbers are to address processes – not hosts
    • routers should only process up to layer 3
    • violates end-to-end argument
      • NAT possibility must be taken into account by app designers, eg, P2P applications
    • address shortage should instead be solved by IPv6