QUIC

QUIC 是 RFC 9000 中定义的通用传输协议。它基于 UDP 运行,提供内置加密的安全多路复用连接。QUIC 是 HTTP/3 协议所基于的传输层。

主要功能

QUIC 还引入了其他改进,更多详情请参阅:RFC9000。

QUIC 需要 OpenSSL 3.5 或更高版本,该版本提供了这些组件使用的 QUIC 实现。

引擎不是通过组件属性直接选择的,而是跟随 QUIC 选项的 TLS IOHandler(客户端上的 SSLQUICOptions 或 TLSOptions,服务器上的 QUICOptions.SSLOptions):使用 iohOpenSSL(默认)时,若已加载的 OpenSSL 导出内置 QUIC 栈(OpenSSL 3.5 及以上的 OSSL_QUIC_client_method),则使用内置引擎 qmBuiltin,否则回退到 sgc 引擎 qmCustom;使用 iohNativeTLS 时,始终使用 sgc 引擎,TLS 1.3 握手运行在原生 TLS 引擎上。服务器通过只读属性 QUICMode 报告启动时选择的引擎。使用 iohNativeTLS 时,sgc 引擎会原生保护报文:报文与首部保护(AES-128-GCM、AES-256-GCM、ChaCha20-Poly1305)、密钥派生、密钥更新和 Retry 完整性标签均运行在 sgcCrypto 上而非 OpenSSL,每条连接都是如此,无需任何开关。搭配原生 TLS 1.3 握手,QUIC 和 HTTP/3 可以完全不使用 OpenSSL,参阅不使用 OpenSSL 运行。使用 iohOpenSSL 时,报文保护遵循 sgcCryptoBackend(或 SGC_NATIVE_CRYPTO 开关)。

组件