Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(506)

Unified Diff: net/quic/congestion_control/quic_congestion_manager.cc

Issue 15937012: Land Recent QUIC changes. (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Small bug fixes Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: net/quic/congestion_control/quic_congestion_manager.cc
diff --git a/net/quic/congestion_control/quic_congestion_manager.cc b/net/quic/congestion_control/quic_congestion_manager.cc
index 48091c3203fa78fafd683e07036a2df1ac503f4a..d40293c0b12b4f3c04eefa9493c7037081709fcd 100644
--- a/net/quic/congestion_control/quic_congestion_manager.cc
+++ b/net/quic/congestion_control/quic_congestion_manager.cc
@@ -13,12 +13,12 @@
namespace {
static const int kBitrateSmoothingPeriodMs = 1000;
-static const int kMinBitrateSmoothingPeriodMs = 500;
static const int kHistoryPeriodMs = 5000;
static const int kDefaultRetransmissionTimeMs = 500;
static const size_t kMaxRetransmissions = 10;
static const size_t kTailDropWindowSize = 5;
+static const size_t kTailDropMaxRetransmissions = 4;
COMPILE_ASSERT(kHistoryPeriodMs >= kBitrateSmoothingPeriodMs,
history_must_be_longer_or_equal_to_the_smoothing_period);
@@ -69,9 +69,8 @@ void QuicCongestionManager::AbandoningPacket(
void QuicCongestionManager::OnIncomingQuicCongestionFeedbackFrame(
const QuicCongestionFeedbackFrame& frame, QuicTime feedback_receive_time) {
- QuicBandwidth sent_bandwidth = SentBandwidth(feedback_receive_time);
send_algorithm_->OnIncomingQuicCongestionFeedbackFrame(
- frame, feedback_receive_time, sent_bandwidth, packet_history_map_);
+ frame, feedback_receive_time, packet_history_map_);
}
void QuicCongestionManager::OnIncomingAckFrame(const QuicAckFrame& frame,
@@ -155,7 +154,10 @@ const QuicTime::Delta QuicCongestionManager::GetRetransmissionDelay(
// TODO(pwestin): This should take the RTT into account instead of a hard
// coded kDefaultRetransmissionTimeMs. Ideally the variance of the RTT too.
if (unacked_packets_count <= kTailDropWindowSize) {
- return QuicTime::Delta::FromMilliseconds(kDefaultRetransmissionTimeMs);
+ if (number_retransmissions <= kTailDropMaxRetransmissions) {
+ return QuicTime::Delta::FromMilliseconds(kDefaultRetransmissionTimeMs);
+ }
+ number_retransmissions -= kTailDropMaxRetransmissions;
}
return QuicTime::Delta::FromMilliseconds(
@@ -167,36 +169,6 @@ const QuicTime::Delta QuicCongestionManager::SmoothedRtt() {
return send_algorithm_->SmoothedRtt();
}
-QuicBandwidth QuicCongestionManager::SentBandwidth(
- QuicTime feedback_receive_time) const {
- const QuicTime::Delta kBitrateSmoothingPeriod =
- QuicTime::Delta::FromMilliseconds(kBitrateSmoothingPeriodMs);
- const QuicTime::Delta kMinBitrateSmoothingPeriod =
- QuicTime::Delta::FromMilliseconds(kMinBitrateSmoothingPeriodMs);
-
- QuicByteCount sum_bytes_sent = 0;
-
- // Sum packet from new until they are kBitrateSmoothingPeriod old.
- SendAlgorithmInterface::SentPacketsMap::const_reverse_iterator history_rit =
- packet_history_map_.rbegin();
-
- QuicTime::Delta max_diff = QuicTime::Delta::Zero();
- for (; history_rit != packet_history_map_.rend(); ++history_rit) {
- QuicTime::Delta diff =
- feedback_receive_time.Subtract(history_rit->second->SendTimestamp());
- if (diff > kBitrateSmoothingPeriod) {
- break;
- }
- sum_bytes_sent += history_rit->second->BytesSent();
- max_diff = diff;
- }
- if (max_diff < kMinBitrateSmoothingPeriod) {
- // No estimate.
- return QuicBandwidth::Zero();
- }
- return QuicBandwidth::FromBytesAndTimeDelta(sum_bytes_sent, max_diff);
-}
-
QuicBandwidth QuicCongestionManager::BandwidthEstimate() {
return send_algorithm_->BandwidthEstimate();
}

Powered by Google App Engine
This is Rietveld 408576698