Chromium Code Reviews
[email protected] (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(412)

Issue 14718011: Land Recent QUIC Changes (Closed)

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

Description

Land Recent QUIC Changes Alter the serialisation format of the crypto messages. This changes the format of the crypto messages so that: * We can cope with > 65K values in order to be robust to post-quantum algorithms in the future. * Rather than encoding lengths, we encode the offset one byte past the end of the value. This allows an implementation to binary search the header without having to do all the allocation and copying the we currently do. Merge internal change: 44699015 Automated rollback of changelist 44685914. Rollback: Bugfix infinite wait Merge internal change: 44693957 QUIC: retransmit packets with the correct encryption. This change does four things: * Splits the concept of a completed handshake in two: when encryption is established and when the server has confirmed the handshake. In order to do 0-RTT, we have to start sending after the first of those events. * Retransmits packets using the same encryption level as they were sent with. Without this, the loss of a client hello message is fatal to the connection because it will be retransmitted under encryption and the server will never be able to process it. * Makes decryption failures an ignored error. This is needed because, if a client hello message is lost, the subsequent packets will be encrypted and the server won't have the decrypter to process them. * Changes how decrypters are handled by the framer. A server now replaces its decrypter completely - thus removing the NullDecrypter. The client now has latching alternative decrypters which replace the primary decrypter when used. This doesn't completely close the hole: the connection still needs to worry about plaintext packets injected into the client. This change does not implement the correct fallback for the server rejecting a full client hello. It also doesn't implement a limit for the number of packets that we'll send without the server confirming the handshake. I'm hoping that rch can do that much more easily than I can! Merge internal change: 44690884 [email protected] Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=198099

Patch Set 1 #

Unified diffs Side-by-side diffs Delta from patch set Stats (+919 lines, -452 lines) Patch
M net/quic/congestion_control/tcp_cubic_sender.cc View 1 chunk +0 lines, -1 line 0 comments Download
M net/quic/crypto/crypto_framer.h View 3 chunks +6 lines, -8 lines 0 comments Download
M net/quic/crypto/crypto_framer.cc View 6 chunks +54 lines, -57 lines 0 comments Download
M net/quic/crypto/crypto_framer_test.cc View 11 chunks +77 lines, -57 lines 0 comments Download
M net/quic/crypto/crypto_protocol.h View 1 chunk +1 line, -1 line 0 comments Download
M net/quic/quic_client_session.h View 1 chunk +4 lines, -1 line 0 comments Download
M net/quic/quic_client_session.cc View 5 chunks +21 lines, -5 lines 0 comments Download
M net/quic/quic_client_session_test.cc View 3 chunks +9 lines, -12 lines 0 comments Download
M net/quic/quic_connection.h View 4 chunks +47 lines, -35 lines 0 comments Download
M net/quic/quic_connection.cc View 13 chunks +53 lines, -20 lines 0 comments Download
M net/quic/quic_connection_helper_test.cc View 4 chunks +7 lines, -8 lines 0 comments Download
M net/quic/quic_connection_test.cc View 25 chunks +215 lines, -30 lines 0 comments Download
M net/quic/quic_crypto_client_stream.h View 1 chunk +0 lines, -6 lines 0 comments Download
M net/quic/quic_crypto_client_stream.cc View 5 chunks +26 lines, -18 lines 0 comments Download
M net/quic/quic_crypto_client_stream_test.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M net/quic/quic_crypto_server_stream.cc View 2 chunks +12 lines, -7 lines 0 comments Download
M net/quic/quic_crypto_server_stream_test.cc View 2 chunks +4 lines, -2 lines 0 comments Download
M net/quic/quic_crypto_stream.h View 1 chunk +4 lines, -3 lines 0 comments Download
M net/quic/quic_crypto_stream.cc View 3 chunks +4 lines, -8 lines 0 comments Download
M net/quic/quic_crypto_stream_test.cc View 2 chunks +3 lines, -2 lines 0 comments Download
M net/quic/quic_framer.h View 3 chunks +34 lines, -14 lines 0 comments Download
M net/quic/quic_framer.cc View 5 chunks +67 lines, -21 lines 0 comments Download
M net/quic/quic_framer_test.cc View 7 chunks +13 lines, -7 lines 0 comments Download
M net/quic/quic_http_stream_test.cc View 3 chunks +4 lines, -7 lines 0 comments Download
M net/quic/quic_network_transaction_unittest.cc View 3 chunks +70 lines, -14 lines 0 comments Download
M net/quic/quic_packet_creator_test.cc View 2 chunks +4 lines, -11 lines 0 comments Download
M net/quic/quic_packet_generator_test.cc View 1 chunk +1 line, -5 lines 0 comments Download
M net/quic/quic_protocol.h View 3 chunks +20 lines, -0 lines 0 comments Download
M net/quic/quic_protocol.cc View 2 chunks +7 lines, -1 line 0 comments Download
M net/quic/quic_session.h View 2 chunks +34 lines, -7 lines 0 comments Download
M net/quic/quic_session.cc View 1 chunk +7 lines, -4 lines 0 comments Download
M net/quic/quic_session_test.cc View 2 chunks +6 lines, -4 lines 0 comments Download
M net/quic/quic_stream_factory_test.cc View 2 chunks +6 lines, -14 lines 0 comments Download
M net/quic/quic_utils.cc View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/test_tools/crypto_test_utils.cc View 2 chunks +24 lines, -17 lines 0 comments Download
M net/quic/test_tools/mock_crypto_client_stream.h View 2 chunks +20 lines, -4 lines 0 comments Download
M net/quic/test_tools/mock_crypto_client_stream.cc View 2 chunks +15 lines, -3 lines 0 comments Download
M net/quic/test_tools/mock_crypto_client_stream_factory.h View 2 chunks +11 lines, -0 lines 0 comments Download
M net/quic/test_tools/mock_crypto_client_stream_factory.cc View 2 chunks +5 lines, -2 lines 0 comments Download
M net/quic/test_tools/quic_test_utils.h View 1 chunk +1 line, -0 lines 0 comments Download
M net/quic/test_tools/quic_test_utils.cc View 2 chunks +2 lines, -5 lines 0 comments Download
M net/quic/test_tools/simple_quic_framer.cc View 2 chunks +3 lines, -6 lines 0 comments Download
M net/tools/quic/quic_client.h View 1 chunk +4 lines, -4 lines 0 comments Download
M net/tools/quic/quic_client.cc View 2 chunks +3 lines, -3 lines 0 comments Download
M net/tools/quic/quic_client_session.cc View 1 chunk +2 lines, -2 lines 0 comments Download
M net/tools/quic/quic_epoll_connection_helper_test.cc View 3 chunks +3 lines, -11 lines 0 comments Download
M net/tools/quic/quic_time_wait_list_manager.cc View 1 chunk +1 line, -3 lines 0 comments Download

Messages

Total messages: 10 (0 generated)
ramant (doing other things)
7 years, 7 months ago (2013-05-02 18:31:03 UTC) #1
Ryan Hamilton
rubber stamp lgtm, since I believe I reviewed all the constituent CLs
7 years, 7 months ago (2013-05-02 18:32:28 UTC) #2
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/[email protected]/14718011/1
7 years, 7 months ago (2013-05-02 18:33:26 UTC) #3
commit-bot: I haz the power
Retried try job too often on linux_chromeos for step(s) browser_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=linux_chromeos&number=109976
7 years, 7 months ago (2013-05-02 21:11:45 UTC) #4
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/[email protected]/14718011/1
7 years, 7 months ago (2013-05-02 21:18:34 UTC) #5
commit-bot: I haz the power
Retried try job too often on linux_chromeos for step(s) browser_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=linux_chromeos&number=110155
7 years, 7 months ago (2013-05-03 03:14:16 UTC) #6
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/[email protected]/14718011/1
7 years, 7 months ago (2013-05-03 03:16:37 UTC) #7
commit-bot: I haz the power
Retried try job too often on linux_chromeos for step(s) browser_tests http://build.chromium.org/p/tryserver.chromium/buildstatus?builder=linux_chromeos&number=110376
7 years, 7 months ago (2013-05-03 09:33:42 UTC) #8
commit-bot: I haz the power
CQ is trying da patch. Follow status at https://chromium-status.appspot.com/cq/[email protected]/14718011/1
7 years, 7 months ago (2013-05-03 11:26:01 UTC) #9
commit-bot: I haz the power
7 years, 7 months ago (2013-05-03 13:11:50 UTC) #10
Message was sent while issue was closed.
Change committed as 198099

Powered by Google App Engine
This is Rietveld 408576698