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