TCP/IP阻塞控制机制

慢启动SS,加性 增AIMD算法
当出现丢包时,减少拥塞窗口CWin长度降低发送速率,在一般情况下谨慎增加CWin长度。

阈值:帮助TCP判断何时进入阻塞避免区域,表示从慢启动阶段进入阻塞阶段的阈值。

void slow_start(void){
    CWin=1MSS;
    n=0;
    while(没有丢包){
                if(在RTT期间接受到了ACK){
                        CWin=CWin*2的n次方;
                        n++;
                        if(CWin>=ssthresh){  //若窗口大于阈值
                                    //去执行加性增算法
                                    break;
                        }
                }else{
                    CWin=1MSS;
                }
    }
}

void additive_increase(void){
    ssthresh=CWin/2;
    while(收到ACK){
            if(CWin>=ssthresh){
                    CWin=CWin+MSS*(MSS/CWin);
                    if(收到三个冗余的ACK){
                            ssthresh=CWin/2;
                            CWin=CWin/2;
                            break;
                    }
                    if(检测到超时事件){
                            ssthresh=CWin/2;
                            CWin=1MSS;
                            if(CWin<ssthresh){
                                //执行slow_start算法
                                break;
                            }
                    }
            }
    }
}

案例:现在阈值ssthresh=8MSS,一旦CWin=12MSS时就会发生超时事件。 当T=15时,CWin的走势。
分析,首先慢启动,一直到阈值跳转到加性增直到超时阈值减半,重新执行慢启动。
执行慢启动算法
T=1   CWin=1   ssthresh=8MSS
T=2   CWin=2   ssthresh=8MSS
T=3   CWin=4   ssthresh=8MSS
T=4   CWin=8   ssthresh=8MSS     //达到阈值,跳转到加性增,阈值为CWin/2
T=5   CWin=9   ssthresh=4MSS
T=6   CWin=10 ssthresh=4MSS
T=7   CWin=11 ssthresh=4MSS
T=8   CWin=12 ssthresh=4MSS    //超时则CWin为1阈值为CWin/2,跳转到加性增
T=9   CWin=1   ssthresh=6MSS
T=10 CWin=2   ssthresh=6MSS
T=11 CWin=4   ssthresh=6MSS
T=12 CWin=6   ssthresh=6MSS    //当CWin=8时超过了阈值则为6,跳转到加性增
T=13 CWin=7   ssthresh=3MSS
T=14 CWin=8   ssthresh=3MSS
T=15 CWin=9   ssthresh=3MSS

参考:《计算机网络:原理与实践》陈鸣

我是菜鸟,我在路上。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值