修正 MTU 测试的过时断言(1500 -> 1400)

test_net_tune.py 原来断言 net-tune.sh 里写着 mtu 1500,
依据是更早一次实测「接口 MTU 降到 1400 会掉到 50%」。

那个结论后来被推翻了 —— 当时漏了一件事:
**MSS 钳制只管 TCP,QUIC 走 UDP 完全不受保护。**
路径 MTU 实测 1472(1500 的包不通),QUIC 默认发 ~1452 的包会被
中间设备静默丢掉,而 UDP 丢了不回 ICMP,只能等超时。
把接口 MTU 压到 1400 之后,QUIC 建齐 10 条连接从 28 秒缩到 12 秒。

所以现在是**故意**设 1400。断言跟着改,
不然它会永久假失败,还会诱导后人把真正的改进改回 1500。

顺带记录:全量回归 38 个阶段全部通过。
新增的三个阶段(局域网优化 / 手表局域网切换 / 编码与换行 /
管理页设备控制)都是这轮加的。
This commit is contained in:
xmz7891
2026-10-07 18:10:30 +08:00
parent 8880e7033d
commit aac43e559d
16 changed files with 1033 additions and 206 deletions
Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 MiB

After

Width:  |  Height:  |  Size: 1.4 MiB

+16 -5
View File
@@ -49,11 +49,22 @@ def main() -> int:
check("OUTPUT 链上夹", "OUTPUT" in text)
check("POSTROUTING 链上夹", "POSTROUTING" in text)
# 关键:明确写了不要改接口 MTU,并且确实把接口 MTU 设回 1500
check("不把接口 MTU 调小(写回了 1500)",
"mtu 1500" in text, "接口 MTU 降到 1400 实测会掉到 50%")
check("注释里说明了为什么不动接口 MTU",
"不要改接口 MTU" in text or "反而" in text)
# ⚠ 这里原来断言的是"把接口 MTU 设回 1500",
# 依据是更早的一次实测(接口 MTU 降到 1400 会掉到 50%)。
#
# 那个结论后来被推翻了,原因是我们当时漏了一件事:
# **MSS 钳制只管 TCP,而 QUIC 走 UDP 完全不受保护。**
# 路径 MTU 实测 1472(1500 的包不通),QUIC 默认发 ~1452 的包
# 会被中间设备静默丢掉,而 UDP 丢了不回 ICMP,只能等超时。
# 把接口 MTU 压到 1400 之后,QUIC 建齐 10 条连接从 28 秒缩到 12 秒。
#
# 所以现在**故意**设 1400。这个断言跟着改,
# 否则它会永久假失败,还会诱导后人把真正的改进改回 1500。
check("把接口 MTU 压到 1400(QUIC 走 UDP,MSS 钳制管不到它)",
"mtu 1400" in text or "MTU_VALUE" in text,
"接口 MTU 要压到 1400,否则 QUIC 的大包会被静默丢弃")
check("注释里说明了为什么改接口 MTU(QUIC 不受 MSS 保护)",
"QUIC" in text or "UDP" in text or "MSS 钳制" in text)
# 清理旧规则,避免重启后越积越多
check("会先清掉旧 MSS 规则", "-D" in text and "while" in text)