2011-09-05 124 views

回答

7

该方法控制底层TCP套接字上的TCP保持活动功能。有关TCP Keepalive的信息,请查看this article。这里有一个片段解释了什么initialDelay(“保持活动计时器”):

2.1。什么是TCP Keepalive?

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

如果您收到对Keepalive探测的答复,则可以断言连接仍在运行并且无需担心用户级别的实施。事实上,TCP允许你处理一个数据流,而不是数据包,所以零长度的数据包对用户程序来说并不危险。

此过程非常有用,因为如果其他对等方失去连接(例如,通过重新引导),即使您没有流量,您也会注意到连接中断。如果Keepalive探测未被对方回复,则可以断言该连接不能被视为有效,然后采取正确的操作。

相关问题