Commit graph

12 commits

Author SHA1 Message Date
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
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
d5585628d8 remove unneeded return value of ReceivedPacketHandler.ReceivedPacket() 2019-08-05 06:55:26 +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
fb9fafe3b4 don't add ACK ranges for delayed packets, if history was already deleted 2019-07-30 11:19:16 +07:00
Marten Seemann
f4bb3c12be remove unneeded tracking variable in the received packet history
The value was not updated correctly when receiving reordered packets.
Since it's trivial to determine it from the list of received packets,
the easiest fix is to remove it.
2019-07-30 11:17:26 +07:00
Marten Seemann
a0b7e468ff optimize deleting of ACK ranges 2019-07-30 11:02:52 +07:00
Marten Seemann
9c09e84765 use IETF QUIC transport error codes 2019-03-06 13:43:18 +09:00
Marten Seemann
258e43ab95 rename the receivedPacketHandler to receivedPacketTracker 2019-01-11 10:52:39 +07:00
Marten Seemann
3ffea5d8c4 internalize the qerr package 2018-11-11 12:44:16 +07:00
Marten Seemann
ca896f953a rename AckRange.{First, Last} to AckRange.{Smallest, Largest} 2018-04-18 12:25:26 +09:00
Marten Seemann
3b82628dbe internalize ackhandler and congestion 2018-02-02 08:40:56 +08:00
Renamed from ackhandler/received_packet_history.go (Browse further)