Marten Seemann
741dc28d74
move the RTTStats to the utils package
...
The RTTStats are used by the logging package. In order to instrument the
congestion package, the RTTStats can't be part of that package any more
(to avoid an import loop).
2020-07-23 11:53:08 +07:00
Marten Seemann
743ba962aa
reset the PTO count before setting the timer when dropping a PN space
2020-07-08 11:51:56 +07:00
Marten Seemann
fe622dd780
use a token bucket pacing algorithm
2020-06-22 14:31:37 +07:00
Marten Seemann
6299ef3ab1
use the receipt of a Retry packet to get a first RTT estimate
2020-06-05 16:29:23 +07:00
Marten Seemann
dda9c27d07
only send a single packet to unblock the server during the handshake
2020-06-01 12:39:36 +07:00
Marten Seemann
feb3e9a713
rename lastSentAckElicitingPacketTime to lastAckElicitingPacketTime
2020-06-01 11:18:57 +07:00
Marten Seemann
64ef72fd68
don't switch to PTO mode after early retransmit
2020-05-31 10:47:13 +07:00
Marten Seemann
ee8a0aeb1b
improve unit tests for early retransmit
2020-05-31 10:43:04 +07:00
Marten Seemann
60a918a108
limit available window to 3x of received bytes before address validation
2020-05-27 09:40:50 +07:00
Marten Seemann
b7af419bd0
Merge pull request #2527 from lucas-clemente/reset-pto-when-dropping-packet-number-space
...
reset the PTO when dropping a packet number space
2020-05-05 18:13:45 +07:00
Marten Seemann
741a1aa211
reset the PTO when dropping a packet number space
2020-05-05 16:28:25 +07:00
Marten Seemann
538cbf7dc0
don't reset the PTO count on Initial ACKs before address validation
2020-05-01 09:58:34 +07:00
Marten Seemann
15a19f681d
add a unit test for resetting of the PTO count when receiving an ACK
2020-05-01 09:54:03 +07:00
Marten Seemann
d1d4e5ce02
reset the PTO count when receiving a Retry
2020-04-17 15:15:11 +07:00
Marten Seemann
c4c372744a
correctly set anti-deadlock timer after the Initial space was dropped
2020-04-02 15:04:08 +07:00
Marten Seemann
c10af76a4a
Merge pull request #2455 from lucas-clemente/loss-before-ack
...
notify the congestion controller of losses first
2020-04-02 14:38:39 +07:00
Marten Seemann
269f14d86c
notify the congestion controller of losses first
2020-04-01 17:33:29 +07:00
Marten Seemann
e942a590fd
rename peerNotAwaitingAddressValidation to peerCompletedAddressValidation
2020-03-31 08:30:16 +07:00
Marten Seemann
cdf2449785
don't send anti-deadlock packet after handshake confirmation
2020-03-11 15:08:01 +07:00
Marten Seemann
cef5416356
reset the PTO count when dropping a packet number space
2020-03-05 08:48:33 +07:00
Marten Seemann
24b840f56d
fix dropping of the Initial packet number space for clients
2020-02-24 13:57:54 +07:00
Marten Seemann
f317a471bb
use a single constructor for SentPacketHandler and ReceivedPacketHandler
2020-02-21 15:45:24 +07:00
Marten Seemann
e97e3040ed
make sure the client sends packets to unblock the server
2020-02-21 12:29:11 +07:00
Marten Seemann
d20c1bfaed
remove unused parameter from SentPacketHandler.ReceivedAck
2020-02-21 10:05:17 +07:00
Marten Seemann
1692adb142
fix unit tests for the early retransmit timer
2020-02-18 12:04:27 +07:00
Marten Seemann
f13ca7e791
qlog loss recovery metrics
2020-02-12 10:42:38 +07:00
Marten Seemann
2473eb0895
queue 0-RTT packets for retransmission when 0-RTT is rejected
2020-01-30 09:11:44 +07:00
Marten Seemann
951477af92
queue 0-RTT packets for retransmission after receiving a Retry
2020-01-01 18:04:02 +04:00
Marten Seemann
b25b2f6921
use the same packet number space for sent 0-RTT and 1-RTT packets
2019-12-30 18:39:21 +04:00
Marten Seemann
e586a6cc8f
reset the loss detection timer when dropping a packet number space
2019-11-23 10:40:02 +07:00
Marten Seemann
f3e3def599
don't send application data probe packets before the handshake completes
2019-11-12 14:12:24 +07:00
Marten Seemann
9c3b553e47
change PTO to be per packet number space
2019-11-12 11:29:51 +07:00
Marten Seemann
4cb8bf3101
put STREAM frames back into the pool when they are acknowledged
2019-09-07 16:31:52 +07:00
Marten Seemann
3525a51ada
add an OnAcked callback to ackhandler.Frames
2019-08-31 17:34:54 +07:00
Marten Seemann
1d392b4276
retransmit frames instead of packets
2019-08-29 15:00:10 +07:00
Marten Seemann
5fa38a83fa
remove tracking of which packet is retransmission of which other packet
2019-08-26 14:38:37 +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
1a9b568177
implement packet-threshhold based loss detection
2019-08-13 08:35:48 +07:00
Marten Seemann
0e4b25958f
use early retransmit for crypto packets
2019-08-08 15:47:51 +07:00
Marten Seemann
792983dec6
merge crypto and PTO timeout
2019-07-31 07:59:12 +07:00
Marten Seemann
91e57fe6c9
use early retransmit in every packet number space
2019-07-25 17:51:45 -04:00
Marten Seemann
f150ed4d4e
rename sentPacketHandler functions to match the recovery draft
2019-07-25 17:10:47 -04:00
Marten Seemann
66abcdfc5c
move calculation of the PTO to the rttStats
...
The PTO value is needed at various places in the protocol. Calculating
it on the rttStats struct will allow us to pass around this struct.
2019-06-29 14:57:24 +07:00
Marten Seemann
4366eac105
don't include the exponential backoff in the PTO calculation
...
According to the spec, the PTO is defined without the backoff. The
backoff is applied when setting the PTO alarm.
2019-06-29 14:02:05 +07:00
Marten Seemann
b5764f22a2
save the max_ack_delay in the rttStats
2019-06-29 13:40:56 +07:00
Marten Seemann
7c7b1ba9c7
add tracing for lost packets
2019-06-20 22:58:01 +08:00
Marten Seemann
a4989c3d9c
drop Initial and Handshake keys when receiving the first 1-RTT ACK
2019-05-30 14:19:26 +08:00
Marten Seemann
4d5b4fd790
add a function to drop sent packets of a certain encryption level
2019-05-30 13:47:16 +08:00
Marten Seemann
195bdc9944
remove unused handshakeComplete member variable from sent packet handler
2019-05-30 13:47:16 +08:00
Marten Seemann
ea33339d26
correct the bytes in flight when dropping crypto packets
2019-05-30 01:47:03 +08:00