理论上两台电脑用网线直连,设置同网段不同的两个 IP 之后就可以通信了。但是我将树莓派4B 和 PC 连接之后却被丢包问题困扰了很久。
问题描述
表现为 PC 开机时 ping 树莓派会丢包,尝试禁用再启用对应的网络适配器之后一般能恢复正常,有时候需要重启网络适配器很多次才能解决。
1 2 3 4 5 6 7 8 |
来自 10.0.0.2 的回复: 字节=32 时间<1ms TTL=64 来自 10.0.0.2 的回复: 字节=32 时间<1ms TTL=64 来自 10.0.0.2 的回复: 字节=32 时间<1ms TTL=64 请求超时。 请求超时。 请求超时。 来自 10.0.0.2 的回复: 字节=32 时间<1ms TTL=64 请求超时。 |
我的需求是在树莓派和 PC 之间建立千兆网络,因为路由器是百兆 LAN 口且只有一个 LAN 口,又没钱换新的,于是就需要用网线把 PC 和树莓派连接起来。由于 PC 只有一个网口,已经用来连接路由器了,就用了一个 USB 扩展的网口和树莓派互联,型号是 Realtek USB GbE Family Controller。
解决方案
之前一直忍受着每次开机时手动重启网络适配器,今天决心解决这个问题,然而 Google 依然很难找到相关问题。有一些类似的问题,但是都是连路由器的 LAN 口的丢包问题。然后计划使用 bat 脚本来重启网络适配器,一直失败。最后才想到是不是 USB 网卡硬件的问题或者驱动的问题,于是开始调网卡的高级配置参数。
![](https://www.annhe.net/wp-content/uploads/2020/06/image-2.png)
将节能省电相关的一个个关掉测试,最终发现是 节能乙太网路 这一项能复现问题,只要开着,就可能丢包,关掉就好了。
节能乙太网路
英文应当是 Energy Efficient Ethernet
,又译做 高能效以太网。
高能效以太网(英语:Energy-Efficient Ethernet,简称EEE)是一套对双绞线与计算机网络标准之以太网家族的背板的增强,使其在低数据活动期间消耗较少的功率。其目标是将功耗降低50%以上,同时保持与现有设备的完全兼容。[1]电气电子工程师学会(IEEE)通过IEEE 802.3az工作组开发了该标准。第一个研究组于2006年11月展开呼吁,并在2007年5月授权为官方标准工作组。[2]IEEE于2010年9月批准了最终标准。[3]一些公司在其被标准化前就引进了该技术以降低以太网的所需能耗,并采用绿色以太网(Green Ethernet)为名。
它的功率降低以几种方式实现。在100 Mbit/s、1吉比特和10 Gbit/s速度的数据链路中,物理层发送器会始终使用能量。在没有数据发送时,它们可以进入“睡眠”模式以节约能源。[5]当控制器软件或固件确定不需要发送数据时,它可以发出一条“低功耗闲置”(LPI)请求到以太网控制器的物理层PHY。PHY然后将LPI信号在特定时间发送到链路上,以及禁用发送器。信号刷新将周期性地发送以维持链路信令的完整性。当需要发送数据时,将在预定时间段发送IDLE信号。数据链路可以被视为始终在运行,因为即使发送路径处在睡眠模式,接收信号的电路仍保持活跃。
维基百科
Linux 使用 ethtool 查看 高能效以太网 设置情况:
1 2 3 4 5 6 7 8 9 |
root@ubuntu:~# ethtool --show-eee eth0 EEE Settings for eth0: EEE status: enabled - inactive Tx LPI: disabled Supported EEE link modes: 100baseT/Full 1000baseT/Full Advertised EEE link modes: 100baseT/Full 1000baseT/Full Link partner advertised EEE link modes: Not reported |
(全文完)
发表回复