A melhor maneira de fazer TCP / IP sobre USB no Linux

10

Desejo estabelecer um link TCP / IP entre duas máquinas Linux que tenham várias portas USB 2.0 como as únicas opções de conexão. Como as portas host e escravo estão disponíveis, eu posso conectá-las através de um simples cabo USB. Quais são as possibilidades de encaminhar o TCP / IP por esse cabo e qual devo usar para obter a maior largura de banda?

Até agora, tentei o encaminhamento do ADB (Android Debug Bridge), mas a taxa de transferência é baixa - apenas 30-40Mbps. Eu acho que deveria ser possível atingir pelo menos 150-200Mbps usando um driver especializado - os discos rígidos USB ocasionalmente movem arquivos de 240-280Mbps dos 480 teoricamente disponíveis.

jons34yp
fonte
1
Você pode obter duas placas de rede USB (você pode obter placas de gigabit, mas elas não atingem o máximo de velocidade) e apenas usar a pilha de rede normal ..?
Mark Henderson
Eles custam mais e acrescentam custos adicionais.
jons34yp
1
Bem, você não mencionou nada na sua pergunta sobre requisitos de orçamento, e eles podem estar sobrecarregados, mas serão mais rápidos que 40 Mbps.
Mark Henderson
Como assim, as portas mestre e escravo estão disponíveis? PCs possuem apenas portas mestras.
Psusi
1
@ MarkHenderson - "obtenha duas placas de rede USB" - não é (corretamente) chamado de "placa" quando não é mais uma placa de circuito impresso nua. Quando está envolto, é um módulo ou um adaptador. Caso contrário, eu concordo, um par de adaptadores USB-Ethernet é a solução mais direta (e talvez a "melhor"). A menos que "melhor" signifique apenas "mais rápido".
Serragem

Respostas:

11

Os drivers Ethernet sobre USB estão incluídos no Linux. Os drivers de tamanho de host relevantes são CDC_ETHER e RNDIS. Seus colegas do tamanho de escravo (que emulam essencialmente uma ponte USB-Ethernet em software) são USB_ETH, USB_ETH_RNDIS. USB_G_ANDROID também suporta o protocolo RNDIS, o que é ótimo no meu caso, uma vez que os dispositivos em questão usam o kernel do Android, portanto o driver é ativado por padrão.

A largura de banda medida da ponte USB usando o driver USB_G_ANDROID é de ~ 130Mbps do host ao escravo e ~ 90Mbps ao contrário.

jons34yp
fonte