Top Banner
Ch. 4: Network Layer - Forwarding #1 Network Layer: a. Forwarding Goals: understand principles behind network layer services: forwarding routing (path selection) dealing with scale instantiation and implementation in the Internet and in other types of networks Overview: network layer services VC network operation ATM IP addresses & their usage NAT IP header IP fragmentation ICMP IPv6
54

Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Dec 13, 2015

Download

Documents

Adela Hancock
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#1

Network Layer: a. ForwardingGoals: understand principles

behind network layer services: forwarding routing (path

selection) dealing with scale

instantiation and implementation in the Internet and in other types of networks

Overview: network layer services VC network operation ATM IP addresses & their usage NAT IP header IP fragmentation ICMP IPv6

Page 2: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#2

Network Layer objectives Transport packet from source

to dest. o Net layer in all hosts,

routersBasic functions: Forwarding

move packets from source to destination through routers

Routing prepare info (table) that

enables finding a path for every packet/ data stream

Call setup (VC only, see later) find path for a data

session before data transfer starts

keep record of it in routers

“Contr

ol

pla

ne”

“Data

pla

ne”

Page 3: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding 4-3

Interplay between routing and forwarding

Forwarding

Routing

Build routing tables

Move packets from input link to output

link

1

23

0111

value in arrivingpacket’s header

routing algorithm

local routing tableheader value output link

0100010101111001

3221

Page 4: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#5

Network service model

Q: What service model for “channel” transporting packets from sender to receiver?

guaranteed bandwidth? preservation of inter-

packet timing (no jitter)? loss-free delivery? in-order delivery? congestion feedback to

sender?

? ??virtual circuit

or datagram?

The most important abstraction provided

by network layer:

serv

ice a

bst

ract

ion

Page 5: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Virtual circuits: signaling protocols

Signaling used to set up, maintain, teardown VC

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

1. Initiate call 2. incoming call

3. Accept call4. Call connected5. Data flow begins 6. Receive data

Ch. 4: Network Layer - Forwarding

#6

path recordedmore path details

Principle prepare a path (= VC) before moving data each direction is a separate path used in ATM, frame-relay, X.25 not used in today’s Internet

• but Cisco’s MPLS builds a VC service over IP

Page 6: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Virtual Circuit: call setup

Path preparation + resource allocation: Call setup message flows from source to

destination.• path recorded at this time

Path determination (routing):• Source based or network based.

Msg may indicate required resources:• BW, latency, buffer, etc.

A router can either:• accept (and commit required resources) or

reject Path accepted if all routers accept.

Ch. 4: Network Layer - Forwarding

#7

Page 7: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Virtual Circuit: Identifiers Forward call-setup pass:

each router allocates an ID for the VC• intended for incoming (I/C) packets of the VC• records it + the preceding &following node of path

Backward call-setup pass: each router tells predecessor its ID for the VC

• first predecessor is the originating host• ID will be used for this VC on the link between them

lists in the I/C port’s fwding table the I/C VC-ID and the corresponding O/G port +O/G ID

Runtime: when receiving a packet with an ID : find, in the I/C port’s forwarding table, the I/C ID’s record read from it the outgoing port & the O/G ID send packet on the required port with new ID .

Ch. 4: Network Layer - Forwarding

#8

Page 8: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

VC : identifiers preparation

Example: call setup stage

Ch. 4: Network Layer - Forwarding

#9

BW=1Mb BW=1Mb BW=1Mb

In port

VC idin

Outport

VC id out

1

In port

VC idin

Outport

VC id out

1382

In port

VC idin

Outport

VC id out

1

In port

VC idin

Outport

VC id out

1222

In port

VC idin

Outport

VC id out

122298

In port

VC idin

Outport

VC id out

138222

1 12 2

Summary:o VC-ID has a separate value on each linko determined by the receiving router and sent by signaling to sending node

VC id out

38

VC id in

98

Page 9: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

VC : identifiers usage

Example: runtime stage

Ch. 4: Network Layer - Forwarding

#10

VCid=38 VCid=22 VCid=98

In port

VC idin

Outport

