Commit Graph

2368 Commits

Author SHA1 Message Date
Marten Seemann
3b82628dbe internalize ackhandler and congestion 2018-02-02 08:40:56 +08:00
Marten Seemann
94c98861d5 Merge pull request #1123 from lucas-clemente/fix-965
ignore the delay in an ACK if it results in an RTT less than minRTT
2018-02-02 08:40:21 +08:00
Marten Seemann
97413c5281 Merge pull request #1130 from lucas-clemente/update-mint
update recent mint changes
2018-02-02 08:31:47 +08:00
Marten Seemann
def3700fd1 ignore the delay in an ACK if it results in an RTT less than minRTT 2018-02-02 08:18:50 +08:00
Marten Seemann
d671cf134c don't force clients to use tls.Config.InsecureSkipVerify when using mint
mint recently implemented certificate verification.
This reverts commit d76f5a839c.
2018-02-02 08:18:29 +08:00
Marten Seemann
1cc209e4fb update mint, and adapt to the new use of the extension handler 2018-02-02 08:18:29 +08:00
Marten Seemann
65eaf8131d Merge pull request #1134 from lucas-clemente/optimize-packet-history-cleanup
optimize deleting packets from the packet history
2018-02-02 07:58:59 +08:00
Marten Seemann
94e812df12 optimize deleting packets from the packet history
DeleteBelow is often called with the same value, so we can improve the
performance by introducing a short path for this case.
2018-02-01 23:51:57 +08:00
Marten Seemann
29307c5067 Merge pull request #1132 from lucas-clemente/perspective-stringer
add a string representation for the perspective
2018-02-01 23:51:29 +08:00
Marten Seemann
8e5ee7c3e0 Merge pull request #1140 from lucas-clemente/fix-1136
make the h2quic client test less racy
2018-02-01 23:50:28 +08:00
Marten Seemann
7c9b18ea67 make the h2quic client test less racy 2018-02-01 22:35:53 +08:00
Marten Seemann
1ed8cc0c06 Merge pull request #1137 from lucas-clemente/fix-1135
make sure that at least every 20th ACK is retransmittable
2018-02-01 22:35:31 +08:00
Marten Seemann
fbeba1f73a make sure that at least every 20th ACK is retransmittable
This is important because we need to make sure that we can remove old
ACK ranges from the received packet history. The logic we implemented
before was not correct, since we only made sure that every 20th packet
would be retransmittable, but we didn't have any guarantee that this
packet would also contain an ACK frame.
2018-02-01 17:11:05 +08:00
Marten Seemann
2ec147ccfa add a string representation for the perspective 2018-02-01 12:59:24 +08:00
Marten Seemann
d9d384b6ed Merge pull request #1128 from lucas-clemente/go1.9.3
update CIs to Go 1.9.3 and Go 1.10rc1
2018-02-01 10:05:56 +07:00
Marten Seemann
c36532cff4 Merge pull request #1127 from lucas-clemente/less-acks
only send one ACK for every 10 retransmittable packets
2018-01-30 15:01:53 +07:00
Marten Seemann
9984a179dd Merge pull request #1120 from lucas-clemente/fix-747
implement a Dial function for the h2quic.RoundTripper
2018-01-30 15:00:27 +07:00
Marten Seemann
c41eb92b98 update CIs to Go 1.9.3 and Go 1.10rc1 2018-01-30 14:57:28 +07:00
Marten Seemann
fc5f54824a only send one ACK for every 10 retransmittable packets 2018-01-28 17:59:37 +07:00
Marten Seemann
96a31a51e5 Merge pull request #1126 from lucas-clemente/mint-is-insecure
force clients to set tls.Config.InsecureSkipVerify when using mint
2018-01-26 21:50:55 +11:00
Marten Seemann
d76f5a839c force clients to set tls.Config.InsecureSkipVerify when using mint
mint doesn't verify the certificate chain. This change forces users of
quic-go to acknowledge mint's insecure behavior by explicitely setting
InsecureSkipVerify.
2018-01-26 21:31:44 +11:00
Marten Seemann
db0a3d105e Merge pull request #1125 from lucas-clemente/pacing-changelog
add a Changelog entry for packet pacing
2018-01-23 22:02:36 +11:00
Marten Seemann
19cd13a48a add a Changelog entry for packet pacing 2018-01-23 13:41:40 +11:00
Marten Seemann
f3654900cd Merge pull request #1122 from lucas-clemente/fix-1121
correctly handle completed streams when popping frames
2018-01-23 09:47:13 +11:00
Marten Seemann
c468b8c652 Merge pull request #1108 from lucas-clemente/much-better-send-pacing
implement send pacing
2018-01-23 09:41:26 +11:00
Marten Seemann
9ef3a47da5 send multiple packets at once, if the pacing delay is very small
This is an optimization to avoid waking of the run loop every couple of
microseconds.
2018-01-23 09:13:44 +11:00
Marten Seemann
0b9d805e1a correctly handle completed streams when popping frames
The streamsMap returns a nil stream (and a nil error) when the stream
has already completed.
2018-01-23 09:08:37 +11:00
Marten Seemann
5ef89733ae implement packet pacing 2018-01-21 14:27:37 +11:00
Marten Seemann
c3cc35363b fire the timer twice, if reset to the same deadline 2018-01-21 14:10:15 +11:00
Marten Seemann
ef56cae9dc implement a Dial function for the h2quic.RoundTripper
If Dial is set, it will be used for dialing new QUIC connections. If it
is nil, quic.DialAddr will be used.
2018-01-21 13:47:06 +11:00
Marten Seemann
15bcc2579f Merge pull request #1117 from lucas-clemente/mint-config-servername
copy the ServerName from the tls.Config to the mint.Config
2018-01-12 20:47:54 +07:00
Marten Seemann
5283cc5ff4 copy the ServerName from the tls.Config to the mint.Config 2018-01-12 20:30:07 +07:00
Marten Seemann
f33243fb41 Merge pull request #1114 from lucas-clemente/connection-state
expose the ConnectionState in the Session
2018-01-12 17:09:52 +07:00
Marten Seemann
5e8c17744b Merge pull request #1116 from lucas-clemente/mint-require-client-auth
transfer the ClientAuth from tls.Config to the mint.Config
2018-01-12 17:01:51 +07:00
Marten Seemann
8b81d876a4 Merge pull request #1118 from lucas-clemente/received-packet-time
use the packet receive time in the receivedPacketHandler
2018-01-12 17:00:00 +07:00
Marten Seemann
e7e09c9a7e Merge pull request #1119 from lucas-clemente/sent-packet-handler-syscalls
reduce the number of time.Now() syscalls in the sentPacketHandler
2018-01-12 16:58:49 +07:00
Marten Seemann
f68854d3f8 reduce the number of time.Now() syscalls in the sentPacketHandler 2018-01-12 11:50:26 +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
1181657ac1 transfer the ClientAuth from tls.Config to the mint.Config 2018-01-11 22:41:21 +07:00
Marten Seemann
66fd3b5195 expose the ConnectionState in the Session
The ConnectionState contains basic details about the QUIC connection.
2018-01-11 16:27:42 +07:00
Marten Seemann
53dd697adf Merge pull request #1113 from lucas-clemente/fix-server-sending-first
make the client send a packet when the handshake completes (in gQUIC)
2018-01-11 01:37:52 +07:00
Marten Seemann
3818fa16b3 make the client send a packet when the handshake completes (in gQUIC)
In gQUIC, there's no equivalent to the Finished message in TLS. The
server knows that the handshake is complete when it receives the first
forward-secure packet sent by the client. If the protocol demands that
the server sends the first data, this would never happen. We need to
make sure that the client actually sends such a packet. Queueing a PING
frame is an easy way to do so.
2018-01-10 19:25:41 +07:00
Marten Seemann
ca0f9f4a12 Merge pull request #1110 from lucas-clemente/split-streams-maps
introduce a separate streamsMap for IETF QUIC
2018-01-10 09:12:05 +07:00
Marten Seemann
fa4724c8eb remove counting of streams from the IETF streamsMap
Streams have to be counted to enforce the max stream limit. We don't
advertise a max stream limit in the TLS handshake yet, so this never
worked for IETF QUIC. Removing this will make implementing
unidirectional streams easier.
2018-01-10 08:56:15 +07:00
Marten Seemann
a20e94ee16 use separate streamsMaps for gQUIC and IETF QUIC
This is a lot of duplicate code for now, but it will make moving towards
the new stream ID mapping in IETF QUIC (and unidirectional streams) much
easier.
2018-01-10 08:56:15 +07:00
Marten Seemann
69437a0e78 introduce a streamManager interface for the streamsMap 2018-01-10 08:56:15 +07:00
Marten Seemann
e802491a8f create internal interfaces for send and receive streams
And use those for handling frames.
2018-01-10 08:56:13 +07:00
Marten Seemann
7a3209b3a4 return a Stream, not streamI, from streamsMap Open and Accept methods 2018-01-10 08:53:17 +07:00
Marten Seemann
78d7f6fdba Merge pull request #1104 from lucas-clemente/delete-non-fw-retransmissions
delete non-forward-secure retransmissions when the handshake completes
2018-01-10 08:53:00 +07:00
Marten Seemann
fd65fbb194 Merge pull request #1111 from lucas-clemente/enable-travis-latest
Enable travis latest
2018-01-09 20:49:12 +07:00