TCP超时重传时间设置 。1 如果把超时重传时间设置得太短,就会引起很多 报文段的不必要的重传,使网络负荷增大。 但若把超时重传时间设置得过长,则又使网络的 。 空闲时间增大,降低了传输效率 ·TCP采用了一种自适应算法,它记录一个报文 段发出的时间,以及收到相应的确认的时间。这 两个时间之差就是报文段的往返时间RTT。 运输层(1) 17
TCP 超时重传时间设置 • 如果把超时重传时间设置得太短,就会引起很多 报文段的不必要的重传,使网络负荷增大。 • 但若把超时重传时间设置得过长,则又使网络的 空闲时间增大,降低了传输效率。 • TCP 采用了一种自适应算法,它记录一个报文 段发出的时间,以及收到相应的确认的时间。这 两个时间之差就是报文段的往返时间 RTT。 运输层(1) 17
加权平均往返时间 TCP保留了RTT的一个加权平均往返时间RTT、(这又称为 平滑的往返时间) 。 ·第一次测量到RTT样本时,RTT、值就取为所测量到的RTT 样本值。以后每测量到一个新的RTT样本,就按下式重新计 算一次RTTs: 新的RTTs=(1-o)×(I旧的RTTs) +o×(新的RTT样本) (5-4) 式中,0≤o<1。若很接近于零,表示RTT值更新较慢。 若选择o接近于1,则表示RTT值更新较快。 ·RFC2988推荐的值为1/8,即0.125。 运输层(1) 18
加权平均往返时间 • TCP 保留了 RTT 的一个加权平均往返时间 RTTS(这又称为 平滑的往返时间)。 • 第一次测量到 RTT 样本时,RTTS 值就取为所测量到的 RTT 样本值。以后每测量到一个新的 RTT 样本,就按下式重新计 算一次 RTTS: • 式中,0 1。若 很接近于零,表示 RTT 值更新较慢。 若选择 接近于 1,则表示 RTT 值更新较快。 • RFC 2988 推荐的 值为 1/8,即 0.125。 新的RTTS (1 ) (旧的RTTS ) (新的RTT样本) (5-4) 运输层(1) 18
超时重传时间RTO ·RTO(Retransmission Time-Out)应略大于上面得出的加权平均 往返时间RTTs ·RFC2988建议使用下式计算RTO: RTO=RTTs+4×RTT) (5-5) ·RTTD是RTT的偏差的加权平均值。 RFC2988建议这样计算RTTD。第一次测量时,RTTD值取为 测量到的TT样本值的一半。在以后的测量中,则使用下式 计算加权平均的RTTD: 新的RTT。=(1-)×(旧的RTTo) +B×RTTs-新的RTT样本 (5-6) ·阝是个小于1的系数,其推荐值是1/4,即0.25。 运输层(1) 19
超时重传时间 RTO • RTO (Retransmission Time-Out) 应略大于上面得出的加权平均 往返时间 RTTS。 • RFC 2988 建议使用下式计算 RTO: • RTTD是 RTT 的偏差的加权平均值。 • RFC 2988 建议这样计算 RTTD。第一次测量时,RTTD值取为 测量到的 RTT 样本值的一半。在以后的测量中,则使用下式 计算加权平均的 RTTD: • 是个小于 1 的系数,其推荐值是 1/4,即 0.25。 RTO RTTS + 4 RTTD (5-5) 新的 RTTD = (1 ) (旧的RTTD ) + RTTS 新的 RTT 样本 (5-6) 运输层(1) 19
往返时间(RTT)的测量相当复杂 0 TCP报文段1没有收到确认。重传(即报文段2) 后,收到了确认报文段ACK。 。1 如何判定此确认报文段是对原来的报文段1的确认, 还是对重传的报文段2的确认? 是对哪一个报文段 的确认? 发送一个 超时重传 o6860000 TCP报文段 TCP报文段 收到ACK 往返时间RTT? 时间 往返时间RTT? 运输层(1) 20
往返时间 (RTT) 的测量相当复杂 • TCP 报文段 1 没有收到确认。重传(即报文段 2) 后,收到了确认报文段 ACK。 • 如何判定此确认报文段是对原来的报文段 1 的确认, 还是对重传的报文段 2 的确认? 往返时间 RTT? 发送一个 TCP 报文段 超时重传 TCP 报文段 收到 ACK 时间 1 2 往返时间 RTT? 是对哪一个报文段 的确认? 运输层(1) 20
Karn算法 ·在计算平均往返时间RTT时,只要报文段重传 了,就不采用其往返时间样本。 ·这样得出的加权平均平均往返时间RTT、和超时 重传时间RTO就较准确。 ·但是,这又引起新的问题。当报文段的时延突然 增大了很多时,在原来得出的重传时间内,不会 收到确认报文段。于是就重传报文段。但根据 Karn算法,不考虑重传的报文段的往返时间样 本。这样,超时重传时间就无法更新。 运输层(1) 21
Karn 算法 • 在计算平均往返时间 RTT 时,只要报文段重传 了,就不采用其往返时间样本。 • 这样得出的加权平均平均往返时间 RTTS 和超时 重传时间 RTO 就较准确。 • 但是,这又引起新的问题。当报文段的时延突然 增大了很多时,在原来得出的重传时间内,不会 收到确认报文段。于是就重传报文段。但根据 Karn 算法,不考虑重传的报文段的往返时间样 本。这样,超时重传时间就无法更新。 运输层(1) 21