VC id out

1

In port

VC idin

Outport

VC id out

1382

In port

VC idin

Outport

VC id out

1

In port

VC idin

Outport

VC id out

1222

In port

VC idin

Outport

VC id out

122298

In port

VC idin

Outport

VC id out

138222

2 21 1

Page 10: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#14

Datagram networks: Internet model no call setup at network layer routers: no state about end-to-end connections

no network-level concept of “connection”

packets typically routed using destination host ID packets between same source-dest pair may take

different paths, if routing tables change

application

transportnetworkdata linkphysical

application

transportnetworkdata linkphysical

1. Send data 2. Receive data

Page 11: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

ATM: overview Asynchronous Transfer Mode Fixed packets size: called cells

53 bytes = 5 header + 48 data

All virtual-circuit based Types of virtual circuits

“virtual circuits” aggregated into “virtual paths” Permanent or switched virtual paths used to reduce size of forwarding tables

Architecture is QoS-focused Service Quality types: CBR, VBR, ABR, UBR Constant/Variable/Arbitrary/Unspecified – Bit Rate

Access traffic policing Typical tool: leaky-bucket access control

Ch. 4: Network Layer - Forwarding

#15

Page 12: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#16

Network Layer Quality of Service

NetworkArchitecture

Internet

ATM

ATM

ATM

ATM

ServiceModel

best effort

CBR

VBR

ABR

UBR

Bandwidth

none

constantrateguaranteedrateguaranteed minimumnone

Loss

no

yes

yes

no

no

Order

no

yes

yes

yes

yes

Timing

no

yes

yes

no

no

Congestionfeedback

no (inferredvia loss/delay)nocongestionnocongestionyes

no

Guarantees ?

Internet model is being extended: Intserv, Diffserv multimedia networking

ATM: Asynchronous Transfer Mode; CBR: Constant Bit Rate; V: Variable; A: available; U: Unspecified

Page 13: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#17

Datagram or VC network: why?Internet (Datagram) data exchange among

hosts (mostly) “elastic”

service, no strict timing req.

“smart” end systems can adapt, perform

control, error recovery simple inside network,

complexity at “edge” many link types

different characteristics uniform service difficult

Datagram benefit: Simplicity

ATM (VC) evolved from telephony

but supports also data human conversation:

strict timing &reliability requirements

svc guarantees needed “dumb” end systems

telephones complexity inside

network VC Benefits:

Fast forwarding Traffic Engineering. In order delivery

Page 14: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#19

IP Addressing Scheme

We need an address to uniquely identify each destination

Routing scalability requires flexibility in aggregation of destination addresses we should be able to aggregate a set of

destinations as a single routing unit necessary for routing table scalability

Preview: the unit of routing in the Internet is a network - the destinations in the routing protocols and tables are networks

Page 15: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#20

IP Addressing: introduction IP address: 32-bit

identifier for host or router interface (NIC)

interface: connection between host/router and physical link router’s typically have

multiple interfaces a host has typically a

single interface IP addresses

associated with interface, nothost, or 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

223.1.1.1 = 11011111 00000001 00000001 00000001

223 1 11

Page 16: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#21

IP Addressing IP address is divided

into two parts: network prefix

• K high order bits host number

• remaining low order bits

This partitioning of the address depends on the context network in which we see this NIC networks are

nested inside each other

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

LAN

Qn: What is the router’s IP address in the drawing we see?

Page 17: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#22

What is a network in IP view?IP network

terminology: a Subnet is:

a set of devices that can physically reach each other without intervening router(s)

e.g. a LAN

a Network is: a subnet , or: the union of several

subnets that are interconnected by links

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

LAN

three subnets (LANs) 223.1.1.*, 223.1.2.*, 223.1.3.*, together they form a larger network with prefix 223.1 (16 bits) (OR MORE bits?)

Page 18: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding 4-23

IP Address Structure (CIDR method) the network prefix consists of the K most significant bits of

the address in some cases it is called the subnet prefix (see subnets

below) the host number = the remaining (32-K) bits the size K of the network prefix differs and must be specified

