QUIC 监听器配置 (proto)
config.listener.v3.QuicProtocolOptions
[config.listener.v3.QuicProtocolOptions proto]
特定于 UDP QUIC 监听器的配置。
{
"quic_protocol_options": {...},
"idle_timeout": {...},
"crypto_handshake_timeout": {...},
"enabled": {...},
"packets_to_read_to_connection_count_ratio": {...},
"crypto_stream_config": {...},
"proof_source_config": {...},
"connection_id_generator_config": {...},
"server_preferred_address_config": {...},
"send_disable_active_migration": {...},
"connection_debug_visitor_config": {...},
"save_cmsg_config": [],
"reject_new_connections": ...
}
- quic_protocol_options
- idle_timeout
(Duration) 连接在没有网络活动的情况下保持活动状态的最大毫秒数。
如果小于 1 毫秒,Envoy 将使用 1 毫秒。如果没有指定,则为 300000 毫秒。
- crypto_handshake_timeout
(Duration) 加密握手完成前的连接超时时间(以毫秒为单位)。
如果小于 5000 毫秒,Envoy 将使用 5000 毫秒。如果没有指定,则为 20000 毫秒。
- enabled
(config.core.v3.RuntimeFeatureFlag) 控制监听器是否启用或禁用的运行时标志。如果没有指定,则默认启用。
- packets_to_read_to_connection_count_ratio
(UInt32Value) 用于确定每个事件循环要读取多少个数据包的连接数量的乘数。一个合理的值应该允许监听器处理足够多的有效载荷,但不会使 TCP 和其他 UDP 套接字饿死,并且还可以防止事件循环持续时间过长。默认值为 32。这意味着,如果有 N 个 QUIC 连接,则每个读取事件中读取的总数据包数量将为 32 * N。UDP 监听器在总共读取的数据包数量也受到 6000 的限制,无论此字段或有多少个连接。
- crypto_stream_config
(config.core.v3.TypedExtensionConfig) 配置要用于此监听器的
quic::QuicCryptoClientStreamBase实现。如果没有指定,则将使用 QUICHE 默认配置。
- proof_source_config
(config.core.v3.TypedExtensionConfig) 配置要用于此监听器的
quic::ProofSource实现。如果没有指定,则将使用 默认配置。
- connection_id_generator_config
(config.core.v3.TypedExtensionConfig) 配置要用于此监听器的
quic::ConnectionIdGeneratorInterface实现。如果没有指定,则将使用 默认配置。
- server_preferred_address_config
(config.core.v3.TypedExtensionConfig) 配置服务器的首选地址以进行广告,以便客户端可以迁移到该地址。参见 示例,其中配置了一对 v4 和 v6 首选地址。当前的 QUICHE 实现将根据客户端最初连接到的地址族,只宣传一个首选 IPv4 和 IPv6 地址。如果没有指定,Envoy 将不会宣传任何服务器的首选地址。
警告
此 API 功能当前处于开发阶段。标记为开发阶段的 API 功能不被视为稳定,不受 威胁模型 涵盖,不受安全团队支持,并且可能存在重大更改。在了解上述所有要点之前,请勿使用此功能。
- send_disable_active_migration
(BoolValue) 配置服务器以发送传输参数 disable_active_migration。默认值为 false(不发送此传输参数)。
- connection_debug_visitor_config
(config.core.v3.TypedExtensionConfig) 配置要用于此监听器的
quic::QuicConnectionDebugVisitor实现。如果没有指定,则不会将调试访问者附加到连接。
- save_cmsg_config
(repeated config.core.v3.SocketCmsgHeaders) 配置要通过 QuicReceivedPacket 传递给监听器过滤器的一种 UDP cmsg。必须为 cmsg 指定级别和类型才能保存。如果未设置预期的尺寸,则 cmsg 可能被截断或省略。如果没有指定,则不会将 cmsg 保存到 QuicReceivedPacket。
- reject_new_connections
(bool) 如果为 true,监听器将通过向客户端回复空版本协商数据包来拒绝 QUIC 层级的连接建立数据包。