怎么解释 Router 的 MTU 设置值总比 MTU 的实际值大 8 呢?

2015-04-12 22:31:49 +08:00
 hzqim
Openwrt 系统的 Router ,PPPoE 的 MTU 选项没有设置,框中灰色状态可见数值 1500,本人理解为默认 1500 的意思,不知道是否有误,请指证。


在 Windows 7 中 ping 出 Client 端 MTU 为 1492,所以手动将 Client 和 Router 的 MTU 都设置为 1492。
设置后,感觉打开网页时,加载内容的转圈圈动画少了,应该比以前流畅了。
不料,时间不长,感觉转圈圈又多了起来,Windows 7 下用 ping 检查,MTU 变成了 1484。好吧,再重复一次,把 Client 和 Router 的 MTU 都设置成 1484,马上又正常了。
就在刚才,不经意又发现转圈圈现象增多了,通过 ping 检查发现 MTU 变为了 1476。

我就纳闷了,怎么 MTU 总在变?
后通过比较,MTU 总比 Router 设置的数值小 8,这是什么原因?
4266 次点击
所在节点    问与答
12 条回复
jaleo
2015-04-12 22:49:04 +08:00
我的路由器上 tomato 自动设置了1492
mcfog
2015-04-12 22:58:15 +08:00
网络课没学好,应该是7层里的某一层需要8个字节的包装

没必要减小
mcfog
2015-04-12 23:00:28 +08:00
没必要减小router的mtu把

//移动版的文本框和回复按钮距离太近了点错几次了啦 求L大拯救。@livid
ryd994
2015-04-12 23:01:46 +08:00
你的理解不对
openwrt上PPPoE的mtu已经包括了那额外的8字节
你需要的设置是将lan的mtu减小而不是PPPoE的
datocp
2015-04-12 23:05:30 +08:00
mtu这种名词太专业了,玩不转

最早接触这个是有关访问不了网站需要用ping去确定封包大小
cisco文档说还是1454比较好吧
然后磊科路由器表示用1454你别想拔号

然后因为这东东涉及到各种封包大小问题。搞也搞不懂,tomato直接,一了百了。


iptables -I FORWARD -p tcp -m tcp --tcp-flags SYN,RST SYN -m tcpmss --mss 1400:1536 -j TCPMSS --clamp-mss-to-pmtu
myliyifei
2015-04-12 23:22:33 +08:00
ppp--8个字节
ryd994
2015-04-13 01:34:56 +08:00
pppoe的mtu是指ppp包装后的mtu,1500不需要-8
你可用的mtu需要-8,也就是说你电脑可用的mtu是pppoe的mtu-8
因此mtu应该这样
lan:1492
pppoe:1500
电脑:1492或者无需设置,因为如果mtu过大路由器一般会自动协商
hzqim
2015-04-13 09:01:58 +08:00
@ryd994
@myliyifei
@ryd994
谢谢解析,PPPoE封装多了8个字节,这样说就容易理解一些。

那么,新的问题来了:
Windows 7 LAN 网卡默认也是 1500,而线路实际是 1492 ,如果不把 LAN 的 MTU 设置值改小,那么数据传输过程中必须有一个拆包行为,这个拆包行为是由 Client 来完成,还是由 Router 来完成?如果由 Router 来完成,势必增加 Router 的资源开销。
ryd994
2015-04-13 09:54:49 +08:00
@hzqim 如果路由器收到了过大的包而不能转发,就会drop,同时返回icmp。客户端收到icmp之后就会减小mtu了
hzqim
2015-04-13 11:16:47 +08:00
@ryd994 “客户端收到 icmp 进而减小 mtu”,
客户端只要收到一次 icmp,后续的所有包都会减小吧?
如此,客户端就无需手动设置 MTU 了,只需一次“校正”,便可以智能匹配线路的 MTU。
ryd994
2015-04-13 11:26:01 +08:00
bclerdx
2019-04-22 19:51:03 +08:00
@datocp 你这段代码中的“ 1400:1536 ”是什么意思?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/183293

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX