【发布时间】:2022-01-24 13:35:46
【问题描述】:
QUIC 服务器是生成连接 ID 还是仅生成客户端?有人说有一个源 CID 和一个目标 CID,也有人说每个连接只有一个 CID。有人确定吗?
【问题讨论】:
QUIC 服务器是生成连接 ID 还是仅生成客户端?有人说有一个源 CID 和一个目标 CID,也有人说每个连接只有一个 CID。有人确定吗?
【问题讨论】:
QUIC 规范在 section 5.1 中定义了连接 ID。
你可以从带有长头的数据包的结构中推断出有一个源连接ID和一个目标连接ID,但5.1节明确指出同一端点可能有多个连接ID。
具有短标头的数据包仅携带目标连接 ID。
总而言之,在逻辑级别,QUIC 连接由一组连接 ID 标识。单个端点可能有源连接 ID 和目标连接 ID;最低限度它们是 1 个源连接 ID 和 1 个目标连接 ID,但可以有更多,而且它们的数量不需要相同(例如,对于单个连接,可能有 N 个源连接 ID 和 M 个目标连接 ID,其中 N != M)。
有关详细信息,请参阅QUIC specification。
【讨论】:
客户端和服务器都生成(1 个或多个)连接 ID,对等方应用于它发送的数据包。例如。服务器生成客户端应在其发送的数据包中使用(作为目标)的连接 ID。
当然这意味着一个引导问题(客户端无法知道服务器将生成哪个连接 ID),因此从客户端到服务器的第一个数据包包含一个随机的目标连接 ID;收到后,服务器将自己生成一个连接 ID 并将其传回给客户端,以便客户端可以在其发送的后续数据包中使用该连接 ID。
【讨论】: