gain的值做出直观地解释。

BBR动力学模型

BBR的动力学模型很简单，即：

send_rate(t)=gain×Delivery_rate(t−1)send_rate(t)=gain×Delivery_rate(t−1)

ingRate了。

Delivery Rate Estimation (draft-cheng-iccrg-delivery-rate-estimation-00)：
https://tools.ietf.org/html/draft-cheng-iccrg-delivery-rate-estimation-00
<https://tools.ietf.org/html/draft-cheng-iccrg-delivery-rate-estimation-00>

BBR Startup gain的推算

gain计算上，则将RTT作为间隔，这并不影响计算，因为我们本来就是要以RTT为单位计算增益系数的。

PacingRate=f(t)=2tPacingRate=f(t)=2t

slope2是一个斜率，代表测量出来的带宽，而BBR动力学模型里带宽的计算公式则是：

bw=data_ackedRTTbw=data_ackedRTT

bw(t−1)=∫t−1t−2f(t)dtbw(t−1)=∫t−2t−1f(t)dt

G×bw(t−1)=f(t)G×bw(t−1)=f(t)

G×bw(t−1)=f(t)=G×∫t−1t−2f(t)dt=2tG×bw(t−1)=f(t)=G×∫t−2t−1f(t)dt=2t

G×2t4ln2=2tG×2t4ln⁡2=2t

G=4ln2G=4ln⁡2

data_send(t−1)=∫tt−1f(t)dt=2t2ln2data_send(t−1)=∫t−1tf(t)dt=2t2ln⁡2

G×f(t−2)=data_send(t−1)G×f(t−2)=data_send(t−1)

G×2t−2=2t2ln2G×2t−2=2t2ln⁡2

G=2ln2G=2ln⁡2

2≈2.77G=4ln⁡2≈2.77这个模型上演进，并且给出了最新的进展，但是我仍然希望得到最初的G=2ln2≈2.89G=2ln⁡2≈2.89

But can you tell me the reason for the change in gain from 2/ln2 to 4ln2 and
the original derivation of 2/ln2.

The team member who did the original derivation that arrived at 2/ln(2)=2.89
did not have easy access to his notes from that original derivation (which was
several years ago at this point). So our team undertook to reconstruct the
derivation, and in this process we ended up with 4*ln(2)=2.77.

Note that the 2.77 gain is only 4% lower than the original 2.89. And the
original 2.89 is indeed sufficient to double the pacing rate each round trip.
It’s just that, in an idealized system, the 2.77 gain appears to be the
theoretical lower limit on a gain that can double the pacing rate each round
trip, when calculating the pacing rate as a multiple of the estimated bandwidth.

Startup阶段初始失速问题和优化

cwnd，PacingRate和RTT三者之间不匹配的情形：

)，所以很难计算出一个合理的PacingRatePacingRate值。

。具体实现就是另启一个定时器，超时时间为：

T=packets_total_lengthpacing_rate+αT=packets_total_lengthpacing_rate+α