While I haven't seen that on my noisy UDP network yet, it is completely possible to happen:
Basically, we need to set a timeout when waiting in Exchange::recv for a reply from the other peer
Reason: the network might be so noisy, that the peer might give up re-sending their messages before we have received even one transmission. Moreover, we might never receive any transmission, and then we need to drop the exchange with an error, similarly how we drop the exchange when we - ourselves - give up on re-transmitting a message
The logic is very simple and re-uses our re-transmission maximum timeout multiplied by 1.3 to give some extra waiting.
While I haven't seen that on my noisy UDP network yet, it is completely possible to happen:
Exchange::recv
for a reply from the other peerThe logic is very simple and re-uses our re-transmission maximum timeout multiplied by 1.3 to give some extra waiting.