Il modo migliore per eseguire TCP / IP su USB su Linux


10

Voglio stabilire un collegamento TCP / IP tra due macchine Linux che hanno diverse porte USB 2.0 come uniche opzioni di connessione. Poiché sono disponibili entrambe le porte host e slave, posso collegarle tramite un semplice cavo USB. Quali sono le possibilità di inoltrare TCP / IP su quel cavo e quale dovrei usare per ottenere la massima larghezza di banda?

Finora ho provato l'inoltro ADB (Android Debug Bridge), ma il throughput è scarso - solo 30-40 Mbps. Penso che dovrebbe essere possibile raggiungere almeno 150-200 Mbps usando un driver specializzato - i dischi rigidi USB spostano occasionalmente file a 240-280 Mbps su 480 teoricamente disponibili.


1
Potresti ottenere due schede di rete USB (puoi ottenere quelle gigabit, ma non raggiungeranno il massimo alla loro massima velocità) e utilizzare semplicemente il normale stack di rete ..?
Mark Henderson,

Costano di più e aggiungono costi aggiuntivi.
jons34yp,

1
Bene, non hai menzionato nulla nella tua domanda sui requisiti di budget e potrebbero essere generali ma sarà più veloce di 40 Mbps.
Mark Henderson,

Cosa intendi dire che sono disponibili sia porte master che slave? I PC hanno solo porte master.
psusi

1
@MarkHenderson - "ottieni due schede di rete USB" - non è (correttamente) chiamato "scheda" quando non è più un PCB nudo (circuito stampato). Quando è racchiuso, allora è un modulo o un adattatore. Altrimenti concordo, un paio di adattatori da USB a Ethernet è la soluzione più semplice (e forse la "migliore"). A meno che "migliore" non significhi solo "più veloce".
segatura

Risposte:


11

I driver Ethernet su USB sono inclusi in Linux. I driver di dimensioni host rilevanti sono CDC_ETHER e RNDIS. Le loro controparti di dimensioni slave (che essenzialmente emulano un bridge USB-Ethernet nel software) sono USB_ETH, USB_ETH_RNDIS. USB_G_ANDROID supporta anche il protocollo RNDIS, il che è ottimo nel mio caso, poiché i dispositivi in ​​questione utilizzano il kernel Android, quindi il driver è abilitato per impostazione predefinita.

La larghezza di banda misurata del bridge USB utilizzando il driver USB_G_ANDROID è ~ 130 Mbps dall'host allo slave e ~ 90 Mbps al contrario.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.