quic-interop / quic-network-simulator

ns3-based network simulator for QUIC testing
Other
145 stars 44 forks source link

Packet that elicits a Version Negotiation packet is too small #96

Closed WesleyRosenblum closed 3 years ago

WesleyRosenblum commented 3 years ago

The packet that is sent initially to elicit a Version Negotiation packet from the server is too small to be considered a valid QUIC packet.

From QUIC Transport §10.3:

Endpoints MUST discard packets that are too small to be valid QUIC packets. With the set of AEAD functions defined in [QUIC-TLS], packets that are smaller than 21 bytes are never valid.

And QUIC Transport §5.2.2:

Servers MUST drop smaller packets that specify unsupported versions.

Could the packet payload for this initial packet be filled such that the total packet length is at least 21 bytes?

WesleyRosenblum commented 3 years ago

After further consideration, I believe the packet is ok as is and I'll close this. There is no invariant on the minimum packet size, so ensuring implementations handle small packets such as this with a version negotiation packet in response is overall good for long term interoperability.