Data transfer
From EditThis.info
Transfer data
Isochronous transfer
Isochronous transfers provide guaranteed amounts of bandwidth and latency. They are used for streaming data that is time-critical and error-tolerant or for real-time applications that require a constant data transfer rate. For example, an Internet telephony application that carries a conversation in real time is a good candidate for isochronous transfer mode. Isochronous data requires guaranteed amounts of bandwidth and guaranteed maximum transmission times. For isochronous transfers, timely data delivery is much more important than perfectly accurate or complete data transfer.
Isochronous can transfer in uni-directional or bi-directional.
A good example of this transfer type is 64kbps Pulse Code Modulation voice data. The voice data requires a constant rate and can tolerate errors (typically up to a bit error rate of 1 x 10-3)
The maximum packet size for isochronous transfer is 1023 byte per USB frame of 1ms. This implies that the maximum transfer achievable using isochronous transfer is 8.184 Mbps.
Bulk transfer
Bulk transfers are for devices that have large amounts of data to transmit or receive and that require guaranteed delivery, but do not have any specific bandwidth or latency requirements. Printers and scanners fall into this category. Very slow or greatly delayed transfers can be acceptable for these types of device, as long as all of the data is delivered eventually. However, in the absence of any other demands for bus bandwidth, bulk transfers are processed as quickly as possible.
Interrupt transfer
Interrupt transfers are used mainly to poll devices to check if they have any interrupt data to transmit. The device's endpoint descriptor structure determines the rate of polling, which can range from 1 through 255 milliseconds. This type of transfer is typically used for devices that provide small amounts of data at sporadic, unpredictable times. Keyboards, joysticks, and mouse devices fall into this category. It is also used to signal the presence of data on other endpoints in the device.
Control transfer
Control transfers are bidirectional transfers that are used by the USB system software mainly to query, configure, and issue certain generic commands to USB devices. Control transfers typically take place between the host computer and the USB device's endpoint 0, but your control transfers might use other endpoints.
Each UBS device required to implement the endpoint pair 0 as control transfer endpoints. It is used to exchange information when the device is first attached to the host. UBS ensures that the control transfer is delivered without error. This is done using CRC error checking and re-transmission if error cannot be recovered.
A controlled transfer consists of 2 or 3 stages: a setup stage, data stage, there may or may not exit and status stage. In the setup stage, the host sends a request to the function. In the data stage, data transfer occurs in the direction as indicated in the setup stage, and in the status stage, the function returns a handshake to the host.
http://msdn.microsoft.com/en-us/library/ms894725.aspx

