Skip to content

[Feature]: 支持 RFC 9368:完整的QUIC协议版本协商机制 #832

Description

@qisefengzheng

Before request a new feature

  • I have searched the issues of this repository and believe that this is not a duplicate.

Describe the feature you'd like supported

RFC 9368 定义了一套完整的QUIC协议版本协商机制,其核心作用是让客户端和服务器能够安全、高效地协商出一个双方都支持的QUIC版本。

更具体来说,它的作用体现在以下几个方面:

弥补原有机制的不足
在RFC 9368出现之前,QUIC协议本身并没有提供一套完整的版本协商流程。旧有的机制只能让服务器告诉客户端“你用的版本我不支持”,但客户端无法安全地利用这个信息来重新建立连接。RFC 9368填补了这一空白。

提供两种协商方式
RFC 9368规定了两种进行版本协商的方法,以适应不同的情况:

不兼容协商 (Incompatible Version Negotiation):这是一种适用于所有QUIC版本的通用方法。当客户端和服务器没有共同的版本时,会使用“版本协商包”(Version Negotiation packet)进行协商。它的缺点是会在连接建立时增加一次额外的网络往返时间(RTT)。

兼容协商 (Compatible Version Negotiation):这是一种可选的高效方法。如果客户端最初选择的版本和最终协商出的版本,在连接建立的最初数据包格式上是兼容的,那么就可以在不增加额外网络延迟(RTT) 的情况下完成协商

Describe alternatives you've considered

No response

Additional context

No response

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions