La meilleure façon de faire TCP / IP sur USB sous Linux

10

Je veux établir une liaison TCP / IP entre deux machines Linux qui ont plusieurs ports USB 2.0 comme seules options de connexion. Étant donné que les ports hôte et esclave sont disponibles, je peux les connecter via un simple câble USB. Quelles sont les possibilités de transmettre TCP / IP sur ce câble et laquelle dois-je utiliser pour obtenir la bande passante la plus élevée?

Jusqu'à présent, j'ai essayé le transfert ADB (Android Debug Bridge), mais le débit est médiocre - seulement 30 à 40 Mbps. Je pense qu'il devrait être possible d'atteindre au moins 150-200 Mbps en utilisant un pilote spécialisé - les disques durs USB déplacent parfois des fichiers à 240-280 Mbps sur les 480 théoriquement disponibles.

jons34yp
la source
1
Vous pouvez obtenir deux cartes réseau USB (vous pouvez obtenir des gigabits, mais elles ne fonctionneront pas à leur pleine vitesse) et utiliser simplement la pile réseau normale ..?
Mark Henderson
Ils coûtent plus cher et ajoutent des frais généraux supplémentaires.
jons34yp
1
Eh bien, vous n'avez rien mentionné dans votre question sur les exigences budgétaires, et ils pourraient être des frais généraux, mais cela va être plus rapide que 40 Mbps.
Mark Henderson
Que voulez-vous dire que les ports maître et esclave sont disponibles? Les PC n'ont que des ports maîtres.
psusi
1
@MarkHenderson - "obtenez deux cartes réseau USB" - ce n'est pas (correctement) appelé une "carte" quand ce n'est plus un PCB nu (carte de circuit imprimé). Lorsqu'il est enfermé, c'est un module ou un adaptateur. Sinon, je suis d'accord, une paire d'adaptateurs USB vers Ethernet est la solution la plus simple (et peut-être la "meilleure"). À moins que «meilleur» ne signifie que «plus rapide».
sciure de bois

Réponses:

11

Les pilotes Ethernet sur USB sont inclus dans Linux. Les pilotes de taille d'hôte appropriés sont CDC_ETHER et RNDIS. Leurs homologues de taille esclave (qui émulent essentiellement un pont USB-Ethernet dans le logiciel) sont USB_ETH, USB_ETH_RNDIS. USB_G_ANDROID prend également en charge le protocole RNDIS, ce qui est génial dans mon cas, car les appareils en question utilisent le noyau Android, donc le pilote est activé par défaut.

La bande passante mesurée du pont USB à l'aide du pilote USB_G_ANDROID est d'environ 130 Mbps de l'hôte à l'esclave et de 90 Mbps dans l'autre sens.

jons34yp
la source