TCP: Out of order RST handling

Learner Study learner.study at gmail.com
Thu Aug 9 01:48:13 UTC 2012


Greetings,

I've a question on out of order RSTs handling...

Assume a TCP session between node #1 and node #2 and there is some
data transfer happening in both directions. Assume there are some pkt
drops happening also in the direction of node #1 to node #2.

node #1 sends a RST but seq number of RST happens to be out of order.
Per the seq/last_ack/rcv_nxt checks in tcp_input.c, depending on if
the seqnum is in the window, the RST may be dropped. Assume, due to
various checks, RST is dropped.

TCP state machine of Node #2 doesn't know about this dropped RST and
would keep the session alive.

Node #1 sends another RST, which is dropped again inside node #2 due
to various OOO checks...and this keeps going on.

Such TCP sessions on node #2 stay for ever....node #1 won't reTx any
dropped pkts, so I'm not sure of the recovery from this state.

Could someone let me know how is node #2 supposed to recover. Due to
continuous RST traffic, Keepalive timer gets reset also...so that
won't kick-in also...

Thank You.


More information about the freebsd-net mailing list