首页 > 解决方案 > TCP - 当 RTO 太小时会发生什么?

问题描述

我正在研究 TCP,我有这个疑问。让我们认为客户端变得太快,并且服务器在 RTO 到期之前永远不会收到 ACK。所以服务器重新传输了很多不必要的段。服务器如何确认这一点并将 RTO 设置为更大的值?

谢谢!

标签: tcp

解决方案


https://tools.ietf.org/rfc/rfc793.txt

" 一个示例重传超时过程

  Measure the elapsed time between sending a data octet with a
  particular sequence number and receiving an acknowledgment that
  covers that sequence number (segments sent do not have to match
  segments received).  This measured elapsed time is the Round Trip
  Time (RTT).  Next compute a Smoothed Round Trip Time (SRTT) as:

    SRTT = ( ALPHA * SRTT ) + ((1-ALPHA) * RTT)

  and based on this, compute the retransmission timeout (RTO) as:

    RTO = min[UBOUND,max[LBOUND,(BETA*SRTT)]]

  where UBOUND is an upper bound on the timeout (e.g., 1 minute),
  LBOUND is a lower bound on the timeout (e.g., 1 second), ALPHA is
  a smoothing factor (e.g., .8 to .9), and BETA is a delay variance
  factor (e.g., 1.3 to 2.0).

"


推荐阅读