Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cornell!batcomputer!itsgw!steinmetz!uunet!ingr!ed!sale From: sale@ed.uucp (Ed Sale) Newsgroups: comp.protocols.tcp-ip Subject: Re-fragmenting IP Datagrams Keywords: IP fragmentation, MTU, gateway, routing Message-ID: <4014@ingr.com> Date: 21 Feb 89 03:14:29 GMT Sender: usenet@ingr.com Reply-To: sale@ed.uucp.UUCP (Ed Sale) Distribution: usa Organization: Intergraph Corporation, Huntsville, AL Lines: 41 I have just spent the large part of the day trying to determine if it is legal for an IP gateway to re-fragment an already fragmented datagram when it attempts to route the datagram from a network with a large MTU (Max Transmission Unit) to one with a smaller MTU. I have perused all *current* RFC's containing the word "fragment" and Douglas Comer's book to no avail. A simplified example of the problem arises when an 8 Kbyte UDP datagram originates on a network whose MTU is 2K bytes. The source must fragment the datagram before sending it and so makes 4 2K byte fragments. The destination of the datagram resides on another network whose MTU is 1 Kbyte. The fragments will be sent from the original source through 1 or more gateways to a gateway directly connected to the 1 Kbyte MTU network. This gateway will encounter fragments too large to send on the destination network. Is it legal for the gateway to make smaller fragments from the larger ones? The problem would also arise if any of the intermediate physical networks along the route had a smaller MTU than the original net. If the gateways can't re-fragment datagrams, the solution that immediately comes to mind is that when the datagram is originally fragmented that it be divided into some *small* fragment size that all gateways and physical nets supporting IP are required to handle. All IP implementations are required to have MTU's of at least 68 bytes one maximum sized (60 byte) IP header with one minimum-sized fragment (8 bytes). I sure hope that this isn't the case. Using this "make minimum-sized-fragments" scheme would reduce the throughput on large MTU nets, however, when sending large datagrams between two endpoints on the same network with an MTU smaller than the datagram size but much larger than the minimum size - unless a test was made before fragmenting to determine what the optimal fragment size should be. What do current implementations do? If there is an RFC addressing this please let me know so that I can read it. I apologize if this topic has been addressed in this newsgroup previously. Thanks for reading this far and (hopefully) responding. Ed Sale ..!uunet!ingr!b11!sale or b11!ed!sale@ingr.com