从 10Mbps 到 92Mbps:记一次被物理层和特殊字符“Gank”的家庭网络优化
前言
最近在家办公(摸鱼)时,发现了一个极其诡异的现象:明明家里是百兆光纤,路由器就在离我房间 7米 远的地方,中间甚至没有实体墙(只有一个书柜),但我的网速却只有 10Mbps,有时候甚至还会断连。
起初我以为是运营商的锅,但作为一个 Developer,遇到问题第一反应当然是先 Debug。经过一番排查,发现这不仅是物理层的问题,还意外踩了一个关于“字符编码”的坑。
排查物理层:光猫是不是“寄”了?
本着“控制变量法”的原则,我先检查了源头——那台 ZTE 的光猫。
观察指示灯状态:
光信号:熄灭(正常,红灯闪烁才是光路断了)注册:常亮绿灯(正常,代表已连接 ISP)网口1:常亮(正常,路由器的链路是通的)
看起来光猫本身情绪稳定,并没有摆烂。既然进水口没问题,那瓶颈肯定在 路由器 -> 终端 这“最后7米”的无线传输上。
协议的瓶颈:Wi-Fi 4 的“幽灵”
回到房间,我打开手机查看 Wi-Fi 的详细连接信息,看到这一行时,我大概明白为什么会卡了:
- 连接速度:
144Mbps - 技术标准:
Wi-Fi 4 (802.11n)
144Mbps 这个数值非常眼熟,它是 2.4GHz 频段在 20MHz 频宽下的理论协商速率上限。
众所周知,Wi-Fi 是半双工通信,实际吞吐量通常只有协商速率的 50%-60%。算一下:144 * 0.5 = 72Mbps。这也解释了为什么我在路由器旁边测速能到 70Mbps,但一旦回到房间,经过 7 米距离和书柜的物理衰减,加上 2.4G 频段那感人的干扰,速度直接跌到 10Mbps 也就不足为奇了。
破局思路: 必须强制切换到 5GHz 频段 (Wi-Fi 5/6)。虽然 5G 穿墙弱,但在没有死角的情况下,它的高吞吐量才是王道。
踩坑:SSID 里的“特殊字符”
这台 TP-LINK 路由器默认开启了“多频合一”,导致设备总是优先连信号更强但速度更慢的 2.4G。于是我进入后台关闭了该功能,手动把 5G 频段分了出来。
为了彰显个性(二刺猿属性爆发),我顺手把 5G 的 Wi-Fi 名字改成了:
Ciallo_~(∠・ω< )_5G
结果灾难发生了:
手机能搜到这个 5G 信号,但点击连接后,一直在转圈显示“正在连接...”,既不报错,也不提示密码错误,最后自动回落到 2.4G。
排查了一圈,最后才反应过来——这可能是字符编码的问题。
路由器的底层 OS(大概率是魔改 Linux 或 VxWorks)和手机终端在处理 ≧、∇ 这种特殊数学符号时,编码可能不一致(比如 UTF-8 和 GBK 的冲突),导致在 WPA2 握手阶段密钥协商失败,从而陷入死循环。
这就好比我给前端传了个 JSON,结果 Key 里带了特殊字符导致解析炸了一样 ( ̄_ ̄|||)
最终解决 & 性能起飞
找到了 Root Cause,解决起来就很快了。遵循 KISS (Keep It Simple, Stupid) 原则,我含泪舍弃了颜文字,把 SSID 改回了朴实无华的纯英文,密码也暂时改成了纯数字。
重启路由器后:
- 手机秒连 5G。
- 回到房间再次测速。
Result:
- Before (2.4G): 10 Mbps
- After (5G): 70 Mbps
而在路由器旁边测速,更是直接飙到了 92 Mbps。
这时候可能有人会问:“为什么不是 100Mbps?”
其实这是正常的。百兆宽带的物理接口加上 TCP/IP 协议头的开销,92-94Mbps 基本上就是物理极限了。这就好比买个 128G 的手机,实际可用容量肯定不到 128G 一样。
另外还发现上传速度是 25Mbps,下载是 80Mbps+,这也是符合家庭宽带“非对称带宽”配置的(通常上行是下行的 1/5 到 1/4)。
结尾
总的来说,这次折腾的教训就是:
- 能用 5G 频段就别用 2.4G,哪怕隔着书柜,5G 的速度优势也足以抵消衰减。
- 千万别在 SSID 里加奇怪的符号! 尤其是数学符号和 Emoji,这种兼容性地雷踩一次就够了。
看着 SpeedTest 跑满的曲线,今晚终于可以流畅打游戏了 (●'◡'●)。