Hi--

On Jun 19, 2009, at 1:15 PM, Harti Brandt wrote:
CS>See figure 12-- I think you should be sending a RST back....

I think this is too drastic. A segment is unacceptable only if it is
completly out of the window. Here part is in the window.

Well, perhaps you're right that it would be drastic.

I'll agree that the start of the segment falls within the window, at least if the window size is greater than 0. If you decide that the incoming segment is "possibly valid", then the conclusion that you should move to ESTABLISHED, accept and ACK the data which lies within the valid window, and drop/ignore the rest including the FIN seems to be a sensible consequence.

Moving to CLOSE_WAIT state is not appropriate until you actually accept and process the sequence # which includes that FIN.

Also conceptually TCP enters the ESTABLISHED state as soon as it finds that the ACK in the SYN,ACK is correct before it starts to process the data and the FIN (p.68 of RFC793 - first you enter ESTABLISHED and ACK, then you goto step 6). So
taking into account the explanation at top of page 70 (which logically
belongs to step 6) you just drop everything outside the window - part of
the data and the FIN in our case - and proceed.

Note, that the data in the SYN,ACK is always partly in the window because
this segment contains the IRS, except if the window is 0 and the
segment contains data or FIN.

If the window size is 0, only acks without any data are acceptable, but your test case seems to have a non-0 initial window size, so we don't need to belabor that point too much.

--
-Chuck
_______________________________________________
freebsd-net@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-net
To unsubscribe, send any mail to "freebsd-net-unsubscr...@freebsd.org"

Reply via email to