How long are fragmented TCP fragments kept in the TCP server

iptcp

Suppose that a given TCP fragment is fragmented into two IP datagrams, and that the first datagram arrives to the TCP server, but the second datagram never arrives.

After a certain amount of time the TCP server sends a keepalive, and determines that the client is alive. What does the TCP server then do with this first datagram? Does is wait for the second datagram to arrive, or does it discard the first datagram?

Best Answer

After the fragment reassembly timeout expires, the fragment is dropped; the other end would need to retransmit.

This timeout is generally configurable. On Linux, it's 30 seconds by default and controlled via /proc/sys/net/ipv4/ipfrag_time.

Related Topic