Multiple Frame Support

Networking over USB protocols can support network frame aggregation. This allows for multiple network frames to be transferred in a single Bulk Data transfer.

USB Bulk Data transfers have overheads. Both at the bus level where individual transfers must be terminated with a short data packet. And at the OS level where the USB controller drivers must setup and tear down each transfer. And finally in the communication between the protocol driver (class driver on host systems and matching function driver on devices) and the low level controller drivers. These add latency to the time it takes for each transfer to take place.

Aggregating multiple network frames into a single Bulk Data transfer allows the overheads and associated latencies to be absorbed across multiple network frames.

Care must be taken in the use of this feature though. Additional latency is induced as the entire Bulk Transfer must be received before any of the network frames it contains can be forwarded. This places a bound on effective number of frames that should be aggregated. The actual number is best determined by using simple heuristics at runtime to ensure that the use of available bandwidth is optimized with only minimal latency added.

Effective multi-frame support can provide close to 100% improvement in throughput.