Linux 不友好的 IIS/ASP.NET :-) :在 Windows 上下载很快,但在 Linux 上下载很慢

Linux 不友好的 IIS/ASP.NET :-) :在 Windows 上下载很快,但在 Linux 上下载很慢

如果我尝试使用 Windows 请求页面,此特定网站 (gops.tay.be) 会快速提供对象,但如果尝试使用 Linux,则会非常慢。如果我使用浏览器或 curl,则没有区别:

视窗

C:\curl>curl http://gops.tay.be/RadControls/Upload/Skins/Office2007/RadUpload.css -w %{time_total} -o 1.txt -s
0,078

Linux

[root@ ~]# curl http://gops.tay.be/RadControls/Upload/Skins/Office2007/RadUpload.css -w   %{time_total} -o 1.txt -s
5.551

[root@ ~]# host gops.tay.be
gops.tay.be has address 194.7.31.58

[root@ ~]# ip -s -o r s c |grep 194.7.31.58
194.7.31.58 from 192.168.252.176 via 192.168.252.254 dev eth0 \    cache  used 2 age   2sec ipid 0x26de rtt 98ms rttvar 110ms cwnd 10
194.7.31.58 via 192.168.252.254 dev eth0  src 192.168.252.176 \    cache  age 8sec ipid 0x26de rtt 98ms rttvar 110ms cwnd 10
local 192.168.252.176 from 194.7.31.58 dev lo  src 192.168.252.176 \    cache <local>  used 6 age 2sec iif eth0

在 wireshark 中,两个下载(会话初始化等)似乎完全相同,只是 linux 有tcp.options.wscale.multiplier = 4而 windows 有256gops.tay.be服务器始终有tcp.options.wscale.multiplier = 1

从 Linux 机器下载的任何其他文件都可以正常工作。例如,对于http://cdn.sstatic.net/serverfault/all.css?v=b1f1055f1c12Linux,其开头为tcp.options.wscale.multiplier = 4cdn.sstatic.net其值为1024

什么原因导致这种限制?相比之下,为什么 Windows 系统的下载速度如此之快?

答案1

差异是由于 Linux 中使用了 tcp 时间戳,而 Windows 不使用。关闭它们可解决此问题。

但我不知道为什么您会因为这个选项打开而丢失数据包。

相关内容