Commit Graph

345 Commits

Author SHA1 Message Date
Marten Seemann
683b5823e4 handle gQUIC and IETF QUIC packets separately in the client 2018-05-08 15:17:16 +09:00
Marten Seemann
b93827ca60 Merge pull request #1343 from lucas-clemente/log-conn-flow-control-ensure-min-increases
log all connection flow control window increases
2018-05-08 14:58:33 +09:00
Marten Seemann
5e5a4a9c77 Merge pull request #1346 from lucas-clemente/crypto-setup-logging
add some logging to the gQUIC crypto setups
2018-05-08 14:48:17 +09:00
Marten Seemann
e7f88efd2c Merge pull request #1344 from lucas-clemente/header-logging
indent header log entries using tabs, not spaces
2018-05-08 14:25:23 +09:00
Marten Seemann
924bcc5914 add some logging to the client's crypto setup 2018-05-08 14:24:38 +09:00
Marten Seemann
39757c1a1a add some logging to the server's crypto setup 2018-05-08 14:24:38 +09:00
Marten Seemann
628f878b79 Merge pull request #1342 from lucas-clemente/fix-stream-flow-control-logging
fix logging of stream flow control window increases
2018-05-08 07:25:38 +09:00
Marten Seemann
94c48d371a indent header log entries using tabs, not spaces 2018-05-07 09:11:34 +09:00
Marten Seemann
7d1f17e5d6 log all connection flow control window increases 2018-05-06 22:07:54 +09:00
Marten Seemann
a7591e2370 fix logging of stream flow control window increases 2018-05-06 21:52:41 +09:00
Marten Seemann
f29c37b951 rename the constants for the max stream ids in the transport parameters
No functional change expected.
2018-05-06 12:13:04 +09:00
Marten Seemann
a58cfd64e9 Merge pull request #1336 from lucas-clemente/congestion-in-bytes
switch to a byte-based congestion controller
2018-05-05 14:57:51 +09:00
Marten Seemann
45d5acef14 Merge pull request #1333 from lucas-clemente/acks-for-delayed-packets
don't send an ACK when receiving a packet that wouldn't be acked
2018-05-05 14:54:11 +09:00
Marten Seemann
1b9ac93c13 Merge pull request #1331 from lucas-clemente/fix-1330
set the ACK frame delay time when generating the frame
2018-05-05 14:23:50 +09:00
Marten Seemann
bd032826ca Merge pull request #1334 from lucas-clemente/cleanup-rtt-stats
remove unused functions from the RTT stats
2018-05-05 14:17:12 +09:00
Marten Seemann
2b97fb41c9 switch to a byte-based congestion controller
Chrome removed the packet-based congestion controller and switched to
byte-based as well.
2018-05-02 23:45:23 +09:00
Marten Seemann
3cd6cc3e9f move the initial RTT estimate to the congestion package 2018-05-01 18:57:05 +09:00
Marten Seemann
4a7bab9ffe remove unused functions from the RTT stats
These functions are not used anywhere, and were removed from Chromium
code as well.
2018-05-01 18:50:28 +09:00
Marten Seemann
5140addd8a don't send an ACK when receiving a packet that wouldn't be acked
There's a lower bound which packets get acknowledged in an ACK frame.
When receiving a packet smaller than that bound, which was reported
missing before, it's not necessary to immediately queue an ACK, since it
wouldn't be included in the ACK frame anyway.
2018-05-01 12:32:44 +09:00
Marten Seemann
b83a4c069d improve logging of ACK frames with ranges 2018-05-01 11:40:10 +09:00
Marten Seemann
ee968aff67 set the ACK frame delay time when generating the frame 2018-04-30 21:50:33 +09:00
Lucas Clemente
5907bfa168 Fix KEX test on windows
This makes the code rotate the key if `time.Since(kexCurrentTime) == kexLifetime`, which prevents an issue with low-resolution clocks (e.g. in our appveyor tests).
2018-04-30 11:14:46 +02:00
Lucas Clemente
0d8f0be92b Fix unnecessary stack growth when parsing frames 2018-04-30 10:28:18 +02:00
Marten Seemann
1420b138d5 implement TLPs 2018-04-25 20:47:18 +09:00
Marten Seemann
0c014c0aff fix deadlock when receiving two packets with diversification nonces 2018-04-24 21:14:58 +09:00
Marten Seemann
596ef35a80 implement parsing and writing of the Payload Length Long Header field 2018-04-23 17:39:03 +09:00
Marten Seemann
0e58a679d6 Merge pull request #1319 from lucas-clemente/fix-1307
use different source and destination connection IDs
2018-04-23 17:29:45 +09:00
Marten Seemann
b1de5df2f8 Merge pull request #1311 from lucas-clemente/fix-1302
limit the size of the ACK frame
2018-04-23 17:23:52 +09:00
Marten Seemann
cb0395ae37 Merge pull request #1316 from lucas-clemente/fix-1310
implement PATH_CHALLENGE and PATH_RESPONSE frames
2018-04-23 17:13:39 +09:00
Marten Seemann
126de06cc0 Merge pull request #1320 from lucas-clemente/fix-vnp-logging
fix logging of version negotiation packets
2018-04-23 17:00:25 +09:00
Marten Seemann
f353658547 limit the size of an ACK frame to 1000 bytes 2018-04-23 16:44:39 +09:00
Marten Seemann
4891b65c4b refactor calculation of ACK ranges into a separate function 2018-04-23 16:44:38 +09:00
Marten Seemann
83b670841a Merge pull request #1318 from lucas-clemente/fix-1317
fix flaky key exchange generation test on AppVeyor
2018-04-23 16:41:30 +09:00
Marten Seemann
108e574581 implement parsing and writing of the PATH_RESPONSE frame 2018-04-23 16:41:06 +09:00
Marten Seemann
f53f3eee9f implement parsing and writing of the PATH_CHALLENGE frame 2018-04-23 16:41:06 +09:00
Marten Seemann
804eac7348 fix logging of version negotiation packets 2018-04-23 16:37:59 +09:00
Marten Seemann
cd359ec5e0 change the type byte of the IETF ACK frame from 0x0e to 0x0d 2018-04-23 15:57:50 +09:00
Marten Seemann
fae32101a0 use different source and destination connection IDs 2018-04-23 15:23:01 +09:00
Marten Seemann
118509cf76 fix flaky key exchange generation test on AppVeyor 2018-04-22 18:36:22 +09:00
Marten Seemann
c1d8c8940e Merge pull request #1306 from lucas-clemente/new-header
implement the new IETF QUIC packet header
2018-04-19 18:15:15 +09:00
Marten Seemann
1ec873f917 use binary search to check if an ACK acks a packet 2018-04-19 17:36:12 +09:00
Marten Seemann
d47124d14d add more methods to the protocol.ConnectionID
This will make it easier to change the underlying type of the connection
ID (potentially an array is faster than a byte slice).
2018-04-19 16:08:06 +09:00
Marten Seemann
74ccd194f7 remove the omit_connection_id TLS transport parameter 2018-04-19 13:47:02 +09:00
Marten Seemann
52d31dd7ef implement the new header format
Currently, we're only sending and accepting packets with matching source
and destination connection IDs.
2018-04-19 13:46:54 +09:00
Marten Seemann
1a035a265c change the type of Connection ID to byte slice 2018-04-18 22:41:24 +09:00
Marten Seemann
52c3e6e863 remove the {Lowest, Largest}Acked from the ACK frame
All ACK ranges are now saved in the AckRanges slices. This eliminates a
bunch of special cases for ACKs that don't report any packets missing.
2018-04-18 13:19:42 +09:00
Marten Seemann
7de877fc3f remove duplicate test cases for the legacy ACK frame 2018-04-18 12:25:26 +09:00
Marten Seemann
ca896f953a rename AckRange.{First, Last} to AckRange.{Smallest, Largest} 2018-04-18 12:25:26 +09:00
Marten Seemann
af8971d8c9 move connection ID generation from the utils to the protocol package 2018-04-17 20:21:06 +09:00
Marten Seemann
f052861775 only allow sending of retransmissions if these are RTO probe packets 2018-04-17 19:58:53 +09:00