On 7/28/2014 6:52 AM, Eggert, Lars wrote:
On 2014-7-28, at 15:28, Eric Rescorla <[email protected]> wrote:

On Mon, Jul 28, 2014 at 6:08 AM, Derek Fawcus 
<[email protected]> wrote:
Yes.  At least the RST flag.

Unfortunately RST is precisely the situation that's most problematic,
because it's also how the other side behaves when it has lost state,
perhaps due to a reboot.

+1

Protecting the RST is therefore probably impossible.

I disagree. There are at least two viable approaches:

1) require TCP keepalive and block unprotected RSTs
        this is TCP-AO's approach

2) block unprotected RSTs *unless* the connection is active
        i.e., any correct TCP packet resets a short timer,
        so that the connection allows RSTs only when the
        timer expires

FWIW, that timer can be a few seconds - i.e., the time it would take for a reboot.

#1 requires idle connections to be active and blocks all unprotected RSTs, but cuts a connection (and cleans up state) whenever a connection goes completely cold

#2 allows connections to go cold, but makes them susceptible to middlebox RSTs during that time

I think #1 makes more sense for things like BGP and #2 is more useful in the common case, but an implementation can easily allow #2 as the default and #1 to be a configuration option.

Joe

_______________________________________________
Tcpinc mailing list
[email protected]
https://www.ietf.org/mailman/listinfo/tcpinc

Reply via email to