Marten Seemann
bd6fd979a4
implement parsing and writing of varint packet numbers
2018-06-05 22:18:35 +02:00
Marten Seemann
530170430a
add support for QUIC 43
2018-06-05 12:41:56 +02:00
Marten Seemann
3370f9fa58
add support for QUIC 42
...
QUIC 42 accepts overlapping stream data. We've been doing this for some
time already, so we don't need any additional changes.
2018-06-02 19:49:28 +08:00
Marten Seemann
d06957b8d8
implement a prefix logger
2018-05-29 20:52:03 +08:00
Marten Seemann
5142b73ac3
Merge pull request #1370 from lucas-clemente/client-header-parsing
...
parse headers sent by the server without knowing the version
2018-05-29 16:43:52 +08:00
Marten Seemann
60ac4b809c
Merge pull request #1356 from lucas-clemente/fix-1355
...
allow empty STREAM frames at arbitrary offsets
2018-05-29 16:40:00 +08:00
Marten Seemann
372463db49
don't pass the client's version to the header parser
2018-05-21 11:27:15 +08:00
Marten Seemann
797dfa57a1
disable 6 byte packet number in Public Headers
...
Chrome never sends 6 byte packet numbers in Public Headers.
2018-05-21 11:26:08 +08:00
Marten Seemann
d1dd2a4a60
add logging to the ackhandler
2018-05-14 11:05:37 +09:00
Marten Seemann
5f5bb1f700
allow empty STREAM frames at arbitrary offsets
2018-05-11 11:08:08 +09:00
Marten Seemann
8f2fed1b10
parse IETF headers independent of the sender's perspective
...
The IETF header format allows parsing of the header without knowing
which peer sent the packet.
2018-05-09 13:28:30 +09:00
Marten Seemann
70f6e3651e
Merge pull request #1350 from lucas-clemente/split-packet-handling
...
split packet handling for gQUIC and IETF QUIC packets
2018-05-09 13:22:54 +09:00
Marten Seemann
08160ab18f
queue connection-level window updates from the flow controller directly
...
It is not sufficient to check for connection-level window updates every
time a packet is sent. When a connection-level window update needs to be
sent, we need to make sure that it gets sent immediately (i.e. call
scheduleSending() in the session).
2018-05-08 15:17:45 +09:00
Marten Seemann
2e8a5807ba
queue stream-level window updates from the flow controller directly
2018-05-08 15:17:45 +09:00
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