tut2 - Webcourse

Internet Networking
Spring 2005
Tutorial 2
IP Checksum, Fragmentation
1
IP Header Diagram
Ver. IHL
TOS
Identification
TTL
Protocol
Total Length
Flags Fragment Offset
Checksum
Source Address
Destination Address
Option
Padding
2
IP Checksum

Ensuring integrity of IP header



Reducing processing time at routers.
Does not check data integrity.
Allowing higher level protocols to choose
their own checksum scheme for the data.
3
Checksum (RFC 1071)


Adjacent octets to be checksummed are
paired to form 16-bit words. The
checksum field is cleared.
The 16-bit 1's complement sum is
computed over the 16-bit words


Any overflows are added to the sum.
The 1's complement of this sum is
placed in the checksum field.
4
Checksum


To verify a checksum, the 1's
complement sum is computed over the
same set of octets, including the
checksum field.
If the result is all 1 bits, the check
succeeds.
5
Checksum

Insensitive to:





Byte order.
Zero padding.
Word width (2 bytes, 4 bytes, etc.).
Hardware oriented (simple addition).
Not robust (unlike CRC).
6
Example
7
Incremental Checksum Update
(RFC 1141)


Updating part of the IP header data
doesn’t require recomputing the entire
Checksum field. (For example: when a
router change the TTL field.)
The technique for speed up checksum
recomputing in this case is called incremental checksum update.
8
Incremental Checksum Update

Notation:




C - Old 1’s complement sum.
m - Old data.
C’ - New 1’s complement sum.
m’ - New data.
C’ = C + (-m) + m’ = C + ( m’ – m)

The checksum is the 1’ complement of C’:
~C' = ~(C + (-m) + m') = ~C + (m - m')
= ~C + m + ~m‘

Note, the second equality does not work if the sum in the
brackets is 0xFFFF (see RFC 1624).
9
Incremental Internet
Checksum
Subtracting 1 from TTL field (common
case)
~C’ = ~C + (m - m’) = ~C + 0100H

(TTL byte is higher byte of integer)
If ~C=220dH then
~C’ = 220dH + 0100H = 230dH
10
IP Fragmentation


The internet is used to connect network from
different technologies.
In particular every technology has its own
maximum packet size.



This maximum packet size is called MTU
(Maximum Transfer Unit).
In Ethernet the MTU is 1514 bytes.
Large IP packets may traverse network in
which the MTU is smaller than the packet
sized.

These packets must be fragmented.
11
IP Fragmentation

IP fragmentation is done in the entry point of the
(physical) network that requires the fragmentation.




IP layer automatically performs fragmentation of a datagram
when its too large to be sent on physical network.
A datagram could be fragmented more than one time.
Fragments are counted in units of 8 octets.
Reassemble is done in the IP layer at the destination.

Transparent to upper protocol.
12
IP Fragmentation
Ver. IHL
TOS
Identification
TTL
Protocol
Total Length
Flags Fragment Offset
Checksum
Source Address
Destination Address
Option
Padding
13
Identification field


Unique integer that identifies the datagram
The originator of the IP packet (i.e. the
source) sets the identification field to a value
that must be unique for that sourcedestination pair and protocol for the time the
datagram will be active in the internet
system.


Implemented by counter, which increments by
one.
Ensures that fragments of different
datagrams are not mixed.
14
Fragment Offset

Tells the receiver the position of a fragment in the
original datagram.



The fragment offset and length determine the portion
of the original datagram covered by this fragment.
The fragment offset is measured in units of 8 octets
(64 bits).




Identifies the fragment location, relative to the beginning of
the original unfragmented datagram.
Enables Additional fragmentation.
It does not include the length of the IP header.
Reason: 13 bits are used to map 16 bits (IP length).
The first fragment has offset zero.
15
Flag


Bit 0: reserved, must be zero.
Bit 1: (DF) 0 = May Fragment, 1=Don't
Fragment.



If is set, then internet fragmentation of this
datagram is NOT permitted
If fragmentation required, but this bit is set than
the packet is discarded and ICMP is returned.
Bit 2: (MF) 0 = Last Fragment, 1=More
Fragments.

Set if the datagram is not the last fragment.
16
Fragmentation - Example
Datagram
Data1
Data2
Data3
header
600 octets
600 octets
200 octets
Datagram
Data1
header
600 octets
Datagram
Data2
header
600 octets
Datagram
Data3
header
200 octets
a
Fragment 1 offset = 0
Fragment 2 offset = 75
b
Fragment 3 offset = 150
17
Fragmentation


Fragmentation must be supported by every IP
entities (routers, host, etc.).
Fragmentation should be avoided.



Loss of one fragment requires retransmission of
the entire packet.
Advanced IP forwarding entities (e.g HW based
forwarding entities) does not support IP
fragmentation (i.e. IP fragmentation is an
exception).
MTU discovery protocol (RFC 1191) that uses the
DF bit, is used to avoid the necessity of IP
fragmentation.
18