【问题标题】:Trying to figure out why Firefox is sending unsolicited FIN ACK packets试图弄清楚为什么 Firefox 会发送未经请求的 FIN ACK 数据包
【发布时间】:2016-02-04 18:23:45
【问题描述】:

我使用 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 数据 -> 客户端发送重置

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

【问题讨论】:

    标签: javascript firefox networking tcp


    【解决方案1】:

    我也遇到过这个问题。 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 错误更详细。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-03-20
      • 1970-01-01
      • 2016-09-17
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多