I want to establish a TCP/IP link between two Linux machines that have several USB 2.0 ports as the only connection options. Since both host and slave ports are available, I can connect them via a simple USB cable. What are the possibilities to forward TCP/IP over that cable and which one should I use to achieve highest bandwidth?

So far I've tried ADB (Android Debug Bridge) forwarding, but the throughput is poor -- only 30-40Mbps. I think that it should be possible to achieve at least 150-200Mbps using a specialized driver -- USB hard drives occasionally move files at 240-280Mbps out of the 480 theoretically available.

5

1 Answer

Ethernet over USB drivers are included into Linux. The relevant host-size drivers are CDC_ETHER and RNDIS. Their slave-size counterparts (that essentially emulate an USB-Ethernet bridge in software) are USB_ETH, USB_ETH_RNDIS. USB_G_ANDROID also supports RNDIS protocol, which is great in my case, since the devices in question use Android kernel, so the driver is enabled by default.

The measured bandwidth of the USB bridge using the USB_G_ANDROID driver is ~130Mbps from host to slave and ~90Mbps the other way round.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy