Longer idle timeout has obvious effect of reducing connection failures due to idle timeout. This idle timeout doesn't seem to be specified anywhere in the main utp spec, we are just doing it. 10s seemed reasonable, but when trying to recover from a couple dropped packets, it gets less reasonable.
The retry timeout should be small enough that if it maxes out, there are a few chances at reattempts before the idle timeout. Setting it to /4 of the idle timeout means we should get at least 3 attempts (the 4th will race with the idle).
In high packet-drop scenarios, like 10%, then only making 3 attempts has a 1/1000 chance of failing the connection attempt. With 1000 transfers, the expected value of connection failures is about 1 per test. By increasing to 5 attempts, the connection failures effectively disappeared.
Assuming independent probabilities of packet drops (haha), that means the packet drop rate can go up to 25% before failing about 1 out of 1000 connection attempts.
I also tossed in a bonus fix: to make the name of a test match its comments & content.
Longer idle timeout has obvious effect of reducing connection failures due to idle timeout. This idle timeout doesn't seem to be specified anywhere in the main utp spec, we are just doing it. 10s seemed reasonable, but when trying to recover from a couple dropped packets, it gets less reasonable.
The retry timeout should be small enough that if it maxes out, there are a few chances at reattempts before the idle timeout. Setting it to /4 of the idle timeout means we should get at least 3 attempts (the 4th will race with the idle).
In high packet-drop scenarios, like 10%, then only making 3 attempts has a 1/1000 chance of failing the connection attempt. With 1000 transfers, the expected value of connection failures is about 1 per test. By increasing to 5 attempts, the connection failures effectively disappeared.
Assuming independent probabilities of packet drops (haha), that means the packet drop rate can go up to 25% before failing about 1 out of 1000 connection attempts.
I also tossed in a bonus fix: to make the name of a test match its comments & content.