views:

110

answers:

2

I am trying to understand the rationale behind such a design. I skimmed through a few RFCs but did not find anything obvious.

+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
A: 

SYNs and FINs require acknowledgement, thus they increment the stream's sequence number by one when used.

jdizzle