Marten Seemann
3b82628dbe
internalize ackhandler and congestion
2018-02-02 08:40:56 +08:00
Marten Seemann
fc5f54824a
only send one ACK for every 10 retransmittable packets
2018-01-28 17:59:37 +07:00
Marten Seemann
9b3139a1d6
use the packet receive time in the receivedPacketHandler
...
By passing the packet receive time to the receivedPacketHandler we can
get rid of two time.Now() syscalls.
2018-01-12 11:30:39 +07:00
Marten Seemann
0219193a07
accept packet 0 in the ReceivedPacketHandler and generate ACKs for it
2017-12-07 21:33:34 +07:00
Marten Seemann
f90029ef64
change ReceivedPacketHandler such that it can generate ACKs for packet number 0
2017-12-07 21:33:34 +07:00
Marten Seemann
184f81d8c4
remove old code to send an ACK every 20 packets
...
This was needed before QUIC 39, and should have been removed when we
dropped support for QUIC 38.
2017-12-01 12:14:54 +07:00
Marten Seemann
19f1293fe2
shorten variable names in the AckRange struct
2017-09-22 19:34:53 +07:00
Marten Seemann
d9b9d83458
remove unused duplicate packet detection in the ackHandler
2017-09-14 17:55:55 +07:00
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
6bdd782a4b
don't queue ACKs for non-retransmittable packets for QUIC >= 39
...
From QUIC 39 on, the peer is required to send a retransmittable packet
when it wishes to receive an ACK.
2017-08-23 16:00:48 +07:00
Marten Seemann
01baba83a5
don't pass the STOP_WAITING to the receivedPacketHandler
...
Only pass the LeastUnacked. This makes easier to remove STOP_WAITINGs
later.
2017-08-10 20:23:10 +07:00
Lucas Clemente
627b762421
Simplify RPH ack alarm to be in line with the SPH alarm
2017-06-21 13:58:41 +02:00
Marten Seemann
14fa2dc7dd
accept duplicate and delayed packets
...
We used to reject duplicate and packets with packet numbers lower than
the LeastUnacked we received in a STOP_WAITING frame, because we didn't
accept overlapping stream data. For all other frames, duplicates never
were an issue. Now that we accept overlapping stream data, there's no
need to reject those packets, in fact, processing a delayed packet will
be beneficial for performance.
2017-06-08 15:41:16 +02:00
Marten Seemann
edf6ee3dfc
implement a sophisticated ack algorithm
...
fixes #354
2017-01-09 15:01:44 +07:00
Marten Seemann
29fe5cac76
only save timestamp of largest observed packet in ReceivedPacketHandler
...
fixes #336
2016-10-29 02:36:48 +07:00
Marten Seemann
867b1f6015
remove unused largestInOrderObserved from ReceivedPacketHandler
2016-10-29 01:48:54 +07:00
Marten Seemann
5163ae1f61
move duplicate detection to receivedPacketHistory
2016-10-29 01:29:01 +07:00
Marten Seemann
5fa4ea73e5
fix typo
2016-10-28 12:30:52 +07:00
Marten Seemann
2c11335de4
limit number of ACK ranges in ReceivedPacketHistory
...
fixes #195
2016-10-28 12:17:41 +07:00
Marten Seemann
7cf68d50db
fix DOS against ReceivedPacketHandler garbage collector
...
fixes #334
2016-10-27 23:34:39 +07:00
Lucas Clemente
8c6eb61850
set max tracked packets to max cwnd * 2
2016-09-05 13:35:10 +02:00
Lucas Clemente
a4d4506f31
remove entropy from packet unpacker and session
2016-09-01 20:26:31 +02:00
Lucas Clemente
c8bb818e4d
fix some typos
2016-08-06 14:46:09 +02:00
Marten Seemann
0c873d69ec
fix lowestInreceivedTimes index in new ReceivedPacketHandler
2016-08-03 13:09:52 +07:00
Marten Seemann
af3f69c0f1
always delete packets from packetHistory when receiving a StopWaiting
...
in new AckHandler
fixes #239
2016-08-02 13:38:13 +07:00
Marten Seemann
955234487b
delete receivedTimes when receiving a StopWaiting in new AckHandler
...
ref #239
2016-08-02 12:13:41 +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
c095261749
limit number of tracked packets in ReceivedPacketHandler
...
fixes #132
2016-06-11 13:57:54 +07:00
Marten Seemann
a1ba23aebd
add garbage collector for ReceivedPacketHandler
...
fixes #7
2016-05-20 17:09:47 +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
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
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
733873fa5e
correctly treat LeastUnacked value in a StopWaitingFrame
2016-04-30 19:00:01 +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
b4fae00880
rename IncomingPacketAckHandler to ReceivedPacketHandler
2016-04-26 10:17:18 +07:00