在Mac OS X(10.6)上,如果我开始下载YouTube视频,并在拔掉以太网电缆5秒左右后重新插入,那么根据浏览器的不同,结果会有所不同。使用Opera和Chrome,在插回电缆后视频继续加载。但是在Safari和Firefox中,它永远不会加载。
使用Wireshark查看流量,我发现Opera和Chrome在插入电缆后仅对来自YouTube的第一个数据包进行确认,但Safari和Firefox在TCP头中设置RST标志(0x4),并且没有更多的流量跟随。
我可以在机器和互联网连接之间放置一个HUB,问题就消失了,所有四个浏览器在将电缆重新插入HUB时都继续加载视频。再次查看Wireshark日志,很明显机器没有看到多播连接关闭,只是数据包的流动有所延迟。
因此,似乎如果Safari和Firefox看到多播连接关闭,然后稍后在同一连接上看到数据,它们将发送RST。
我的问题是为什么?正确的做法是什么?为什么2/4个浏览器以这种方式进行,而另外2/4个以另一种方式进行?例如,在Firefox中是否可以看到此处正在发生的位置的代码?
非常感谢。
使用Wireshark查看流量,我发现Opera和Chrome在插入电缆后仅对来自YouTube的第一个数据包进行确认,但Safari和Firefox在TCP头中设置RST标志(0x4),并且没有更多的流量跟随。
我可以在机器和互联网连接之间放置一个HUB,问题就消失了,所有四个浏览器在将电缆重新插入HUB时都继续加载视频。再次查看Wireshark日志,很明显机器没有看到多播连接关闭,只是数据包的流动有所延迟。
因此,似乎如果Safari和Firefox看到多播连接关闭,然后稍后在同一连接上看到数据,它们将发送RST。
我的问题是为什么?正确的做法是什么?为什么2/4个浏览器以这种方式进行,而另外2/4个以另一种方式进行?例如,在Firefox中是否可以看到此处正在发生的位置的代码?
非常感谢。