zoukankan      html  css  js  c++  java
  • TCP拥塞控制

    慢开始和拥塞避免:

    慢开始原理:

    (1)当主机开始发送数据时,如果立即将较大的发送窗口的全部数据字节都注入网络,由于不清楚网络的状况,可能会引发网络拥塞

    (2)比较好的方式就是从小到大逐渐增大发送端的拥塞控制窗口数值

    (3)一开始发送报文段的时候就将拥塞窗口cwnd的打星设置为最大报文段的MSS。如果收到了对新报文段的确认,那就就在大家一个MSS的数值

    当rwind朱勾搭的时候,为防止拥塞端口cwind引起网络拥塞,就开始使用慢开始门限ssthresh进行控制,ssthresh的使用方法如下

    拥塞避免算法如下:

    (1)TCP连接初始化,将拥塞窗口设置为1

    (2)执行慢开始算法,cwnd按指数规律增长,知道cwind=ssthress时,开始执行拥塞避免算法,cwnd按线性规律增长

    (3)当网络发送拥塞,把ssthresh值更新为拥塞前ssthresh的一半,cwnd重新设置为1,然后再执行(2)

    快重传和快恢复

    快重传要求接收方在收到一个失序的报文段后就立即发出重复确认(为的是使发送方及早知道有报文段没有到达对方)

    而不要等到自己发送数据时捎带确认。快重传算法规定发送方只要已收到3个重复确认就应当立即崇川对方尚未收到的报文段,而不必继续等待

    设置的重传计时器时间到期

    快恢复算法:

    (1)当发送方连续收到三个重复确认时,就执行“乘法减小”算法,把sstresh门限减半。但是并执行慢开始 

    (2)考虑到如果网络出现拥塞的话就不会收到好几个重复的确认,所以发送方现在认为网络可能没有出现拥塞。所以此时不执行慢开始算法

    ,而是将cwnd设置为sstresh的打星,然后开始执行拥塞避免算法

  • 相关阅读:
    Linux文件误删除恢复操作【转】
    segment fault异常及常见定位手段【转】
    Linux AUFS 文件系统【转】
    Linux MTD系统剖析【转】
    Linux UBI子系统设计初探【转】
    python笔记54-re正则匹配替换字符串(sub和subn)
    python笔记53-Leetcode面试题:请实现一个函数,把字符串 s 中的每个空格替换成"%20"
    咏南中间件支持客户端控制数据库事务
    mormot2 tbsonwriter
    firedac获取自增长字段值
  • 原文地址:https://www.cnblogs.com/tijie/p/10574050.html
Copyright © 2011-2022 走看看