* The Internet
Protocol allows IP fragmentation so that datagrams can be fragmented
into pieces small enough to pass over a link with a smaller MTU than the original
datagram size.
* The
Identification field, and Fragment offset field along with Don't Fragment and More
Fragment Flags are used for Fragmentation and Reassembly of IP datagrams.
* In a case
where a router in the network receives a PDU larger than the next hop's MTU, it
has two options. Drop the PDU and send an ICMP message which says "Packet
too Big", or to Fragment the IP packet and send over the link with a
smaller MTU.
* If a receiving
host receives an IP packet which is fragmented, it has to reassemble the IP
packet and hand it over to the higher layer.
* Reassembly is
intended to happen in the receiving host but in practice it may be done by an
intermediate router, for example network address translation requires
recalculating checksums across entire packets, and so routers supporting this
will often recombine packets as part of the process.
* The details of
the fragmentation mechanism, as well as the overall architectural approach to
fragmentation, are different in IPv4 and IPv6.
* In IPv4,
routers do the fragmentation, whereas in IPv6, routers do not fragment, but drop
the packets that are larger than the MTU size. Though the header formats are different
for IPv4 and IPv6, similar fields are used for fragmentation, so the
algorithm can be
reused for fragmentation and reassembly.
* IP
fragmentation can cause excessive retransmissions when fragments encounter packet
loss and reliable protocols such as TCP must retransmit all of the fragments in
order to recover from the loss of a single fragment.
* Thus senders
typically use two approaches to decide the size of IP datagrams to send over
the network.
* The first is
for the sending host to send an IP datagram of size equal to the MTU of the
first hop of the source destination pair.
* The second is
to run the "Path MTU discovery" algorithm, to determine the path MTU between
two IP hosts, so that IP fragmentation can be avoided.
* The flag field
has three bits, one unused bit, one “don’t fragment”(DF) bit, and one “more
fragment”(MF) bit.
* If DF bit is
set to 1, it forces the router not to fragment the packet. If the packet length
is greater than MTU, the router will discard the packet and send an error message
to the source host.
* The MF bit
tells the destination host whether or not more fragments follow. If there are
more, the MF bit is set to 1; otherwise, it is set to 0.
* Fragment offset field
identifies the location of a fragment in a packet.
0 comments