rto初始化和计算_理解TCP协议的重传时间(下)

回顾

我们上部分讲了跟RTO相关的RFC,主要是一个RTO的计算公式(RFC2988引入)和握手阶段3秒到1秒的初始化RTO的改变(RFC6298引入)。现在可以接着看linux代码的相关实现了,本文尽量将内容收敛到RTO主题。至于重传和拥塞算法等话题,我们(计算机学习微信公众号:jsj_xx)以后再谈。

RTO计算的代码之实现公式

具体实现和我们之前描述的公式是一致的:均值权重是1/8,偏差权重是1/4。另外,为代码的方便需要做些调整。我们先看之前的公式:

err = m-A/8

A += err

if err<0 err=-err

err -= D/4

D += err

rto = A/8+D

实现中完全可以消除掉err这个变量,所以结果调整为:(记作实现公式)

m = m-A/8

A += m

if m<0 m =- m

m -= D/4

D += m

rto = A/8+D

这个公式就是代码中真正的实现,后文都是直接引用这个实现公式!再重复阐述一次:为了避免浮点运算做的两个调整,一是rttvar放大了4倍,即调整为实现公式中的D,二是srtt放大了8倍,即调整为实现公式中的A。

实现中的RTO_MIN设置为200毫秒,但是可以通过ip

route

change命令修改。很多人觉得这个值设置太大了,以为这条命令就是为了将这个

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值