Commit graph

52 commits

Author SHA1 Message Date
Lucas Clemente
157055e99c reset the RTO timer when queueing an RTO retransmission 2016-08-15 10:33:50 +02:00
Marten Seemann
7796fad2b7 fix processing of ACK frames with old ACK ranges in new SentPacketHandler
fixes #280
2016-08-15 14:04:03 +07:00
Lucas Clemente
1ceb7fc4e0 fix retransmission logging in sent packet handlers 2016-08-12 21:27:41 +02:00
Marten Seemann
e7d7207206 garbage collect skippedPackets slice in SentPacketHandler 2016-08-11 11:03:45 +02:00
Marten Seemann
65838f34a8 limit number of tracked skipped packet numbers in SentPacketHandler 2016-08-11 11:03:45 +02:00
Marten Seemann
86d73970fc reject ACKs for skipped packet numbers 2016-08-11 11:03:45 +02:00
Marten Seemann
b129d13adc detect skipped packet numbers in SentPacketHandler 2016-08-11 11:03:45 +02:00
Marten Seemann
c2e0717c89 remove unused error from SentPacketHandler 2016-08-11 15:58:23 +07:00
Lucas Clemente
805c21cb77 use LeastUnacked in packet number derivation
fixes #271
2016-08-10 13:32:36 +02:00
Marten Seemann
fad5949b05 check that sent packet numbers always increase in new AckHandler 2016-08-10 08:45:01 +07:00
Marten Seemann
cba965cc0c use linked list to store sent packets in new AckHandler 2016-08-10 08:44:51 +07:00
Lucas Clemente
3b5d10b1f2 properly increase LargestInOrderAcked past retransmitted packets 2016-08-05 15:07:13 +02:00
Lucas Clemente
ba3b293811 don't NACK already retransmitted packets in v34
ref #243, #248, #251
2016-08-04 22:24:43 +02:00
Marten Seemann
19f627af6f fix NACKing of packets below lowest ACK range in new SentPacketHandler
This did not cause an error, since the packet didn't exist in the
packetHistory. With this fix, it is more consistent and it saves one
loop iteration.
2016-08-03 13:13:32 +07:00
Marten Seemann
e8a2c497e9 update StopWaitings when queueing retransmissions
fixes #231
2016-07-30 15:15:51 +07:00
Marten Seemann
71243ccccb don't send the same StopWaitingFrame twice
fixes #229
2016-07-30 14:15:45 +07:00
Marten Seemann
7604f7927d send a StopWaiting with every ACK in QUIC 34
fixes #185
2016-07-29 18:02:43 +07:00
Marten Seemann
73a64fde5f remove StopWaitingManager from new AckHandler 2016-07-29 18:02:43 +07:00
Marten Seemann
03bad0e86b use the same interface for new and legacy AckHandlers
ref #55
2016-07-26 18:31:54 +07:00
Marten Seemann
50a7e55c72 rename AckHandlerNew to AckHandler
ref #55
2016-07-26 13:48:13 +07:00
Marten Seemann
eb03ed5334 rename AckHandler package to AckHandlerLegacy 2016-06-21 19:51:26 +07:00
Marten Seemann
288cb9e143 rename AckFrame to AckFrameLegacy 2016-06-21 19:51:26 +07:00
Lucas Clemente
4d5ff5d61e call OnCongestionEvent when packets are retransmitted due to an RTO
fixes #168
2016-06-06 11:56:32 +02:00
Lucas Clemente
6a46465092 reduce calls to Debugf when not debugging to reduce slice allocs
ref #129
2016-06-04 15:13:46 +02:00
Marten Seemann
d906492ae7 don't retransmit a packet after receiving a belated ACK
fixes #139
2016-05-27 18:36:28 +07:00
Lucas Clemente
9e0d211f5e fix and optimize RTO computation
fixes #144
2016-05-25 12:34:54 +02:00
Lucas Clemente
d4a189b2d1 refactor timer calculation in sesssion to reduce syscalls 2016-05-24 17:42:47 +02:00
Marten Seemann
e2254f1bbd limit number of packets stored in SentPacketHandler
fixes #140
2016-05-24 16:06:48 +07:00
Marten Seemann
931687e9a4 better function name in SentPacketHandler 2016-05-24 15:39:48 +07:00
Marten Seemann
5dc7f8b0ca add missing test for StopWaitingManager call in SentPacketHandler 2016-05-22 23:59:23 +07:00
Marten Seemann
f33058c504 move the RetransmissionThreshold to the server parameters 2016-05-22 23:45:09 +07:00
Lucas Clemente
4822def788 implement timeout-based retransmission (RTO)
fixes #56
2016-05-18 23:21:33 +02:00
Lucas Clemente
753f219638 implement RTO computation in sentPacketHandler
ref #56
2016-05-18 20:50:22 +02:00
Lucas Clemente
a0228a9049 move congestion control from session to ackhandler
this simplifies things a bit, especially in prep for #56
2016-05-18 19:35:31 +02:00
Lucas Clemente
7a97f34fac don't panic 🤓
fixes #93
2016-05-18 18:29:42 +02:00
Lucas Clemente
d0e6b993bb use new error codes throughout the server
fixes #86
2016-05-17 12:49:59 +02:00
Marten Seemann
712e682d21 improve errors in SentPacketHandler 2016-05-16 18:44:11 +07:00
Marten Seemann
f8dc78967a add method to ask SendPacketHandler if any retransmissions queued 2016-05-13 12:56:58 +07:00
Marten Seemann
7169584ff9 implement sending of shortened packet numbers 2016-05-10 17:25:52 +07:00
Marten Seemann
dbcf5b8cce send retransmission in the right order
fixes #62
2016-05-08 23:04:41 +07:00
Lucas Clemente
16b12328fc make sent packet handler return acked and lost packets for congestion 2016-05-07 00:46:00 +02:00
Lucas Clemente
02ab3480ff keep bytesInFlight as protocol.ByteCount 2016-05-06 12:59:32 +02:00
Marten Seemann
d1a3d14cf1 fix typo in EntropyAccumulator function 2016-05-02 16:36:48 +07:00
Marten Seemann
74f7576391 implement a StopWaitingManager
fixes #30
2016-04-29 16:58:30 +07:00
Lucas Clemente
1535663fc5 add bytes-in-flight calculation to SentPacketHandler 2016-04-28 22:30:03 +02:00
Lucas Clemente
ac1affb940 make SentPacketHandler compute the delta between sent and ack time 2016-04-28 18:52:12 +02:00
Marten Seemann
2056960e07 only delete a Packet from history in SentPacketHandler once it has been ACKed 2016-04-27 17:19:54 +07:00
Marten Seemann
2c95141ee1 add Len() and ContainsPacketNumber() to NackRange 2016-04-27 16:04:50 +07:00
Marten Seemann
160db13bdb close the connection on an MapAccess error in SentPacketHandler 2016-04-27 11:34:35 +07:00
Marten Seemann
7e9f185f79 close connection if the entropy of a received ACK is incorrect 2016-04-26 11:17:16 +07:00