超时重传时间为什么会增大
㈠ TCP超时重传机制重传
在TCP网络通信中,超时重传机制是关键的一部分。当数据传输出现超时,就需要进行重传,但并非简单地重复发送。这个过程涉及到策略性的操作,以防止数据流量过大导致网络拥塞。重传时,发送的数据量需要由拥塞窗口(cwnd)和接收方通告窗口共同控制,以保持流量适中。
拥塞窗口的初始增长通常是指数式的,直到超时重传触发,这时会进行微调,即使用拥塞避免算法或慢启动门限。慢启动门限是一个标准,当cwnd超过这个值时,采用拥塞避免算法,而低于门限则采用慢启动。慢启动门限通常记为ssthresh,其作用在于防止流量过度增长引发拥塞。
拥塞避免和慢启动协同工作,初始时cwnd为1个报文段,ssthresh为65535个字节。在发送数据时,TCP会确保不超过cwnd和接收方通告窗口的大小。当网络出现拥塞,ssthresh会减半,并可能将cwnd降至1个报文段(慢启动)。随着接收确认,cwnd会逐步增加,根据是否在慢启动阶段进行调整。
对于数据丢失,快速重传和快速恢复算法提供了补救。当接收重复ACK超过3个时,发送端认为数据丢失,立即进行快速重传,避免等待超时计时器。随后的重传采用拥塞避免算法,快速恢复以提高网络吞吐量。TCP会保留ICMP错误信息,但不会立即重传,而是使用自己的定时器。
为了提高效率,TCP允许在重新传输时,只要包含重传数据的报文被传输,就不必单独重传。这种策略有助于减少不必要的传输开销。
㈡ TCP协议-4.TCP超时重传时间的选择
在TCP协议中,一个关键环节涉及超时重传时间的设定。其目标是确保数据传输的可靠性,通过一个经过精心设计的过程来确定这个时间。首先,我们需要计算加权平均往返时间(RTT,Round-Trip Time),它是一个衡量数据从发送到接收再返回的平均时间的重要指标。这个过程需要对往返时间进行实时的统计和加权,以便得到一个更准确的平均值。
一旦有了RTT的估计,接下来就是计算超时重传时间(RTO,ReTransmission Timeout)。这个时间通常设定为RTT的两倍以上,以提供一个安全的缓冲,防止因为网络波动导致的短暂延迟被误判为数据丢失。这样设置的超时重传时间RTO,可以确保在数据包在正常情况下应该到达的时间点之后,如果仍未接收到确认,才会启动重传机制。
测量往返时间RTT是这个过程的基础,通常通过网络层的定时器和确认机制来实现。当一个数据包发送出去后,接收方会发送一个确认信息。如果发送方在预设的超时时间内没有收到这个确认,它会启动计时器并开始重传。这个过程持续进行,直到接收到确认或者超时重传次数达到预设值,以保证数据的完整性和传输的稳定性。
总的来说,TCP协议中的超时重传时间选择是一项精细的网络管理策略,旨在通过动态调整来适应网络条件的变化,确保数据传输的高效和可靠。通过计算加权平均往返时间和设置适当的超时重传时间,TCP能够有效地处理网络延迟和数据包丢失,保证了通信的顺畅进行。