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

Issue 1025573002: QUIC - disable QUIC if packet loss rate is bad for a connection. (Closed)

Created:
5 years, 9 months ago by ramant (doing other things)
Modified:
5 years, 8 months ago
CC:
chromium-reviews, cbentzel+watch_chromium.org
Base URL:
https://chromium.googlesource.com/chromium/src.git@master
Target Ref:
refs/pending/heads/master
Project:
chromium
Visibility:
Public.

Description

QUIC - disable QUIC if packet loss rate is bad for a connection. Goal - Improve quality of service (QOS) in chromium when QUIC is enabled. For some users when QUIC is enabled, their access to QUIC based servers doesn't work well. This could be due to either high loss rate while using UDP or service providers blacklisting ports 80/443 for QUIC traffic. + One simple approach (which would detect breakage quickly) would be to look at the packet loss (received) when the crypto handshake is confirmed. When packet loss is "really bad", say over 50% for 5 handshakes in a row, we will disable QUIC. + For a connection is packet loss is higher than the packet loss threshold, then we mark that port as recently broken. This would require crypto handshake confirmation. + Added two parameters - number of "lossy" connections (defaults to 0) and packet loss threshold (defaults to 1000%) params to determine when to disable QUIC. These parameters will be controlled by finch in the next CL. R=rch@chromium.org, asvitkine@chromium.org,mpearson@chromium.org Committed: https://crrev.com/85dcfac2d1c911beb4c1d25caebf679581a9283f Cr-Commit-Position: refs/heads/master@{#322630}

Patch Set 1 : #

Total comments: 1

Patch Set 2 : Minor comment fixes #

Total comments: 8

Patch Set 3 : Disable quic when there is high packet loss rate #

Total comments: 20

Patch Set 4 : disable QUIC by port #

Total comments: 10

Patch Set 5 : Fixed comments for Patch Set 4 #

Patch Set 6 : disable quic for lossy connections in a row #

Total comments: 8

Patch Set 7 : Fix for comments it Patch set 6 #

Total comments: 4

Patch Set 8 : Fixed comments for Patch Set 7 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+270 lines, -15 lines) Patch
M net/http/http_network_session.h View 1 2 1 chunk +2 lines, -0 lines 0 comments Download
M net/http/http_network_session.cc View 1 2 3 2 chunks +4 lines, -0 lines 0 comments Download
M net/http/http_stream_factory_impl.cc View 1 2 3 1 chunk +3 lines, -0 lines 0 comments Download
M net/quic/quic_client_session.h View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_client_session.cc View 1 2 3 4 2 chunks +9 lines, -2 lines 0 comments Download
M net/quic/quic_client_session_test.cc View 1 2 3 1 chunk +3 lines, -1 line 0 comments Download
M net/quic/quic_connection_logger.h View 1 2 3 1 chunk +3 lines, -0 lines 0 comments Download
M net/quic/quic_connection_logger.cc View 1 2 3 4 2 chunks +9 lines, -7 lines 0 comments Download
M net/quic/quic_http_stream_test.cc View 1 2 3 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_protocol.h View 2 chunks +3 lines, -1 line 0 comments Download
M net/quic/quic_stream_factory.h View 1 2 3 4 5 3 chunks +21 lines, -0 lines 0 comments Download
M net/quic/quic_stream_factory.cc View 1 2 3 4 5 6 5 chunks +44 lines, -2 lines 0 comments Download
M net/quic/quic_stream_factory_test.cc View 1 2 3 4 5 3 chunks +152 lines, -0 lines 0 comments Download
M net/quic/quic_utils.cc View 1 chunk +1 line, -0 lines 0 comments Download
M tools/metrics/histograms/histograms.xml View 2 chunks +14 lines, -0 lines 0 comments Download

Messages

