Opened 2 years ago

Closed 12 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

Subtickets

#2654: PeerState.java: remove _retransmitterclosedzzz

Change History (3)

comment:1 Changed 2 years ago by zzz

Add a subticket #2654 (PeerState?.java: remove _retransmitter).

comment:2 Changed 2 years ago by jogger

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 12 months ago by zzz

Milestone: undecided0.9.48
Resolution: fixed
Status: newclosed
Note: See TracTickets for help on using tickets.