2.2.3 ACK Packet

The ACK packet updates the peer by changing the peer's send window size when several consecutive unanswered DATA packets are received. For example, with a send window size of 4 (the value of the WNDW field of the sender's last received packet is equal to 0x00000004, and the value of the SEQNUM field of the sender's next sent packet will be equal to 0x00000001), if the sender has 5 packets to pass to the receiver for a single request, then after 4 packets the sender will wait until it receives an ACK packet with an updated value for the WNDW field before it can transmit additional packets. After the receiver has processed at least one of the packets, the receiver can send the sender an ACK packet containing an updated WNDW field value, which allows the sender to send the final packet and complete the request.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

SMID

FLAGS

SID

LENGTH

SEQNUM

WNDW

SMID (1 byte): See section 2.2.1 for a description of the SMID field.

FLAGS (1 byte): This unsigned integer contains control flags that identify this packet as an ACK packet. The value of the FLAGS field value MUST be 0x02.

SID (2 bytes): See section 2.2.1 for a description of the SID field. This MUST be the value that was set in the SYN packet (when the session was opened).

LENGTH (4 bytes): See section 2.2.1 for a description of the LENGTH field. The value of this field MUST be 0x00000010.

SEQNUM (4 bytes): See section 2.2.1 for a description of the SEQNUM field.

WNDW (4 bytes): See section 2.2.1 for a description of the WNDW field.