2024年5月13日发(作者:犁展)
[zz]各种TCP版本 之 TCP Reno 与 TCP Vegas 共存
实验目的
探讨TCP Vegas的提出,TCP Vegas的内涵 ,TCP Vegas 的优越性及其没有在
Internet上广泛应用的主要原因。
基础知识回顾
【TCP Reno 性能分析】
前面,我们了解了TCP Tahoe、TCP Reno系列及TCP Sack的工作原理,通过实验,
将各种TCP版本进行了对比。综合来看,即使源端不通过等待超时来恢复一个窗口数据中
丢失的包,Reno和New-Reno在一个RTT(Round Trip Time)内至多也只能重传一个
被丢弃的包。SACK使用“管道”(pipe)变量表示在发送路径上损失的数据包的数量。
Reno 优于Tahoe,New-Reno和SACK则优于Tahoe和Reno。由于SACK不像
New-Reno一次全部重传已发送包,而是有选择地重传,因此在一个窗口中出现数据包大
量丢失时,SACK的性能优于New-Reno,但SACK的最大缺点在于要修改TCP协议。
其中,Reno是目前应用最广泛且较为成熟的算法。我们现在对Reno算法做一个简单
的性能分析。优点:公平性方面,据数据统计,Reno的公平性还是得到了相当的肯定,
它能够在较大的网络范围内理想地维持公平性原则。缺点:1.从Reno运行机制中很容易
看出,为了维持一个动态平衡,必须周期性地产生一定量的丢失;2. AIMD
(Additive-Increase,Multiplicative-Decrease,减少快,增长慢)机制限制了Reno的
吞吐量;3.在大窗口环境下,由于一个数据包的丢失所带来的窗口缩小要花费很长的时间
来恢复。因此,带宽利用率不可能很高且随着网络的链路带宽不断提升,这种弊端将越来
越明显。
基于上述原因,TCP Vegas 应运而生。
【TCP Vegas 简介】
Brakmo和Peterson在1995年提出了一种是用RTT测量网络状况的拥塞控制算法,
称之为TCP Vegas。首先,我们来解释一下RTT的概念:RTT(Round Trip Time,回路
响应时间)指一个TCP数据包从源端发送到接收端,源端收到接收端确认的时间间隔。
Vegas就是通过观察以前的TCP连接中RTT值的改变情况来控制拥塞窗口cwnd。如果发
现RTT变大,那么Vegas就认为网络发生拥塞,并开始减小cwnd;如果RTT变小,Vegas
则解除拥塞,再次增加cwnd。这样,cwnd在理想情况下就会稳定在一个合适的值上。这
样做的最大好处在于拥塞机制的触发只与RTT的改变有关,而与包的具体传输时延无关。
由于它没有采用包丢失来判断网络可用带宽,而改以用RTT的改变来判断,所以能较好地
预测网络带宽使用情况,并且对小缓存的适应性较强,其公平性、效率都较好。
Vegas使用了3个方法以增加传送的吞吐量(throughput)、减少数据包的丢失。下面
分别进行介绍:
1.新的重送机制(New Retransmission Mechanism)
当一个数据包被目的端接收时,目的端会根据收到的数据包序号返回一个ACK
(ackonwledge)表示这个数据包已收到;如果收到非连续的数据包,则返回序号相同的
ACK(Duplicate ACK,重复ACK)。TCP会根据数据包被送出及返回的时间计算数据包平
2024年5月13日发(作者:犁展)
[zz]各种TCP版本 之 TCP Reno 与 TCP Vegas 共存
实验目的
探讨TCP Vegas的提出,TCP Vegas的内涵 ,TCP Vegas 的优越性及其没有在
Internet上广泛应用的主要原因。
基础知识回顾
【TCP Reno 性能分析】
前面,我们了解了TCP Tahoe、TCP Reno系列及TCP Sack的工作原理,通过实验,
将各种TCP版本进行了对比。综合来看,即使源端不通过等待超时来恢复一个窗口数据中
丢失的包,Reno和New-Reno在一个RTT(Round Trip Time)内至多也只能重传一个
被丢弃的包。SACK使用“管道”(pipe)变量表示在发送路径上损失的数据包的数量。
Reno 优于Tahoe,New-Reno和SACK则优于Tahoe和Reno。由于SACK不像
New-Reno一次全部重传已发送包,而是有选择地重传,因此在一个窗口中出现数据包大
量丢失时,SACK的性能优于New-Reno,但SACK的最大缺点在于要修改TCP协议。
其中,Reno是目前应用最广泛且较为成熟的算法。我们现在对Reno算法做一个简单
的性能分析。优点:公平性方面,据数据统计,Reno的公平性还是得到了相当的肯定,
它能够在较大的网络范围内理想地维持公平性原则。缺点:1.从Reno运行机制中很容易
看出,为了维持一个动态平衡,必须周期性地产生一定量的丢失;2. AIMD
(Additive-Increase,Multiplicative-Decrease,减少快,增长慢)机制限制了Reno的
吞吐量;3.在大窗口环境下,由于一个数据包的丢失所带来的窗口缩小要花费很长的时间
来恢复。因此,带宽利用率不可能很高且随着网络的链路带宽不断提升,这种弊端将越来
越明显。
基于上述原因,TCP Vegas 应运而生。
【TCP Vegas 简介】
Brakmo和Peterson在1995年提出了一种是用RTT测量网络状况的拥塞控制算法,
称之为TCP Vegas。首先,我们来解释一下RTT的概念:RTT(Round Trip Time,回路
响应时间)指一个TCP数据包从源端发送到接收端,源端收到接收端确认的时间间隔。
Vegas就是通过观察以前的TCP连接中RTT值的改变情况来控制拥塞窗口cwnd。如果发
现RTT变大,那么Vegas就认为网络发生拥塞,并开始减小cwnd;如果RTT变小,Vegas
则解除拥塞,再次增加cwnd。这样,cwnd在理想情况下就会稳定在一个合适的值上。这
样做的最大好处在于拥塞机制的触发只与RTT的改变有关,而与包的具体传输时延无关。
由于它没有采用包丢失来判断网络可用带宽,而改以用RTT的改变来判断,所以能较好地
预测网络带宽使用情况,并且对小缓存的适应性较强,其公平性、效率都较好。
Vegas使用了3个方法以增加传送的吞吐量(throughput)、减少数据包的丢失。下面
分别进行介绍:
1.新的重送机制(New Retransmission Mechanism)
当一个数据包被目的端接收时,目的端会根据收到的数据包序号返回一个ACK
(ackonwledge)表示这个数据包已收到;如果收到非连续的数据包,则返回序号相同的
ACK(Duplicate ACK,重复ACK)。TCP会根据数据包被送出及返回的时间计算数据包平