CCN Activity Session for Section 1.2 – Datagram Fragmentation
As you’ve heard in the session, not all data units are equal. Entities at different layers of a networking stack, or different physical networking technologies, frequently have dissimilar Maximum Transmission Units (MTUs) requiring us to fragment and reassemble data during transmission.
Question
Suppose datagrams are limited to 1,500 bytes (including header) between hosts A and B. Assuming a 20-byte IP header, how many datagrams would be required to send an MP3 consisting of 5 million bytes? Explain your answer.
MP3 file size = 5 million bytes. Assume the data is carried in TCP segments, with each TCP segment also having 20 bytes of header (remember this is an IP model stack, not OSI which is only an idealized situation, so there are fewer layers than you might think!). Then each datagram can carry 1500-40=1460 bytes of the MP3 file
Number of datagrams required ê 1460 ú . All but the last datagram will be 1,500 bytes; the last datagram will be 960+40 = 1000 bytes. Note that here there is no fragmentation – the source host does not create datagrams larger than 1500 bytes, and these datagrams are smaller than the MTUs of the links.
Question
Consider sending a 2,400-byte datagram into a link with an MTU of 700 bytes. Suppose the original datagram is stamped with the identification number 422. How many fragments are generated?
The maximum size of data field in each fragment = 680 (because there are 20 bytes IP
= é 24 00 – 20 ù = 4 header). Thus the number of required fragments ê 680 ú
Question
A typical non-fragmented IP datagram contains 40 bytes of header (20 bytes of IP header, and 20 bytes of TCP header). Suppose an application generates 40 bytes of data every 20ms, and each chunk is encapsulated in a TCP segment and then an IP datagram. What percentage of each datagram will be overhead, and what percentage will be application data?
The answer is 50% overhead, 50% application data.
=é5 ́106 ù=3425