TCP往返传输时间(RTT)的估计
1) TCP传输往返时间是指发送端从发送TCP包开始到接收到它的立即响应所耗费的传输时间.
当接收端和发送端同时支持TCP时戳选项时,
发送端记录在TCP包头选项内的时戳可以被接收端随响应反射回来,
发送端就可以利用响应报文的反射时戳计算出某个TCP包的即时往返传输时间.
当接收端应答不反射时戳时,
发送端则利用重发队列中非重传响应所确认的最先数据片段的时戳来取样RTT.
2) 发送端每接收到一次新的响应, 产生出一个新的RTT样本. 为了去除RTT样本的随机抖动,
系统利用加权平均算法对样本进行平滑, 为了避免内核浮点运算,
RTT的平滑值(SRTT)是实际RTT均值的8倍, 在迭代过程中, SRTT收敛于8倍的RTT.
3) 在平滑RTT样本值的同时, 发送端还跟踪样本的抖动性. RTT的抖动用中心差(tp->mdev)来衡量,
它是RTT与RTT均值偏差绝对值的加权平均, 它的值越大, 说明RTT抖动得越利害.
tp->mdev_max变量用来跟踪MDEV的最大值, 它再经过平滑生成tp->rttvar,
描述RTT抖动的最大范围. 发送端的重发超时被设为RTT均值和tp->rttvar的和.
1) TCP传输往返时间是指发送端从发送TCP包开始到接收到它的立即响应所耗费的传输时间.
当接收端和发送端同时支持TCP时戳选项时,
发送端记录在TCP包头选项内的时戳可以被接收端随响应反射回来,
发送端就可以利用响应报文的反射时戳计算出某个TCP包的即时往返传输时间.
当接收端应答不反射时戳时,
发送端则利用重发队列中非重传响应所确认的最先数据片段的时戳来取样RTT.
2) 发送端每接收到一次新的响应, 产生出一个新的RTT样本. 为了去除RTT样本的随机抖动,
系统利用加权平均算法对样本进行平滑, 为了避免内核浮点运算,
RTT的平滑值(SRTT)是实际RTT均值的8倍, 在迭代过程中, SRTT收敛于8倍的RTT.
3) 在平滑RTT样本值的同时, 发送端还跟踪样本的抖动性. RTT的抖动用中心差(tp->mdev)来衡量,
它是RTT与RTT均值偏差绝对值的加权平均, 它的值越大, 说明RTT抖动得越利害.
tp->mdev_max变量用来跟踪MDEV的最大值, 它再经过平滑生成tp->rttvar,
描述RTT抖动的最大范围. 发送端的重发超时被设为RTT均值和tp->rttvar的和.
分享到:
相关推荐
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...
TCP(Transmission Control ...如果发送端实体在合理的往返时延(RTT)内未收到确认,那么对应的数据包就被假设为已丢失将会被进行重传。TCP用一个校验和函数来检验数据是否有错误;在发送和接收时都要计算校验和。
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...
TCP 保留了 RTT 的一个加权平均往返时间 RTTS(这又称为平滑的往返时间)。 第一次测量到 RTT 样本时,RTTS 值就取为所测量到的 RTT 样本值。以后每测量到一个新的 RTT 样本,就按下式重新计算一次 RTTS: 新的...
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的...
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...
21.4.2 RTT估计器的计算 231 21.4.3 慢启动 233 21.5 拥塞举例 233 21.6 拥塞避免算法 235 21.7 快速重传与快速恢复算法 236 21.8 拥塞举例(续) 237 21.9 按每条路由进行度量 240 21.10 ICMP的差错 240 21.11 重新...