The data segment carries the client sequence number and the server ACK number together.

highlighted = computed this step

The data message is first

The timeline shows the client sending a tiny data segment to the server.

messages so far=1\text{messages so far}=1
Client sends dataA toy TCP data timeline shows message order; exact ACK arithmetic is shown in the field strips.Client sends dataClientESTABLISHEDServerESTABLISHEDDATA hi seq=1001 ACK, PSH

Fields pin the same segment

The field strip shows the same segment with sequence 1001 and payload length 2.

seq=1001\text{seq}=1001
Data header fieldsThe toy TCP data segment is decoded from exact header and payload bytes.TCP header160 bits / 20 bytes0x9c4001bb000003e9000013895018100000000000byte 0byte 1byte 2byte 310011100010000000000000110111011byte 4byte 5byte 6byte 700000000000000000000001111101001byte 8byte 9byte 10byte 1100000000000000000001001110001001byte 12byte 13byte 14byte 1501010000000110000001000000000000byte 16byte 17byte 18byte 1900000000000000000000000000000000source-port40000destination-port443sequence-number1001acknowledgment-number5001data-offset5reserved0x0flags0x18window0x1000checksum0x0000urgent-pointer0Payload16 bits / 2 bytes0x6869byte 0byte 10110100001101001payload0x6869

It also carries the server count

The acknowledgment field in the data segment is 5001, meaning the client has already received through the server's previous byte.

data segment ack=5001\text{data segment ack}=5001
Data header fieldsThe toy TCP data segment is decoded from exact header and payload bytes.TCP header160 bits / 20 bytes0x9c4001bb000003e9000013895018100000000000byte 0byte 1byte 2byte 310011100010000000000000110111011byte 4byte 5byte 6byte 700000000000000000000001111101001byte 8byte 9byte 10byte 1100000000000000000001001110001001byte 12byte 13byte 14byte 1501010000000110000001000000000000byte 16byte 17byte 18byte 1900000000000000000000000000000000source-port40000destination-port443sequence-number1001acknowledgment-number5001data-offset5reserved0x0flags0x18window0x1000checksum0x0000urgent-pointer0Payload16 bits / 2 bytes0x6869byte 0byte 10110100001101001payload0x6869

Summary

A data segment has both a sequence field for its own bytes and an ACK field for the other side's bytes.

seq, ack=1001,5001\text{seq, ack}=1001,5001
Data header fieldsThe toy TCP data segment is decoded from exact header and payload bytes.TCP header160 bits / 20 bytes0x9c4001bb000003e9000013895018100000000000byte 0byte 1byte 2byte 310011100010000000000000110111011byte 4byte 5byte 6byte 700000000000000000000001111101001byte 8byte 9byte 10byte 1100000000000000000001001110001001byte 12byte 13byte 14byte 1501010000000110000001000000000000byte 16byte 17byte 18byte 1900000000000000000000000000000000source-port40000destination-port443sequence-number1001acknowledgment-number5001data-offset5reserved0x0flags0x18window0x1000checksum0x0000urgent-pointer0Payload16 bits / 2 bytes0x6869byte 0byte 10110100001101001payload0x6869