Commit Graph

126 Commits

Author SHA1 Message Date
Marten Seemann
ba799cef01 delay transmission of small packets to wait for new data
fixes #9, fixes #61
2016-05-13 17:06:30 +07:00
Marten Seemann
c0c7be16e3 add method to get ACK from ReceivedPacketHandler without dequeueing it 2016-05-13 15:55:56 +07:00
Lucas Clemente
c7126137d1 queue undecryptable packets for later decryption & possibly send PRST
fixes #38, fixes #69, fixes #73
2016-05-12 16:46:18 +02:00
Marten Seemann
076349554f move packet number calculations to protocol package 2016-05-12 18:18:15 +07:00
Marten Seemann
3683763dc0 send DelayTime in ACK frames
fixes #81
2016-05-12 17:43:48 +07:00
Lucas Clemente
060df6be7d refactor stream to remove a couple of race conditions
fixes #42
2016-05-11 22:30:14 +02:00
Marten Seemann
552efb57de fix StreamID validation
closes #78
2016-05-11 19:15:10 +07:00
Marten Seemann
e957ad6184 check that all new Streams initiated by the client have an odd StreamID
work towards #78
2016-05-11 18:47:06 +07:00
Marten Seemann
7169584ff9 implement sending of shortened packet numbers 2016-05-10 17:25:52 +07:00
Lucas Clemente
a3d77bae33 add support for FEC acks in version 31
fixes #68
2016-05-09 19:57:26 +02:00
Lucas Clemente
14b16a429c add version number to Frame.Write 2016-05-09 19:50:15 +02:00
Lucas Clemente
b42bad8481 fix flaky server tests
ref #65
2016-05-09 17:57:20 +02:00
Lucas Clemente
c3ff781f08 use cubic for congestion control
fixes #23
2016-05-08 18:29:08 +02:00
Marten Seemann
dbcf5b8cce send retransmission in the right order
fixes #62
2016-05-08 23:04:41 +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
afa3047ce3 treat retransmission logging as debug info 2016-05-06 21:13:41 +02:00
Marten Seemann
bb807fa5bd implement sending of truncated ConnectionIDs 2016-05-06 21:53:21 +07:00
Lucas Clemente
a1f6289587 cleanup logs 2016-05-06 14:31:54 +02:00
Lucas Clemente
02ab3480ff keep bytesInFlight as protocol.ByteCount 2016-05-06 12:59:32 +02:00
Lucas Clemente
aa46fa06a0 add very basic congestion window implementation
fixes #22
2016-05-06 12:05:04 +02:00
Lucas Clemente
7e0d59a5e6 make session timeout according to ICSL
fixes #54
2016-05-05 23:16:49 +02:00
Marten Seemann
6556e2f695 use protocol.ByteCount in frames, streams and session 2016-05-05 11:53:10 +07:00
Marten Seemann
77f34a9207 set initial flow control window from handshake parameters
fixes #50
2016-05-05 11:29:12 +07:00
Lucas Clemente
ef6e8cf1b4 make server delete sessions when they are closed
fixes #46
2016-05-04 16:34:08 +02:00
Lucas Clemente
150795d702 make session send packets immediately 2016-05-04 15:23:59 +02:00
Lucas Clemente
df5143d561 remove newlines from log messages 2016-05-04 14:24:36 +02:00
Lucas Clemente
09fb894fb2 add custom logger
fixes #45
2016-05-04 13:20:24 +02:00
Marten Seemann
d07baef91b manage connection parameters in a separate class 2016-05-04 17:20:36 +07:00
Marten Seemann
01c5d91acc implement PingFrame 2016-05-04 10:16:00 +07:00
Marten Seemann
b183b0edb3 improve debug output 2016-05-03 23:34:01 +07:00
Marten Seemann
f240df6ea5 implement basic flow control
fixes #37
2016-05-03 12:07:01 +07:00
Lucas Clemente
6178ef83fe discard undecryptable packets
hopefully fixes issue #33, the workaround is tracked in #38
2016-05-02 16:45:26 +02:00
Lucas Clemente
6b4f01b1b9 use hex for connectionID in log messages 2016-05-02 15:13:29 +02:00
Marten Seemann
f3e7fd438e include StreamFrames in debug output 2016-04-30 14:23:31 +07:00
Marten Seemann
8a3b667c38 better debug output for retransmissions 2016-04-30 10:57:10 +07:00
Marten Seemann
06b51871b1 close session when receiving a ConnectionCloseFrame
fixes #28
2016-04-30 10:04:45 +07:00
Marten Seemann
f1537c4e1b improve debug output 2016-04-30 09:55:18 +07:00
Lucas Clemente
8cb546d3eb temporary workaround for server handing when session chan is full
#35
2016-04-29 16:50:39 +02:00
Lucas Clemente
480d339f9a implement public reset sending in session
fixes #14, #33
2016-04-29 16:50:09 +02:00
Lucas Clemente
a38735f8fc improve debug log 2016-04-29 12:35:18 +02:00
Lucas Clemente
64b5567eaa calculate RTT in session
fixes #32
2016-04-29 12:19:07 +02: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
6a7f331269 implement a StreamFrame Queue to handle high priority StreamFrames for retransmission
fixes #21
2016-04-27 21:05:58 +07:00
Marten Seemann
6eeccfd123 retransmit lost packets, send StopWaiting frames 2016-04-27 18:56:21 +07:00
Lucas Clemente
bd67f537c9 add support for receiving BLOCKED frames 2016-04-27 13:02:00 +02:00
Lucas Clemente
0d6642464d remove some debug messages 2016-04-27 12:52:06 +02:00
Lucas Clemente
607ab843d6 close session when crypto stream errors 2016-04-27 12:49:55 +02:00
Marten Seemann
160db13bdb close the connection on an MapAccess error in SentPacketHandler 2016-04-27 11:34:35 +07:00