Total messages: 28 (8 generated)
ramant (doing other things)
Hi Ryan, This is a first cut at what You, Alyssa, Ian and I had ...
5 years, 9 months ago (2015-03-20 21:28:51 UTC) #4
ramant (doing other things)
https://codereview.chromium.org/1025573002/diff/40001/net/quic/quic_connection_logger.cc File net/quic/quic_connection_logger.cc (right): https://codereview.chromium.org/1025573002/diff/40001/net/quic/quic_connection_logger.cc#newcode772 net/quic/quic_connection_logger.cc:772: int QuicConnectionLogger::PacketLossRate() const { Is there a better place ...
5 years, 9 months ago (2015-03-20 22:50:59 UTC) #5
Ryan Hamilton
https://codereview.chromium.org/1025573002/diff/60001/net/quic/quic_client_session.cc File net/quic/quic_client_session.cc (right): https://codereview.chromium.org/1025573002/diff/60001/net/quic/quic_client_session.cc#newcode630 net/quic/quic_client_session.cc:630: ++number_of_handshakes_; I'm not sure that I understand what this ...
5 years, 9 months ago (2015-03-21 00:04:47 UTC) #6
ramant (doing other things)
Hi Ryan, Implemented what we had talked offline. Defaulted packet loss rate to 1000% (this ...
5 years, 9 months ago (2015-03-21 03:46:05 UTC) #8
Ryan Hamilton
Great progress. https://codereview.chromium.org/1025573002/diff/120001/net/http/http_network_session.cc File net/http/http_network_session.cc (right): https://codereview.chromium.org/1025573002/diff/120001/net/http/http_network_session.cc#newcode96 net/http/http_network_session.cc:96: quic_packet_loss_threshold(1000.0f), Is this value a percent or ...
5 years, 9 months ago (2015-03-23 02:31:07 UTC) #10
ramant (doing other things)
Thanks very much Ryan for explaining why we want to do by port. PTAL. Tested ...
5 years, 9 months ago (2015-03-24 03:07:22 UTC) #12
Ryan Hamilton
Looking good! Thanks for doing this! Can you ping alyssar or ianswett about if we ...
5 years, 9 months ago (2015-03-24 03:43:00 UTC) #13
ramant (doing other things)
Pinged alyssar and Ian. Will submit another CL with finch trial changes after their recommendation ...
5 years, 9 months ago (2015-03-24 17:19:24 UTC) #14
ramant (doing other things)
Hi Ryan, Added code to disable QUIC if N connections in a row are lossy ...
5 years, 9 months ago (2015-03-25 00:24:15 UTC) #15
ramant (doing other things)
On 2015/03/25 00:24:15, ramant wrote: > Hi Ryan, > Added code to disable QUIC if ...
5 years, 9 months ago (2015-03-26 17:37:01 UTC) #17
Mark P
https://codereview.chromium.org/1025573002/diff/200001/tools/metrics/histograms/histograms.xml File tools/metrics/histograms/histograms.xml (right): https://codereview.chromium.org/1025573002/diff/200001/tools/metrics/histograms/histograms.xml#newcode19794 tools/metrics/histograms/histograms.xml:19794: +<histogram name="Net.QuicStreamFactory.QuicIsDisabled"> enum=? https://codereview.chromium.org/1025573002/diff/200001/tools/metrics/histograms/histograms.xml#newcode19798 tools/metrics/histograms/histograms.xml:19798: + and when number ...
5 years, 9 months ago (2015-03-26 20:21:43 UTC) #18
Mark P
https://codereview.chromium.org/1025573002/diff/200001/net/quic/quic_stream_factory.cc File net/quic/quic_stream_factory.cc (right): https://codereview.chromium.org/1025573002/diff/200001/net/quic/quic_stream_factory.cc#newcode799 net/quic/quic_stream_factory.cc:799: UMA_HISTOGRAM_CUSTOM_COUNTS("Net.QuicStreamFactory.QuicIsDisabled", port, 0, Also, is there any way to ...
5 years, 9 months ago (2015-03-26 20:25:00 UTC) #19
ramant (doing other things)
PTAL. https://codereview.chromium.org/1025573002/diff/200001/net/quic/quic_stream_factory.cc File net/quic/quic_stream_factory.cc (right): https://codereview.chromium.org/1025573002/diff/200001/net/quic/quic_stream_factory.cc#newcode799 net/quic/quic_stream_factory.cc:799: UMA_HISTOGRAM_CUSTOM_COUNTS("Net.QuicStreamFactory.QuicIsDisabled", port, 0, On 2015/03/26 20:25:00, Mark P ...
5 years, 9 months ago (2015-03-26 21:03:35 UTC) #20
Mark P
https://codereview.chromium.org/1025573002/diff/220001/tools/metrics/histograms/histograms.xml File tools/metrics/histograms/histograms.xml (right): https://codereview.chromium.org/1025573002/diff/220001/tools/metrics/histograms/histograms.xml#newcode19901 tools/metrics/histograms/histograms.xml:19901: + and when number of consecutive lossy connections goes ...
5 years, 9 months ago (2015-03-26 21:23:06 UTC) #21
ramant (doing other things)
Thanks for the text (updated histograms.xml). https://codereview.chromium.org/1025573002/diff/220001/tools/metrics/histograms/histograms.xml File tools/metrics/histograms/histograms.xml (right): https://codereview.chromium.org/1025573002/diff/220001/tools/metrics/histograms/histograms.xml#newcode19901 tools/metrics/histograms/histograms.xml:19901: + and when ...
5 years, 9 months ago (2015-03-26 22:10:31 UTC) #22
Mark P
histograms.xml lgtm
5 years, 9 months ago (2015-03-26 22:20:35 UTC) #23
Ryan Hamilton
lgtm
5 years, 9 months ago (2015-03-27 03:04:36 UTC) #24
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-cq-status.appspot.com/patch-status/1025573002/240001
5 years, 8 months ago (2015-03-27 16:37:26 UTC) #26
commit-bot: I haz the power
Committed patchset #8 (id:240001)
5 years, 8 months ago (2015-03-27 20:22:35 UTC) #27
commit-bot: I haz the power
5 years, 8 months ago (2015-03-27 20:23:45 UTC) #28
Message was sent while issue was closed.
Patchset 8 (id:??) landed as
https://crrev.com/85dcfac2d1c911beb4c1d25caebf679581a9283f
Cr-Commit-Position: refs/heads/master@{#322630}

Powered by Google App Engine
This is Rietveld 408576698