试图找出Firefox发送未经请求的FIN ACK数据包的原因

时间:2012-07-08 07:22:51

标签: javascript firefox networking tcp

我使用OpenLaszlo在DHTML中编写了一个应用程序。该应用程序在Chrome中运行得非常好,但它在Firefox中存在问题。 javascript客户端向Struts2中间层发出HTTP POST请求,该中间层通过Hibernate查询数据库,然后返回XML响应。该应用程序正在生产中,因此客户端代码,中间层和数据库都托管在我的桌面计算机上。

我可以直接在Chrome和Firefox中运行该应用程序,虽然Chrome中的所有内容都能正常运行,但一些HTTP请求(每次都是相同的)都会在Firefox上失败。启动POST请求后立即失败的那些启动,没有给出HTTP响应或错误代码(我使用Firebug来监视POST请求和响应)。

在使用Wireshark观察流量后,我确定,由于某种原因,Firefox在发出POST请求并从服务器接收标准ACK后立即(不到一秒钟)发送FIN ACK数据包。

网络流量如下:

在Chrome中:客户端发送POST - >服务器发送ACK - >服务器发送XML数据 - >客户端发送ACK - >服务器发送HTTP / XML 200响应 - >客户端发送ACK

在Firefox中:客户端发送POST - >服务器发送ACK - >客户端发送FIN,ACK - >服务器发送ACK - >服务器发送XML数据 - >客户端发送重置

我想知道以前是否有人目睹了这种行为,并且可能知道我能做些什么来解决它。

1 个答案:

答案 0 :(得分:0)

我也遇到过这个问题。 Firefox发送与其新的网络更改功能相关的FIN,ACK。见:https://hg.mozilla.org/mozilla-central/rev/0a066b7ffa46

我们花了很多时间来检查这个。 我还在stackoverflow上发帖:when firefox 38 sent FIN,ACK after server ack an http get from firefox?

对于对此感兴趣的任何人,请跟踪:bugzilla.mozilla.org/show_bug.cgi?id=1245059解决方法是将“network.http.network-changed.timeout”设置为更大。检查我们报告的firefox错误更多细节。