Opened 18 months ago
Closed 6 months ago
#2649 closed enhancement (fixed)
UDP Transport: allow multiple retransmissions
Reported by: | jogger | Owned by: | zzz |
---|---|---|---|
Priority: | major | Milestone: | 0.9.48 |
Component: | router/transport | Version: | 0.9.43 |
Keywords: | Cc: | ||
Parent Tickets: | Sensitive: | no |
Description
Currently the entire UDP transport is seriously choked down by retransmissions as those block the entire connection. However packet loss is no error condition and will happen even on commercial grade equipment running well below specified capacity. So I propose to allow multiple parallel retransmissions roughly sized to 1 + packets_acked / 5, minimum 2.
Sample test results logged on the current live net:
- 2 retransmissions at > 25% packet loss: connection speed over tunnel lifetime 5-10 KBps
- 10% packet loss, size logic above: connection speed over tunnel lifetime 100 - 200 KBps
Change History (3)
comment:1 Changed 17 months ago by
comment:2 Changed 17 months ago by
After longer tests I have come up with calculating the number of max retrans a bit lower as shown in #2648, using a slower window upscaling factor of 1.25:
_retransmax = 1 + _sendWindowBytes / MINIMUM_WINDOW_BYTES;
Test results as above. The number of allowed retransmissions run down within seconds along with the send window in case of an error.
comment:3 Changed 6 months ago by
Milestone: | undecided → 0.9.48 |
---|---|
Resolution: | → fixed |
Status: | new → closed |
Fixed by #2713 in b1b866105b2533a8ccc1b0ffba02396fb581adf2 0.9.47-9
Add a subticket #2654 (PeerState?.java: remove _retransmitter).