Marten Seemann
d77368af36
Merge pull request #2083 from lucas-clemente/simplify-largest-acked-tracking
...
simplify ackhandler.Packet
2019-08-24 08:29:05 +07:00
Marten Seemann
0c85e0eab9
remove unused PacketType field from the ackhandler.Packet
2019-08-21 14:49:00 +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
e16bf92dc6
simplify (and speed up) IsFrameAckEliciting
2019-08-20 13:18:32 +07:00
Marten Seemann
1a9b568177
implement packet-threshhold based loss detection
2019-08-13 08:35:48 +07:00
Marten Seemann
94a760ecff
refactor DetectLostPackets to match the draft
2019-08-13 08:35:48 +07:00
Marten Seemann
bceefa2f70
Merge pull request #2049 from lucas-clemente/fix-initial-pto
...
fix initial PTO timer duration
2019-08-12 21:05:54 -04:00
Marten Seemann
5189cb94f1
fix initial PTO timer duration
2019-08-10 17:21:31 +07:00
Marten Seemann
0e4b25958f
use early retransmit for crypto packets
2019-08-08 15:47: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
792983dec6
merge crypto and PTO timeout
2019-07-31 07:59:12 +07:00
Marten Seemann
db645f3336
Merge pull request #2021 from lucas-clemente/early-retransmit-for-crypto-packets
...
use early retransmit for crypto packets
2019-07-31 05:44:10 +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
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
fcb0d6cfdc
record InSlowStart and InRecovery
2019-06-20 22:58:01 +08:00
Marten Seemann
7c7b1ba9c7
add tracing for lost packets
2019-06-20 22:58:01 +08:00
Marten Seemann
22cbb344af
move the TransportState struct to the quictrace package
...
Prevents an import loop when passing the tracer to the ackhandler.
2019-06-20 22:58:01 +08:00
Marten Seemann
267d11ee66
add tracing for sent and received 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
4834962cbd
add a function to drop received packets of a certain encryption level
2019-05-30 14:19:11 +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
Marten Seemann
8afed81c49
Merge pull request #1907 from lucas-clemente/can-send
...
use PRR when deciding if we're congestion limited
2019-05-20 08:44:33 +01:00
Marten Seemann
3e67c12d76
use PRR when deciding if we're congestion limited
2019-05-19 16:49:55 +02:00
Marten Seemann
fccdb1c558
use Reno instead of Cubic
2019-05-19 15:57:20 +02:00
Marten Seemann
e06961266c
introduce an invalid packet number to simplify ackhandler and congestion
2019-05-14 06:41:13 +03:00
Marten Seemann
4e6df9041d
use the max_ack_delay when computing the PTO duration
2019-05-08 14:47:46 +09:00
Marten Seemann
537737935c
limit the ACK delay by max_ack_delay
2019-05-08 14:34:56 +09:00
Marten Seemann
0e33f3c0da
don't send an ACK delay time for Initial and Handshake ACKs
2019-05-08 14:30:17 +09:00
Marten Seemann
f981339bc0
ignore the delay field for ACKs sent in Initial and Handshake packets
2019-05-08 14:15:42 +09: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
5d999f3927
handle ACKs separately in the sent packet handler packet struct
2019-04-21 20:47:27 +09:00
Marten Seemann
450d777a51
use the timer granularity as a minimum for the loss detection timer
2019-04-16 11:34:49 +09:00
Marten Seemann
2c27cc0090
rename the reordering threshold constant in the sent packet handler
2019-04-16 11:32:01 +09:00
Marten Seemann
9dc29effdf
rename loss delay variable in sent packet handler
...
That's how it's called in the WG draft pseudo code.
2019-04-16 11:25:58 +09:00
Marten Seemann
b5336be518
rename retransmittable to ack-eliciting
2019-04-12 13:25:39 +09:00
Marten Seemann
7f9861bf7e
reset the send mode after receiving an ACK when already in PTO mode
2019-04-09 10:24:45 +09:00
Marten Seemann
662041649f
use the error names from the draft
2019-03-06 13:45:05 +09:00
Marten Seemann
9c09e84765
use IETF QUIC transport error codes
2019-03-06 13:43:18 +09:00
Marten Seemann
f6642ff948
use separate packet number spaces for sending packets
...
Packet numbers now start at 0 for every packet number spaces.
Furthermore, an ACK frame now only acknowledges packets in the packet
number space it was sent in.
2019-02-11 20:13:05 +08:00
Marten Seemann
b35c161f2e
don't ignore reordered ACKs
2019-02-11 20:13:05 +08:00