TCP 连接 Keep-Alive 方向

Dog*_*rld 4 tcp

当连接在一段时间内(默认为 2 小时)没有收到数据包时,它应该发送 KEEP-ALIVE 数据包。

我的问题是,谁将开始发送 KEEP-Alive 数据包,客户端、服务器或两者?

Ste*_*let 5

任何一方都会,假设:

  1. 操作系统配置为这样做(linuxwindows
  2. 应用程序通过 setsockopt() ( linux , windows )用 SO_KEEPALIVE 配置了套接字。

如果双方具有相同的 keepalive 设置,那么您会看到它们几乎同时启动 keepalive。