[e2e] TCP fragmentation and reassembly
David Borman
david.borman at windriver.com
Wed Dec 7 10:45:48 PST 2005
TCP does not do fragmentation and reassembly. IP does fragmentation
and reassembly. On the sending side, TCP takes a byte stream from
the application, and sends it as a series of complete TCP/IP
packets. On the receive side, TCP will do resequencing of packets if
they arrive out of order, so that they are presented to the receiving
application in the same order that they were sent.
The TCP MSS value specifies the largest size of packet that the
receiver can reassemble. I doubt that there are many, if any, TCP
implementations that can't handle receiving a full 64K TCP/IP packet
(as a series of IP fragments). But since most TCP implementations
try very hard to not send packets that will be fragmented at the IP
layer, as long as the MSS is larger than the underlying MTU it
doesn't really matter. In theory, when using Path MTU discovery,
there is no reason to not always use the maximum MSS value of 64K-1.
-David Borman
On Dec 5, 2005, at 4:45 PM, Erwin Davis wrote:
> Helllo,
>
> Packet from application layer may be framed in TCP layer based on
> MSS (maximum segment size, not MTU in IP layer) negotiated between
> two TCP layers of the end parties. My question is if the TCP layer
> in receiving side will reassemble the TCP fragments before it
> forward the packet to the application layer. If yes, then how the
> TCP layer in receiving side knows how many TCP fragments are made
> up for this one application packet. If not, will it require the
> intelligence from the application layer for the application packet
> reassembly. Thanks for your help,
>
> erwin
More information about the end2end-interest
mailing list