На уровне шины USB размеры пакетов ограничены спецификациями USB - ограничения для USB 2.0:
- для групповой передачи - 512 байт для высокоскоростных конечных точек, 8, 16, 32 или 64 байта для высокоскоростных конечных точек (а низкоскоростные объемные конечные точки вообще не допускаются);
- для передачи прерываний - до 1024 байтов для высокоскоростной, до 64 байтов для полной скорости, до 8 байтов для низкой скорости;
- для изохронных передач - до 1024 байтов для высокоскоростных, до 1023 байтов для полноскоростных (и низкоскоростные снова не разрешены).
Однако ограничения для read () и write () могут отличаться из-за буферизации, выполняемой драйверами ядра; например, при использовании usbfs с текущими версиями Linux, до 16384 байтов может быть передано одним системным вызовом.