The idea
A datagram does not know, when it is created, which links it will cross to get to its destination. Each of those links has its own maximum frame size — its MTU — and IP has no say in what that number is. Lecture 5 states it plainly: fragmentation is required whenever an interface’s MTU is smaller than the packet that has to go out through it. Ethernet’s default MTU is 1500 bytes, which is the number that shows up in most worked scenarios.
The three fields that make this possible were already on the header in the last topic — Identification, Flags, and Fragmentation Offset. Splitting a datagram is easy; the hard part is giving the destination enough information to put the pieces back in the right order, and that is exactly what those three fields are for.
How it works
Offset counts in 8-byte units, not bytes
Every fragment of one original datagram carries the same Identification value, so the destination knows which pieces belong together. Fragmentation Offset then says where, within the original datagram, this fragment’s payload starts — but the field is only 13 bits, nowhere near enough to count up to 65,535 bytes directly. The lecture’s fix: count in units of 8 bytes instead of 1, and multiply by 8 to recover the real position.
That 8-byte unit is not an arbitrary choice. A 13-bit field can hold values up
to 2^13 − 1 = 8191, so the largest position it can express is
8191 × 8 = 65,528 — a handful of bytes short of 65,535, the largest value
the 16-bit Total Length field can hold. The offset field was sized to just
cover the whole range Total Length can express, no more.
Flags carries the other half of the bookkeeping. DF (Don’t Fragment) says whether this datagram is even allowed to be split. MF (More Fragments) says whether this particular fragment is the last one — set on every fragment except the final piece, where it drops to 0.
Aside
Lecture 5 gives the mechanism — the fields, their units, and the instruction to use total length, HLEN, flags and offset together to find each fragment’s start and end — but it never works through an actual set of numbers. The brief for this topic flags that gap directly: there is no fragmentation worked example in the source material. Rather than inventing one and presenting it as the lecture’s own, use the calculator below to build the same intuition by trying numbers yourself.
Try it
Enter a datagram total length larger than the MTU and watch the split happen. Two things worth confirming by hand before you trust the tool: that every fragment’s payload (except the last) comes out as a multiple of 8 bytes, and that the last fragment is the only one with MF set to 0.
Where marks get lost
Two separate multiply-by-8 traps
Reading the offset field. The value stored is not the byte position — it is that position divided by 8. Forgetting to multiply back by 8 gives an answer that looks plausible but is 8 times too small.
Choosing a fragment’s payload size. Because the offset of the next fragment has to land on an 8-byte boundary, every fragment except the last must carry a payload that is itself a multiple of 8 bytes — even if that means the MTU is not used all the way to its limit. Only the final fragment is allowed to be a leftover, odd-sized amount.
Check yourself
A 3000-byte datagram (20-byte header, 2980-byte payload) must cross a link with a 1000-byte MTU. Roughly how many fragments will it need, and why can’t you just divide 2980 by 980 and round up?
Answer: three fragments is the right ballpark — but the exact split depends on rounding each non-final fragment’s payload down to a multiple of 8 bytes, which a plain division ignores. That’s exactly what the calculator above works out for real numbers.
In the exam
- Multiply the offset field by 8. Every question involving the offset field is testing whether you remember this, in one direction or the other.
- Non-final fragments carry a payload that is a multiple of 8 bytes. Only the last fragment is allowed to be a leftover size.
- MF distinguishes “more coming” from “this is the last.” DF distinguishes “may be split” from “may not be” — do not conflate the two flags.
- The lecture gives no numeric worked example here. If a tutorial or past exam paper has one, treat that as the primary source for this specific topic — this page’s job is the mechanism, not a memorised answer.
- Total Length includes the header; the payload figure you fragment does not. Subtract the header first, on every fragment.