有关TCP连接和TCP的查询保持活动状态?
问题描述:
我有一个关于连接和TCP以下查询永葆:有关TCP连接和TCP的查询保持活动状态?
- 是保持TCP强制TCP连接的?
- 保持活动的持续时间是固定的还是可配置的?
- 假设保持活动间隔每15秒一次,那么保持活动状态总是每15秒发送一次,或者仅在15秒内没有发送应用程序数据时才发送?
- 服务器(通过TCP与客户端连接)如何确定与客户端的连接是否完好 - 是否可以使用TCP keepalive完成 - 在这种情况下,它是否需要发送活着?另外,如果keepalive未启用,那么除了发送应用程序级别探测器之外,是否还有任何方法检查连接状态?
答
对于TCP连接,TCP保持活动状态是强制性的吗?
不,它是可选的,并且通过RFC 1122-3它必须在默认情况下关闭。
保持活动的持续时间是固定的还是可配置的?
默认情况下至少需要两个小时。它通常是可配置的,但通常只在全球范围内适用于所有套接字。
假设keep alive时间间隔是每15秒一次,那么保持活动状态总是每15秒发送一次,或者仅在15秒内没有发送应用程序数据时才发送?
我不确定这是否已定义,但很难看出它对您有什么影响。
服务器(与客户端通过TCP连接)如何能够计算出,如果与客户端的连接是否完好与否
通过观察它是否得到流上接收或ECONNRESET结束,或连接超时。
是否可以使用TCP keepalive来完成 - 在这种情况下,它会是需要发送keepalive的服务器吗?
需要找出的一面应该是发送keepalives的一面。如果两者兼而有之。
另外,如果keepalive没有启用,那么除了发送应用程序级别探测器之外,是否有任何方法检查连接状态?
参见上文。