No nível do barramento USB, os tamanhos dos pacotes são restritos pelas Especificações USB - as restrições para USB 2.0 são:
- para transferências em massa - 512 bytes para endpoints de alta velocidade, 8, 16, 32 ou 64 bytes para endpoints com velocidade total (e endpoints de baixa velocidade em massa não são permitidos);
- para transferências interrompidas - até 1024 bytes para alta velocidade, até 64 bytes para velocidade máxima, até 8 bytes para baixa velocidade;
- para transferências isócronas - até 1024 bytes para alta velocidade, até 1023 bytes para velocidade total (e baixa velocidade não é permitida novamente).
No entanto, as restrições para read () e write () podem ser diferentes devido ao buffer feito pelos drivers do kernel; por exemplo, ao usar o usbfs com versões atuais do Linux, até 16384 bytes podem ser transferidos com uma chamada do sistema.