Marten Seemann
0615d92ede
only send Version Negotiation packets for packets larger than 1200 bytes
2020-10-08 16:22:39 +07:00
Marten Seemann
d5a30225ce
use a uint8 to represent the key phase bit
2020-10-06 15:27:56 +07:00
Marten Seemann
cc21f7c648
remove unused protocol.PacketNumberLenInvalid
2020-10-05 13:17:06 +07:00
Marten Seemann
bbd9fa4862
remove the EncryptionUnspecified enum value
2020-10-05 13:17:06 +07:00
Marten Seemann
a063500d73
use a package-level variable to set the key update frequency
2020-09-22 19:55:52 +07:00
Marten Seemann
ea3d32394d
read the ECN bits
2020-09-15 10:51:22 +07:00
Marten Seemann
fa4f0a9e7a
keep track of ECN counts on received packets
2020-09-14 17:01:34 +07:00
Marten Seemann
45246dad22
count number of failed decryptions, error when lifetime-limit is reached
2020-09-14 14:07:56 +07:00
Marten Seemann
12c9427f43
save dummy packets in the packet history when skipping packet numbers
2020-09-11 11:01:30 +07:00
Marten Seemann
dc3d5618fc
use a uint8 for the EncryptionLevel
2020-09-07 14:36:18 +07:00
Marten Seemann
d476067f65
fix overflow of the max_ack_delay when parsing transport parameters
2020-08-20 13:49:33 +07:00
Marten Seemann
a1bb39d6ab
introduce a protocol.StatelessResetToken
2020-07-10 19:55:20 +07:00
Marten Seemann
543c1049dd
increase the minimum pacing delay to 1ms
2020-06-15 10:14:55 +07:00
Marten Seemann
e7208219a9
reduce the length of the unprocessed packet chan in the session
2020-05-09 09:14:19 +07:00
Marten Seemann
73937e8753
Merge pull request #2349 from lucas-clemente/coalesced-packets
...
implement sending of coalesced packets
2020-02-20 16:53:33 +07:00
Marten Seemann
5aad7cae5d
send coalesced packets
2020-02-20 16:42:56 +07:00
Marten Seemann
643f0b4c67
drop incoming packets when the server's receive queue is full
2020-02-15 16:43:00 +07:00
Marten Seemann
ba095dd3ff
delete 0-RTT queues if no Initial is received within 100ms
2020-02-15 15:44:09 +07:00
Marten Seemann
2b7133a6e2
implement a queue for 0-RTT packets
2020-02-15 15:44:08 +07:00
Marten Seemann
8cde4ab638
refactor how session tickets are sent
...
Previously, RunHandshake() would send the session tickets. Now, the
session initiates the sending of the session ticket. This simplifies the
setup a bit, and it will make it possible to include the RTT estimate in
the session ticket without accessing the RTTStats concurrently.
2020-02-10 17:42:09 +07:00
Marten Seemann
31e4691ffd
move congestion controller related constants to the congestion package
2020-01-22 14:40:14 +07:00
Marten Seemann
b1f8b8f25d
increase the maximum congestion window to 10000 packets
2020-01-14 16:34:34 +07:00
Marten Seemann
b1fc984306
add a 0-RTT encryption level
2019-12-30 18:39:21 +04:00
Marten Seemann
bd94f21ab0
send keep alive PINGs at least every 20 seconds
2019-11-10 11:06:38 +07:00
Marten Seemann
9f5df74bd1
add a test that protocol.MaxStreamCount has the correct value
2019-11-08 11:42:24 +07:00
Marten Seemann
121795977d
implement issuing and retiring of connection IDs
2019-11-05 11:00:07 +07:00
Marten Seemann
011642e471
update the connection ID after sending 10000 packets
2019-11-05 10:59:21 +07:00
Marten Seemann
37600e049d
implement the active_connection_id_limit transport parameter
2019-11-05 10:59:21 +07:00
Julien Salleyron
f110af917b
Remove QUIC version hint
2019-10-21 17:18:02 +02:00
Julien Salleyron
3c08c885ae
Handle new version format
2019-10-13 22:50:53 +02:00
Marten Seemann
5ea33cd31e
implement a buffer pool for STREAM frames
2019-09-04 16:55:30 +07:00
Marten Seemann
d02fd5178a
adjust the minimum size for stateless resets to the new header format
2019-08-31 12:33:53 +07:00
Marten Seemann
9221149194
simplify how the largest acked is passed to the ackhandler
2019-08-21 14:40:38 +07:00
Marten Seemann
475ba63164
never keep track of more than 500 ACK ranges
...
This is achieved by deleting the oldest ACK ranges when receiving a
packet that creates a new ACK range such that this limit is exceeded.
2019-08-05 06:55:22 +07:00
Marten Seemann
dc33db1c18
implement the new header format
2019-07-09 13:04:40 +07:00
Marten Seemann
a2a4a216de
introduce an absolute key phase, use it for key updates
2019-06-30 17:36:09 +07:00
Marten Seemann
5a9c593463
rename the KeyPhase to KeyPhaseBit
2019-06-30 17:36:09 +07:00
Marten Seemann
a09c045324
initiate a key update after sending / receiving 100000 packets
2019-06-27 10:54:54 +08:00
Marten Seemann
14a31d49a0
add a type for the key phase and use it for header parsing and writing
2019-06-22 20:01:18 +08:00
Marten Seemann
d495b4bada
remove unused function GetPacketNumberLength
2019-06-21 20:13:59 +08:00
Marten Seemann
453aa23553
use a varint for the error code in the CONNECTION_CLOSE frame
2019-06-14 17:35:40 +08:00
Marten Seemann
857e4ae9a9
use stream numbers, not stream ids, in the stream maps
2019-06-05 20:01:51 +08:00
Marten Seemann
a8633a952c
introduce a type for the stream number
2019-06-05 17:45:17 +08:00
Marten Seemann
0dd26f4a4c
return the invalid stream ID if no streams are allowed
2019-06-05 15:17:30 +08:00
Marten Seemann
34543848f0
send a NEW_TOKEN from after completing the handshake (as a server)
2019-06-02 14:18:27 +08:00
Marten Seemann
1873503937
reduce the Retry token expiry time to 10 seconds
...
The expiry time used to be 24 hours before. The reason for this long
duration was that this included tokens that were issued to be used
between separate connections in gQUIC. At the moment, we are only
generating tokens for Retry packets, i.e. within a single connection.
They are therefore expected to be used within a single round trip.
2019-06-01 16:32:54 +08:00
Marten Seemann
1d6707325f
name the quic.Cookie to quic.Token
2019-05-30 22:13:06 +08:00
Marten Seemann
82acc7f2b7
introduce invalid stream ID to simplify the outgoing streams map
2019-05-30 03:16:45 +08:00
Marten Seemann
e06961266c
introduce an invalid packet number to simplify ackhandler and congestion
2019-05-14 06:41:13 +03:00
Marten Seemann
6c27967c8a
include the timer granularity in the advertised max_ack_delay
2019-05-08 13:26:08 +09:00