Skip to content

Problem with USBIP

yshui edited this page Nov 6, 2020 · 2 revisions

There's already a more general solution exists for device forwarding, USB/IP. However, there are several problems with USB/IP which has driven me to roll my own wheel.

  1. No graceful handling of disconnect. If the receiving end dropped, user have to bind/unbind the forwarded device at the sending end to regain the ability of using that device.
  2. USB/IP blocks suspension. User have to setup suspension hooks to attach/detach the device when suspending/resuming. This is error prone.
  3. Race conditions when attaching/detaching multiple devices at the same time.
  4. Exclusive. Device cannot be used when it's bound to USB/IP.
  5. No authentication/encryption. Anyone one the network can grab/eavesdrop on the USB device.
  6. Based on TCP. TCP is a poor fit for input devices, but because USB/IP has to support general USB devices, it has to use TCP to have the same level of data loss guarantee as USB.

Clone this wiki locally