问个关于 MSS 值或 MTU 值在两端公网 IP 进行 点 对 点 传输中的问题!

2017-05-18 18:53:44 +08:00
 bclerdx
如果同一个 ISP,同一个城市,在城域网内进行数据交换,假设有 A 和 B 两点直连进行传输,A 点的出口路由器设备的 MTU 或 MSS 配置为固定死的 1500 字节( 1464 字节 PayLoad+28 字节额外开销),B 点的出口路由器的 MTU 或 MSS 配置为固定死的 1024 字节( 996 字节 PayLoad+28 字节额外开销),那么当以 TCP 或 UDP 协议进行数据传输时,从 A 点传输到 B 点或从 B 点传输到 A 点,为什么会发生传输缓慢、传输中断并分片、传输卡顿 30 毫秒左右、传输不流畅呢?是不是 B 点的 MSS 或 MTU 数值过低,造成 A 和 B 两端的 MTU 或 MSS 不对称造成的。

比如以 HTTP 或 HTTPS 方式访问,均是如此之现象!请各位高手解答,谢谢!
2711 次点击
所在节点    宽带症候群
11 条回复
katos
2017-05-18 22:14:22 +08:00
你需要 wireshark
onion83
2017-05-18 22:14:55 +08:00
刚好前段时间研究过这个问题,木桶效应,最终 MTU 会已最小值 B 为准,也就是说 A 的 数据包会在 B 路由器中产生了 DF,数据包传输分了两次效率会低。

原理这篇文章讲得非常清楚: http://packetlife.net/blog/2008/aug/18/path-mtu-discovery/ 可参考。

建议默认设置,让路由器之间通过 PMTUD 自协商。

顺便吐槽两广(广东、广西)电信光纤 PPPOE 拨号的 MTU 为 1480 不知毛原理?帝都联通的是标准的 1492。
bclerdx
2017-05-18 22:20:21 +08:00
@katos Wireshark 我抓包看过呢,包括在 A 端和 B 端的本地内都抓包,超过 996,比如 997 就要分片或重传。也是醉了。
snsd
2017-05-18 23:31:29 +08:00
@onion83 不过广西电信上行大,身为广西人表示很幸福。MTU 小点也无所谓了
z99123
2017-05-19 00:33:14 +08:00
@onion83 按照之前有个大神解释过 MTU 这个问题。机房应该是没有做设置的。应该都是默认的 1492
helijia21
2017-05-25 11:24:44 +08:00
其实骨干网上的 MTU 都挺大的,但是中间的链路有可能被传输的 SDH 或者 MSTP 略微限制。而且。。。还有不少 MPLS 标签啊
bclerdx
2017-05-25 22:53:11 +08:00
@helijia21 为什么限制呢?
bclerdx
2018-03-27 00:39:15 +08:00
@z99123 那为啥不是全国统一呢?两广电信是 1480,而帝都联通默认是 1492 呢?
bclerdx
2018-03-27 00:40:59 +08:00
@helijia21 为什么中间链路会被 SDH、MSTP 或 MPLS 所限制。是中间链路所归属的管理者疏忽、配置错误、不会配置还是故意而为之。
bclerdx
2018-03-28 18:51:12 +08:00
也真是醉了,某路由器的出口 IP 的 MTU 居然被限制到 996,然后实际是 992,是不是该台出口路由器的配置错误了。

bclerdx
2018-04-07 16:42:16 +08:00
顶起来。

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

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

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

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

© 2021 V2EX