IP Message Reassembly Process
(Page 1 of 2)
When a datagram is fragmented, either by the originating device or by one or more routers transmitting the datagram, it becomes multiple fragment datagrams. The destination of the overall message must collect these fragments and then reassemble them into the original message. Reassembly is accomplished by using the special information in the fields we saw in the preceding topic to help us put the jigsaw puzzle back together again.
It's important to understand that while reassembly is the complement to fragmentation, the two processes are not symmetric. A primary differentiation between the two is that while intermediate routers can fragment a single datagram or further fragment a datagram that is already a fragment, intermediate devices do not perform reassembly. This is done only by the ultimate destination of the IP message. So, if a datagram at an intermediate router on one side of a physical network with an MTU of 1,300 causes fragmentation of a 3,300 byte datagram, the router on the other end of this 1,300 MTU link will not restore the 3,000 byte datagram to its original state. It will send all the 1,300 byte fragments on down the internet, as shown in Figure 89.
There are a number of reasons why the decision was made to implement IP reassembly this way. Perhaps the most important one is that fragments can take different routes to get from the source to destination, so any given router may not see all the fragments in a message. Another reason is that having routers need to worry about reassembling fragments would increase their complexity. Finally, as we will see, reassembly of a message requires that we wait for all fragments before sending on the reassembled message. Having routers do this would slow routing down. Since routers don't reassemble they can immediately forward all fragments on to the ultimate recipient.
However, there are drawbacks to this design as well. One is that it results in more smaller fragments traveling over longer routes than if intermediate reassembly occurred. This increases the chances of a fragment going missing and the entire message being discarded. Another is a potential inefficiency in the utilization of data link layer frame capacity. In the example above, the 1,300-byte fragments would not be reassembled back into a 3,300 byte datagram at the end of the 1,000-MTU link. If the next link after that one also had an MTU of 3,300, we would have to send three frames, each encapsulating a 1,300-byte fragment, instead of a single larger frame, which is slightly slower.
Home - Table Of Contents - Contact Us
The TCP/IP Guide (http://www.TCPIPGuide.com)
Version 3.0 - Version Date: September 20, 2005
© Copyright 2001-2005 Charles M. Kozierok. All Rights Reserved.
Not responsible for any loss resulting from the use of this site.