demikernel icon indicating copy to clipboard operation
demikernel copied to clipboard

[inetstack] Buffer Data Received on SYN Segments for Later Use

Open ppenna opened this issue 2 years ago • 1 comments

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.

ppenna avatar Jan 08 '24 13:01 ppenna

We can implement this but we haven't seen any application use cases and I'm worried about the DoS attacks

iyzhang avatar Apr 26 '24 22:04 iyzhang