【问题标题】:How does setKeepAlive in node.js work and how to implement it?node.js 中的 setKeepAlive 是如何工作的以及如何实现呢?
【发布时间】:2011-11-10 12:12:25
【问题描述】:

无法理解 Node.js 的网络套接字中 setKeepAlive 方法的原理。 initialDelay 完成后会发生什么?

【问题讨论】:

    标签: sockets node.js tcp


    【解决方案1】:

    此方法控制底层 TCP 套接字上的 TCP 保持活动功能。查看this article 了解有关 TCP Keepalive 的信息。这是一个解释 initialDelay(“keepalive 计时器”)做什么的 sn-p:

    2.1。什么是 TCP keepalive?

    keepalive 的概念很简单:当你建立一个 TCP 连接时,你关联了一组定时器。其中一些计时器处理保活过程。当保活计时器达到零时,您向对等方发送一个保活探测数据包,其中没有数据并且 ACK 标志打开。由于 TCP/IP 规范,您可以这样做,作为一种重复的 ACK,并且远程端点将没有参数,因为 TCP 是面向流的协议。另一方面,您将收到来自远程主机的回复(根本不需要支持 keepalive,只需要 TCP/IP),没有数据和 ACK 集。

    如果您收到对 keepalive 探测的回复,您可以断言连接仍在运行,而无需担心用户级实现。事实上,TCP 允许您处理流,而不是数据包,因此长度为零的数据包对用户程序没有危险。

    此过程很有用,因为如果其他对等方失去连接(例如通过重新启动),即使您没有流量,您也会注意到连接已断开。如果您的对等方未响应 keepalive 探测,您可以断言连接不能被视为有效,然后采取正确的操作。

    【讨论】:

      猜你喜欢
      • 2021-09-12
      • 2019-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-01-31
      相关资源
      最近更新 更多