network layer: a. forwarding
DESCRIPTION
Goals: understand principles behind network layer services: forwarding routing (path selection) dealing with scale instantiation and implementation in the Internet. Overview: network layer services IP addresses & their usage NAT IP header IP fragmentation ICMP IPv6. - PowerPoint PPT PresentationTRANSCRIPT
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
Overview: network layer services IP addresses & their usage NAT IP header IP fragmentation ICMP IPv6
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”
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
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
Virtual circuits: signaling protocols
Signaling used to set up, maintain, teardown VC used in ATM, frame-relay, X.25 not used in today’s Internet
• but Cisco’s MPLS builds a VC service over IP
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 recorded more path details
Principle prepare a path (= VC) before moving data each direction is a separate path
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
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
• will use this ID on outgoing (O/G) packets of this VC 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
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
1222xx
In port
VC idin
Outport
VC id out
138222
1 12 2
VC : identifiers usage
Example: runtime stage
Ch. 4: Network Layer - Forwarding
#10
VCid=38 VCid=22 VCid=xx
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
1222xx
In port
VC idin
Outport
VC id out
138222
2 21 1
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
application
transportnetworkdata linkphysical
application
transportnetworkdata linkphysical
1. Send data 2. Receive data
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 Architecture is QoS-focused
Service Quality types: CBR, VBR, ABR, UBR Access traffic policing
Typical tool: leaky-bucket access controlCh. 4: Network Layer -
Forwarding#15
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
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 guaranteed needed “dumb” end systems
telephones complexity inside
network VC Benefits:
Fast forwarding Traffic Engineering. In order delivery
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
Ch. 4: Network Layer - Forwarding
#20
IP Addressing: introduction IP address: 32-bit
identifier for host or router interface
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, not host, 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
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?
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?)
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 other (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
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
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
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
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
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
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
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
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
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?
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:
Ch. 4: Network Layer - Forwarding
#34
Hierarchical addressing: more specific routes
ISPs-R-Us has 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
...
...
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
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
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
addr fields of interest here 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
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 sane
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
Ch. 4: Network Layer - Forwarding
#39
Getting a datagram from source to dest.
Starting at A, dest. E: look up network address of
E E on different network
A sees this by comparing /K prefixes of A and E
routing table: next hop router to E is 223.1.5.2
link layer sends datagram to router 223.1.5.2 inside link-layer frame
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
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 table consulted here?
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
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
local network(e.g., home network)
192.168.1.0/24
rest ofInternet
All datagrams leaving localnetwork have same single source NAT IP address: 138.76.29.7,different source port numbers
A local network uses just one public IP address as far as outside world is concerned Each device on the local network is assigned a private IP address
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
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
192.168.1.3
192.168.1.4
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 local network
can change addresses of devices in local network without notifying outside world
Devices inside local net not explicitly addressable, visible by outside world (a security plus)
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 IP address as an argument
proper address shortage solution : IPv6 !
Ch. 4: Network Layer - Forwarding
#46
IP 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
IP protocol versionnumber
header length (bytes)
max numberremaining hops
(decremented at each router)
forfragmentation/reassembly
total datagramlength (bytes)
upper layer protocolto deliver payload to
head.len
type ofservice
“type” of data flgsfragment
offsetupper layer
32 bit destination IP address
Options (if any) E.g. timestamp,record routetaken, specifylist of routers to visit.
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
Network Layer4-48 אפקה
תשע"א ס"ב
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
Network Layer4-49 אפקה
תשע"א ס"ב
TunnelingA B E F
IPv6 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
Network Layer4-50 אפקה
תשע"א ס"ב
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 network(Mobile IP application)
Ch. 4: Network Layer - Forwarding
4-51
IPv6 Header (Cont)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
Ch. 4: Network Layer - Forwarding
4-52
Transition From IPv4 To IPv6
Not all routers can be upgraded simultaneous no “flag days” How will the network operate with mixed IPv4
and IPv6 routers? Tunneling: IPv6 carried as payload in IPv4
datagram among IPv4 routers
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
#53
Extra
Ch. 4: Network Layer - Forwarding
#54
Ch. 4: Network Layer - Forwarding
4-55
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
Ch. 4: Network Layer - Forwarding
4-56
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
Ch. 4: Network Layer - Forwarding
4-57
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
Ch. 4: Network Layer - Forwarding
4-58
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.
Ch. 4: Network Layer - Forwarding 4-59
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
Ch. 4: Network Layer - Forwarding 4-60
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