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

Issue 103973007: Land Recent QUIC Changes. (Closed)

Created:
7 years ago by ramant (doing other things)
Modified:
7 years ago
Reviewers:
Ryan Hamilton
CC:
chromium-reviews, cbentzel+watch_chromium.org
Visibility:
Public.

Description

Land Recent QUIC Changes. Temporarily change the maximum server initial congestion window to 10 from 100, because many existing Chrome clients are still negotiating 100, causing visible performance issues, particularly for YouTube rebuffers. Merge internal change: 57996291 https://codereview.chromium.org/102373005/ Merge the QUIC unacked packet map with the unacked fec packet map and merge the retransmission timer with the discard fec timer. Merge internal change: 57978547 https://codereview.chromium.org/114683002/ Pool 64 bits of entropy instead of calling OpenSSL's RNG for one bit when creating packets. Clean up the entropy bit while I'm at it. Changes: 1. QuicPacketCreator buffers 64 bits of entropy and consumes them one-at-a-time. This should resolve the performance issue. Covered this with a unit test. Removed the RandBool call from QuicRandom. 2. The first packet gets a random entropy bit. We used to never set it because we failed to test it properly. This was sad because the first packet deserves the most protection. 3. The entropy hash computation had a TODO to make it stronger, but I'm convinced the current algorithm is in fact sound. Removed the TODO and tightened up the implementation to avoid an unpredictable branch (no behavior change!) Also covered by the test. 4. Fixed the bugs in QuicConnectionTest that prevented setting the bit in the first packet. Switched tests to properly use MockRandom. Merge internal change: 57908681 https://codereview.chromium.org/109323006/ Minor change of QUIC's RTO behavior to not change the congestion window when the RTO fires, but there are no retransmittable packets. Merge internal change: 57907460 https://codereview.chromium.org/99583006/ QuicSentPacketManager cleanup to simplify OnAbandonFECTimeout() and remove unused DefaultRetransmissionTime(). Merge internal change: 57897409 https://codereview.chromium.org/110383006/ Minor cleanup of QuicSpdyServerStream and QuicSpdyClientStream. Merge internal change: 57834426 https://codereview.chromium.org/105103007/ Break out the basic reliable QUIC stream functionality from the headers-capable QUIC stream functionality. The crypto stream does not do have header processing, and and the soon-to-be-written headers stream will not have header processing in the way that data streams do. No functionality change. Refactor ReliableQuicStream class. Merge internal change: 57796557 https://codereview.chromium.org/100173005/ Merge ReliableQuicStream::WriteData with ReliableQuicStream::WriteOrBuffer, and make this method non-virtual. It turns out the only cases where it was overridden could easily be worked around. Remove ReliableQuicStream::WriteDataInternal and use a MakeIovec helper to work around it. Rename ReliableQuicStream::WritevDataInternal to ReliableQuicStream::WritevData. Rename QuicStream::WritevData to QuicStream::Writev. Cleanup of the various Write methods in ReliableQuicStream. Merge internal change: 57753091 https://codereview.chromium.org/112343002/ Cleanup of QUIC stream classes. Remove abstract QuicReliableClientStream class and fold it into the derived QuicSpdyClientStream class. Remove abstract QuicReliableServerStream class and fold it into the derived QuicSpdyServerStream class. Merge internal change: 57751931 https://codereview.chromium.org/111073003/ R=rch@chromium.org Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=240569

Patch Set 1 #

Patch Set 2 : Fix for android compile error #

