【问题标题】:what does the http keep alive affect on tcp connection?http保持活动对tcp连接有什么影响?
【发布时间】:2016-10-24 23:34:20
【问题描述】:

在 http 持久性上有一个“保持活动”计时器。

当保活时间结束时,发生了什么? tcp 连接会关闭吗?我不这么认为,因为存在的 tcp 连接保持活动状态。

那么“keep alive http timer”的作用是什么?

如果我在端口 80 上打开到 url (TCP) 的 http 连接, 在 tcp 连接结束之前,服务器端口不会空闲。

那么如果http keep alive结束呢?

我试图理解这一点。

如果我能得到官方消息,我会很高兴。

谢谢!

【问题讨论】:

  • TCP 连接将被终止。不知道你所说的 TCP 保持活动是什么意思。可以随时随意关闭连接。
  • @usr 在 tcp 上有一个保持活动计时器msdn.microsoft.com/en-us/library/windows/hardware/… RFC 1122,如果此时没有从用户那里获得任何段,tcp 连接将结束我想知道的,如果另一个时间: http keep alive timer on presistent (1.0) 如果这个定时器结束,tcp 连接会关闭吗?我很高兴看到这个的官方来源
  • 如果双方选择不发送任何内容,TCP 连接将永远存在。空闲的 TCP 连接可以永远存在。没有计时器滴答作响。 TCP 有一个保持活动功能,可以检测断开的连接,但它是选择加入的,在 HTTP 场景中选择加入它是没有意义的。因此,TCP keepalive 在实践中不会进入等式。这没有指定。但即使它被启用,它也只能结束连接而不能保持连接。 TCP keep alive 只会缩短生命周期,不会延长生命周期。
  • When the keep alive time is over , what happend? the tcp connection will close? 是的,还有什么可能发生?
  • @usr 这取决于您是在谈论 HTTP keepalive 还是 TCP keepalive。如果 HTTP keepalive 计时器到期,则关闭连接。如果它是 TCP keepalive,它似乎不是,虽然肯定有一些混乱,发送一个 keepalive 数据包,并且如果没有响应连接是reset

标签: http tcp keep-alive


【解决方案1】:

在 http 持久性上有一个“保持活动”计时器。

正确。不要将它与 TCP keepalive 混淆,这是完全不同的事情(RFC 1122)。我在这里假设您根据您的文字谈论 HTTP。

当保活时间结束时,发生了什么?

连接将被一个对等方关闭。

tcp 连接会关闭吗?

正确。

我不这么认为,因为 tcp 连接存在保持活动状态。

我不知道这是什么意思。

那么“keep alive http timer”的作用是什么?

当指定的不活动时间到期时,它会关闭打开的 HTTP 连接。

如果我在端口 80 上打开到 url (TCP) 的 http 连接,则在 tcp 连接结束之前,服务器的端口将不会空闲。

不正确。您可以打开多个连接到同一个侦听端口。

那么如果http keep alive结束呢?

连接已关闭。你已经问过了。

如果我能得到官方消息,我会很高兴的。

HTTP 1.1 的官方来源是 RFC 7230-5,它是 RFC 2616 的继承者。

【讨论】:

    【解决方案2】:

    TCP 级别的 keepalive 是在带外完成的,因此没有与此相关的流数据。这意味着使用套接字的应用程序看不到 TCP keepalives 的效果,因此空闲连接仍将被 http 服务器或代理关闭。

    此外,默认情况下,发送 TCP keepalive 的间隔通常很长(小时)。你可以找到更多关于keepalive套接字选项的信息here on MSDN

    HTTP 不允许服务器尝试提示客户端做某事,所以如果客户端不使用连接,唯一的选择是关闭它或保持打开状态。这通常是服务器或代理中的配置选项。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 2012-03-09
      • 2019-09-01
      • 2017-10-29
      • 2020-08-12
      相关资源
      最近更新 更多