in each case. Two methods used for this: network mask has all 1‘s in the prefix part and all 0’s

elsewhere short notation is /K (also called the CIDR notation)

11001000 00010111 00010001 10110101/ 23

Exercise 1a) write the following IP address in dotted decimal notationb) specify corresponding netwk mask (binary and dotted

decimal)c) show network prefix & host # parts of that address

(binary)see solutions at end of chapter (in Extra slides)

Page 19: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding 4-24

Special Types of IP Address network broadcast address : host # = 11...1

means: all the hosts in the network specified in address prefix

used only as destination address of packets if dest. address = 11… 1 (32 1’s), broadcast on sender’s

subnet

network address : host # = 0 (all zeros) means: the whole network (used only in routing tables)

therefore the IP address of a host/router can not have host number = 0 or = “all ones”Exercise 21. write the network address of the network from Exercise 12. write the broadcast address for that network3. how many IP host addresses are possible in that

network?4. write host & network address with /K notation5. write the first and last host address on that network

Page 20: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding 4-25

Subnets

Recipe To determine the

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

Divide network into subnets and give an address to each

subnet

Network 223.1.0.0 / 21

Example

Page 21: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding 4-26

Solution of Example

Stage 1 Subnet 223.1.1.0 / 24Subnet 223.1.2.0 / 24

Subnet 223.1.3.0 / 24

Subnets: /24

Stage 2Network 223.1.0.0 / 21

223.1.1.1

223.1.1.2

223.1.1.3

223.1.2.9

223.1.2.2

223.1.2.1

223.1.3.2223.1.3.1

223.1.3.27223.1.1.4

Page 22: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding 4-27

223.1.8.2223.1.8.1

Subnet 223.1.8.0/24

Subnets

o How many subnets?o Write an address for

each subnet,including /K

o Write an address for the whole network,including /K

223.1.1.1

223.1.1.3

223.1.1.4

223.1.2.2223.1.2.1

223.1.2.6

223.1.3.2223.1.3.1

223.1.3.27

223.1.1.2

223.1.7.2

223.1.7.1223.1.9.1

223.1.9.2

Subnet 223.1.2.0/24

Subnet 223.1.3.0/24

Subnet 223.1.1.0/24

Subnet 223.1.7.0/24

Subnet 223.1.9.0/24

Whole network: 223.1.0.0/20

Page 23: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#28

IP Addresses

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

given notion of “network”, let’s re-examine IP addresses:

“classful” addressing:(does not need mask or /K indicator)

(*) this range used as multicast also in CIDR method

Page 24: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#29

IP addressing: CIDR classful addressing:

inefficient use of address space, address space exhaustion

e.g., class B net allocated enough addresses for 65K hosts, even if only 2K hosts in that network

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 Requires inclusion of mask or “/K” in routing table

11001000 00010111 00010000 00000000

networkpart

hostpart

200.23.16.0/23

Page 25: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#30

IP addresses: how to get one?

Hosts (host number): hard-coded by system admin in a file

Can see in IPConfig DHCP: Dynamic Host Configuration Protocol:

dynamically get address: “plug-and-play” 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 this is the common practice in LAN (why?) in home access: same procedure using PPP

protocol

Page 26: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#31

IP addresses: how to get one?

Network (network prefix+mask): get allocated portion of 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

Page 27: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#32

ISP Gets a block of addresses from ICANN:A: ICANN: Internet Corporation for Assigned

Names and Numbers allocates addresses manages DNS assigns domain names, resolves disputes allocates codes for the various protocols

IP addresses: how to get one?

Page 28: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#33

Hierarchical addressing: 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 29: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#34

Hierarchical addressing: specific routes

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

“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/16or 200.23.18.0/23”

200.23.20.0/23Organization 2

...

...

Organization 1 moved to ISPs-R-Us, but kept old address space

Page 30: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Routing table Destination Address Range Link Interface

11001000 00010111 00010000 00000000 through 0 11001000 00010111 00010111 11111111

11001000 00010111 00011000 00000000 through 1 11001000 00010111 00011000 11111111

