mirror of https://github.com/ospab/ostp.git
A mobile-network connect showed the handshake completing with rtt=3321ms — it took several attempts because handshake datagrams were being lost, and each loss cost a full 1200ms retransmit window. Sometimes all four attempts were lost and the connect failed outright. Two changes, no increase in the worst-case budget: - UDP now retransmits over 6 windows of 800ms instead of 4 of 1200ms (≈ the same 4.8s total), so a lost handshake recovers faster and there are more chances before giving up / falling back to NAT64. - Each UDP attempt sends the handshake twice. A single dropped datagram no longer costs a whole window; whichever copy lands first is processed and the server's anti-replay drops the duplicate. UoT rides reliable TCP, so it still sends one. This targets loss-driven delay and failure, which the log shows. It does not cure a carrier that deterministically holds the flow for seconds regardless of retries — that is the throttling case, which needs the mimicry work, not more retransmits. |
||
|---|---|---|
| .. | ||
| src | ||
| Cargo.toml | ||
| test_udp.rs | ||