mozilla / neqo

Neqo, the Mozilla Firefox implementation of QUIC in Rust
https://firefox-source-docs.mozilla.org/networking/http/http3.html
Apache License 2.0
1.84k stars 124 forks source link

QNS client: C1 handshakecorruption fail with quant #903

Closed agrover closed 3 years ago

agrover commented 4 years ago

quant-neqo-fail-c1.zip

Here are the logs. I haven't taken a look yet.

agrover commented 4 years ago

failing connection: 65a95cc2892a3e5d853df80dcd

martinthomson commented 4 years ago

Looking at the connection in question, this looks pretty benign from our end. We do as we are required. As we don't get acknowledgments for Handshake packets, we keep sending on PTO. But quant appears to send just one 1-RTT packet (there is one 0.5-RTT packet that we discard and one that we drop; #891 will likely cache the latter instead, but it shouldn't change the outcome).

I don't know why quant is not sending probe packets with the HANDSHAKE_DONE, but that is what is causing this to fail. Let's pass this on to Lars.

martinthomson commented 4 years ago

BTW, qvis with a time offset of -1596643637070 seems to show this without too much distortion. Maybe someone needs to implement a time skew correction algorithm for qvis. Or maybe we should report absolute times in our logs rather than relative ones...

ddragana commented 3 years ago

We will open new issues if needed.