自适应重传是TCP协议中的一种拥塞控制机制,旨在通过智能的方式处理网络拥塞,并进行相应的数据重传,以提高网络的可靠性和性能。
在自适应重传中,TCP会利用发送方和接收方之间的交互来判断网络是否存在拥塞,并根据这些信息来调整数据的重传行为。这种机制的主要目标是在保证数据可靠性的同时,尽量减少对网络的额外压力和负担。
具体来说,自适应重传的核心概念是快速重传(Fast Retransmit)和重复确认(Duplicate ACK)。当接收方收到一个失序的数据段时,它会发送一个重复确认给发送方,表示它已经收到了该数据段之后的数据。发送方在接收到重复确认后,会立即重传该数据段,而不是等待超时定时器触发重传。
通过快速重传,自适应重传能够更快地检测到网络拥塞的存在,并采取相应的措施。当发送方收到若干个重复确认时,它会推测数据段可能已经丢失,因此会立即重传该数据段,而无需等待定时器超时。这样能够避免等待定时器超时的时间延迟,加快了数据的可靠传输。
此外,自适应重传还可以根据重复确认的数量来判断网络状况的严重程度。如果仅仅收到少量的重复确认,说明网络拥塞程度较轻,发送方只需进行快速重传。但如果收到大量的重复确认,说明网络拥塞程度较重,发送方可能会选择进行更进一步的拥塞控制策略,如减少拥塞窗口大小来减缓发送速度。
自适应重传的类型
1)超时重传
报文段的往返时间:RTT 加权平均往返时间:RTTS RTT的偏差加权平均值:RTTD 超时重传时间:RTO RTTS = (1 - α) * RTTS + α * 新的RTT样本值 (α一般为1/8) RTTD = (1 - β) * RTTD + β * | RTTS - 新的RTT样本值 | (β一般为1/4) RTO = RTTS + 4 * RTTD
Karn算法: ①每次超时重传一个报文段时,停止计算新RTT样本值 ②每次超时重传一个报文段时,就把超时重传时间RTO增大y倍(一般为2倍) ③当不发生报文段重传时,才计算RTTS和超时重传时间RTO
2)快速重传
原因:超时重传作为TCP最基本的重传机制,效率较低。
超时的粗粒度实现方法导致连接在等待一个定时器超时时,很长一段时间连接无效。
基本思想: ①接收方:当报文段到达,立刻回复ACK,即使该序号已被确认过 ②发送方:收到一个重复ACK(同一个确认的再一次重传称为重复确认),就知道接收方必定收到乱序到达的报文段,表明其前面的分组可能丢失。收到3个重复ACK时,立刻触发重传。
自适应重传和非自适应重传的区别
自适应重传和非自适应重传是TCP协议中两种不同的重传机制,它们有以下区别:
1. 触发条件:自适应重传是基于拥塞控制算法触发的,而非自适应重传是基于超时定时器触发的。
- 自适应重传:在发生拥塞时,TCP会根据网络的拥塞状况进行自适应的重传,例如TCP Tahoe和TCP Reno中的快速重传机制。
- 非自适应重传:在超过重传定时器的时间后,TCP会触发非自适应重传,即重新发送未被确认的数据段。
2. 处理方式:自适应重传和非自适应重传对于重传的处理方式有所不同。
- 自适应重传:自适应重传针对出现丢失数据段的情况,通过快速重传来避免等待超时定时器的触发。当接收方收到丢失的数据段后,会立即发送重复确认(Duplicate ACK)给发送方,使发送方尽快重传丢失的数据段。
- 非自适应重传:非自适应重传则是在超过重传定时器时间后触发。发送方会根据重传定时器的时间间隔来判断是否进行重传,以确保数据的可靠性。
3. 对网络质量的反应:自适应重传和非自适应重传对网络质量的反应略有不同。
- 自适应重传:自适应重传能够更加敏感地检测到网络拥塞,并根据丢失的数据段来做出相应的调整。它可以根据重复确认的次数来判断是否进行快速重传,从而更好地适应网络状况。
- 非自适应重传:非自适应重传主要是基于定时器超时来触发,因此对网络拥塞的反应比较滞后。当定时器超时时,发送方会直接重传未确认的数据段。
自适应重传是一种更智能、适应网络拥塞的重传方式,能够更快地回应出现丢失的数据段,并调整重传的策略。而非自适应重传则相对简单,主要是通过定时器触发来进行重传,对网络拥塞的反应较为滞后。
审核编辑:黄飞
全部0条评论
快来发表一下你的评论吧 !