Прежде, чем устройство передает TLP (DLL) на физический уровень, оно сохраняет копию пакета TLP(DLL) в буфере повторной передачи (Retry buffer). Каждая запись в буфере сохраняет законченный TLP(DLL) со всеми его полями, включая заголовок (Header, до 16 байтов), возможно, данные(Data Payload, до 4 КБайт) и ECRC (до четырех байтов), Sequence of Number (12 битов) и поле LCRC (четыре байта). Буфер должен быть достаточно большим, чтобы сохранить переданные пакеты TLP(DLL), передача которых еще не подтверждена с помощью пакетов ACK DLLP.
Когда передатчик получает через свой приемник пакет ACK DLLP от устройства Б, он удаляет из буфера повторной передачи пакеты TLP(DLL) с последовательностным номером, равным или более ранним, чем последовательностный номер, принятого пакета ACK DLLP. Один пакет ACK DLLP, возвращенный устройством Б может быть использован, для подтверждения приема устройством Б нескольких пакетов TLP(DLL). Вовсе не обязательно, чтобы каждый отправленный пакет TLP(DLL) подтверждался соответсвующим пакетом ACK DLLP. Приемник устройства Б принимает и буферизирует несколько пакетов TLP(DLL) и затем подтверждает их одним квитанционным пакетом ACK DLLP, который соответствует последнему принятому правильно пакету TLP(DLL).
Когда приемник устройства А получает пакет NAK DLLP, он удаляет из буфера повторной передачи пакеты TLP(DLL) с последовательностными