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