We
know that while transmitting a packet from source to destination, it may travel
through different networks. The data link protocol used in different network
may vary, and different data link protocols use different packet size. Data
link protocol also specifies the maximum size of the packet or datagram that
can carry. The maximum size is some times called Maximum transfer Unit (MTU). The
maximum size supported by an Ethernet is 1500 bytes and X.25’s maximum packet
size is 576 bytes. Each router in the network de-capsulate the received packet and
process the data, after that it encapsulates into another frame before
transmitting to next hop. Simply, format and size of the received datagram
depends on the physical characteristics of the network through which the
datagram just traveled and the size and format of the sent datagram depends on
the network physical characteristics of the network through which the packet
need to travel for reaching to next hop or router.
Fragmentation
is the process of dividing a datagram to ensure that the packet can travel
through the next network, it is depends upon the physical characteristics of
the network through which the packet need to travel.
If
a datagram fragmented then each fragment can pass through different routes. The
reassembly of the fragments into its original form is the responsibility of the
final destination node. We use three fields in the datagram header to deal with
fragmentation.
You must read the previous post on IPv4 datagram in-order to understand the following fields.
Identification
The
sender of the packets adds a unique number to each packet. This is done by
using a counter at the sender, while creating a packet the current counter
value is copy to the identification field of the datagram
and then increment
the counter by one. The identification number and the source IP address of the
datagram uniquely identify the datagram as it leaves from the source system.
The identification field is copied to each fragment of the packet that means
each fragment of a single datagram has same identification number. At the receiving,
end the fragments with same identification number grouped into one unit. Flags
This 3-bits field used to determine whether, possible
more fragmentation on the current fragment and whether it is the last fragment
or more fragments are present after this. The first bit among the three bits
are not used or reserved. The second bit is either 1 or 0, if it is 1 then no
more fragmentation can possible on this datagram. If the second bit is zero (0)
then we can fragment if necessary. One (1)
in the third bit field represent this is not the last fragment and 0 in the
third field represents it is the last fragment.
Flag in fragmentation |
Fragmentation offset
This
field used to represent the relative position of this fragment with respect to
the original datagram sent from the source node. The following figure
illustrates how to find out the value for fragmentation offset. Here we
consider a packet with initial size 16000 bytes and firstly it divide into
three fragments of size 8000, 4000 and 4000 respectively. The second fragment
is again fragment into two.
Calculate offset of a datagram |
The identification fields’ value is same for all the
fragments of a datagram. The final destination node follow the below rules to
reassemble the fragments to original datagram;
The first fragment has offset value always zero. Then
use the length of the first fragment to determine the offset of the second fragment
(divide the first fragment’s length by 8 to get second fragment offset). To get
the third fragment offset, first add the length of the first and second fragment
length together and divide the result with 8. This process is continuing until
the last fragment has reach.
Question from UGC NET December 2012
9. If a packet arrive with an M-bit value is '1' and a fragmentation offset value '0', then it is ---- fragment.
(A) First
(B) Middle
(C) Last
(D) All of the above
Next : Chanel Capacity (25-01-2013)
Previous : Datagram
No comments:
Post a Comment