TCP拥塞控制相关

TCP拥塞控制:
注意概念理解:RTT RTO
RTT(Round Trip Time):一个连接的往返时间,即数据发送时刻到接收到确认的时刻的差值;(包括传输时间,即从开始传输就开始计时)
RTO(Retransmission Time Out):重传超时时间,即从数据发送时刻算起,超过这个时间便执行重传, RTO协议实现值最小1s
网络是一直波动的, RTT 是一直变化的, RTO 的值基于上次 RTT 往返时间动态计算出来的.
注意,RTT是一个事实存在的值,不是设置值
拥塞窗口:单位是 MSS,最大单个报文段长度
算法:慢启动(收到一个ack +1,每过一个rtt(相当于把一个满的拥塞窗口发完的RTT,即每轮次),翻倍–>达到阈值ssthresh)、拥塞避免(每收到一个ack+1/cwnd,每过一个rtt,+1,可以避免过阈值后拥塞窗口过快增长)、超时重传、快速重传(不经重传定时器),快速回复(不经过慢启动,直接拥塞避免)
{收到三个ack的情况:老的Tahoe算法:进入快速重传过程,如果发生超时重传超时的情况,将慢启动阈值/2,窗口归1,走一遍慢启动,弃用,不用管)}
{新的Reno算法,收到三个(可设)重复ack的情况,直接窗口/2,阈值=窗口,进入快速恢复)
快速恢复算法:
cwnd = cwnd + 3 * MSS,加3 * MSS的原因是因为收到3个重复的ACK。(默认窗口是可以支持+3个请求的,因为确实都到对端了?)
重传DACKs指定的数据包。
如果再收到DACKs,那么cwnd大小增加一。(说明不止三个重复ack,后续又收到的新的,+1的道理同上)
如果收到新的ACK,表明重传的包成功了,那么退出快速恢复算法。将cwnd设置为ssthresh,然后进入拥塞避免算法。

以上是基于丢包的拥塞控制,其他思路还有基于实验、链路容量(实时测量)和机器学习的,不过核心思想是如果评估网络状况和控制拥塞窗口变化

TCP拥塞控制的缺点:
不公平:
1、TCP、UDP不公平,网络资源固定,如果TCP降低网络资源使用,会导致UDP占用过多网络资源
2、RTT不同不公平,RTT较小,包较多的话,ack时+1多,翻倍快,拥塞窗口增加速率快(慢启动和拥塞避免都快),会占用更多的带宽

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值