In the text book Computer Networking James F.Kurose Fifth Ed, ch4 mentioned
the ip fragments must be in multiples of 8 bytes, and because the Flags in the IP header takes 3 bits. I don’t understand why ip fragmentation must be in multiples of 8 bytes.
Every fragment except the last must contain a multiple of 8 bytes of data.
Fragment Offset can hold 8192 (2^13) units but the datagram can’t have 8192 * 8 = 65536 bytes of data because “Total Length” field of IP header records the total size including the header and data.
An IP header is at least 20 bytes long, so the maximum value for “Fragment Offset” is restricted to 8189, which leaves room for 3 bytes in the last fragment.
Hope this helps.