- QUIC requires transmission of at least 1350 bytes of UDP packets on IPv6 (and 1370 bytes on IPv4).
- On Chrome/Chromium (and Vivaldi), if sending 1350-byte UDP packet fails on IPv6, fallback to HTTP/2 over TCP immediately occurs.
See the explanation in Japanese for the further details on the current implementation. Note well that this differs from the latest version of QUIC Internet-Draft: see draft-ietf-quic-transport-01 Section 8. Quote:
- Packetization and Reliability
The maximum packet size for QUIC is the maximum size of the encrypted payload of the resulting UDP datagram. All QUIC packets SHOULD be sized to fit within the path's MTU to avoid IP fragmentation. The recommended default maximum packet size is 1350 bytes for IPv6 and 1370 bytes for IPv4. To optimize better, endpoints MAY use PLPMTUD [RFC4821] for detecting the path's MTU and setting the maximum packet size appropriately.
Connections with www.google.com and other QUIC-enabled Google servers:
- Tunnelbroker.net with 1280-byte MTU: broken
- IIJmio IPv6: OK (limit: 1499 bytes of IPv6 packets)
Further investigations suggest that the MTUs between he.net (tunnelbroker.net) and major sites such as www.google.com and www.facebook.com are intentionally restricted to 1280 bytes. On the other hand, the MTUs between he.net and other sites such as www.iij.ad.jp and www.ipv6.org are not restricted to 1280 bytes. I tested the MTU max value with the following command on macOS:
ping6 www.ipv6.org -c 10 -s 1500 -l 10
# -s stands for the size; actual IPv6 packet size is +48 bytes
# so in this case the size is 1548 bytes
# for 1280 byte limie the -s value should be set to 1232