美文网首页tcp/ip详解
第十七章 TCP保活机制

第十七章 TCP保活机制

作者: Myth52125 | 来源:发表于2017-09-05 18:17 被阅读0次

    保活机制是一种在不影响数据流内容的情况下探测对方的方式。
    和名字正好相反,是服务器用来确认什么时候应该断开连接的一种机制。

    保活机制

    保活功能在默认情况下是关闭的o TCP连接的任何一端都可以请求打开这一功能。保活功能可以被设置在连接的一端、两端,或者两端都没有。

    机制

    在一段时间(称为保活时间,keepalivetime)内连接处于非活动状态,开启保活功能的一端将向对方发送一个保活探测报文。如果发送端没有收到响应报文,那么经过一个已经提前配置好的保活时间间隔(keepaliveinterval),将继续发送保活探测报文,直到发送探测报文的次数达到保活探测数(keepaliveprobe),这时对方主机将被确认为不可到达,连接也将被中断。

    报文

    保活探测报文为一个空报文段(或1个字节),序列号等于对方主机发送的ACK报文的最大序列号减1。
    因为这一序列号的数据段已经被成功接收,所以不会对到达的报文段造成影响,但探测报文返回的响应可以确定连接是否仍在工作。接收方收到该报文以后,会认为是之前丢失的报文,所以不会添加进数据流中。但是仍然要发送一个ACK确认。

    探测及其响应报文丢失后都不会重传。探测方主动不重传,相应方的ACK报文并不能自己重传,所以需要保活探测数。

    保活结果

    1. 对方主机仍在工作
      服务器端正常收到ACK,说明客户端正常工作。
      请求端将保活计时器重置。重新计时。
    2. 对方主机已经崩溃
      对方的TCP将不会响应ACK。
      超过保活探测数以后,认为对方主机已经关闭,连接也将被断开。
    3. 客户主机崩溃并且已重启
      客户端响应是一个重置报文段,请求端将会断开连接。
    4. 对方主机仍在工作
      但是因为其他原因就是没有收到ACK。

    相关文章

      网友评论

        本文标题:第十七章 TCP保活机制

        本文链接:https://www.haomeiwen.com/subject/uwfpjxtx.html