Der beste Weg, um TCP / IP über USB unter Linux zu machen

10

Ich möchte eine TCP / IP-Verbindung zwischen zwei Linux-Computern herstellen, die als einzige Verbindungsoptionen mehrere USB 2.0-Anschlüsse haben. Da sowohl Host- als auch Slave-Ports verfügbar sind, kann ich sie über ein einfaches USB-Kabel anschließen. Welche Möglichkeiten gibt es, TCP / IP über dieses Kabel weiterzuleiten, und welche sollte ich verwenden, um die höchste Bandbreite zu erreichen?

Bisher habe ich versucht, ADB (Android Debug Bridge) weiterzuleiten, aber der Durchsatz ist schlecht - nur 30-40 Mbit / s. Ich denke, dass es möglich sein sollte, mit einem speziellen Treiber mindestens 150-200 Mbit / s zu erreichen - USB-Festplatten verschieben gelegentlich Dateien mit 240-280 Mbit / s von den theoretisch verfügbaren 480.

jons34yp
quelle
1
Sie könnten zwei USB-Netzwerkkarten bekommen (Sie können Gigabit-Karten bekommen, aber sie werden nicht mit ihrer vollen Geschwindigkeit maximal sein) und einfach den normalen Netzwerkstapel verwenden ..?
Mark Henderson
Sie kosten mehr und verursachen zusätzlichen Aufwand.
jons34yp
1
Nun, Sie haben in Ihrer Frage zu den Budgetanforderungen nichts erwähnt, und diese sind möglicherweise kostenintensiv, aber sie werden schneller als 40 Mbit / s sein.
Mark Henderson
Was bedeutet, dass sowohl Master- als auch Slave-Ports verfügbar sind? PCs haben nur Master-Ports.
Psusi
1
@MarkHenderson - " Holen Sie sich zwei USB-Netzwerkkarten" - Es wird nicht (korrekt) als "Karte" bezeichnet, wenn es sich nicht mehr um eine nackte Leiterplatte (Leiterplatte) handelt. Wenn es eingeschlossen ist, ist es ein Modul oder ein Adapter. Ansonsten stimme ich zu, dass ein Paar USB-zu-Ethernet-Adapter die einfachste (und vielleicht die "beste") Lösung ist. Es sei denn, "am besten" bedeutet nur "am schnellsten".
Sägemehl

Antworten:

11

Ethernet über USB-Treiber sind in Linux enthalten. Die relevanten Treiber für die Hostgröße sind CDC_ETHER und RNDIS. Ihre Gegenstücke in Slave-Größe (die im Wesentlichen eine USB-Ethernet-Brücke in Software emulieren) sind USB_ETH, USB_ETH_RNDIS. USB_G_ANDROID unterstützt auch das RNDIS-Protokoll, was in meinem Fall sehr gut ist, da die betreffenden Geräte den Android-Kernel verwenden, sodass der Treiber standardmäßig aktiviert ist.

Die gemessene Bandbreite der USB-Bridge mit dem USB_G_ANDROID-Treiber beträgt ~ 130 Mbit / s von Host zu Slave und ~ 90 Mbit / s umgekehrt.

jons34yp
quelle