Some More Examples
To demonstrate the reliable TLP delivery capability provided by the ACK/NAK Protocol, the following examples are provided.
Consider Figure 5-14 on page 245 which shows the ACK/NAK protocol for handling lost TLPs.
Device A transmits TLPs 4094, 4095, 0, 1, and 2.
Device B receives TLPs 4094, 4095, and 0, for which it returns ACK 0. These TLPs are forwarded to the Transaction Layer. NEXT_RCV_SEQ is incremented and the next value of NEXT_RCV_SEQ count is 1. Device B is ready to receive TLP 1.
Seeing ACK 0, Device A purges TLPs 4094, 4095, and 0 from its replay buffer.
TLP 1 is lost en route.
TLP 2 arrives instead. Upon performing a Sequence Number check, Device B realizes that TLP 2's Sequence Number is greater than NEXT_RCV_SEQ ...