A 1200-byte packet arrives on the LAN segment and needs to be fragmented before being forwarded to the egress interface. Which of these identifies the correct IP header fields for the IP fragments after fragmentation (where MF is the More Fragment flag bit, and FO is the Fragment Offset in the IP header)?
A.
fragment1: id=1, length=1000, MF=0, FO=980; fragment2: id=2, length=220, MF=0, FO=980
B.
fragment1: id=1, length=996, MF=1, FO=0; fragment2: id=1, length=224, MF=0, FO=122
C.
fragment1: id=1, length=600, MF=1, FO=0, fragment2: id=2, length=620, MF=0, FO=75
D.
fragment1: id=1, length=1000, MF=1, FO=0; fragment2: id=1, length=220, MF=0, FO=980
E.
fragment1: id=1, length=600, MF=0, FO=580; fragment2: id=1, length=620, MF=0, FO=0
Why B is the Answer? How to understand it?
Very easy, if I explain you the basics how fragmentation works.
In fragment1, total length of 996 contains 976 of data and 20 bytes of IP header. This means in fragment2 we just need to send rest of 224 bytes (1200 – 976). Which is correct written in option B.
MF generally explains this is not the last fragment. So, fragment2 being the last frame should have MF equal to 0 and fragment1 should have 1.
FO is a field which explain the receiving machine how fragments will join together. FO is always 0 in first packet (rule of thumb, remember) being the starting fragment. In fragment2, it should be 976 as 976 was sent in fragment1. But this value need to be written as number of octet within the fragment. So, 976 / 8 will give you 122, which is correct written in second frame.
Only calculation of B seems correct.
A/E has MF – 0 for fragment1, this is not last fragment so MF should be 1. Cannot be the answer.
D cannot be the answer as FO 980 means actual figure of 7840 bytes(980 * 8).
C cannot be the answer either for two reason. 600 bytes in fragment1 means 580 bytes data (rest is 20 bytes IP header). So, FO in fragment2 need to 580/8 = 72.5. Where fragment2 FO is 75. Also, this field is always exact multiplier of 8 (no fractions).