No nie wiem - wygląda ze USB działa jak TCP:
USB Data ValidityUSB employs two error checking methods to ensure that data is sent correctly. A cyclic redundancy check (CRC) is sent with all data transmissions to validate data integrity within a packet. In addition, a toggle bit is encoded in the packet identifier (PID) of the data packet to ensure that packets are sent in the correct sequence. Correct data sequencing is especially important when attempting to transfer large files across multiple independent USB transmissions.
Normally when transferring data over multiple packets, the data PID will toggle between DATA0 and DATA1 on each consecutive successful transmission. Specifically, as data is successfully transmitted (i.e. CRC is valid), the receiver acknowledges (ACK) the data and both transmitter and receiver toggle their DATA bit. If there is a data error and the CRC check fails, however, the receiver will not reply with an ACK, and the transmitter is required to resend the data with the same toggle bit. The transmitter will continue to resend the same data with the same toggle bit until the receiver ACKs its reception.
In some cases, the data is sent correctly but the ACK handshake gets corrupted on the bus. When this occurs, the receiver thinks that the data was sent properly and updates its toggle bit, but the transmitter does not actually know if the data was received correctly. Therefore, the transmitter will send the same data with the same toggle bit. Since the toggle bit has not changed, the receiver assumes that this is a re-transmission of the same data, and silently ignores the data. The receiver will then ACK, causing the transmitter's toggle bit to update correctly.