TCP的KeepAlive为什么检测不到断电,拔掉网线这样的断线,而心跳包却可以。

2020-06-22 科技 105阅读
一般来说,当客户端连接到服务端之后,为了确保了解到连接的状态真实性,或者为了防止某些网络在长时间没有数据传输时自动断开,服务端会定时发送一条数据(一般数据内容为空)给客户端。如果在一定时间内(一般选择发送3次心跳的间隔)都没有收到客户端的回复,那么就认为该客户端已经断开了,此时应该踢掉它。
对 于一个已经建立的tcp连接。如果在keepalive_time时间内双方没有任何的数据包传输,则开启keepalive功能的一端将发送 keepalive数据包,若没有收到应答,则每隔keepalive_intvl时间再发送该数据包,发送keepalive_probes次。一直没有 收到应答,则发送rst包关闭连接。若收到应答,则将计时器清零。
声明:你问我答网所有作品(图文、音视频)均由用户自行上传分享,仅供网友学习交流。若您的权利被侵害,请联系fangmu6661024@163.com