The Macroscopic Behavior of the TCP Congestion Avoidance Algorithm在TCP拥塞避免算法的宏观行为

本文介绍了TCP拥塞控制的发展,包括Tahoe、Reno、New Reno、SACK和Vegas等版本的算法。讨论了慢启动、拥塞避免、快速重传和恢复等策略,分析了TCP窗口大小和拥塞控制的关系,并探讨了RED等拥塞避免策略。此外,文章还提到了TCP的RTT和带宽估算对性能的影响,以及在不同网络条件下的适用性。
摘要由CSDN通过智能技术生成
 The Macroscopic Behavior of the TCP Congestion Avoidance Algorithm(在TCP拥塞避免算法的宏观行为)
TCP拥塞控制算法发展至今,相继产生了5个主要版本的TCP拥塞控制算法,分别是Tahoe,Reno, New Reno, SACK, Vegas。
Tahoe版本是TCP的早期版本,此版本由三个部分组成,分别是慢启动算法、拥塞避免算法、快速重传算法。其中的快速重传算法是根据发送端接收到三个重复的ACK确认信息作为分组丢失的判断信息,从而在一定程度上减少等待重传定时器超时的过程,一定程度上提高了数据的传输效率。
此版本是在Tahoe版本的基础上添加了快速恢复算法。即,在快速重传算法之后,进入拥塞避免阶段,而不是进入慢启动阶段,此算法的产生使得网络传输线路的利用率得到了提高。快速重传算法使用了“管子模型"的“报文守恒”特性。本文将在第二章对上述提到的拥塞控制算法的4个主要组成部分做出详细的描述。
New Reno此版本在上述版本的基础上对快速重传与恢复算法进行了改进,它考虑了在一次发送窗口发送范围内,产生了多个分组丢失的情况。
TCP SACK此版本在上述版本的基础上对快速重传与恢复算法进行了改进,它考虑了在一次发送窗口发送范围内,产生了多个分组丢失的情况。
这个算法1994年被提出,它主要对TCP Reno 做了些修改。这个算法通过对RTT的非常重的监控来计算一个基准RTT。然后通过这个基准RTT来估计当前的网络实际带宽,如果实际带宽比我们的期望的带 宽要小或是要多的活,那么就开始线性地减少或增加cwnd的大小。如果这个计算出来的RTT大于了Timeout后,那么,不等ack超时就直接重传。
TCP的拥塞控制主要原理依赖于一个拥塞窗口(cwnd)来控制,在之前我们还讨论过TCP还有一个对端通告的接收窗口(rwnd)用于流量控制。窗口值的大小就代表能够发送出去的但还没有收到ACK的最大数据报文段,显然窗口越大那么数据发送的速度也就越快,但是也有越可能使得网络出现拥塞,如果窗口值为1,那么就简化为一个停等协议,每发送一个数据,都要等到对方的确认才能发送第二个数据包,显然数据传输效率低下。TCP的拥塞控制算法就是要在这两者之间权衡,选取最好的cwnd值,从而使得网络吞吐量最大化且不产生拥塞。
由于需要考虑拥塞控制和流量控制两个方面的内容,因此TCP的真正的发送窗口=min(rwnd, cwnd)。但是rwnd是由对端确定的,网络环境对其没有影响,所以在考虑拥塞的时候我们一般不考虑rwnd的值,我们暂时只讨论如何确定cwnd值的大小。关于cwnd的单位,在TCP中是以字节来做单位的,我们假设TCP每次传输都是按照MSS大小来发送数据的,因此你可以认为cwnd按照数据包个数来做单位也可以理解,所以有时我们说cwnd增加1也就是相当于字节数增加1个MSS大小。
慢启动:最初的TCP在连接建立成功后会向网络中发送大量的数据包,这样很容易导致网络中路由器缓存空间耗尽,从而发生拥塞。因此新建立的连接不
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值