The tcp protocol actions on arriving segment vary. The set of choices includes:
- silently drop segment
- kill connection (i.e. enter CLOSED)
- send reset (and maybe kill connection)
- send dup/null ack
Some decisions are obvious, some aren't. The ones embarrassing me now are actions for SYN-RECEIVED state if arriving segment has
- invalid ACK (page 72 of rfc793, step 5) or
- invalid security (page 71 of rfc793, step 3)
In both cases the action is merely `send reset'.
Do we really expect that our party will correct it's mistake and send new, valid segment? No. Then, we merely send a reset to achieve what? Why not
- kill connection or
- retransmit syn-ack
like synchronized states do for such segments?