【问题标题】:What is the typical usage of TCP keepalive?TCP keepalive的典型用法是什么?
【发布时间】:2018-01-19 17:51:38
【问题描述】:

考虑一个存在一个服务器和多个客户端的场景。每个客户端创建 TCP 连接以与服务器交互。 TCP live的三种用法:

  1. 服务器端keepalive:服务器发送TCP keepalive以确保客户端处于活动状态。如果客户端死机,服务器将关闭与客户端的 TCP 连接。
  2. 客户端 keepalive:客户端发送 TCP keepalive 以防止服务器关闭与客户端的 TCP 连接。
  3. Both-side keepalive:服务器和客户端都发送 TCP keepalive,如 1 和 2 中所述。

以上 TCP keepalive 的哪些用法是典型的?

【问题讨论】:

    标签: tcp tcp-keepalive


    【解决方案1】:

    实际上,服务器端和客户端端都可以使用 TCP keepalive。确保操作系统最终会释放与死连接相关的任何资源很有用。请注意,如果两台主机之间的连接由于它们之间的路由器问题而丢失,那么两台主机必须独立检测到连接已断开,并自行清理。

    现在,每个主机将在每个连接上维护一个计时器,指示它最后一次收到与该连接关联的数据包的时间。当该计时器超过某个阈值时,主机将发送一个保活数据包,该阈值是本地定义的(即,主机不交换有关其自己的保活配置的信息)。所以任何一个keepalive时间最短的主机都会主动发送一个keepalive数据包给另一台主机。如果数据包确实通过了,另一台主机(即保活时间较长的主机)将响应该数据包并重置自己的计时器;因此,具有较高keepalive时间的主机肯定不会自己发送keepalive数据包,除非连接确实丢失了。

    可以说,服务器在保持连接上通常比客户端机器更具攻击性(也就是说,它们通常会配置较短的保持连接时间),因为挂起连接通常会对服务器软件产生不良影响(例如,软件可以接受有限数量的并发连接,或者服务器可以派生一个与每个连接关联的新流程实例。

    【讨论】:

      【解决方案2】:

      Server-side keepalive:服务器发送 TCP keepalive 以确保客户端处于活动状态。如果客户端死机,服务器将关闭与客户端的 TCP 连接。

      如果客户端死了,服务器会收到一个“连接重置”错误,之后它应该关闭连接。

      Client-side keepalive:客户端发送 TCP keepalive 以防止服务器关闭与客户端的 TCP 连接。

      没有。客户端发送keepalive,这样如果服务器死了,客户端将收到一个“连接重置”错误,之后它应该关闭连接。

      双方保活

      如上所述,由于保持连接失败,双方都能够获得“连接重置”。

      以上哪些用法是典型的?

      其中任何一个,或者没有。如果对等点定期发送,它实际上也不需要保持活动状态。因此,它通常对服务器比对客户端更有用。

      【讨论】:

      • @EJB 说“因此它通常对服务器比客户端更有用。”,你的意思是服务器发送keepalive的用法更典型吗?
      • 我不知道你会如何衡量它,但似乎很有可能。例如,Telnet 服务器使用它是标准的。
      • 客户端keepalive:客户端发送TCP keepalive防止服务器关闭与客户端的TCP连接不正确但是如果有防火墙有idel timeout connection,keepalive可以防止老化掉连接如果客户端发送的keepalive数据包是在防火墙理想超时之前发送的。检查链接veritas.com/support/en_US/article.100028680中的解决方案部分
      • @Invictus 客户端 keepalive 的工作方式与服务器端 keepalive 完全相同,特别是它不可能阻止服务器应用程序做任何事情,因为服务器应用程序甚至看不到它。因此,它不可能防止服务器中的空闲套接字超时。只有防火墙。
      • @Invictus 您的链接中没有关于“防止服务器关闭 TCP 连接”的内容。这一切都是为了防止中间设备,即路由器,丢弃它。
      猜你喜欢
      • 2014-06-07
      • 1970-01-01
      • 2012-04-26
      • 2013-12-29
      • 2014-12-31
      • 1970-01-01
      • 1970-01-01
      • 2021-11-12
      • 2010-11-21
      相关资源
      最近更新 更多