[inetstack] Buffer Data Received on SYN Segments for Later Use
Context
From RFC 793 Section 3.4:
Several examples of connection initiation follow. Although these examples do not show connection synchronization using data-carrying segments, this is perfectly legitimate, so long as the receiving TCP doesn't deliver the data to the user until it is clear the data is valid (i.e., the data must be buffered at the receiver until the connection reaches the ESTABLISHED state).
Demikernel does accepts SYN segments, but it does not buffer any data for future use.
Proposed Solution
Buffer any data received while connection is being established.
This may improve performance of applications that establish connections to only a few amount of data.
Alternative Solution
Leave the implementation as it is, because buffering data for non-established connection may enable DoS attacks.
We can implement this but we haven't seen any application use cases and I'm worried about the DoS attacks