Quiero establecer un enlace TCP / IP entre dos máquinas Linux que tienen varios puertos USB 2.0 como las únicas opciones de conexión. Dado que los puertos host y esclavo están disponibles, puedo conectarlos a través de un simple cable USB. ¿Cuáles son las posibilidades de reenviar TCP / IP a través de ese cable y cuál debo usar para lograr el mayor ancho de banda?
Hasta ahora he intentado el reenvío ADB (Android Debug Bridge), pero el rendimiento es pobre, solo 30-40Mbps. Creo que debería ser posible alcanzar al menos 150-200Mbps usando un controlador especializado: los discos duros USB ocasionalmente mueven archivos a 240-280Mbps de los 480 disponibles teóricamente.
linux
usb
tcp
forwarding
jons34yp
fuente
fuente
Respuestas:
Los controladores Ethernet sobre USB están incluidos en Linux. Los controladores de tamaño de host relevantes son CDC_ETHER y RNDIS. Sus contrapartes de tamaño esclavo (que esencialmente emulan un puente USB-Ethernet en el software) son USB_ETH, USB_ETH_RNDIS. USB_G_ANDROID también es compatible con el protocolo RNDIS, lo cual es excelente en mi caso, ya que los dispositivos en cuestión usan el núcleo de Android, por lo que el controlador está habilitado de forma predeterminada.
El ancho de banda medido del puente USB que usa el controlador USB_G_ANDROID es ~ 130Mbps de host a esclavo y ~ 90Mbps al revés.
fuente