2.2.4 Frame Format, ACK Frame

Acknowledgment (ACK) frames specify which data frames have successfully arrived at the receiving end of the link.


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

flags

messageid

sequence

serial

bytes received

local tick count

flags (1 byte): A bitmask that contains values from the following table that are combined using the bitwise OR operation.

Note For a description of how these flags determine the frame type, see section 2.

Value

Meaning

0x80

(EXT or EXTENSION) This value MUST be set to 0.

0x40

(BIG) Indicates that big frame format is used. This value MUST be 0 because the big frame format was never implemented.

0x20

(CMD or COMMAND) Indicates that this is a Data Frame. This bit MUST be set for Data Frames. If the EXT bit is also set, the packet MUST be ignored.

0x10

(STA or START) Indicates the start of a message that can span multiple protocol frames.

0x08

(EOM or END OF MESSAGE) Indicates the end of a message that can span multiple protocol frames.

0x04

(SAK or SEND ACKNOWLEDGE) Specifies a request for immediate acknowledgment after this frame is received.

0x02

(ACK or ACKNOWLEDGE) Acknowledges receipt of some frames; might specify the nonreceipt of frames if the extended flags are present.

0x01

(RLY or RELIABLE, ~UNRELIABLE) Indicates that the message is reliable if set and unreliable if not set.

messageid (1 byte): The messageid from the sent data frame.

sequence (1 byte): The sequence ID from the sent data frame. The sequence uniquely identifies which is the last successfully received frame. Acknowledgment of a particular sequence also acknowledges receipt of all prior unacknowledged sequence numbers.

serial (1 byte): The number of times this packet has been sent. If the serial number is 0, this is the first instance of the packet. If the serial number is 1, this is the first retry of this packet.

bytes received (4 bytes): Specifies the total number of bytes received on the link at the time this ACK frame was sent.

local tick count (4 bytes): Specifies the tick count on the local tick clock when the ACK frame was sent.