A FIN is a TCP control flag in the header, not payload data.

highlighted = computed this step

FIN is a TCP flag

The client is done sending data, so it sends a TCP segment with the FIN flag set. The sequence number on that FIN is 1003.

FIN seq=1003\text{FIN seq}=1003
FIN is a flagThe toy TCP FIN segment is decoded from exact header bytes.FIN header160 bits / 20 bytes0x9c4001bb000003eb000013895011100000000000byte 0byte 1byte 2byte 310011100010000000000000110111011byte 4byte 5byte 6byte 700000000000000000000001111101011byte 8byte 9byte 10byte 1100000000000000000001001110001001byte 12byte 13byte 14byte 1501010000000100010001000000000000byte 16byte 17byte 18byte 1900000000000000000000000000000000source-port40000destination-port443sequence-number1003acknowledgment-number5001data-offset5reserved0x0flags0x11window0x1000checksum0x0000urgent-pointer0

Read the flags field

The toy header's flags byte is 0x11. In this book that means ACK plus FIN.

flags=0x11\text{flags}=0x11
FIN is a flagThe toy TCP FIN segment is decoded from exact header bytes.FIN header160 bits / 20 bytes0x9c4001bb000003eb000013895011100000000000byte 0byte 1byte 2byte 310011100010000000000000110111011byte 4byte 5byte 6byte 700000000000000000000001111101011byte 8byte 9byte 10byte 1100000000000000000001001110001001byte 12byte 13byte 14byte 1501010000000100010001000000000000byte 16byte 17byte 18byte 1900000000000000000000000000000000source-port40000destination-port443sequence-number1003acknowledgment-number5001data-offset5reserved0x0flags0x11window0x1000checksum0x0000urgent-pointer0

FIN is not payload data

No payload bytes are carried here. FIN is a control flag in the header.

payload bytes=0\text{payload bytes}=0
FIN is a flagThe toy TCP FIN segment is decoded from exact header bytes.FIN header160 bits / 20 bytes0x9c4001bb000003eb000013895011100000000000byte 0byte 1byte 2byte 310011100010000000000000110111011byte 4byte 5byte 6byte 700000000000000000000001111101011byte 8byte 9byte 10byte 1100000000000000000001001110001001byte 12byte 13byte 14byte 1501010000000100010001000000000000byte 16byte 17byte 18byte 1900000000000000000000000000000000source-port40000destination-port443sequence-number1003acknowledgment-number5001data-offset5reserved0x0flags0x11window0x1000checksum0x0000urgent-pointer0

Summary

FIN is a header flag, not a data byte, but it still has a sequence number.

FIN seq=1003\text{FIN seq}=1003
FIN is a flagThe toy TCP FIN segment is decoded from exact header bytes.FIN header160 bits / 20 bytes0x9c4001bb000003eb000013895011100000000000byte 0byte 1byte 2byte 310011100010000000000000110111011byte 4byte 5byte 6byte 700000000000000000000001111101011byte 8byte 9byte 10byte 1100000000000000000001001110001001byte 12byte 13byte 14byte 1501010000000100010001000000000000byte 16byte 17byte 18byte 1900000000000000000000000000000000source-port40000destination-port443sequence-number1003acknowledgment-number5001data-offset5reserved0x0flags0x11window0x1000checksum0x0000urgent-pointer0