zoukankan      html  css  js  c++  java
  • TCP协议有几大计时器?

    1)超时重传计时器

    目的:避免无限等待确认报文

    创建时间:在发送TCP报文段时,会为该报文段设置一个超时重传计时器

    可能发生的情况:在超时时间到达之前,收到了该报文段的确认则撤销计时器,否则重传该报文段,并将超时重传计时器复位

    重传时间:2*RTT(RTT为往返时间)

    2)坚持计时器

    目的:解决零大小窗口导致的死锁问题

    死锁产生原因:当接收端窗口大小为0时,发送端停止发送,此后如果接收端有空余空间来接收数据,则发送一个新窗口大小的报文,如果该报文丢失了则导致双方都处于等待状态,产生死锁

    工作原理:当发送端接收到接收端发送的零大小窗口的报文时,就启动坚持计时器,当计时器到达计时时间,发送端就主动发送一个报文段告诉接收端你发送的新窗口大小的报文丢失了,需要重新发送

    坚持时间:开始先设置为超时重传时间,如果超时了还是没有收到接收端发送的新窗口大小报文,则将计时器的值加倍并且复位,直到大于门限值60s,在此之后每隔60s向接收端发送一个询问报文

    3)保活计时器

    目的:避免空闲连接长时间的占用服务器资源

    工作原理:当服务器收到数据时都将保活计时器重新设置(一般2h),过了2h后,服务器如果没有收到数据,每隔75s发送一个探测报文给客户端,当连续发送10次后,仍然没有收到客户端的回复,则服务器断开连接

    4)时间等待计时器(为服务器Time_Wait状态设置)

    服务器主动断开连接时,服务器会保持一个Time_wait状态,而时间等待计时器就是Time_wait状态的持续时间

    关于Time_wait状态请参考:https://www.cnblogs.com/yinbiao/p/10945836.html

  • 相关阅读:
    linux命令(14):ifup/ifdown/ip addr命令
    linux命令(13):kill/killall命令
    linux命令(12):ping命令
    linux命令(11):df命令
    linux命令(9):route命令
    npm安装node-sass报msbuild相关错误的解决办法
    'vue-cli-service' 不是内部或外部命令,也不是可运行的程序 或批处理文件。
    redis发布与订阅的实现
    设计模式-工厂模式
    设计模式的介绍
  • 原文地址:https://www.cnblogs.com/yinbiao/p/11014949.html
Copyright © 2011-2022 走看看