Marten Seemann
c828742cde
Merge pull request #1300 from lucas-clemente/prior-in-flight
...
call OnPacket{Acked, Lost} with the bytes in flight prior to event
2018-04-17 19:18:25 +09:00
Marten Seemann
90d2ac72bd
call OnPacket{Acked, Lost} with the bytes in flight prior to event
2018-04-16 18:03:50 +09:00
Marten Seemann
2b9b949855
move calculation of RTO delay to the sent packet handler
2018-04-16 11:18:14 +09:00
Marten Seemann
ba9106c1ab
compute handshake timeout based on the time of the last handshake packet
2018-04-05 14:39:58 +07:00
Marten Seemann
605607d39b
implement spurious RTO detection
2018-04-04 17:47:29 +07:00
Marten Seemann
42d35360bb
only delete the acked packet, but none of its retransmissions
2018-04-04 15:35:23 +07:00
Marten Seemann
0652eb97a0
add some debug log statements when queueing packets as retransmissions
2018-04-04 14:25:16 +07:00
Marten Seemann
948eef3e42
create a logger interface and use it everywhere
2018-04-04 13:03:28 +07:00
Marten Seemann
ae8d0808cf
Merge pull request #1274 from lucas-clemente/remove-unused-packet-method
...
remove unused method from the ackhandler.Packet
2018-04-03 16:19:02 +07:00
Marten Seemann
294df18d5f
Merge pull request #1272 from lucas-clemente/genny-linkedlist
...
use Genny to generate typed lists, based on Go standard library code
2018-04-03 16:18:37 +07:00
Marten Seemann
538cd2c40b
remove unused method from the ackhandler.Packet
2018-03-30 19:17:07 +07:00
Marten Seemann
7346d12d6c
use Genny to generate typed lists, based on Go standard library code
2018-03-30 15:12:09 +07:00
Marten Seemann
1c2e104a86
don't set the send time of a packet in the sent packet handler
2018-03-30 13:28:22 +07:00
Marten Seemann
8772acab0a
don't reduce the bytes in flight for RTO probe packets
2018-03-20 14:08:03 +00:00
Marten Seemann
46f8930fef
calculate loss alarm based on send time of last retransmittable packet
2018-03-17 11:13:55 +00:00
Marten Seemann
fed3bf503e
keep track of which packets were sent as retransmissions
...
When an ACK for a packet that was retransmitted arrives, we don't need
to retransmit the retransmission, even if it was lost.
2018-03-16 16:54:39 +01:00
Marten Seemann
56720edc34
report retransmissions separately to the sent packet handler
2018-03-14 11:15:52 +01:00
Marten Seemann
dc4a9b1d86
refactor sent packet handler tests
2018-03-14 11:15:26 +01:00
Marten Seemann
6a80d50fb9
optimize updating the RTT when receiving an ACK
2018-03-13 17:44:12 +01:00
Marten Seemann
9ffeba5445
refactor the sent packet history into a separate object
2018-03-13 17:44:12 +01:00
Marten Seemann
b5977236ff
implement packet send modes to determine what kind of packets are sent
2018-03-13 14:49:48 +01:00
Marten Seemann
ae2247c869
test that exiting slow start and acking packets are done in right order
2018-03-09 10:29:29 +07:00
Marten Seemann
7b43d17fab
Merge pull request #1228 from lucas-clemente/sent-packet-handler-packet-number-len
...
calculate the packet number length in the sent packet handler
2018-03-08 00:59:09 +07:00
Marten Seemann
85d67ecce5
don't reject ACKs with a lower largest ACKed value
2018-03-07 16:10:57 +07:00
Marten Seemann
abf57a5551
calculate the packet number length in the sent packet handler
2018-03-07 15:56:18 +07:00
Marten Seemann
ca2471e78d
remove explicit error for duplicate or out of order ACKs
2018-03-07 09:30:05 +07:00
Marten Seemann
6efa73c36c
accept ACKs sent in packet number 0
2018-03-06 18:12:41 +07:00
Marten Seemann
5c98332e90
implement ACK decimation
...
ACK generation closely follows Chrome's QuicConnection::MaybeQueueAck()
in ACK_DECIMATION_WITH_REORDERING mode.
2018-03-05 19:56:19 +07:00
Marten Seemann
8fc0f53a8d
move constants used by the received packet handler to ackhandler package
2018-03-05 19:39:59 +07:00
Marten Seemann
2d64953e0e
remove incorrect error check when sending a packet
...
There's no need for a check if more than protocol.MaxTrackedSentPackets
packets were sent. There are certain situations where we allow (via
SendingAllowed()) sending of more packets, and we shouldn't throw an
error when the session then actually sends these packets.
2018-03-05 17:08:18 +07:00
Marten Seemann
86e57706df
run gofmt -s
2018-02-23 23:38:08 +08:00
Marten Seemann
81974d30d6
run gosimple in gometalinter
2018-02-23 22:42:32 +08:00
Marten Seemann
b6470311ea
run unused in gometalinter
2018-02-23 22:42:32 +08:00
Marten Seemann
11af98e338
run misspell in gometalinter
2018-02-23 22:39:08 +08:00
Marten Seemann
8fd7219bfc
delete handshake packets from history when receiving a forward-secure packet
2018-02-23 22:15:10 +08:00
Marten Seemann
88da8e2e0a
retransmit Initial packets as Initial packets
2018-02-23 15:58:24 +08:00
Marten Seemann
3b82628dbe
internalize ackhandler and congestion
2018-02-02 08:40:56 +08:00