11001000 00010111 00011001 00000000 through 2 11001000 00010111 00011111 11111111

otherwise 3

4 billion possible entries (*)

Ch. 4: Network Layer - Forwarding

#35

(*) true for IPv4; in IPv6 MUCH more

Page 31: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Network Layer4-36

Longest prefix matching Network /K Link Interface

11001000 00010111 00010000 00000000 /21 011001000 00010111 00011000 00000000 /24 111001000 00010111 00010100 00000000 /24 200000000 00000000 00000000 00000000 /0 3

Examples:

(a) DA: 11001000 00010111 00010110 10100001 Which interface will be used by this router for following dest addresses?

(d) DA: 11001000 00010111 00011000 11101010

Network Link Interface200.23.16.0 /21 0200.23.24.0 /24 1200.23.20.0 /24 2otherwise 3

(b) DA: 11001000 00010111 00010100 10101010 (c) DA: 11001000 00010111 00011100 10111110

Routing table

Page 32: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#37

Getting a datagram from source to dest.

IP datagram:

miscfields

sourceIP addr

destIP addr data

datagram remains unchanged (*), as it travels source to destination

forwarding based on addr fields only Main field :

dest. IP addr

Dest. Net. next router Nhops

223.1.1 1223.1.2 223.1.5.2 2223.1.3 223.1.5.2 2

routing table in R

223.1.1.4

223.1.1.2

R223.1.1.1

223.1.1.3

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

S

223.1.5.1

223.1.5.2

(*) almost

Page 33: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#38

Getting a datagram from source to dest.

Starting at A, given IP datagram addressed to B:

A looks up its /K(*) in IPConfig

Compares first K bits in dest address with those in its own

find B is on same net. as A same prefix same

subnet link layer will send datagram

directly to B in link-layer frame using ARP table/protocol B and A are directly

connected(*) in the form of subnet mask

miscfields223.1.1.1223.1.1.3data A’s IPConfig:

IP Addr: 223.1.1.1Subnet /K = 24 (*) Dflt Gtwy: 223.1.1.4

A’s ARP Table: 223.1.1.3 => 223.1.1.4 => Etc.

223.1.1.4

223.1.1.2

R223.1.1.1

223.1.1.3

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

S

223.1.5.1

223.1.5.2

(*) subnet mask = 225.225.225.0

Page 34: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#39

Getting a datagram from source to dest.

Starting at A, dest. E: look up network address of

E A finds E on another

network /K prefixes don’t match sends to default router R

223.1.1.4 listed in IPConfig

R’s routing table says: next hop router to E is 223.1.5.2: S

link layer sends datagram to router 223.1.5.2 as link-layer frame using ARP & Ethernet

datagram arrives at 223.1.5.2

cont. on next slide..

miscfields223.1.1.1223.1.2.2 data

223.1.1.4

223.1.1.2

R223.1.1.1

223.1.1.3

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

S

223.1.5.1

223.1.5.2

Dest. Net. Next router Port Hops

223.1.1.0 /24 a 1223.1.2.0 /24 223.1.5.2 b 2223.1.3.0 /24 223.1.5.2 b 2

a

b

a bc

Routing Table

Page 35: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#40

Getting a datagram from source to dest.

Arrived at 223.1.5,2, continuing to 223.1.2.2

look up network address of E

E on subnet directly attached to router’s interface b

link layer sends datagram to 223.1.2.2 inside link-layer frame via I/F b (223.1.2.9)

datagram arrives at 223.1.2.2!!! (hooray!)

Qn: What tables consulted in last two bullets?

miscfields223.1.1.1223.1.2.2 data

223.1.1.4

223.1.1.2

R223.1.1.1

223.1.1.3

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

S

223.1.5.1

223.1.5.2

Dest. Net. Next router Port Hops

223.1.1.0 /24 223.1.5.1 a 2223.1.2.0 /24 b 1223.1.3.0 /24 c 1

a

b

a bc

Page 36: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#41

Network Address Translation (NAT): Outline

Datagrams with source or destination in this networkhave 192.168.1/24 address for source /destination (as usual)

