ulidtko
ulidtko

Reputation: 15634

Do USB interrupt transfers guarantee order?

I've found in the fairly awesome book titled "USB in a NutShell" that interrupt transfers provide reliable delivery (via error detection and automatic retry).

But I wonder, does that guarantee that transfers will not be swapped in order someday? As far as the bus is serial, my guess is that yes, reordering should never occur. But I'm not really much into this, so having doubts.

Could somebody clarify?

Upvotes: 4

Views: 992

Answers (1)

Nils
Nils

Reputation: 5899

Interrupt packets are guaranteed to be delivered in order. In fact, ALL USB packets defined through USB 2.0 (bulk, isochr, interrupt, control, including split-transaction / etc) are delivered in-order.

There's no sequence numbering in the wire packets (beyond DATA0/DATA1 which is used to disambiguate lost packets), so each packet is retried on the wire until delivered successfully.

I haven't worked on USB 3.0 so it's possible something new has been created that's not in-order, but even if so, the existing ones will continue to remain in-order.

Upvotes: 3

Related Questions