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
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
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
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
edf6ee3dfc
implement a sophisticated ack algorithm
...
fixes #354
2017-01-09 15:01:44 +07: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
b93f4ec831
minor cleanup
2016-09-05 23:10:18 +02:00
Lucas Clemente
a4d4506f31
remove entropy from packet unpacker and session
2016-09-01 20:26:31 +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
Lucas Clemente
5cb3c0a771
replace ProbablyHasPacketForRetransmission with a call to MaybeQueueRTOs
...
fixes #261
2016-08-15 10:33:50 +02:00
Lucas Clemente
805c21cb77
use LeastUnacked in packet number derivation
...
fixes #271
2016-08-10 13:32:36 +02: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
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
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
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
Lucas Clemente
4822def788
implement timeout-based retransmission (RTO)
...
fixes #56
2016-05-18 23:21:33 +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
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
7169584ff9
implement sending of shortened packet numbers
2016-05-10 17:25:52 +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
ad467ade58
fix several linter warnings and misspellings
2016-05-02 16:33:32 +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
b4fae00880
rename IncomingPacketAckHandler to ReceivedPacketHandler
2016-04-26 10:17:18 +07:00
Marten Seemann
0088636798
rename OutgoingPacketAckHandler to SentPacketHandler
2016-04-26 10:07:00 +07:00
Lucas Clemente
a1d0056867
implement handling of STOP_WAITING frames for incoming packets
2016-04-25 12:48:09 +02:00
Marten Seemann
6caf1f74e3
reject duplicate packets and packets with packet number 0
2016-04-22 16:26:12 +07:00
Marten Seemann
9385aac35c
ack ACK handling for ACKs without NACKs
2016-04-21 16:36:47 +07:00
Marten Seemann
0164feff8f
add Packet class
2016-04-20 18:37:55 +07:00
Lucas Clemente
80e6569d5d
add ack handler interfaces
2016-04-20 12:06:52 +02:00