网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

TCP Tahoe和TCP Reno

更新时间:2026年03月27日   作者:spoto   标签(Tag):

TCP是一种面向连接的协议,它能够确保数据的可靠性。此外,TCP还负责处理网络中的拥塞控制问题。TCP Tahoe和TCP Reno就是两种用于解决拥塞控制的机制。当发送方收到三个重复的确认消息时,就会使用这两种机制来应对拥塞情况。

TCP Tahoe塔霍湖是美国的一个湖泊。这个特定的TCP系统就是围绕该湖泊而设计的,因此才被命名为“塔霍湖”。TCP Tahoe这是第一种内置拥塞控制算法的TCP变体。在1981年TCP被设计出来时,拥塞控制并不是其固有的功能之一。

TCP Tahoe = 慢启动机制 + 地址无关多播协议 + 快速重传机制

缓慢启动阶段:这种状态会持续下去,直到拥塞窗口的大小达到“……”为止。缓慢启动阈值 (ssthresh)“慢启动算法会在一次RTT时间内将拥塞窗口的大小加倍。最初,ssthresh被设置为无穷大。之后,该算法会根据数据包丢失的情况进行调整。当cwnd等于ssthresh时,慢启动就会停止。之后,就会进入AIMD阶段。”

AIMD阶段:这一过程始于“缓慢启动”阶段结束之时。当“增加因子”被应用时,cwnd会增加1;而当“减少因子”被应用时,ssthresh的值会被降低到cwnd的50%。需要注意的是,cwnd本身并不会减少50%,而只是ssthresh的值会下降。此时,cwnd会重新恢复到初始的窗口大小(在Linux内核中为10)。

快速重传阶段:这是一种丢包检测算法。当遇到三次重复确认时,该算法会被触发。在检测到丢包后,它会将cwnd值重置为initcwnd。

例如:Suppose cwnd = 200 and packet loss occurs, thenssthresh=cwnd/2= 100; cwnd will be reset to initcwnd value that is 10.Again slow start will begin.Now say cwnd increases to 20, 40, 80 and 100 in 5th RTT.Once cwnd reached ssthresh, AIMD starts. AIMD increases cwnd by 1 per RTT, so if packet drop occurs at cwnd = 125then cwnd=10 and ssthresh=62 and Slow Start Restarts.

注意:数据包丢失可以通过RTO算法或快速重传机制来检测。在这两种情况下,cwnd都会被重置为10,而ssthresh则被设置为cwnd的1/2。之后,慢启动过程会再次开始。

TCP Tahoe

TCP Reno:

它是TCP Tahoe的扩展版本。

TCP Reno = TCP Tahoe + 快速恢复机制

由于TCP Reno是TCP Tahoe的扩展版本,因此,慢启动阶段和AIMD阶段是相同的。

快速恢复阶段

它同时利用了RTO和Fast Retransmit这两种技术。 如果数据包丢失检测是由于三次重复确认而触发的,那么这就是一种高效的重新传输算法在发挥作用。 通过Fast Retransmit进行丢包检测时,cwnd会减少50%(即cwnd = cwnd/2)。 收到了3个重复的ACK信号,这表明网络运行良好。因为收到了ACK信号,说明数据包已经成功传输到接收端。 因此,cwnd的值减少了50%,这样网络就能从拥塞状态中恢复过来。 通过RTO进行丢包检测时,需要将cwnd重置为initcwnd的值。 如果RTO计时器到期了,那就意味着网络处于严重拥堵状态。 因此,为了恢复网络的正常运行,必须将cwnd的值降低到初始值。

TCP Reno
Example:cwnd=120, ssthresh=∞1) packet loss detected using 3-duplicate ACK (aka Fast Retransmit).cwnd will be reduced to 50%, cwnd=60ssthresh will be new cwnd, ssthresh=60Now Reno has entered Fast Recovery Phase, it skips the slow start and AIMD takes over. Whereas in TahoeSlow Start restarts when packet loss is detected. This is the difference between these two.2) Now say cwnd is reached to 70 in 10 more RTT from cwnd=60, after AIMD started.packet drop occurs at cwnd=70, cwnd becomes 35 and ssthresh=35.3) now cwnd increases to 50, and packet loss detected using RTO.then cwnd=initial cwnd= 10, ssthresh=cwnd/2=25Whenever packet loss detected, Reno never uses Slow Start again, it skip it.

以下是TCP Tahoe与TCP Reno之间的一些关键差异:

1. 流量控制:TCP Reno在拥塞控制算法方面进行了升级,比如采用了快速重传和快速恢复机制。这些改进使得TCP Reno能够更快速、更有效地处理拥塞情况。

2. 速度:在高速网络中,TCP Reno通常比TCP Tahoe更快速。因为TCP Reno能够更快地从网络故障中恢复过来,同时还能增加传输窗口的大小。

3. 稳定性:从组织堵塞的情况来看,TCP Reno的性能通常优于TCP Tahoe。因为TCP Reno能够更快地识别堵塞情况,从而更有效地恢复网络连接。

4. 复杂性:考虑到TCP Reno包含了更多的功能和改进措施,它确实比TCP Tahoe更为出色。

TCP Tahoe与Reno的对比图片:

TCP Tahoe和Reno
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料