Commit Graph

82 Commits

Author SHA1 Message Date
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
Marten Seemann
c095261749 limit number of tracked packets in ReceivedPacketHandler
fixes #132
2016-06-11 13:57:54 +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
Marten Seemann
a1ba23aebd add garbage collector for ReceivedPacketHandler
fixes #7
2016-05-20 17:09:47 +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
e8b2d9748a capitalize TODOs 2016-05-17 19:24:49 +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
fb6d90b813 cosmetic changes in tests 2016-05-16 18:32:08 +07:00
Lucas Clemente
c12a12518e run gofmt -s on tests 2016-05-15 14:42:34 +02:00
Marten Seemann
540941117e cosmetic changes in tests 2016-05-15 13:08:56 +07:00
Marten Seemann
c0c7be16e3 add method to get ACK from ReceivedPacketHandler without dequeueing it 2016-05-13 15:55:56 +07:00
Marten Seemann
f8dc78967a add method to ask SendPacketHandler if any retransmissions queued 2016-05-13 12:56:58 +07:00
Marten Seemann
3683763dc0 send DelayTime in ACK frames
fixes #81
2016-05-12 17:43:48 +07:00
Marten Seemann
e782f28b2b save timestamp when a packet arrives in ReceivedPacketHandler
work towards #10, #81
2016-05-12 15:12:51 +07:00
Marten Seemann
33c0f3a5df set LeastUnackedDelta length in StopWaitingFrame
fixes #79
2016-05-12 13:05:42 +07:00
Marten Seemann
7169584ff9 implement sending of shortened packet numbers 2016-05-10 17:25:52 +07:00
Lucas Clemente
c3f51af850 reset retransmissionTimeout after sentPacketHandler tests 2016-05-08 18:29:08 +02:00
Marten Seemann
dbcf5b8cce send retransmission in the right order
fixes #62
2016-05-08 23:04:41 +07:00
Marten Seemann
833475a2ed ensure that StopWaitingManager only gives StopWaitingFrames with increasing LeastUnacked
fixes #49
2016-05-08 22:37:25 +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
08d96d2a69 calculate NACK ranges in the correct order expected by the ACK frame writer
fixes #43
2016-05-03 18:31:02 +07:00
Marten Seemann
d1a3d14cf1 fix typo in EntropyAccumulator function 2016-05-02 16:36:48 +07:00
Marten Seemann
ad467ade58 fix several linter warnings and misspellings 2016-05-02 16:33:32 +07:00
Marten Seemann
733873fa5e correctly treat LeastUnacked value in a StopWaitingFrame 2016-04-30 19:00:01 +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
6eeccfd123 retransmit lost packets, send StopWaiting frames 2016-04-27 18:56:21 +07: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
e27d3ea3f8 ReceivedPacketHandler only generates ACKs if packets were received after the last ACK 2016-04-26 22:38:10 +07:00
Marten Seemann
4659bf7acb store the payload of sent packets as a slice of Frames 2016-04-26 20:35:30 +07:00
Marten Seemann
7e9f185f79 close connection if the entropy of a received ACK is incorrect 2016-04-26 11:17:16 +07:00
Marten Seemann
c8f48fe5bc ignore duplicate ACK and out-of-order ACK errors in Session 2016-04-26 10:48:14 +07:00