zoukankan      html  css  js  c++  java
  • 计算机网络中的定时器

    超时定时器:可以用于数据发送时,发送方发送消息后,未得到接收方返回的确认信号,进行超时重传

     坚持定时器:用于TCP协议流量控制中,对方未能够接收到调整窗口大小的消息。以免使系统陷入死锁。

    上面是这些是我在复习的时候回顾的,感觉自己的文采还是太菜,还是搜了一个别人的,我在后面有标注原地址。

    TCP四种定时器
    1) 重传定时器

    作用:保证可靠性传输

    解决:每发送一个报文段就会启动重传定时器,如果在定时器时间到后还没收到对该报文段的确认,就重传该报文段,并将重传定时器复位。如果在定时器时间内收到确认则撤销该报文段的重传定时器。

    2) 坚持定时器

    作用:主要用来解决零窗口大小通知可能导致的死锁问题。

    死锁问题:如果接收端在向发送端发送了零窗口报文段后不久,接收端的接收缓存有了一定的存储空间,则向发送端发送一个非零窗口大小的报文段,然而这个报文段在传送过程中丢失了,发送端没有收到该报文段,就一直等待接收端发送非零窗口的报文通知,而接收端并不知道报文段丢失,而是一直等待发送端发送数据,这样就会发生死锁问题。

    解决:TCP为每一个连接设置一个坚持定时器(持续计数器)只要TCP连接的一方收到对方的零窗口报文段,就启动坚持定时器。若坚持定时器设置的时间到期,就发送一个零窗口控测报文段。会有以下3种情况

    1、对方收到探测报文段后,给出确认(现窗口值)如果窗口仍为零,则收到这个报文段的一方将坚持定时器值加倍并重启。(坚持定时器最大为60s)

    2、对方接收到探测报文后,给出确认,此时窗口不为零,则跳出死锁

    3、该探测报文发出后,会同时启动 重传定时器,如果重传定时器时间超时,还没收到响应,则重传探测报文。

    3) 保活定时器

    作用:应对TCP连接期间,客户端和服务端长时间无数据传输的情况。

    问题:当建立TCP连接后,若客户端发生故障,则服务器不能再接收客户端发送的数据,而服务端不能永久的等待下去,则需要保活定时器来解决。

    原理:服务端没收一次客户端的数据,就重新设置保活定时器,通常为2小时,如果2小时没有收到客户端的数据,服务端就发送一个探测报文,以后没间隔76秒发送一次,连续发送10次探测报文后仍没有收到客户端的相应,服务器就认为客户端出现故障,终止连接。

    4) 2MSL定时器

    2MSL定时器用来计算一个连接处于Time_wait状态的时间,通常为2MSL(报文段寿命的两倍)。作用:在TCP释放连接时,确认发送的最后一个ACK报文能够到达对方,并防止之前与本连接有关的由于延迟等原因而导致已失效的报文被误判为有效。

    ————————————————
    原文链接:https://blog.csdn.net/u010796790/article/details/52853498

  • 相关阅读:
    UIAlertView
    网络请求ASIhttp
    省份城市选择
    Certificates
    UTF8
    xcode增加注释插件
    常用片段 button Label
    开发铺助工具
    iOS UI框架
    iOS 引导页
  • 原文地址:https://www.cnblogs.com/Halo-zyh-Go/p/12825232.html
Copyright © 2011-2022 走看看