文章来源:USB 3.0至2.5Gbps以太网适配器的评测 — CNX SOFTWARE中文站—嵌入式开发者的知识库!
备注1:SAMBA是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。
备注2:scp是secure copy的简写,用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。
备注3:Nautilus在 Linux中提供标签支持,你可以通过多个标签来浏览你硬盘中的文件,支持书签,并在左边的“位置(places)”中列出你的硬盘上的分区(可以通过点击分区后的 三角型的图标卸载)、主文件夹、桌面。支持回收站里的文件还原,在浏览方式中支持“紧凑视图”等等。
上个月末,我收到了专门用于测试 2.5GbE 和 WiFi 6 的硬件Radxa E25 SBC、小米 AX6000 WiFi 6 路由器,以及 8 端口 TP-Link 2.5GbE 交换机。一开始我是打算使用 UP Xtreme i11 迷你 PC 和 Radxa E25 SBC 测试 2.5GbE 网络的,但为了以防万一我就打算购买一个 USB 3.0 到 2.5Gbps 的以太网适配器以备测试的不时之需。
于是,我就以不到15美元(大约475 泰铢,我是在泰国买的)的价格,在Lazada 上价格购买了一个不知名的以太网适配器。当然,你们也可以在全球速卖通上购买一个外观完全相同的 USB 3.0 适配器,一般都是带有 USB Type-A 端口或 USB Type-C 端口的。 因为在测评时,Radxa E25出现了一些问题(无法启动),所以我最终还是用 UP Xtreme i11 迷你PC测试了该以太网适配器。
USB 3.0到2.5Gbps以太网适配器的开箱

USB到LAN 2.5Gbps以太网适配器
包装上写有“USB到LAN 2.5Gbps以太网适配器”,但同时上面标有“USB 3.0”和“2.5 Gbps”,这是正确的,因为我就是这么订购的。

USB到LAN 2.5千兆以太网适配器
对了,该适配器附带了一张驱动程序光盘,但我没有使用它,因为我将适配器连接到运行Ubuntu 20.04的笔记本电脑上了。
2.5GbE USB适配器拆解:内部RTL8156B
我在拆开之前已经先做了所有的测试,但我们还是一起看看内部的照片,看看里面到底有什么?

RTL8156B适配器
该适配器基于Realtek RTL8156B ,主要用于“USB 3.0 应用的 10/100/1000M/2.5G 以太网控制器”和一个超薄的RJ45 插孔(也是用于 USB 以太网适配器)。

2.5GbE USB 3.0适配器
XHT156B v2.0 板的背面有 8 个引脚的空位置,Realtek 关于芯片的描述是这样的:“RTL8156B(S) 具有嵌入式一次性可编程 (OTP) 存储器,可以替代外部的EEPROM (93C46/93C56/93C66)”。所以这应该是外部 EEPROM 占位了位置,例如93C46 EEPROM就有多种 8 引脚封装可供选择。
Ubuntu 20.04中的信息
我第一次将适配器插入笔记本电脑的 USB 3.0 端口时,我感觉它是有一些问题的,因为刚开始我在 dmesg 中找不到任何新的 USB 消息。结果后来我发现只是有一些延迟,因为 Realtek USB LAN 设备最终还是出现 lsusb 了,如下所示:

前往“CNX Software中文站”官网,查看完整信息
我似乎应该是注意到了一些警告/错误,在 /var/log/syslog 中:

前往“CNX Software中文站”官网,查看完整信息
但是,当我将 USB 适配器连接到交换机并使用 inxi 检查信息时,链接就已经打开了:

前往“CNX Software中文站”官网,查看完整信息
那是一个 2500 Mbps 的链路,但只是半双工的,所以我将跳过通常使用的 iperf 进行全双工测试。
使用 dmesg 返回内核日志:

前往“CNX Software中文站”官网,查看完整信息
附带说明一下,我是使用小米 AX6000 作为 DHCP 服务器的。不过,因为我当前位置没有有线互联网,只能通过没有 RJ45 端口的4G LTE WiFi 调制解调器),所以我就必须要勾选“Use this connection only for resources on its network”,以防止我的笔记本电脑从 USB LAN 端口访问网络。

此连接仅用于其网络上的资源
使用UP Xtreme i11进行2.5GbE测试
连接好所有东西后,我们可以通过检查 TP-Link 开关上的 LED 来轻松检查所有接口是否使用了 2500 Mbps 链路。

TP Link 2.5GbE LED
如上所示,当左侧 LED 为绿色时,就代表我们有一个 2500 Mbps 的链路。如果右侧 LED 为绿色,那么就说明是 1000 Mbps,橙色则表示较低的速度 (100M/10M)。这三个连接的速度是 2500 Mbps。这些情况都表现得很好!
由于只有在连接互联网的情况下,才能访问小米AX6000路由器的界面和移动应用程序,所以我不得不寻找另一种方法来列出局域网中的主机。我在终端窗口中还使用了 nmap:

前往“CNX Software中文站”官网,查看完整信息
如上所示,192.168.31.1是路由器、192.168.31.166是我的笔记本,所以192.168.31.12那么应该就是UP Xtreme i11 迷你PC了。
迷你PC也能运行 Ubuntu 20.04,所以我们也可以比较一下 inxi 的输出:

