Commit Graph

79 Commits

Author SHA1 Message Date
Marten Seemann
a303ad9745 always send ACKs in the correct packet number space 2019-01-11 11:12:07 +07:00
Marten Seemann
258e43ab95 rename the receivedPacketHandler to receivedPacketTracker 2019-01-11 10:52:39 +07:00
Marten Seemann
5ccc367462 start ignoring packets in ACK frames only after the handshake completed 2019-01-11 10:52:39 +07:00
Marten Seemann
5e3c96024a correctly set the ack delay in an ACK of packet number 0 2019-01-05 13:05:14 +07:00
Marten Seemann
77d48248ff unify TLP and RTO
This doesn't yet implement the persistent congestion detection, since
the specification of that still is in flux.
2019-01-01 09:53:09 +07:00
Marten Seemann
cf7f2dc661 rename handshake packets to crypto packets 2018-12-28 13:17:31 +07:00
Marten Seemann
7cb84c4e06 Merge pull request #1685 from lucas-clemente/increase-pn-after-vn-and-retry
increase the packet number after version negotiation and retry
2018-12-27 17:00:58 +07:00
Marten Seemann
178ac0dacb keep increasing the packet number after version negotiation and retry 2018-12-22 22:15:35 +06:30
Marten Seemann
1abf9e1b37 start with packet number 0 2018-12-22 21:25:14 +06:30
Marten Seemann
a4128ed469 accept multiple ACKs sent in the same packet 2018-12-21 21:10:23 +06:30
Marten Seemann
faed2ba30a remove version dependency of packet number inferring 2018-11-26 22:46:08 +07:00
Marten Seemann
c37b698f68 Merge pull request #1596 from lucas-clemente/internalize-errors
internalize the qerr package
2018-11-12 15:54:39 +07:00
Marten Seemann
3ffea5d8c4 internalize the qerr package 2018-11-11 12:44:16 +07:00
Marten Seemann
387613aa20 rename the BLOCKED from to DATA_BLOCKED 2018-11-10 09:05:06 +07:00
Marten Seemann
022189dfda rename the RST_STREAM frame to RESET_STREAM frame 2018-11-04 12:26:02 +07:00
Marten Seemann
dbbbfd955e move tracking of skipped packets to the packet number generator 2018-11-02 17:14:31 +07:00
Marten Seemann
c81cd92daf return the packet number length when peek a new packet number 2018-11-02 17:14:31 +07:00
Marten Seemann
ebbf839fa4 move the packet number generator to the ackhandler package 2018-11-02 17:14:31 +07:00
Marten Seemann
3266e36811 drop support for gQUIC 2018-10-30 10:20:39 +07:00
Marten Seemann
82508f1562 use tls-tris instead of mint 2018-10-26 16:18:49 +07:00
Marten Seemann
fbc3041e4d add logging for skipped packet numbers 2018-10-14 21:39:18 +01:00
ludweeg
8ff3bf8ca6 simplify x = x <op> ... to x <op>= ... 2018-10-06 01:59:45 +03:00
Marten Seemann
defafec71e use retransmissions as TLP packets 2018-08-09 22:28:28 +07:00
Marten Seemann
5358831604 don't do anything when OnAlarm is called, but no packets are outstanding
When all outstanding are acknowledged, the alarm is canceled in
updateLossDetectionAlarm. This doesn't reset the timer in the session
though. When OnAlarm is called, we therefore need to make sure that
there are actually packets outstanding.
2018-08-08 15:40:36 +07:00
Marten Seemann
d95dc29d90 only set the largestSentBeforeRTO when sending the first RTO 2018-08-07 12:34:45 +07:00
Marten Seemann
31f2ef7d32 add some useful logging for the sentPacketHandler OnAlarm function 2018-08-07 12:34:39 +07:00
Marten Seemann
95ef15c6b1 only fire the handshake alarm if handshake packets are outstanding 2018-06-30 14:30:38 +07:00
Marten Seemann
4633acd7bf only set the loss detection alarm if packets are outstanding 2018-06-18 10:42:45 +07:00
Marten Seemann
3e03055a7d use varint packet numbers in IETF QUIC headers 2018-06-06 16:07:47 +02:00
Marten Seemann
d1dd2a4a60 add logging to the ackhandler 2018-05-14 11:05:37 +09:00
Marten Seemann
a58cfd64e9 Merge pull request #1336 from lucas-clemente/congestion-in-bytes
switch to a byte-based congestion controller
2018-05-05 14:57:51 +09:00
Marten Seemann
45d5acef14 Merge pull request #1333 from lucas-clemente/acks-for-delayed-packets
don't send an ACK when receiving a packet that wouldn't be acked
2018-05-05 14:54:11 +09:00
Marten Seemann
1b9ac93c13 Merge pull request #1331 from lucas-clemente/fix-1330
set the ACK frame delay time when generating the frame
2018-05-05 14:23:50 +09:00
Marten Seemann
2b97fb41c9 switch to a byte-based congestion controller
Chrome removed the packet-based congestion controller and switched to
byte-based as well.
2018-05-02 23:45:23 +09:00
Marten Seemann
3cd6cc3e9f move the initial RTT estimate to the congestion package 2018-05-01 18:57:05 +09:00
Marten Seemann
4a7bab9ffe remove unused functions from the RTT stats
These functions are not used anywhere, and were removed from Chromium
code as well.
2018-05-01 18:50:28 +09:00
Marten Seemann
5140addd8a don't send an ACK when receiving a packet that wouldn't be acked
There's a lower bound which packets get acknowledged in an ACK frame.
When receiving a packet smaller than that bound, which was reported
missing before, it's not necessary to immediately queue an ACK, since it
wouldn't be included in the ACK frame anyway.
2018-05-01 12:32:44 +09:00
Marten Seemann
ee968aff67 set the ACK frame delay time when generating the frame 2018-04-30 21:50:33 +09:00
Marten Seemann
1420b138d5 implement TLPs 2018-04-25 20:47:18 +09:00
Marten Seemann
52c3e6e863 remove the {Lowest, Largest}Acked from the ACK frame
All ACK ranges are now saved in the AckRanges slices. This eliminates a
bunch of special cases for ACKs that don't report any packets missing.
2018-04-18 13:19:42 +09:00
Marten Seemann
ca896f953a rename AckRange.{First, Last} to AckRange.{Smallest, Largest} 2018-04-18 12:25:26 +09:00
Marten Seemann
f052861775 only allow sending of retransmissions if these are RTO probe packets 2018-04-17 19:58:53 +09:00
Marten Seemann
c828742cde Merge pull request #1300 from lucas-clemente/prior-in-flight
call OnPacket{Acked, Lost} with the bytes in flight prior to event
2018-04-17 19:18:25 +09:00
Marten Seemann
90d2ac72bd call OnPacket{Acked, Lost} with the bytes in flight prior to event 2018-04-16 18:03:50 +09:00
Marten Seemann
2b9b949855 move calculation of RTO delay to the sent packet handler 2018-04-16 11:18:14 +09:00
Marten Seemann
ba9106c1ab compute handshake timeout based on the time of the last handshake packet 2018-04-05 14:39:58 +07:00
Marten Seemann
605607d39b implement spurious RTO detection 2018-04-04 17:47:29 +07:00
Marten Seemann
42d35360bb only delete the acked packet, but none of its retransmissions 2018-04-04 15:35:23 +07:00
Marten Seemann
0652eb97a0 add some debug log statements when queueing packets as retransmissions 2018-04-04 14:25:16 +07:00
Marten Seemann
948eef3e42 create a logger interface and use it everywhere 2018-04-04 13:03:28 +07:00