TCP的流量控制和拥塞控制

1、流量控制

1.1概述

理想状态下,无论是传送数据的速率多块,传送数据的多大,接收方都可以接收到。可是在实际情况中,需要协调发送方发送数据和接收方接收数据的速率,以便发送的数据能被收到。

1.1.1滑动窗口

TCP采用滑动窗口机制来解决流量控制问题,滑动窗口为接收方设定了一个动态指定的接收窗口rwnd。TCP传输是双向进行的,接收方同时也是发送方,这里为了便于分析,取其中一个方向进行分析。
第一次连接建立时 接收方告知发送方初始rwnd值
发送方发送小于rwnd值长的数据
接收方在确认收到数据的同时,可再次指定rwnd值
通过这种机制 接收方可以控制发送数据的速率,当网络拥塞时可以增大窗口 又不至于发送速率超过接收速率
滑动窗口机制

拥塞控制

首先应该明确拥塞控制与流量控制的区别
1、流量控制,控制的是点与点,局部的流量,控制发送的速率和流量速率
2、拥塞控制,控制的是全局的流量,核心问题在于对拥塞状态的检测,对拥塞发生部位的确定,拥塞避免以及拥塞产生的应对。

五个核心概念

ssthresh

慢开始

拥塞避免

快重传

快恢复

慢开始算法开始,这里的慢指初始cwnd窗口=1,经过一个传输轮次cwnd加倍。增长达到慢开始门限ssthresh,执行拥塞避免算法。对cwnd增长方式由加倍转为每次增加一个最大发送单位。
当发生超时时,cwnd=ssthresh=cwnd/2再次执行慢开始算法。
快重传和快恢复是对以上过程的优化
快重传指的是,当发送方连续接收到三个重复的确认后,立即对从确认号起的数据开始重传,而不必等待超时。
这里举个例子,分别有五个数据报
p1(1-10)、p2(11-20)、p3(21-30)、p4(31-40)、p5(41-50)
这里假设p2丢失
当收到乱序的p3时,接收方立即发送确认ack=11,表示11之前的已经按序到达
接着收到p4 p5继续发送重复确认,发送方重传p2。取出放在缓存中的失序序列p3、p4、p5,完成数据传输

快恢复与快重传搭配使用,指的是当发生快重传超时时不是执行慢开始,而是令当前cwnd值减半,并且赋值给慢开始门限。从cwnd开始直接执行拥塞避免算法。
这样之后就会执行拥塞避免算法
本质上TCP的拥塞控制类似于“作死”,不断地增大cwnd以求增大发送速率,其实是在要平衡拥塞和速率,刚好到达发送极限不至于拥塞,慢开始大幅靠近,达到慢开始门限,通过拥塞避免算法递增靠近拥塞点

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值