192.168.1.2

192.168.1.3

192.168.1.4

192.168.1.1

138.76.29.7

private network(e.g., home network)

192.168.1.0/24

rest ofInternet

All datagrams leaving privatenetwork have same single source NAT IP address: 138.76.29.7,different source port numbers

A private network uses just one public IP address as far as outside world is concerned Each device on the private network is assigned a private IP address

Here Here

Page 37: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#42

NAT: ImplementationNAT router must:

for outgoing datagrams: replace (source IP address, port #) of every

outgoing datagram by (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

for 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 38: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#43

NAT: Network Address Translation

192.168.1.2

S: 192.168.1.2, 3345D: 128.119.40.186, 80 1

192.168.1.1

138.76.29.7

1: host 192.168.1.2 sends datagram to 128.119.40.186, 80

NAT translation tableWAN side addr LAN side addr

138.76.29.7, 5001 192.168.1.2, 3345…… ……

S: 128.119.40.186, 80 D: 192.168.1.2, 3345

4

S: 138.76.29.7, 5001D: 128.119.40.186, 80

2

2: NAT routerchanges datagramsource addr from192.168.1.2, 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 192.168.1.2, 3345 after consulting translation table

192.168.1.3

192.168.1.4

Page 39: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#44

NAT: Advantages

No need to be allocated range of addresses from ISP: - just one public IP address is used for all devices 16-bit port-number field allows 60,000

simultaneous connections with a single LAN-side address !

can change ISP without changing addresses of devices in private network

can change addresses of devices in private network without notifying outside world

Devices inside private net not explicitly addressable, visible by outside world (a security plus)

Page 40: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

#45

NAT: Drawbacks

If both hosts are behind distinct NATs, they will have difficulty establishing connection

NAT is controversial: violates layer modularity principle:

routers should process up to only layer 3 causes problem for some application protocols:

• if application writes an explicit IP address within the L5 header, the peer application will get a useless internal-NAT IP address as an argument

proper address shortage solution : IPv6 !

Page 41: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Network Layer4-46 אפקה

תשע"ב ס"ב

IP datagram format

ver total length

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 #) of 32-bit words(

max numberremaining hops

)decremented at each router(

forfragmentation/

reassembly(**)

total datagramlength (bytes)

which upper layer prot.should receive payload

head.len

type ofservice

quality of svc (*)

flgsfragment

offsetprotocol

32 bit destination IP address

Options (if any) & paddingE.g. timestamp,record routetaken, specifiedlist of routers to use.

how much overhead with

TCP?20 bytes of TCP +20 bytes of IP =40 bytes +

app layer overhead

(*)seldom used

see also Extra slides

(**)we skip the details

Page 42: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Network Layer4-47

IPv6 Initial motivation: 32-bit address space

soon to be completely allocated. Additional motivation:

IPv6 header format helps speed processing IPv6 datagram format:

16-byte (128 bit) IP address fixed-length 40 byte header

• no options allowed inside the header• each option gets its own header after the main IP

header fragmentation discouraged

• allowed only using an options header

Page 43: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Network Layer4-48 אפקה

תשע"ב ס"ב

IPv6 Datagram FormatPriority: identify priority among datagrams in flowFlow Label: identify datagrams in same “flow.” (designed to enable Virtual Circuits over IP ).Next header: identify upper layer protocol that should

receive “data“ (“protocol” could also be an option type of IPv6)

40 bytes header

bytes

=TTL

Page 44: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Network Layer4-49

Transition From IPv4 To IPv6 Not all routers can be upgraded simultaneously

How will the network operate with mixed IPv4 & IPv6 routers? Tunneling: IPv6 datagrams are carried as payload in IPv4

datagrams when travelling through IPv4 routers source and destination network are IPv6, but need to transit

an existing IPv4 network

How is tunneling done? gateway router in source network takes the IPv6 datagram as

payload and encapsulates it into an IPv4 datagram• i.e. adds an IPv4 header in front of it

the IPv4 destination is the gateway router of the destination network, which removes the IPv4 header and routes by IPv6

Gateway router must support IPv4, IPv6 and tunneling

Page 45: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Network Layer4-50 אפקה

תשע"ב ס"ב

TunnelingA B E F

IPv6 Island IPv6

tunnelLogical view:

Physical view:A B E F

IPv6 IPv6

C D

IPv4 IPv4

Flow: XSrc: A

Dest: F

data

Flow: XSrc: A

Dest: F

data

Flow: XSrc: A

Dest: F

data

Src:BDest: E

Flow: XSrc: A

Dest: F

data

Src:BDest: E

A-to-B:IPv6

E-to-F:IPv6

B-to-C:IPv6 inside

IPv4

B-to-C:IPv6 inside

IPv4

IPv4 IPv4

IPv4 IPv4

IPv6 IPv6

IPv6 IPv6

IPv6 Island

Page 46: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Network Layer4-51

Usage of Tunneling Tunneling is used to move a packet

between similar networks A, B through a network Cthat is unable to understand its L3 header

Possible reasons:1. C uses a different protocol (e.g. IPv6 vs IPv4)2. A wants to encipher the data and the header

(VPN application)3. All networks use same protocol, but the

destination node is currently at a foreign networkand wishes to use its usual IP address.(Mobile IP application)

Page 47: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

IPv6 status report Operating systems –

wide support – early 2000 Windows (2000, XP, Vista), BSD, Linux, Apple

Networking infrastructure Cisco

Deployment Slow

Penetration Host - minor (less than 1%) Used in 2008 in China Olympic games

Motivation: CIDR & NAT

Ch. 4: Network Layer - Forwarding

#52

Page 48: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Extra

Ch. 4: Network Layer - Forwarding

#53

Page 49: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

4-54

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 50: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

4-55

IP Fragmentation and Reassembly

ID=x

offset=0

fragflag=0

length=4000

ID=x

offset=0

fragflag=1

length=1500

ID=x

offset=185

fragflag=1

length=1500

ID=x

offset=370

fragflag=0

length=1040

One large datagram becomesseveral smaller datagrams

Example 4000 byte

datagram MTU = 1500

bytes

1480 bytes in data field

offset =1480/8

Page 51: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

4-56

ICMP: Internet Control Message Protocol

used by hosts & routers to communicate 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 52: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding

4-57

Traceroute and ICMP

Source sends series of UDP segments to dest First has TTL =1 Second has TTL=2, etc. Unlikely port number

When nth datagram arrives to nth router: Router discards

datagram And sends to source an

ICMP message (type 11, code 0)

Message includes name of router& IP address

When ICMP message arrives, source calculates RTT

Traceroute does this 3 times

Stopping criterion UDP segment eventually

arrives at destination host

Destination returns ICMP “host unreachable” packet (type 3, code 3)

When source gets this ICMP, stops.

Page 53: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding 4-58

Exercise 1 Answers

11001000 00010111 00010001 10110101/ 23

Ans 2: 11111111 11111111 11111110 00000000 = 255.255.254.0

255-1 = 254

Ans 3: 11001000 00010111 00010001 10110101 NETWORK HOST

Ans 1: 11001000 00010111 00010001 10110101 =200.23.17.181

128+64+8= 200 16+7= 23 16+1= 17 128+32+16+5= 181

128 64 32 16 8 4 2 127 26 25 24 23 22 21 20

128 64 32 16 8 4 2 127 26 25 24 23 22 21 20

Page 54: Ch. 4: Network Layer - Forwarding#1#1 Network Layer: a. Forwarding Goals: r understand principles behind network layer services: m forwarding m routing.

Ch. 4: Network Layer - Forwarding 4-59

Exercise 2 Answers

11001000 00010111 00010001 10110101/ 23

Ans 5: first host address: 200.23.16.1/23last host address: 200.23.17.254/23

Ans 1: 11001000 00010111 00010000 00000000 = 200.23.16.0

Ans 2: 11001000 00010111 00010001 11111111 = 200.23.17.255

Ans 3: 29-2 = 510 hosts

NETWORK

Ans 4: network: 200.23.16.0/23 host: 200.23.17.181/23