Skip to content

Implementation Draft Interop

mirjak edited this page Jul 17, 2024 · 5 revisions

Parameters and version

  • QUIC Version 1 (vn=0x1)

  • HTTP 3 (ALPN=h3)

  • HTTP 0.9/1.1 (ALPN=hq-interop)

  • Transport parameter: 0x0f739bbc1b666d04 (draft-ietf-quic-multipath-04)

References

  • List of implementations here

  • Google sheet with results is here

Core Features Tested

Feature code details
Handshake H The handshake completes with successful negotiation of enable_multipath transport parameter (both ends indicate 0x01)
Path Validation V Client sends PATH_CHALLENGE frame to open a new path and server replies with PATH_RESPONSE
Send data D Stream data (of one of more streams) is send on all paths; ACK_MP frames are sent and processed
Path Close C Client closes a path with PATH_ABANDON frame

Optional Features Tested

Feature code details
CID change I A server offers new CIDs to a client in advance. Upon some events, the client starts using a new server CID on one path
Path status S Client sends PATH_STANDBY and PATH_AVAILABLE frames
Key Update U One endpoint updates keys and sends at least one packet with the new key on all active paths
Multipath ACK A One endpoint sends data and the other endpoints sends ACK (randomly) on all path independent of where data is received
CID retirement R One endpoint send an RETIRE_CONNECTION_ID for an active path
Migration M Change CID and 4-tuple e.g. port on an existing path