EEC-484/584 Computer Networks Lecture 10 Wenbing Zhao [email protected] (Part of the slides are...

25
EEC-484/584 EEC-484/584 Computer Computer Networks Networks Lecture 10 Lecture 10 Wenbing Zhao Wenbing Zhao [email protected] (Part of the slides are based on Drs. Kurose & (Part of the slides are based on Drs. Kurose & Ross Ross s slides for their s slides for their Computer Networking Computer Networking book) book)

Transcript of EEC-484/584 Computer Networks Lecture 10 Wenbing Zhao [email protected] (Part of the slides are...

EEC-484/584EEC-484/584Computer Computer NetworksNetworksLecture 10Lecture 10

Wenbing ZhaoWenbing Zhao

[email protected] (Part of the slides are based on Drs. Kurose & Ross(Part of the slides are based on Drs. Kurose & Ross’’s slides s slides for their for their Computer Networking Computer Networking book)book)

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

OutlineOutline Reminder

Time to start working on the project! Routing algorithms

Link state routing (done) Distance vector routing

Internet protocol v4 Header Fragmentation

Internet Protocol v6

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

Distance Vector RoutingDistance Vector Routing Also called Bellman-Ford or Ford-Fulkerson Each router maintains a table, giving best known

distance to each destination and which line to use to get there Table is updated by exchanging info with neighbors Table contains one entry for each router in network with

Preferred outgoing line to that destination Estimate of time or distance to that destination

Once every T msec, router sends to each neighbor a list of estimated delays to each destination and receives same from those neighbors

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

Distance Vector Routing:Distance Vector Routing:How each entry is updatedHow each entry is updated

d(A,X)

d(A,Y)A

X Z

d(Y,Z)

d(X,Z)

At router A, for ZCompute d(A,X) + d(X,Z) and d(A,Y) + d(Y,Z), take minimum

Y

d(A,Z) = min {d(A,v) + d(v,Z) }

where min is taken over all neighbors v of A

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

x y z

xyz

0 2 7

∞ ∞ ∞∞ ∞ ∞

from

cost to

from

from

x y z

xyz

0

from

cost to

x y z

xyz

∞ ∞

∞ ∞ ∞

cost to

x y z

xyz

∞ ∞ ∞7 1 0

cost to

∞2 0 1

∞ ∞ ∞

2 0 17 1 0

time

x z12

7

y

node x table

node y table

node z table

d(x,y) = min{d(x,y) + d(y,y), d(x,z) + d(z,y)} = min{2+0 , 7+1} = 2

d(x,z) = min{d(x,y) + d(y,z), d(x,z) + d(z,z)} = min{2+1 , 7+0} = 3

32

Each node keeps track of the following info:1. Its own distance vector: least-cost to each of other

routers2. Each of its neighbor’s distance vector received most

recentlyIf there is a change in distance vector, a node sends the

update to all its neighbors

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

x y z

xyz

0 2 7

∞ ∞ ∞∞ ∞ ∞

from

cost to

from

from

x y z

xyz

0 2 3

from

cost tox y z

xyz

0 2 3

from

cost to

x y z

xyz

∞ ∞

∞ ∞ ∞

cost tox y z

xyz

0 2 7

from

cost to

x y z

xyz

0 2 3

from

cost to

x y z

xyz

0 2 3

from

cost tox y z

xyz

0 2 7

from

cost to

x y z

xyz

∞ ∞ ∞7 1 0

cost to

∞2 0 1

∞ ∞ ∞

2 0 17 1 0

2 0 17 1 0

2 0 13 1 0

2 0 13 1 0

2 0 1

3 1 0

2 0 1

3 1 0

time

x z12

7

y

node x table

node y table

node z table

d(x,y) = min{d(x,y) + d(y,y), d(x,z) + d(z,y)} = min{2+0 , 7+1} = 2

d(x,z) = min{d(x,y) + d(y,z), d(x,z) + d(z,z)} = min{2+1 , 7+0} = 3

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

Distance Vector RoutingDistance Vector Routing

Distance from A to B 12ms, to C 25ms, to D 40ms, to G 18ms

Distance from J to A 8ms, to I 10ms, to H 12ms, to K 6ms

Distance from J to A to G 8+18 = 26msto I to G 10+31 = 41msto H to G 12+6=18msto K to G 6+31=37ms

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

Distance Vector RoutingDistance Vector Routing Good news travels fast Bad news travels slow Count to infinity problem: Takes too long to converge upon

router failure

×

Routers’ knowledge about the cost to A

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

The Network Layer in Internet The Network Layer in Internet

forwardingtable

Host, router network layer functions:

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

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

IPv4 Datagram FormatIPv4 Datagram Format

ver Totallength

32 bits

data (variable length,typically a TCP

or UDP segment)

16-bit identifier

header checksum

time tolive

32 bit source IP address

IP protocol versionnumber

header length (bytes)

max numberremaining hops

(decremented at each router)

forfragmentation/reassembly

total datagramlength (bytes)

upper layer protocolto deliver payload to

IHL type ofservice

“type” of data flgsfragment

offsetprotocol

32 bit destination IP address

Options (if any) E.g. timestamp,record routetaken, specifylist of routers to visit.

How much overhead with TCP?

• 20 bytes of TCP

• 20 bytes of IP

• = 40 bytes + app layer overhead

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

The IPv4 HeaderThe IPv4 Header Version – 4 IHL – length of header in 32-bit words

Min 5, max 15 – i.e., 60 bytes Type of service - to distinguish different classes of service

To accommodate differentiated services (which class this packet belongs to)

Total length – header and data 65,535 (216-1) bytes Identification – allows destination to determine which datagram a

fragment belongs to

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

The IPv4 HeaderThe IPv4 Header Time to live – counter to limit packet lifetimes

Max lifetime 255sec Packet is destroyed when counter becomes 0

Protocol – which transport layer protocols being used

Header checksum – verifies header

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

The IPv4 HeaderThe IPv4 Header

Options – security, error reporting, etc. Some of the IP options

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

IPv4 FragmentationIPv4 Fragmentation Fragmentation Flags

DF – tells routers “Don’t Fragment” MF – More Fragments. All fragments except last have this

set. Used as check against total length Fragment offset – where in datagram this fragment

belongs All fragments (payload in the IP packet) except last must be

multiples of 8 bytes The number of 8 byte blocks is called Number of

Fragment Blocks (NFB) The unit of the offset is NFB

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

IPv4 Fragmentation & IPv4 Fragmentation & ReassemblyReassembly

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

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

IPv4 Fragmentation and IPv4 Fragmentation and ReassemblyReassembly

ID=x

offset=0

MF=0

length=4000

ID=x

offset=0

MF=1

length=1500

ID=x

offset=185

MF=1

length=1500

ID=x

offset=370

MF=0

length=1040

One large datagram becomesseveral smaller datagrams

Example• 4000 byte

datagram• MTU = 1500

bytes1480 bytes in data field

offset =1480/8

Fragment should be as large as possible

Network Layer 4-17

IPv6: motivation initial motivation: 32-bit address space soon

to be completely allocated. additional motivation:

header format helps speed processing/forwarding header changes to facilitate QoS

IPv6 datagram format: fixed-length 40 byte header no fragmentation allowed

Network Layer 4-18

IPv6 datagram format

priority: identify priority among datagrams in flowflow Label: identify datagrams in same “flow.” (concept of“flow” not well defined).

next header: identify upper layer protocol for data

data

destination address(128 bits)

source address(128 bits)

payload len next hdr hop limitflow labelpriver

32 bits

Network Layer 4-19

Other changes from IPv4

checksum: removed entirely to reduce processing time at each hop

options: allowed, but outside of header, indicated by “Next Header” field

ICMPv6: new version of ICMP additional message types, e.g. “Packet Too Big” multicast group management functions

Network Layer 4-20

Transition from IPv4 to IPv6 not all routers can be upgraded simultaneously

no “flag days” how will network operate with mixed IPv4 and

IPv6 routers? tunneling: IPv6 datagram carried as payload in

IPv4 datagram among IPv4 routers

IPv4 source, dest addr IPv4 header fields

IPv4 datagram

IPv6 datagram

IPv4 payload

UDP/TCP payload

IPv6 source dest addrIPv6 header fields

Network Layer 4-21

Tunneling

physical view:

IPv4 IPv4

A B

IPv6 IPv6

E

IPv6 IPv6

FC D

logical view:

IPv4 tunnel connecting IPv6 routers

E

IPv6 IPv6

FA B

IPv6 IPv6

Network Layer 4-22

flow: Xsrc: Adest: F

data

A-to-B:IPv6

Flow: XSrc: ADest: F

data

src:Bdest: E

B-to-C:IPv6 inside

IPv4

E-to-F:IPv6

flow: Xsrc: Adest: F

data

B-to-C:IPv6 inside

IPv4

Flow: XSrc: ADest: F

data

src:Bdest: E

physical view:A B

IPv6 IPv6

E

IPv6 IPv6

FC D

logical view:

IPv4 tunnel connecting IPv6 routers

E

IPv6 IPv6

FA B

IPv6 IPv6

IPv4 IPv4

Tunneling

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

DijkstraDijkstra’’s Algorithms Algorithm: : ExerciseExercise

Given the subnet shown below, using the Dijkstra’s Algorithm, determine the shortest path tree from node u and its routing table

u

yx

wv

z2

2

13

1

1

2

53

5

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

Distance Vector Routing: Distance Vector Routing: ExerciseExercise Consider the subnet shown below. Distance vector routing is

used, and the following vectors have just come in to router C: from B: (5, 0, 8, 12, 6, 2); from D: (16, 12, 6, 0, 9, 10); and from E: (7, 6, 3, 9, 0, 4). The measured delays to B, D, and E, are 6, 3, and 5, respectively. What is C's new routing table? Give both the outgoing line to use and the expected delay.

04/18/2304/18/23 EEC-484/584: Computer NetworksEEC-484/584: Computer Networks Wenbing ZhaoWenbing Zhao

Exercise: IP FragmentationExercise: IP Fragmentation Suppose that host A is connected to a router R 1, R 1 is

connected to another router, R 2, and R 2 is connected to host B. Suppose that a TCP message that contains 900 bytes of data and 20 bytes of TCP header is passed to the IP code at host A for delivery to B. Show the Total length, Identification, DF, MF, and Fragment offset fields of the IP header in each packet transmitted over the three links. Assume that link A-R1 can support a maximum frame size of 1024 bytes including a 14-byte frame header, link R1-R2 can support a maximum frame size of 512 bytes, including an 8-byte frame header, and link R2-B can support a maximum frame size of 512 bytes including a 12-byte frame header.