前往“CNX Software中文站”官网,查看完整信息
enp44s0 接口使用的是 2500 Mbps 全双工链路。接下来我们运行 iperf 来测试从笔记本电脑“上传”到迷你PC的速度:

前往“CNX Software中文站”官网,查看完整信息

usb3 2.5gbe适配器的上传速度
平均 2.35 Gbps、一些峰值接近 2.46 Gbps,这是快速的链路。
接下来,我们从迷你 PC 切换到笔记本电脑的“*载下**”。

前往“CNX Software中文站”官网,查看完整信息

usb 3.0 2.5gbe适配器的*载下**速度
现在*载下**速度只有不到600 Mbps,这其实还挺令人失望的。这比我们对千兆以太网的预期还要糟糕。
我再试一次,但这次我使用的是 iperf3 上传:

前往“CNX Software中文站”官网,查看完整信息
和 iperf3 *载下**:

前往“CNX Software中文站”官网,查看完整信息
因为不管我们用的是iperf2还是iperf3,结果都是一样的。
现在我将笔记本电脑的千兆以太网端口连接到 Xtreme i11 的 2.5 GbE 端口来进行进一步的调查。并进行 iperf3 *载下**(迷你 PC 到笔记本电脑):

前往“CNX Software中文站”官网,查看完整信息
942 Mbps 这正是我期望的速度,因此剩下的问题似乎就与 USB 以太网适配器有关了。但我还是想进一步证实一下这点,所以我通过将 USB 3.0 2.5GbE 适配器连接到 UP Xtreme i11 迷你 PC 的千兆以太网端口来进行反转测试:

前往“CNX Software中文站”官网,查看完整信息
826 Mbps!这个结果还挺有趣的,虽然不算完美,但比起 2.5Gbe 到 2.5GbE 的连接来说已经很快了。
不过,iperf 并不完全代表标准用例。因此,我将带有 480GB SSD 的 MINIX NEO Storage Plus USB-C 扩展坞连接到了 UP Xtreme 迷你PC 的 USB-C“Thunderbolt”端口,并创建了 SAMBA 共享,这样我就可以将大文件复制到 SSD 或从 SSD通过 2.5GbE 网络将大文件复制到笔记本电脑和迷你 PC 上。

SAMBA 2.5GbE笔记本电脑传输数据到迷你电脑的情况
从笔记本电脑到迷你 PC 的传输速度大约是 750 Mbps。

SAMBA 2.5GbE迷你PC到笔记本电脑
迷你 PC 到笔记本电脑的“*载下**”传输速度也非常慢,低于 500 Mbps,所以最终导致了“software connection abort”仅从 11.2 GB 文件中传输了 7.8 GB。
其实,一直以来SAMBA都是在广泛使用的,但可能并不是数据传输的最快方式。接下来,我切换到 scp 并将相同的文件从笔记本电脑传输到迷你 PC 上。

SCP 2.5GbE笔记本电脑传输到迷你电脑的情况

前往“CNX Software中文站”官网,查看完整信息
这样更快了一些,11.2GB 的传输时间是 98 秒或者说平均大约 117 MB/s (963 Mbps)。
接着我们删除源上的文件,然后将其从迷你 PC 复制回笔记本电脑上试试看。

SCP 2.5GbE微型PC传输数据到笔记本电脑

前往“CNX Software中文站”官网,查看完整信息
这样的操作之后传输似乎稍慢了一点,但平均速度大约是 108.2MB/s (865.6 Mbps) 并不差。不过,我不太确定为什么 scp 会显示文件大小是 10GB,因为它在 Nautilus 中是 11.2GB、从终端显示来看是11GB:

前往“CNX Software中文站”官网,查看完整信息
我之前其实期望会有更高的传输速度,但测试结果有点令人失望,但根据WirelessMoves上的博客文章来看,我们应该可以在SAMBA 和 scp上得到更好的测试结果。所以,如果我们想获得更高的速度,我们就可以使用更简单的 scp 加密并将数据发送到 /dev/null。接着,我们再通过将文件*载下**到笔记本电脑上的 /dev/null 来尝试一下:

前往“CNX Software中文站”官网,查看完整信息
测试结果更差了!这到底是发生了什么?我要尝试从笔记本电脑转移到迷你电脑上试试:

前往“CNX Software中文站”官网,查看完整信息
这次的情况就跟预期差不多了。但是当我们查看显示网络传输速度的实时图表时,还是会有很多变化。

2.5GbE的网络吞吐量
原本我是打算要用 Radxa E25 测试 USB 3.0 到 2.5 Gbps 以太网 USB 适配器,看看它表现如何的,也许有需要调整一些设置来提高性能。但现在我相信我应该不需要依赖这个用于测试的 USB 适配器了。
更多优质文章推荐:
1.树莓派RP2040通过PIO(可编程 I/O)获得一个额外的USB端口 - CNX Software中文站
2.Basler prB-IMX8MP嵌入式视觉处理套件,支持用于MIPI、GigE Vision和USB3 Vision相机的BCON - CNX Software中文站
3.利用树莓派Zero测试引脚、USB Gadget模式的USB附加板 - CNX Software中文站