在Linux上通过USB进行TCP / IP的最佳方法


10

我想在两个具有几个USB 2.0端口作为唯一连接选项的Linux机器之间建立TCP / IP链接。由于主机端口和从端口都可用,因此我可以通过简单的USB电缆连接它们。通过该电缆转发TCP / IP的可能性有哪些,我应该使用哪一种来实现最大带宽?

到目前为止,我已经尝试过ADB(Android调试桥)转发,但是吞吐量很低-仅30-40Mbps。我认为使用专门的驱动程序至少可以达到150-200Mbps的速度-USB硬盘驱动器偶尔会以理论上可用的480个中的240-280Mbps的速度移动文件。


1
您可以获得两张USB网卡(您可以得到千兆位的网卡,但它们不能全速运行),仅使用普通的网络堆栈即可。
马克·亨德森

它们花费更多,并增加了额外的开销。
jons34yp

1
好吧,您没有在预算问题中提及任何内容,它们可能会增加开销,但它将比40Mbps更快。
马克·亨德森

您是什么意思主端口和从端口都可用?PC仅具有主端口。
psusi

1
@MarkHenderson- “获得两个USB网络卡” -当它不再是裸露的PCB(印刷电路板)时,它(正确)称为“卡”。装好后,它就是模块或适配器。否则,我同意,一对USB到以太网适配器是最简单(也许是“最好”)的解决方案。除非“最佳”仅表示“最快”。
木屑

Answers:


11

USB上的以太网驱动程序已包含在Linux中。相关的主机大小驱动程序是CDC_ETHER和RNDIS。它们的从属大小对应对象(实际上是在软件中模拟USB以太网桥)是USB_ETH,USB_ETH_RNDIS。USB_G_ANDROID还支持RNDIS协议,在我的情况下,这很有用,因为有问题的设备使用Android内核,因此默认情况下启用了驱动程序。

使用USB_G_ANDROID驱动程序测得的USB桥接器带宽,从主机到从机约为130Mbps,反之则约为90Mbps。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.