I am reading about computer networking and wanted to solve some related problems provided in the book. However, for this problem, no solution has been provided by the authors so I do not know my attempt is correct or if there might be some mistakes that I can learn from. So I will try to reach out to you guys :)

The problem is:

Consider sending a 1,600-byte datagram into a link that has an MTU of 500 bytes. Suppose the original datagram is stamped with the identification number 291. How many fragments are generated? What are the values in the various fields in the IP datagram(s) generated related to fragmentation?

My solution is:enter image description here (I assume 20-byte IP headers)

  • What book is this question from? – jonathanjo Feb 1 at 9:30
  • "computer networking a top down approach" 7th edition – Dip Feb 2 at 16:34

The fragment offset needs to be a multiple of 8 as its field can only store the upper 13 bits. See RFC 791:

Fragments are counted in units of 8 octets. The fragmentation strategy is designed so than an unfragmented datagram has all zero fragmentation information (MF = 0, fragment offset = 0). If an internet datagram is fragmented, its data portion must be broken on 8 octet boundaries.

Accordingly, the 2nd fragment starts at offset 496.

It can carry only 480 more payload bytes, so the 3rd frag starts at 976, and the 4th at 1456.

| improve this answer | |
  • Thank you! "The fragment offset needs to be a multiple of 8 as its field can only store the upper 13 bits" - could you elaborate a little bit? I think that I get it but not 100%. This was not mentioned in the book that I read "computer networking a top down approach" – Dip Feb 2 at 16:33
  • @dip I've added a reference to RFC 791 to the answer. – Zac67 Feb 2 at 16:47
  • Wait, just came up with a question: You say that the 2nd fragment starts at offset 496. I assume this means that its offset is 496. If so, why? I mean 480 (as I wrote in my answer) is indeed a multiple of 8 - so how can that not be correct when the size of the previous fragment is 480? – Dip Feb 2 at 20:35
  • @dip You' want to use the largest packet inside the MTU limit you can send - that's 496 bytes for the first fragment. Of course, you could send everything in smaller fragments, down to 8 bytes each, but that would produce tons of excess overhead. – Zac67 Feb 2 at 20:45
  • Ahhh okay, cool. So my original answer for the 2nd fragment is technically not wrong? Just to confirm :) – Dip Feb 2 at 21:32

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.