TCP拥塞控制算法比较

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

TCP拥塞控制算法比较
TCP发展到现在已经形成了TCP Tahoe、TCP Reno、TCP NewReno、SACK、Vegas等不同版本,这些算法各有利弊。

Tahoe算法是TCP的早期版本。

它的核心思想是:让cwnd以指数增长方式迅速逼近可
用信道容量,然后慢慢接近均衡。

它包括了3个基本的拥塞控制算法:慢启动、拥塞避免、快速重传。

Tahoe的缺点体现在快速重传后转向慢启动算法,这样不能有效的利用网络带宽并且还引入较大的延时。

Reno算法是针对Tahoe算法的不足而做的改进。

改进主要有两方面:一是对于收到连
续3个重复的ACK确认,算法不经过慢启动,而直接进入拥塞避免阶段;二是增加了快速重传和快速恢复机制。

Reno算法以其简单、有效和鲁棒性成为TCP源算法的主流,被广泛的
采用。

但它不能有效的处理多个报文分组从同一发送窗口中丢失的情况。

NewReno对Reno中快速恢复算法进行了补充,它考虑了一个发送窗口内多个报文分组
同时丢失的情况。

Reno算法中,发送方收到一个不重复的应答后就退出快速恢复,而NewReno 中,只有当所有的报文分组都被应答后才退出快速恢复状态。

NewReno的实现只要修改TCP 发送端的实现代码,实现简单。

SACK算法也针对一个窗口内多个报文分组丢失的情况而对Reno算法进行改进:SACK
定义了一个变量pipe来表示出现在路由器上报文分组的估计数量,接收方TCP发送SACK
分组来通知发送方的接收状况,这样源端就能准确的知道哪些报文分组被正确的传到接收端,从而避免不必要的重传,提高网络吞吐量。

但SACK算法的实现需要修改TCP发送端和接收端的实现代码,增加了TCP的复杂性,因此不易大规模的应用。

Vegas与上述的算法不同,它是以RTT的变化作为拥塞信号,调节源端的发送速率。

通过监测RTT的变化来改变cwnd的大小。

由于Vegas采用RTT的改变来判断网络的可用带宽,能较好的预测网络带宽的使用情况,其公平性、效率都较好。

但是,由于Vegas与其它算法在竞争带宽方面存在不公平现象,因此未能在因特网中普遍采用,还需要继续改进。

相关文档
最新文档