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