请问如何计算 MTU?

2021-05-08 13:05:44 +08:00
 rv54ntjwfm3ug8
没学过计网。家里用了 4 个路由器(光猫+交换机+无线路由器+树莓派 4 旁路由) SSH 断流一直很严重,看起来像 MTU 的问题,但 ping 命令指定包大小好像没什么问题,找了几个计算工具都不会用,尝试直接把路由器 MTU 改小,断流现象更严重了。
3785 次点击
所在节点    宽带症候群
11 条回复
Tengwait
2021-05-08 14:01:39 +08:00
其实没什么所谓,光猫的 MTU 肯定是有设置的,你的包到了光猫的时候就被分片了,只要你的 MSS 的大小不大于光猫的 MTU 就好,至于 SSH 断流,可能是你走公网访问的时候有丢包,大概率你的服务器是海外的吧
dier
2021-05-08 14:03:08 +08:00
抓包看,如果发送的数据字节超过指定大小,数据在传输的时候会分片传输
dier
2021-05-08 14:04:20 +08:00
不过我觉得断流的问题跟 MTU 的关系不大,应该还是跟服务器之间网络的问题
jasonyang9
2021-05-08 14:19:37 +08:00
以下自己现学的。

MTU 指 2 个节点之间,数据链路层的最大传输单元,PMTU 是完整路径上的最大数据单元,取决于其中最小的那个 MTU 。

自动分段在一些情况下是做不到的。

PMTU 的自动检测依赖 ICMP 某个包,但由于大部分网络设备屏蔽了 ICMP,导致 PMTU 自动检测无法进行。

上面说的 MSS 是 TCP 的最大段大小,可以在路由器上钳制( TCP MSS clamping ),这样一来只要是 TCP 数据包,都会由于 MSS 的设定而将 MTU 也限制在合理范围内。
geekvcn
2021-05-08 15:56:21 +08:00
光猫桥接 MTU 1500,光猫拨号 1500-8 1492,光猫桥接路由器拨号 1492,大多数主流系统默认值 1500 。所以如果不是什么非主流运营商最佳 mtu 是 1492,最佳保守值是 1480
cwbsw
2021-05-08 16:19:51 +08:00
建议往其它方向寻找原因。
或者你应该详细描述你的症状,这样网友才能帮你云诊断。
dotiean
2021-05-08 21:02:23 +08:00
AllenHua
2021-05-09 06:16:18 +08:00
@dotiean #7 山上的笋被你夺🥣了
sherlock1122
2021-05-09 20:39:59 +08:00
`netstat -i` 可以查看各个 port 的 MTU 。
MTU 一般是 1500.
有效数据长度一般是 1500 - 20 ( tcp) - 20(ip) -12 (timestamp) = 1448B
wireshark 抓包可以看一下。
sherlock1122
2021-05-09 20:42:58 +08:00
MTU 一般只会影响延迟,丢包不太会。
最近发现 Intel 的 10G 网卡在 3 到 4 个包左右,也就是 4344B 和 4345B 的不同负载下,scatter-gather io 有比较大的延迟,正在苦逼的分析代码中。
doveyoung
2021-05-11 09:04:57 +08:00
用 ping 去猜,然后设置,一般不会是 MTU 的问题
windows
ping -l 1472 -f 1.1.1.1

linux
ping -s 1472 -M do 1.1.1.1

macOS
ping -D -s 1472 1.1.1.1

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

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

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

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

© 2021 V2EX