Recent Linux Kernels have the usbmon facility that allows one to gather traffic information (USB tracedata) on USB buses. It's a very helpful tool for allowing one to do low level USB debugging and my colleague Stefan Bader has written up a very useful guide here on the Ubuntu Kernel Team Knowledge Base. The guide describes how to debug USB Storage devices, and drills down to looking at the bulk transport layer. All in all it's a handy guide to show one how to dig in to examining USB traffic and sure to be help when one has troublesome USB devices that sometimes need quirking or workarounds.
Other usbmon guides can be found at: