I am trying to understand the rationale behind such a design. I skimmed through a few RFCs but did not find anything obvious.
views:
110answers:
2
+2
A:
It's not particularly subtle - it's so that the SYN and FIN bits themselves can be acknowledged (and therefore re-sent if they're lost).
For example, if the connection is closed without sending any more data, then if the FIN did not consume a sequence number the closing end couldn't tell the difference between an ACK for the FIN, and an ACK for the data that was sent prior to the FIN.
caf
2010-02-28 23:07:48
A:
SYNs and FINs require acknowledgement, thus they increment the stream's sequence number by one when used.
jdizzle
2010-03-08 04:02:16