Unified diffs Side-by-side diffs Delta from patch set Stats (+1513 lines, -2049 lines) Patch
M net/net.gyp View 5 chunks +6 lines, -6 lines 0 comments Download
M net/quic/crypto/quic_random.h View 1 chunk +0 lines, -3 lines 0 comments Download
M net/quic/crypto/quic_random.cc View 2 chunks +0 lines, -7 lines 0 comments Download
M net/quic/quic_client_session.h View 2 chunks +2 lines, -3 lines 0 comments Download
M net/quic/quic_client_session.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/quic_client_session_test.cc View 3 chunks +5 lines, -5 lines 0 comments Download
M net/quic/quic_connection.h View 3 chunks +3 lines, -10 lines 0 comments Download
M net/quic/quic_connection.cc View 10 chunks +15 lines, -55 lines 0 comments Download
M net/quic/quic_connection_test.cc View 18 chunks +80 lines, -17 lines 0 comments Download
M net/quic/quic_crypto_client_stream_test.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/quic_crypto_server_stream_test.cc View 2 chunks +2 lines, -2 lines 0 comments Download
M net/quic/quic_crypto_stream.h View 1 chunk +2 lines, -1 line 0 comments Download
M net/quic/quic_crypto_stream.cc View 3 chunks +7 lines, -3 lines 0 comments Download
M net/quic/quic_crypto_stream_test.cc View 2 chunks +4 lines, -4 lines 0 comments Download
A net/quic/quic_data_stream.h View 1 chunk +140 lines, -0 lines 0 comments Download
A net/quic/quic_data_stream.cc View 1 chunk +333 lines, -0 lines 0 comments Download
A + net/quic/quic_data_stream_test.cc View 16 chunks +18 lines, -129 lines 0 comments Download
M net/quic/quic_framer.cc View 2 chunks +4 lines, -9 lines 0 comments Download
M net/quic/quic_http_stream_test.cc View 3 chunks +3 lines, -3 lines 0 comments Download
M net/quic/quic_network_transaction_unittest.cc View 4 chunks +4 lines, -3 lines 0 comments Download
M net/quic/quic_packet_creator.h View 2 chunks +2 lines, -1 line 0 comments Download
M net/quic/quic_packet_creator.cc View 2 chunks +38 lines, -8 lines 0 comments Download
M net/quic/quic_packet_creator_test.cc View 4 chunks +26 lines, -2 lines 0 comments Download
M net/quic/quic_protocol.h View 1 chunk +3 lines, -1 line 0 comments Download
M net/quic/quic_reliable_client_stream.h View 5 chunks +5 lines, -5 lines 0 comments Download
M net/quic/quic_reliable_client_stream.cc View 3 chunks +3 lines, -3 lines 0 comments Download
M net/quic/quic_reliable_client_stream_test.cc View 3 chunks +7 lines, -5 lines 0 comments Download
M net/quic/quic_sent_packet_manager.h View 8 chunks +15 lines, -40 lines 0 comments Download
M net/quic/quic_sent_packet_manager.cc View 1 10 chunks +30 lines, -90 lines 0 comments Download
M net/quic/quic_sent_packet_manager_test.cc View 24 chunks +107 lines, -72 lines 0 comments Download
M net/quic/quic_session.h View 7 chunks +15 lines, -14 lines 0 comments Download
M net/quic/quic_session.cc View 10 chunks +26 lines, -12 lines 0 comments Download
M net/quic/quic_session_test.cc View 13 chunks +31 lines, -30 lines 0 comments Download
M net/quic/quic_stream_factory_test.cc View 4 chunks +5 lines, -4 lines 0 comments Download
M net/quic/quic_stream_sequencer_test.cc View 20 chunks +30 lines, -29 lines 0 comments Download
M net/quic/reliable_quic_stream.h View 7 chunks +24 lines, -114 lines 0 comments Download
M net/quic/reliable_quic_stream.cc View 9 chunks +12 lines, -311 lines 0 comments Download
M net/quic/reliable_quic_stream_test.cc View 8 chunks +12 lines, -345 lines 0 comments Download
M net/quic/test_tools/mock_random.h View 2 chunks +4 lines, -3 lines 0 comments Download
M net/quic/test_tools/mock_random.cc View 2 chunks +8 lines, -6 lines 0 comments Download
M net/quic/test_tools/quic_connection_peer.h View 1 chunk +0 lines, -1 line 0 comments Download
M net/quic/test_tools/quic_connection_peer.cc View 2 chunks +1 line, -5 lines 0 comments Download
A net/quic/test_tools/quic_data_stream_peer.h View 1 chunk +30 lines, -0 lines 0 comments Download
A net/quic/test_tools/quic_data_stream_peer.cc View 1 chunk +19 lines, -0 lines 0 comments Download
M net/quic/test_tools/quic_sent_packet_manager_peer.h View 1 chunk +3 lines, -0 lines 0 comments Download
M net/quic/test_tools/quic_sent_packet_manager_peer.cc View 1 chunk +10 lines, -0 lines 0 comments Download
M net/quic/test_tools/quic_test_utils.h View 2 chunks +4 lines, -6 lines 0 comments Download
M net/quic/test_tools/reliable_quic_stream_peer.h View 1 chunk +0 lines, -2 lines 0 comments Download
M net/quic/test_tools/reliable_quic_stream_peer.cc View 1 chunk +0 lines, -6 lines 0 comments Download
M net/tools/quic/end_to_end_test.cc View 2 chunks +2 lines, -1 line 0 comments Download
M net/tools/quic/quic_client.h View 6 chunks +5 lines, -9 lines 0 comments Download
M net/tools/quic/quic_client.cc View 4 chunks +8 lines, -8 lines 0 comments Download
M net/tools/quic/quic_client_session.h View 4 chunks +3 lines, -6 lines 0 comments Download
M net/tools/quic/quic_client_session.cc View 4 chunks +3 lines, -4 lines 0 comments Download
M net/tools/quic/quic_client_session_test.cc View 3 chunks +6 lines, -6 lines 0 comments Download
D net/tools/quic/quic_reliable_client_stream.h View 1 chunk +0 lines, -66 lines 0 comments Download
D net/tools/quic/quic_reliable_client_stream.cc View 1 chunk +0 lines, -27 lines 0 comments Download
D net/tools/quic/quic_reliable_client_stream_test.cc View 1 chunk +0 lines, -96 lines 0 comments Download
D net/tools/quic/quic_reliable_server_stream.h View 1 chunk +0 lines, -66 lines 0 comments Download
D net/tools/quic/quic_reliable_server_stream.cc View 1 chunk +0 lines, -56 lines 0 comments Download
D net/tools/quic/quic_reliable_server_stream_test.cc View 1 chunk +0 lines, -230 lines 0 comments Download
M net/tools/quic/quic_server_session.h View 1 chunk +3 lines, -4 lines 0 comments Download
M net/tools/quic/quic_server_session.cc View 3 chunks +5 lines, -4 lines 0 comments Download
M net/tools/quic/quic_server_session_test.cc View 5 chunks +11 lines, -12 lines 0 comments Download
M net/tools/quic/quic_spdy_client_stream.h View 1 chunk +31 lines, -8 lines 0 comments Download
M net/tools/quic/quic_spdy_client_stream.cc View 7 chunks +23 lines, -12 lines 0 comments Download
A + net/tools/quic/quic_spdy_client_stream_test.cc View 6 chunks +9 lines, -10 lines 0 comments Download
M net/tools/quic/quic_spdy_server_stream.h View 3 chunks +26 lines, -7 lines 0 comments Download
M net/tools/quic/quic_spdy_server_stream.cc View 5 chunks +51 lines, -18 lines 0 comments Download
M net/tools/quic/quic_spdy_server_stream_test.cc View 2 chunks +214 lines, -8 lines 0 comments Download
M net/tools/quic/test_tools/quic_test_client.h View 4 chunks +5 lines, -5 lines 0 comments Download
M net/tools/quic/test_tools/quic_test_client.cc View 4 chunks +4 lines, -4 lines 0 comments Download
M net/tools/quic/test_tools/quic_test_utils.h View 1 chunk +2 lines, -3 lines 0 comments Download

Messages

Total messages: 5 (0 generated)
ramant (doing other things)
7 years ago (2013-12-13 02:02:43 UTC) #1
ramant (doing other things)
Updated the description.
7 years ago (2013-12-13 02:53:26 UTC) #2
Ryan Hamilton
lgtm
7 years ago (2013-12-13 04:17:17 UTC) #3
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/rtenneti@chromium.org/103973007/20001
7 years ago (2013-12-13 05:29:11 UTC) #4
commit-bot: I haz the power
7 years ago (2013-12-13 09:25:02 UTC) #5
Message was sent while issue was closed.
Change committed as 240569

Powered by Google App Engine
This is Rietveld 408576698