In the Figure 24.13 of Data Communications and Networking, 5/e the first ACK message from the server holds y-1
in it's Sequence no. field. Note that the first FIN message from the client message had y
in it's Acknowledgement no. field. So shouldn't the first ACK message from the server be holding y
in it's Sequence no. field instead of holding y-1
? Is the diagram faulty or is there a reason behind it?
1 Answer
The FIN
segment consumes 1 sequence number as it does not carry data. ACK
does not consume a sequence number. The FIN
segment is sent by the client process. The server process receives a FIN
segment but does not send a FIN
segment as the connection is not closed, since it is a half-close process. Server process send only an ACK
segment to acknowledge receipt of FIN
segment from the client. Hence, the sequence number decreases by 1 and becomes $y-1$.
Contrast this with the Three way handshaking, where the sequence number is $y$ because in that process, the server sends a ACK
segment as it acknowledges receipt of FIN
segment from the client and sends a FIN segment as it terminates the connection.