Kleissner
51336263f5
UDT Metrics: Add DataSent, DataReceived. Auto calculate data transfer speeds.
2022-03-16 23:35:49 +01:00
Kleissner
e2cda5b565
UDT: Record transfer metrics.
2022-03-14 06:13:52 +01:00
Kleissner
71cd90274c
UDT: Fix race condition close of channel.
2022-02-26 17:42:46 +01:00
Kleissner
8704b7f657
UDT: Fix close bug. It kept sending ACKs/NAKs even though the underlying socket was already closed. Close #95
2022-02-26 16:29:03 +01:00
Kleissner
5f161c0c38
UDT: Fix ACK/NAK ddos by implementing a simple rate limiter. It uses a min/max time and doubles the wait time in between.
2022-02-26 15:41:35 +01:00
Kleissner
94ed383489
UDT: Fix critical bug in NativeCongestionControl not using pointer. ackEvent immediate parameter.
2022-02-20 18:24:42 +01:00
Kleissner
a41de8a4db
UDT: Fix critical bugs: congestion window size was not set on senders side; sentAck was not set in case ACK threshold wasn't reached, which caused resendACKTimer to fail to send
2022-02-19 23:37:04 +01:00
Kleissner
7d9e38a6f5
UDT: Revert removal of udtSocketRecv.ackInterval from b728b939ec close #55
2022-02-19 21:27:21 +01:00
Kleissner
700fc30586
UDT: Minor ticker change in recv. Make sure it is always closed.
2022-01-17 17:00:05 +01:00
Kleissner
1af98ab141
UDT: Improve performance by relying on a single ticker instead of creating new ones for ACK/NAK each outgoing packet.
...
Creating new tickers was huge stress for the gc reducing performance (according to pprof 35% was spent on runtime.siftdownTimer).
2022-01-17 04:28:39 +01:00
Kleissner
7adadf9ad5
UDT: Fix critical bugs that appear during high packet loss. Recv: Implement resending ACKs (until ACK2'ed). Send: Implement unsolicited data resending of unacked data packets. Double sending time each try to prevent ddos.
2021-12-13 16:21:53 +01:00
Kleissner
a26900755b
UDT: Resend NAKs every SynTime until missing packets are received. Fix #70
...
Fix additional divide by 0 bug
2021-12-08 04:09:48 +01:00
Kleissner
eb0ad540fe
UDT: Finally fixing this piece of crap by rewriting the send logic. Close #58
2021-11-11 18:47:10 +01:00
Kleissner
c44b05b9c1
UDT: Remove buggy EXP code. It caused wrong termination. It is not needed; the Peernet protocol handles connectivity.
2021-11-08 04:57:21 +01:00
Kleissner
f3d5f23cf9
Transfer: Record close reason of underlying library (UDT). This helps for debugging issues. Close #54
2021-11-08 04:40:53 +01:00
Kleissner
2924f0074d
UDT: Redeveloped receiving code to fix the packet reassembly bugs.
2021-11-08 00:14:56 +01:00
Kleissner
0d62c215ee
UDT: Fixing #43 #49 #51 . File transfer works in test environment.
...
More tests needed for production testing. Internet MTU needs to be tested.
2021-11-05 03:19:29 +01:00
Kleissner
f76426aa48
UDT: Remove the datapacket_heap with the new heap code
2021-11-05 01:06:02 +01:00
Kleissner
b728b939ec
UDT: Remove ackInterval which was never set anyway. Instead, send ACK every few packets depending on congestion window and count of sent packets.
...
Removing LightACK. The implementation of it was confusing (it competed with ACK in a race condition) and rather pointless. LightACKs will be ditched completely to get to a working version.
2021-11-04 20:47:34 +01:00
Kleissner
0f546caed0
UDT: Fix a bug in udtSocketRecv.ingestData. The wrong sequence identifier was pushed to the lossList. #43
2021-11-01 09:09:30 +01:00
Kleissner
7afc61edef
UDT: Remove unnecessary and confusing sockShutdown. Elevate linger mode to full listen/send mode, which is necessary to combat the shutdown message race condition. Close #47 close #45
2021-10-25 09:12:33 +02:00
Kleissner
0c80eb2e3d
UDT: Fix ddos in ackEvent. It sets ackTimerEvent which triggers ackEvent ... an endless loop. ackTimerEvent is actually not needed at all.
2021-10-25 08:42:24 +02:00
Kleissner
2984dc6b79
UDT: Fix another critical bug. udtSocketRecv.farNextPktSeq was not incremented.
...
Note: The open bug #43 is still pending, although it will give a warning now. The warning can be used as debugging point.
2021-10-25 04:50:40 +02:00
Kleissner
2df8dba4fe
UDT: Temporary bush fix for buggy code #43 . Packet loss is currently ignored, but at least it works now. The function udtSocketRecv.sendNAK is an endless loop and needs a rewrite.
2021-10-25 04:12:44 +02:00
Kleissner
57450e506f
UDT: Fix another critical new bug in getRcvSpeeds. CC #43
2021-10-25 04:05:53 +02:00
Kleissner
75e3d9a42e
Initial UDT implementation for file transfer.
...
New function RequestFileTransferUDT to download files from other peers.
2021-10-24 04:26:30 +02:00