Index: net/quic/congestion_control/pacing_sender.cc |
diff --git a/net/quic/congestion_control/pacing_sender.cc b/net/quic/congestion_control/pacing_sender.cc |
index e84d1f2b01d866acaae5a59798d81f8c253467cf..f0f0e5dd092e19d4c4213585a9861055b936ddbd 100644 |
--- a/net/quic/congestion_control/pacing_sender.cc |
+++ b/net/quic/congestion_control/pacing_sender.cc |
@@ -67,9 +67,9 @@ bool PacingSender::OnPacketSent( |
} |
// The next packet should be sent as soon as the current packets has |
// been transferred. We pace at twice the rate of the underlying |
- // sender's bandwidth estimate to help ensure that pacing doesn't become |
- // a bottleneck. |
- const float kPacingAggression = 2; |
+ // sender's bandwidth estimate during slow start and 1.25x during congestion |
+ // avoidance to ensure pacing doesn't prevent us from filling the window. |
+ const float kPacingAggression = sender_->InSlowStart() ? 2 : 1.25; |
QuicTime::Delta delay = |
BandwidthEstimate().Scale(kPacingAggression).TransferTime(bytes); |
// If the last send was delayed, and the alarm took a long time to get |
@@ -166,6 +166,10 @@ QuicByteCount PacingSender::GetCongestionWindow() const { |
return sender_->GetCongestionWindow(); |
} |
+bool PacingSender::InSlowStart() const { |
+ return sender_->InSlowStart(); |
+} |
+ |
QuicByteCount PacingSender::GetSlowStartThreshold() const { |
return sender_->GetSlowStartThreshold(); |
} |