西西河

主题:【原创】不能访问一些网站的妖异情况,MTU -- 铁手

共:💬14 🌺28
全看分页树展 · 主题 跟帖
家园 遇到过类似的MTU导致的妖异情况

前几年,一个奇怪的现象:

访问网页很快,下载很快,在线看看电影什么也都没问题。但是,在某些网站回帖、评论的时候却速度非常慢,经常失败。

怀疑是上行问题,但是上传文件也没问题。

因为刚换了路由器,所以就重点锁定路由器。

现象古怪,想不出原因,就用暴力法。

把路由器所有可能的参数都试着改一改。试到MTU的时候,MTU值稍微改小了一点,万事大吉

记不清楚当时测试的具体MTU值了,只记得默认设置是1500。

1500是链路层MTU,也就是IP数据报的长度限制,这是由以太网物特性决定的。

对硬件不了解,网络方面的知识这两年没怎么碰,我猜着说:

发现我用的这款路由器的后续批次的默认MTU设为1480。

如果不是巧合的话,1480正好是除去报头的IP数据区最大长度。莫非是这款路由器存在混洧了IP数据报总长度和有效数据长度的bug?这是我乱猜的,差不多很懒,没花时间分析。

记得以前互联网的事实标准是MTU是576,听说现在的宽带有1450一说。这样的话,你的1430也正好是IP数据报数据区的限制长度,怀疑有某种关联

MTU设置的大小,理论上说只和传输效率相关,不应该存在这种严重影响。我能猜到的:

可能路由中的某环节,为了减轻处理压力,设置为将大于某个值的包做丢弃处理。

你的情况比我的情况还好一些,是必然失败,而我的情况是速度变慢,有时成功,有时失败

相当怪异,莫非和路由路径相关?先这样猜吧,现在人越来越懒,不愿意想问题,BS自己下

这个值越大也意味着传输效率越高,但是这个值越大,每个包所占用的时间也越长,也会导致问题。

这个说法似乎有点小问题。我的理解:

MTU值太小,会导致包头占比过大,有效数据变少,传输效率不高。

MTU过大,会导致发送方IP层分片(fragmentation)和接收方重组。

排除被路由弃包的失败情况。

TCP数据时,频繁的分片重组会加大协议栈处理压力,在正好分片出大量小数据时才严重影响传输效率。

UDP传输的MTU影响则大得多,因为一个UDP包如果传输过程中丢失任何一片都会导致整个包无法重组而被丢弃。

呵呵,粗浅看法,借机回忆下网络知识。

通宝推:铁手,
全看分页树展 · 主题 跟帖


有趣有益,互惠互利;开阔视野,博采众长。
虚拟的网络,真实的人。天南地北客,相逢皆朋友

Copyright © cchere 西西河