怀柔建设网站公司,python 做网站很快吗,wordpress主题广告,定制礼品的网站有哪些引言 TCP每一次发送报文段#xff0c;就会对这个报文段设置一次计时器。如果时间到了却没有收到确认报文#xff0c;那么就要重传该报文。 这个之前在TCP传输的机制中提到过#xff0c;这个章节就来研究一下超时时间问题。 关于加权的概念
有必要提及一下加权的概念#x…引言 TCP每一次发送报文段就会对这个报文段设置一次计时器。如果时间到了却没有收到确认报文那么就要重传该报文。 这个之前在TCP传输的机制中提到过这个章节就来研究一下超时时间问题。 关于加权的概念
有必要提及一下加权的概念这属于数学知识但可用帮助我们理解超时重传机制。
权是在测量时不同的精准度加权就是乘上权重/系数的含义加权是对精准度的一种测量。 比如说你参加了一个竞赛专家、老师和学生分别为你打分。最后分数进行计算后作为总成绩。我们下意识认为是(867)/37这样通过加法平均数的方式进行计算。但是在你看来不公平因为你认为专家是懂竞赛的不应该因为老师的打分和学生的随意而影响了总成绩。因此赛事委员设置专家的权重和老师及学生的权重为0.5:0.3:0.2那么加权后就是8*0.56*0.37*0.27.2。这样相对更加公平。下图就是加权的计算方式。 好了此时就能对超时重传时间进行描述了。
超时重传时间 下图所示TCP数据报文发送直到TCP确认报文回馈的这段时间为一个RTT时间。这个之前也提到过。 但是会出现以下两种情况 一超时重传时间远远小于一个RTT时间那么就会导致ACK信息还没到达前请求重传就发出了结果ACK到达了重传发出后的请求又导致重复的信息再次发送了。占用了大量带宽 二如果超时重传时间远远大于一个RTT时间那么一旦出现问题需要重传了超时重传的请求隔了很久才到达大大影响了网络使用空间。 上图是两种可能发生的情况 为了避免上述情况的发生超时重传的时间应该略微大于RTT时间可是问题来了怎么保证呢这时就要采用加权计算的方式了。 我们知道每个报文在一段时间内的传输速率不同因此重传时间不应该是一个固定值而是随着RTT值的变动而变动且要略大于RTT值。我们此时假设RTO为超时传输时间RTTs为加权的平均往返时间。那么就有如下计算方式 我们得出了加权的RTTs的值这个数值决定了各个阶段RTT在加权情况下的往返时间随后我们要使得RTTO略微大于RTTs即可那么有以下计算公式 我们知道RTTs是上述的加权平均往返时间那么RTTD是什么呢 RTTD为RTT的偏差的加权平均值。官方建议这样计算第一次测量时RTTD的值取为测量到的RTT样本值的一半。在以后的测量中使用以下公式计算加权平均RTTD的值。 它的计算方式和RTTs计算方式大同小异我认为RTTD是为了进一步精准确定RTTs的范围将RTTs的加权平均值和4倍的RTTD的偏差加权平均值放在一起就能得到RTO的值。 好了确定了RTO的数值我们就可以重传了而每一次重传又会发生两种情况好了新问题又来了 也就是说重传时问题又会出现之前RTT的情况此时的RTO如果不进行更改那么问题会再次显现。 那么此时引入了一个算法Karn算法公式是 其中“r”的值为2每一次重传都会将旧的超时重传时间扩大2倍。当报文段不再重传时才会根据报文段的往返时延更新平均往返时延RTT和超时重传时间RTO的数值。这样的好处是我不需要对重传报文的往返时间重新计算了。