"已知第一次测得TCP的往返时延的当前值是30,现在收到了3个连接的确认报文段,它们比相应的数据报文段的发送时间分别滞后x,y和z,已知: a= 0.7 x= 36 y= 37 z= 34 请计算出每一次新的加权往返时间rtts。 "
时间: 2024-04-06 16:30:43 浏览: 117
通过发送 TCP SYN 数据包测量网络往返延迟_Go语言_代码_相关文件_下载
根据TCP的拥塞控制算法,每次收到确认报文段后需要更新RTT(Round Trip Time)的估计值。其中,新的RTT估计值RTT_new可以通过以下公式计算:
RTT_new = (1-a) * RTT + a * SampleRTT
其中,a为平滑因子,RTT为上一次的RTT估计值,SampleRTT为新的样本RTT。
样本RTT可以通过以下公式计算:
SampleRTT = t - t0
其中,t为该确认报文段的接收时间,t0为相应的数据报文段的发送时间加上延迟值。由于收到的3个确认报文段分别比相应的数据报文段的发送时间分别滞后x,y和z,因此,t0可以计算为:
t0 = t - (x+y+z)/3
将已知的参数代入计算,可以得到新的加权往返时间rtts:
t0 = 30 - (36+37+34)/3 = -11
SampleRTT1 = 36 - (-11) = 47
SampleRTT2 = 37 - (-11) = 48
SampleRTT3 = 34 - (-11) = 45
RTT_new = (1-0.7)*30 + 0.7*47 = 38.1
RTT_new = (1-0.7)*38.1 + 0.7*48 = 42.33
RTT_new = (1-0.7)*42.33 + 0.7*45 = 43.479
因此,每一次新的加权往返时间rtts分别为38.1、42.33和43.479。
阅读全文