Commit Graph

799 Commits

Author SHA1 Message Date
Marten Seemann
dd6e8a7424 Merge pull request #2095 from lucas-clemente/frame-retransmisions
retransmit frames, not packets
2019-08-31 17:34:10 +07:00
Marten Seemann
b8c89bc905 Merge pull request #2092 from lucas-clemente/max-ack-delay-overflow
handle negative max_ack_delay values in the transport parameters
2019-08-31 17:13:40 +07:00
Marten Seemann
0063b1e945 Merge pull request #2061 from lucas-clemente/fix-ack-delay-with-non-monotonic-clock
make sure that the ACK delay time is always a positive value
2019-08-31 17:10:28 +07:00
Marten Seemann
1d392b4276 retransmit frames instead of packets 2019-08-29 15:00:10 +07:00
Marten Seemann
515c21dd1d simplify splitting of STREAM frames 2019-08-29 11:15:59 +07:00
Marten Seemann
5fa38a83fa remove tracking of which packet is retransmission of which other packet 2019-08-26 14:38:37 +07:00
Marten Seemann
a3d6f08074 move the ackhandler.Packet to the ackhandler interface file 2019-08-26 09:55:42 +07:00
Marten Seemann
2329d0e21e handle negative max_ack_delay values in the transport parameters 2019-08-25 16:15:34 +07:00
Marten Seemann
d77368af36 Merge pull request #2083 from lucas-clemente/simplify-largest-acked-tracking
simplify ackhandler.Packet
2019-08-24 08:29:05 +07:00
Marten Seemann
fcc34357dc Merge pull request #2078 from lucas-clemente/speed-up-header-encryption
speed up header encryption / decryption
2019-08-24 08:28:19 +07:00
Marten Seemann
53b32337df Merge pull request #2079 from lucas-clemente/speed-up-aead-overhead
speed up updatableAEAD.Overhead()
2019-08-23 23:19:59 +07:00
Marten Seemann
f7035b7b6a Merge pull request #2077 from lucas-clemente/speed-up-is-ack-eliciting
simplify (and speed up) IsFrameAckEliciting
2019-08-23 23:00:28 +07:00
Marten Seemann
c41b68033c Merge pull request #2080 from lucas-clemente/inline-varintlen
make sure that VarIntLen can be inlined
2019-08-23 22:59:51 +07:00
Marten Seemann
6a7b9c6412 Merge pull request #2086 from lucas-clemente/fix-conn-close-length
fix length calculcation for CONNECTION_CLOSE frames
2019-08-23 22:05:52 +07:00
Marten Seemann
0dbfefc1f6 fix length calculcation for CONNECTION_CLOSE frames 2019-08-22 12:20:13 +07:00
Marten Seemann
0c85e0eab9 remove unused PacketType field from the ackhandler.Packet 2019-08-21 14:49:00 +07:00
Marten Seemann
9221149194 simplify how the largest acked is passed to the ackhandler 2019-08-21 14:40:38 +07:00
Marten Seemann
ccb197939d replace WriteUintN and ReadUintN by explicit functions 2019-08-20 15:59:39 +07:00
Marten Seemann
f88546208d make sure that VarIntLen can be inlined 2019-08-20 14:18:50 +07:00
Marten Seemann
fd62eb67ee speed up updatableAEAD.Overhead() 2019-08-20 13:47:36 +07:00
Marten Seemann
a57b9c70aa speed up header encryption / decryption 2019-08-20 13:36:40 +07:00
Marten Seemann
e16bf92dc6 simplify (and speed up) IsFrameAckEliciting 2019-08-20 13:18:32 +07:00
Marten Seemann
481cf25910 grease transport parameters 2019-08-19 13:56:26 +07:00
Marten Seemann
3e65cfd9c0 Merge pull request #2074 from lucas-clemente/invalid-ack-delays
gracefully handle invalid ACK delay values when parsing ACK frames
2019-08-19 11:30:34 +07:00
Marten Seemann
295533595a Merge pull request #2073 from lucas-clemente/conn-close-frame-frame-type
parse and write the frame type field in the CONNECTION_CLOSE frame
2019-08-18 20:16:22 +07:00
Marten Seemann
f0bdf4f982 gracefully handle invalid ACK delay values when parsing ACK frames 2019-08-17 12:42:10 +07:00
Marten Seemann
96f0e96e45 parse and write the frame type field in the CONNECTION_CLOSE frame 2019-08-17 11:19:39 +07:00
Marten Seemann
6bcd740f56 reject NEW_CONNECTION_ID frames with invalid Retire Prior To values 2019-08-17 11:07:38 +07:00
Marten Seemann
bb4cfe29cb fix connection ID length check in the NEW_CONNECTION_ID frame 2019-08-17 10:58:40 +07:00
Marten Seemann
0b0eb2432a make sure that the ACK delay time is always a positive value
On systems without a monotonic clock, this value could become negative,
which would cause a uint underflow.
2019-08-14 16:43:55 +07:00
Marten Seemann
1a9b568177 implement packet-threshhold based loss detection 2019-08-13 08:35:48 +07:00
Marten Seemann
94a760ecff refactor DetectLostPackets to match the draft 2019-08-13 08:35:48 +07:00
Marten Seemann
264eaf2a7b Merge pull request #2051 from lucas-clemente/aead-open-rcv-time
pass the time a packet was received to the short header opener
2019-08-12 21:06:39 -04:00
Marten Seemann
bceefa2f70 Merge pull request #2049 from lucas-clemente/fix-initial-pto
fix initial PTO timer duration
2019-08-12 21:05:54 -04:00
Marten Seemann
bb48c9b31a pass the time a packet was received to the short header opener
This saves us one time.Now() syscall per received 1-RTT packet.
2019-08-11 13:33:02 +07:00
Marten Seemann
5189cb94f1 fix initial PTO timer duration 2019-08-10 17:21:31 +07:00
Marten Seemann
0e4b25958f use early retransmit for crypto packets 2019-08-08 15:47:51 +07:00
Marten Seemann
ee00cbe088 Merge pull request #2033 from tatianab/injection-attacks
Successful early-handshake injection attacks
2019-08-08 00:05:43 -04:00
Marten Seemann
d5585628d8 remove unneeded return value of ReceivedPacketHandler.ReceivedPacket() 2019-08-05 06:55:26 +07:00
Marten Seemann
475ba63164 never keep track of more than 500 ACK ranges
This is achieved by deleting the oldest ACK ranges when receiving a
packet that creates a new ACK range such that this limit is exceeded.
2019-08-05 06:55:22 +07:00
Marten Seemann
320d4a868e Merge pull request #2030 from lucas-clemente/merge-crypto-timer-and-pto
merge crypto and PTO timeout
2019-08-04 19:48:25 -04:00
Marten Seemann
382094ba68 add unit tests for session resumption 2019-08-03 16:54:58 +07:00
Marten Seemann
511acf1371 use a GoMock ClientSessionCache in the handshake tests 2019-08-03 15:29:01 +07:00
Tatiana Bradley
361fd2d2b2 addressed reviewer comments 2019-08-02 22:44:44 +00:00
Tatiana Bradley
e859b12ad4 added successful pre-handshake injection attacks 2019-08-02 21:52:20 +00:00
Marten Seemann
792983dec6 merge crypto and PTO timeout 2019-07-31 07:59:12 +07:00
Marten Seemann
db645f3336 Merge pull request #2021 from lucas-clemente/early-retransmit-for-crypto-packets
use early retransmit for crypto packets
2019-07-31 05:44:10 +07:00
Marten Seemann
3b35e8e8bc Merge pull request #2028 from lucas-clemente/ack-ranges
don't add ACK ranges for delayed packets, if history was already deleted
2019-07-31 05:29:12 +07:00
Marten Seemann
fb9fafe3b4 don't add ACK ranges for delayed packets, if history was already deleted 2019-07-30 11:19:16 +07:00
Marten Seemann
f4bb3c12be remove unneeded tracking variable in the received packet history
The value was not updated correctly when receiving reordered packets.
Since it's trivial to determine it from the list of received packets,
the easiest fix is to remove it.
2019-07-30 11:17:26 +07:00