80 likes | 289 Views
TCP 超时重传机制. TCP 超时重传机制. TCP 协议中最重要和最复杂的内容。 为了提供可靠的报文传输服务,采用了定时器和确认机制。. TCP 定时器的超时时间. 超时时间应该根据报文段往返发送方和接收方之间的时间来确定。 往返时间 RTT(Round Trip Time) 问题的复杂性: TCP 报文段在传输中可能经过若干个网络和中间结点(如路由器) 网络中复杂的变化可能导致 TCP 报文段 RTT 存在非常大的波动 TCP 必须能够适应这种情况,确定恰当的超时时间。. RTT 计算 1. 计算 RTT 的加权平均值,加权因子为 α , 0≤α<1 ,
E N D
TCP超时重传机制 • TCP协议中最重要和最复杂的内容。 • 为了提供可靠的报文传输服务,采用了定时器和确认机制。
TCP定时器的超时时间 • 超时时间应该根据报文段往返发送方和接收方之间的时间来确定。 • 往返时间RTT(Round Trip Time) • 问题的复杂性:TCP报文段在传输中可能经过若干个网络和中间结点(如路由器) • 网络中复杂的变化可能导致TCP报文段RTT存在非常大的波动 • TCP必须能够适应这种情况,确定恰当的超时时间。
RTT计算1 • 计算RTT的加权平均值,加权因子为α,0≤α<1, • RTT=(α*Old_RTT)+((1-α)*New_Round_Trip_Sample) • 超时时间一般根据RTT来确定: • Timeout=β*RTT β>1,通常推荐β=2。
早期RTT的二义性 t1 发送报文 t2 RTT1 超时重传 RTT2 t3 接收ACK
Karn算法 • Phil Karn提出的一种解决RTT二义性的方法,也称为Karn算法 • 思想:二义性是由于超时重传的报文段引起的,因此可以只对没有超时(也就没有二义性)的报文段的确认来重新计算往返时间RTT • 问题:如果网络延迟突然增加,造成所有报文段超时,RTT时间不能适应变化而调整
改进的Karn算法 • 思想:如果报文段出现了重传,TCP超时的时间也会随之而延长,从而对定时器进行了补偿。 • 计算方法:通过一个常数因子γ计算新的时限值 New_timeout=γ*timeout γ>1 通常γ=2