• tcp重传机制


    对端滑动窗口一直为0时如何处理?

    接收端通告的窗口大小变成0,发送端会发一个1字节的段(就是下一字节的数据,没新的数据段发送的时候发一个ack)(TCP零窗口探测),强制接收端重新宣告下一个期望的字节和窗口大小。如果接收方回复窗口大小仍然为零,则发送方的探测定时器加倍。没有收到ACK时,发送探测包的最大次数之后连接超时。
     

    TCP超时重传

    原理是在发送某一个数据以后就开启一个计时器,在一定时间内如果没有得到发送的数据报的ACK报文,那么就重新发送数据,直到发送成功为止。
      影响超时重传机制协议效率的一个关键参数是重传超时时间(RTO,Retransmission TimeOut)。RTO的值被设置过大过小都会对协议造成不利影响。
      (1)RTO设长了,重发就慢,没有效率,性能差。
      (2)RTO设短了,重发的就快,会增加网络拥塞,导致更多的超时,更多的超时导致更多的重发。
      连接往返时间(RTT,Round Trip Time),指发送端从发送TCP包开始到接收它的立即响应所消耗的时间。

    TCP滑动窗口

    作用:(1)提供TCP的可靠性;(2)提供TCP的流控特性
     
    TCP的滑动窗口的可靠性也是建立在“确认重传”基础上的。 
    发送窗口只有收到对端对于本段发送窗口内字节的ACK确认,才会移动发送窗口的左边界。 
    接收端可以根据自己的状况通告窗口大小,从而控制发送端的接收,进行流量控制。
     

    TCP拥塞控制

    拥塞控制是一个全局性的过程; 流量控制是点对点通信量的控制 
    TCP拥塞控制4个核心算法:慢开始(slow start)、拥塞避免(Congestion Avoidance)、快速重传(fast retransmit)、快速回复(fast recovery) 
     
    拥塞窗口(cwnd,congestion window),其大小取决于网络的拥塞程度,并且动态地在变化。 
     

    慢开始算法的思路就是,不要一开始就发送大量的数据,先探测一下网络的拥塞程度,也就是说由小到大逐渐增加拥塞窗口的大小。

    拥塞避免算法让拥塞窗口缓慢增长,即每经过一个往返时间RTT就把发送发的拥塞窗口cwnd加1,而不是加倍。

    快速重传(Fast retransmit)要求接收方在收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方),而不要等到自己发送数据时捎带确认。 快重传算法规定,发送方只要一连收到3个重复确认就应当立即重传对方尚未收到的报文段,而不必继续等待设置的重传计数器时间到期。

    快速恢复(Fast Recovery)
    (1)当发送方连续收到三个重复确认,就执行“乘法减小”算法,把慢开始门限ssthresh减半。这是为了预防网络发生拥塞。请注意:接下去不执行慢开始算法。
    (2)由于发送方现在认为网络很可能没有发生拥塞,因此与慢开始不同之处是现在不执行慢开始算法(即拥塞窗口cwnd现在不设置为1),而是把cwnd值设置为慢开始门限ssthresh减半后的数值,然后开始执行拥塞避免算法(“加法增大”),使拥塞窗口缓慢地线性增大。

     
  • 相关阅读:
    [LC] 939. Minimum Area Rectangle
    [LC] 1110. Delete Nodes And Return Forest
    [LC] 1057. Campus Bikes
    [LC] 528. Random Pick with Weight
    [LC] 341. Flatten Nested List Iterator
    oracle获取本月第一天和最后一天及Oracle trunc()函数的用法
    监控concurrent 正在执行的sql
    UTL_FILE 的用法
    查询EBS在线用户SQL(R12)
    ORACLE EBS BOM 展开(使用标准程序bompexpl.exploder_userexit展开)
  • 原文地址:https://www.cnblogs.com/losophy/p/10581925.html
Copyright © 2020-2023  润新知