Marten Seemann
f1ada87dcf
make the protocol package internal
2017-08-30 00:19:44 +07:00
Marten Seemann
ed522ebbce
make wire an internal package
2017-08-29 23:51:56 +07:00
Marten Seemann
88afad8722
rename package frames to wire
2017-08-29 23:27:15 +07:00
Marten Seemann
79bb3a9bd3
force sending of a retransmittable packet every 20 packets
2017-08-23 16:00:48 +07:00
Lucas Clemente
515f4b3dcd
Don't require ACKs of non-retransmittable packets
...
The way this is implemented here is not particularly nice, but will improve in the future once we implement spurious RTO decection #687 (where we'll need a packetHistory similar to Chrome's). In particular, we don't consider non-retransmittable packets for RTT measurements or for early retransmit. While that might impact performance in some edge cases, it shouldn't be worse than before :)
Fixes #505 .
2017-06-19 14:38:17 +02:00
Lucas Clemente
3cf7e061c5
Fix the order of dequeueing lost packets
2017-06-19 14:10:17 +02:00
Marten Seemann
987905149b
run gofmt to fix ordering of imports
2017-06-13 18:07:22 +02:00
Marten Seemann
c0b09c8646
make utils an internal package
2017-06-09 22:28:40 +02:00
Lucas Clemente
e44298a9cc
Always send retransmissions, irrespective of congestion state
...
This should probably only apply to RTOs, but we currently don't have a signal to distinguish them in the queue.
2017-06-06 13:16:33 +02:00
Lucas Clemente
5aba345811
Emit a debug log message when congestion limited
2017-04-30 15:32:01 +02:00
Lucas Clemente
89d0ae9810
Simplify ackhandler and congestion by splitting up OnCongestionEvent
...
No functional change.
2017-04-05 21:34:08 +02:00
Lucas Clemente
612fa16a43
Move SentPacketHandler.CheckForError into SentPacket
2017-04-02 10:29:09 +02:00
Lucas Clemente
1c5380c49b
Implement loss recovery from the current WG draft
...
Fixes #498 and will hopefully go a long way towards fixing the many
flaky tests.
2017-04-02 10:29:09 +02:00
Marten Seemann
c8b7246159
create congestion RTTstats in Session
...
ref #106
2016-10-30 17:27:21 +07:00
Lucas Clemente
8f7a96dfaf
retransmit two outstanding packets on RTO
...
fixes #324
2016-09-20 11:09:14 +02:00
Lucas Clemente
9b2127018d
add exponential backoff to RTO calculation
...
fixes #112
2016-09-09 00:26:18 +02:00
Lucas Clemente
a0fb14381e
don't send more packets when there are too many unacked
...
fixes #249 , fixes #322
2016-09-08 11:21:03 +02:00
Lucas Clemente
6f4955d2d0
use new packet receive timestamp in sentPacketHandler
...
fixes #150
2016-09-07 15:51:04 +02:00
Lucas Clemente
e3c90c181a
only consider novel packages for RTT
2016-09-07 15:51:04 +02:00
Lucas Clemente
8c6eb61850
set max tracked packets to max cwnd * 2
2016-09-05 13:35:10 +02:00
Lucas Clemente
a8b3e1ef8e
move ackhandler.Packet and PacketList shared types to new ackhandler
2016-09-01 20:26:31 +02:00
Marten Seemann
7d05640b24
change AckHandler interfaces to allow forcing a StopWaitingFrame
...
ref #259
2016-08-18 12:45:53 +07:00
Marten Seemann
7d05ebf0bb
cache last StopWaiting in StopWaitingManager and return it if forced
...
ref #259
2016-08-18 12:40:50 +07:00
Lucas Clemente
baaf7027ae
remove LargestInOrderAcked from v34 ackhandler
...
possibly: fix #283 , fix #291
2016-08-16 16:12:46 +02:00
Marten Seemann
4f3f1065cb
improve return values of (n)ackPacket in new SentPacketHandler
2016-08-16 19:43:40 +07:00
Lucas Clemente
1713d38576
add an ackhandler consistency check that fails the drop tests
2016-08-15 10:33:50 +02:00
Lucas Clemente
5cb3c0a771
replace ProbablyHasPacketForRetransmission with a call to MaybeQueueRTOs
...
fixes #261
2016-08-15 10:33:50 +02:00
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