【树莓派笔记】网线直连电脑丢包问题

理论上两台电脑用网线直连,设置同网段不同的两个 IP 之后就可以通信了。但是我将树莓派4B 和 PC 连接之后却被丢包问题困扰了很久。

问题描述

表现为 PC 开机时 ping 树莓派会丢包,尝试禁用再启用对应的网络适配器之后一般能恢复正常,有时候需要重启网络适配器很多次才能解决。

来自 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 网卡硬件的问题或者驱动的问题,于是开始调网卡的高级配置参数。

网卡属性

将节能省电相关的一个个关掉测试,最终发现是 节能乙太网路 这一项能复现问题,只要开着,就可能丢包,关掉就好了。

节能乙太网路

英文应当是 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 查看 高能效以太网 设置情况:

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

(全文完)

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注