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
Marten Seemann
af8c03ebaf
advertize the max_ack_delay in the transport parameters
2019-05-08 13:22:37 +09:00
Marten Seemann
f847c5422d
implement parsing and writing of the max_ack_delay transport parameter
2019-05-08 12:43:29 +09:00
Marten Seemann
b5336be518
rename retransmittable to ack-eliciting
2019-04-12 13:25:39 +09:00
Marten Seemann
7b02b87026
reject MAX_STREAMS frames with too large stream counts
2019-04-01 11:57:23 +09:00
Marten Seemann
e7ed5e3c92
implement the crypto stream for post-handshake crypto messages
2019-02-06 22:51:44 +08:00
Marten Seemann
6834c37462
move the maximum ack delay exponennt to the protocol constants
2019-01-28 16:37:00 +09:00
Marten Seemann
155ebd18a2
parse and send the ack_delay_exponent in the transport parameters
2019-01-28 16:09:47 +09:00
Marten Seemann
ee75f5e2f2
implement ACK frame parsing using an ack delay exponent
2019-01-28 16:09:47 +09:00
Marten Seemann
3f80870922
change the version number for the development version
...
This now uses the highest version number reserved for quic-go in
https://github.com/quicwg/base-drafts/wiki/QUIC-Versions .
2019-01-10 22:06:29 +07:00
Marten Seemann
90514d53d1
reject new connection attempts if the server's accept queue is full
2019-01-06 15:26:43 +07:00
Marten Seemann
c06a0ca037
rename InferPacketNumber to DecodePacketNumber
...
That's how it's called in the draft.
2018-12-14 16:46:40 +06:30
Marten Seemann
314056f6dd
increase mininum stateless reset size
2018-11-29 11:22:20 +07:00
Marten Seemann
46487e5267
remove unused constant NonForwardSecurePacketSizeReduction
2018-11-29 09:39:43 +07:00
Marten Seemann
aba2c3d031
remove all references to Public Resets in comments
2018-11-28 11:58:05 +07:00