searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

quic协议中Connection ID的协商机制

2023-09-19 01:37:26
284
0
quic协议是基于UDP的应用层可靠协议。
由于UDP本身是无连接的服务,因此quic数据包的连接ID(connection id)用于确定该数据包属于哪个quic连接。长包头包含两个连接ID:目标连接ID(DCID=Destination Connection ID)和目标连接ID(SCID=Source Connection ID)。
 
通常客户端的DCID是由客户端初始数据包确定,通过在初始数据包中携带DCID告知服务端。但是服务端可以在接收到客户端的初始数据包后,对客户端的DCID字段进行变更。
 
参考RFC9000文档,如下所示:客户端发送初始数据包标记DCID为S1,服务端收到客户端的初始数据包后,响应给客户端初始数据包,此时变更了直接的SCID为S3。而客户端在收到该报文后,也将自己的DCID设置为S3,从而改变了DCID字段。
 
 
具体的,我们可以通过客户端模拟,下面是通过wireshark抓包的实例,可以看到DCID通过协商值发生了改变:
0条评论
0 / 1000
沈****扬
4文章数
0粉丝数
沈****扬
4 文章 | 0 粉丝
原创

quic协议中Connection ID的协商机制

2023-09-19 01:37:26
284
0
quic协议是基于UDP的应用层可靠协议。
由于UDP本身是无连接的服务,因此quic数据包的连接ID(connection id)用于确定该数据包属于哪个quic连接。长包头包含两个连接ID:目标连接ID(DCID=Destination Connection ID)和目标连接ID(SCID=Source Connection ID)。
 
通常客户端的DCID是由客户端初始数据包确定,通过在初始数据包中携带DCID告知服务端。但是服务端可以在接收到客户端的初始数据包后,对客户端的DCID字段进行变更。
 
参考RFC9000文档,如下所示:客户端发送初始数据包标记DCID为S1,服务端收到客户端的初始数据包后,响应给客户端初始数据包,此时变更了直接的SCID为S3。而客户端在收到该报文后,也将自己的DCID设置为S3,从而改变了DCID字段。
 
 
具体的,我们可以通过客户端模拟,下面是通过wireshark抓包的实例,可以看到DCID通过协商值发生了改变:
文章来自个人专栏
文章 | 订阅
0条评论
0 / 1000
请输入你的评论
0
0