A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | AA | AB | AC | |
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | server → | h2o/quicly | quant | ngtcp2 | nginx | mvfst | picoQUIC | msquic | f5 | f5_test | ATS | quiche | lsquic | nginx-cloudflare | AppleQUIC | quic-go | Quinn | AkamaiQUIC | aioquic | ~gQUIC | Kwik&Flupke | Neqo | Haskell QUIC | pquic | |||||
2 | client ↓ | ||||||||||||||||||||||||||||
3 | h2o/quicly | ||||||||||||||||||||||||||||
4 | quant | VHDCRZSQ MBAUPELT | VHDCRZSQ MBAUE 3 | VHDCRZSQ MBAUP 3 | VHDCRZSQ MBAUPE 3 | VHDCRZSQ MBAUP 3 | VHDC 3 | ||||||||||||||||||||||
5 | ngtcp2 | ||||||||||||||||||||||||||||
6 | mvfst | ||||||||||||||||||||||||||||
7 | picoQUIC | VHDCRZSQ MAUPEL | VHDCRZSQ MBAUET 3 | VHDCRZSQ MBAUPT 3 | VHDCRZQ U 3 | ||||||||||||||||||||||||
8 | msquic | ||||||||||||||||||||||||||||
9 | f5 | ||||||||||||||||||||||||||||
10 | f5_test | ||||||||||||||||||||||||||||
11 | ATS | ||||||||||||||||||||||||||||
12 | quiche | ||||||||||||||||||||||||||||
13 | lsquic | ||||||||||||||||||||||||||||
14 | nginx-cloudflare | ||||||||||||||||||||||||||||
15 | AppleQUIC | ||||||||||||||||||||||||||||
16 | quic-go | ||||||||||||||||||||||||||||
17 | Quinn | ||||||||||||||||||||||||||||
18 | AkamaiQUIC | ||||||||||||||||||||||||||||
19 | aioquic | VHDCRZSQ MBAUPL | VHDCRZSQ MBAUPLT 3 | VHDCRZSQ MBAUPLT 3dp | |||||||||||||||||||||||||
20 | ~gQUIC | VHDCQ U 3 | VHDCQ BU 3d | ||||||||||||||||||||||||||
21 | Kwik&Flupke | ||||||||||||||||||||||||||||
22 | Neqo | ||||||||||||||||||||||||||||
23 | Haskell QUIC | ||||||||||||||||||||||||||||
24 | pquic | ||||||||||||||||||||||||||||
25 | nginx | ||||||||||||||||||||||||||||
26 | |||||||||||||||||||||||||||||
27 | |||||||||||||||||||||||||||||
28 | To Test: | https://github.com/quicwg/base-drfts/wiki/21st-Implementation-Draft | his wiki tracks known implementations of QUIC. See also our Tools listing. Current interop status; make sure you are looking at or editing the correct tab. | ||||||||||||||||||||||||||
29 | Version Negotiation | V | A version negotiation response is elicited and acted on | ||||||||||||||||||||||||||
30 | Handshake | H | The handshake completes sucessfully | Cell format: | |||||||||||||||||||||||||
31 | Stream Data | D | Stream data is being exchanged and ACK'ed | First row: Any of VHDCRZSQ ("table stakes") | |||||||||||||||||||||||||
32 | Connection Close | C | The connection close procedure completes with a zero error code | Second row: Anything else protocol-related (= uppercase letters) | |||||||||||||||||||||||||
33 | Resumption | R | Connection is established using TLS Resume Ticket | Third row: H3 tests (= "3" + any lowercase letters) | |||||||||||||||||||||||||
34 | 0-RTT | Z | 0-RTT data is being sent and acted on | Insert linebreak with Cmd+Return (on Mac at least) | |||||||||||||||||||||||||
35 | Stateless Retry | S | A handshake that includes a Retry packet completes successfully | ||||||||||||||||||||||||||
36 | Quantum Ready | Q | A handshake using ClientHello spanning across multiple packets completed successfully (see Quantum Readiness test on Wiki) | ||||||||||||||||||||||||||
37 | Server CID change | M | A server offers new CIDs to a client in advance. Upon some events, the client starts using a new server CID | ||||||||||||||||||||||||||
38 | NAT Rebinding | B | A client's port changes. The client sends packets without noticing the change | ||||||||||||||||||||||||||
39 | Address Mobility | A | A server offers new CIDs to a client in advance. The client moves to a new address(/port). The client sends path challenges from the new address(/port) with a new server CID. The server sends path responses on any path | E | |||||||||||||||||||||||||
40 | Key Update | U | One endpoint can update keys and its peer responds correctly | ||||||||||||||||||||||||||
41 | Spin | P | A connection with the spin bit succeeds and the bit is spinning | ||||||||||||||||||||||||||
42 | ECN | E | Set ECT(0) on outgoing packets and verify that ACK frames with ECN information are received. (Note: test can fail if path bleaches ECN.) | ||||||||||||||||||||||||||
43 | Logging | L | There is some form of structured logging available from both the implementations (e.g., qlog, quic-trace) | ||||||||||||||||||||||||||
44 | Throughput | T | Download objects named /5000000 and /10000000 on separate consecutive connections over both H2 and H3 (0.9 if H3 not available). H3 should at most be 10% slower than H2. | ||||||||||||||||||||||||||
45 | H3 | 3 | An H3 transaction succeeded | ||||||||||||||||||||||||||
46 | QPACK Dyn. Tables | d | One or both endpoints insert entries into dynamic table and subsequenly reference them from header blocks | ||||||||||||||||||||||||||
47 | PUSH | p | Client received server push | ||||||||||||||||||||||||||
48 | |||||||||||||||||||||||||||||
49 | Known broken | X | |||||||||||||||||||||||||||
50 | Self-test | ||||||||||||||||||||||||||||
51 | N/A | - | Use this in your row or column when you don't support client or server mode | ||||||||||||||||||||||||||
52 | |||||||||||||||||||||||||||||
53 | Discuss on https://quicdev.slack.com/ | ||||||||||||||||||||||||||||
54 | Coloring auto-applied based on the letter codes, see "conditional formatting" under the "Format" menu. | ||||||||||||||||||||||||||||
55 | Interop Matrix for draft-34 with version 0x1 | ||||||||||||||||||||||||||||
56 | |||||||||||||||||||||||||||||
57 | |||||||||||||||||||||||||||||
58 | |||||||||||||||||||||||||||||
59 | |||||||||||||||||||||||||||||
60 | |||||||||||||||||||||||||||||
61 | |||||||||||||||||||||||||||||
62 | |||||||||||||||||||||||||||||
63 | |||||||||||||||||||||||||||||
64 | |||||||||||||||||||||||||||||
65 | |||||||||||||||||||||||||||||
66 | |||||||||||||||||||||||||||||
67 | |||||||||||||||||||||||||||||
68 | |||||||||||||||||||||||||||||
69 | |||||||||||||||||||||||||||||
70 | |||||||||||||||||||||||||||||
71 | |||||||||||||||||||||||||||||
72 | |||||||||||||||||||||||||||||
73 | |||||||||||||||||||||||||||||
74 | |||||||||||||||||||||||||||||
75 | |||||||||||||||||||||||||||||
76 | |||||||||||||||||||||||||||||
77 | |||||||||||||||||||||||||||||
78 | |||||||||||||||||||||||||||||
79 | |||||||||||||||||||||||||||||
80 | |||||||||||||||||||||||||||||
81 | |||||||||||||||||||||||||||||
82 | |||||||||||||||||||||||||||||
83 | |||||||||||||||||||||||||||||
84 | |||||||||||||||||||||||||||||
85 | |||||||||||||||||||||||||||||
86 | |||||||||||||||||||||||||||||
87 | |||||||||||||||||||||||||||||
88 | |||||||||||||||||||||||||||||
89 | |||||||||||||||||||||||||||||
90 | |||||||||||||||||||||||||||||
91 | |||||||||||||||||||||||||||||
92 | |||||||||||||||||||||||||||||
93 | |||||||||||||||||||||||||||||
94 | |||||||||||||||||||||||||||||
95 | |||||||||||||||||||||||||||||
96 | |||||||||||||||||||||||||||||
97 | |||||||||||||||||||||||||||||
98 | |||||||||||||||||||||||||||||
99 | |||||||||||||||||||||||||||||
100 |