Commit Graph

239 Commits

Author SHA1 Message Date
Marten Seemann
0c2f562411 allow an amplification factor of 3.x 2020-11-06 14:16:11 +07:00
Marten Seemann
6d00bdff3f Merge pull request #2841 from lucas-clemente/pad-server-initials
pad datagrams containing ack-eliciting Initial packets sent by the server
2020-10-30 15:12:03 +07:00
Marten Seemann
8752576f26 run gofumpt, enable the gofumpt linter 2020-10-26 09:33:35 +07:00
Marten Seemann
876ccd899b CONNECTION_CLOSE frames are not ack-eliciting 2020-10-25 13:22:33 +07:00
Marten Seemann
55a07c34ee add the exhaustive linter 2020-10-05 13:47:57 +07:00
Marten Seemann
bbd9fa4862 remove the EncryptionUnspecified enum value 2020-10-05 13:17:06 +07:00
Marten Seemann
6ecbc4186e Merge pull request #2786 from lucas-clemente/fix-flaky-packet-number-skipping-test
fix flaky packet number skipping test
2020-09-17 23:02:25 +07:00
Marten Seemann
5eaab73043 fix flaky packet number skipping test 2020-09-15 10:58:12 +07:00
Marten Seemann
fa4f0a9e7a keep track of ECN counts on received packets 2020-09-14 17:01:34 +07:00
Marten Seemann
3ef77b0c1a add an assertion that bytes_in_flight never becomes negative 2020-09-14 10:32:32 +07:00
Marten Seemann
8ea663d04a skip a packet number when sending a 1-RTT PTO packet 2020-09-11 11:16:48 +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
0044a69d73 also pass non-ack-eliciting packets to packet history (but don't save) 2020-09-11 11:01:29 +07:00
Marten Seemann
8f4257a883 delete unacknowledged packets from the packet history after 3 PTOs 2020-09-10 18:51:05 +07:00
Marten Seemann
a44c4f517f Merge pull request #2747 from lucas-clemente/simplify-sent-packet-history
refactor RTT measurements to simplify the sentPacketHistory
2020-09-09 23:50:26 +07:00
Marten Seemann
ad40c9cc83 fix dropping of 0-RTT packets 2020-09-07 16:00:16 +07:00
Marten Seemann
c7af1dc045 refactor RTT measurements to simplify the sentPacketHistory 2020-09-06 14:16:11 +07:00
Marten Seemann
166d91ae0f fix typo in error message in sent packet handler 2020-08-21 13:31:02 +07:00
Marten Seemann
03a1db641f Merge pull request #2689 from lucas-clemente/dont-arm-app-data-pto-before-handshake-confirmed
only arm the application data PTO timer after the handshake is confirmed
2020-07-29 07:58:29 +07:00
Marten Seemann
6b7f204676 simplify the maybeQueueAck method in the receivedPacketTracker 2020-07-28 10:03:06 +07:00
Marten Seemann
260356140f remove ACK decimation
The benefits of this are unclear when using Reno / Cubic.
2020-07-28 10:03:05 +07:00
Marten Seemann
8db76ab9c2 only arm the application data PTO timer after the handshake is confirmed 2020-07-27 16:40:21 +07:00
Marten Seemann
0b7efe10d1 trace congestion state changes 2020-07-23 11:53:59 +07:00
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
4121ea84f4 rename the logging.Tracer to ConnectionTracer 2020-07-01 16:57:01 +07:00
Marten Seemann
7fdace490c rename qlogger (member) variables to tracer 2020-07-01 16:53:45 +07:00
Marten Seemann
78ba619a0b split the qlog package into a logging and a qlog package 2020-07-01 16:49:24 +07:00
Marten Seemann
fe622dd780 use a token bucket pacing algorithm 2020-06-22 14:31:37 +07:00
Marten Seemann
a8ddba6a39 remove unused packet counter in the receivedPacketTracker 2020-06-18 11:28:43 +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
d137e7672d implement a GetPTOTimeAndSpace() as outlined in the draft 2020-06-01 11:18:57 +07:00
Marten Seemann
96acf36cbd rename sentPacketHandler.getEarliestLossTimeAndSpace to getLossTimeAndSpace 2020-06-01 11:18:57 +07:00
Marten Seemann
feb3e9a713 rename lastSentAckElicitingPacketTime to lastAckElicitingPacketTime 2020-06-01 11:18:57 +07:00
Marten Seemann
9177500096 bundle ACK frames when packing a packet 2020-06-01 09:56:06 +07:00
Marten Seemann
77b1021a54 make it possible to generate an ACK frame, even if no ACK is queued yet 2020-06-01 09:31:11 +07:00
Marten Seemann
bee5ef624f determine if a received packet is new (and not a duplicate / delayed packet) 2020-06-01 09:31:11 +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
99dac1581a fix broken unit test in ackhandler 2020-05-29 17:20:47 +07:00
Marten Seemann
8d00ec135e Merge pull request #2569 from lucas-clemente/drop-duplicate-packets
drop duplicate packets
2020-05-29 16:39:46 +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
440ff107a3 drop duplicate packets
Duplicate detection uses the same data structure that is used to track
received packets to generate ACK frames. That means that after an old
ACK range has been pruned, a severly delayed packet might be incorrectly
detected as a duplicate.
As we wouldn't have acknowledged receipt of this packet, this situation
would have resulted in a retransmission by the peer anyway, so dropping
the packet won't cause a big regression.
2020-05-27 09:20:51 +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
140b90449b use decimal numbers when logging packet numbers 2020-04-16 09:50:55 +07:00