QUIC为什么使用这样的connectionID?"/>
QUIC为什么使用这样的connectionID?
1、是不是必须使用connectionID?
因为QUIC需要支持源地址迁移。
在无意的地址迁移时,迁移前后connectionID相同,可以使用connectionID辨别是属于同一连接;
在有意的地址迁移时,迁移前后connectionID不同,但是连接自己知道两者关系,所以仍然可以关联。
有意的地址迁移既然可以在前connectionID标识的报文中携带新的connectionID,来让连接知道两者关系,那能不能不使用connectionID,旧地址的报文中携带新地址或者新地址的报文中携带旧地址?不可以,因为可能会经历nat。那能不能变更地址后携带token?如果token是密文,那么接收端找不到对应的秘钥,如果是明文,那跟connectionID有多大区别?另外QUIC报文是会乱序的,迁移后收到的第一个报文就应该能够让对端关联起来。
2、是不是两端必须分别分配自己的connectionID?
使用自己分配的connectionID路由,不需要处理冲突的情况,比如服务器上很可能收到不同客户端的相同connectionID,这时候就很难标识一个客户端,因为源地址会变化,不能使用。
更多推荐
QUIC为什么使用这样的connectionID?
发布评论