Commit Graph

26 Commits

Author SHA1 Message Date
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