Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

HTTP3 是什么 #68

Open
nmsn opened this issue Jun 19, 2023 · 3 comments
Open

HTTP3 是什么 #68

nmsn opened this issue Jun 19, 2023 · 3 comments
Labels

Comments

@nmsn
Copy link
Contributor

nmsn commented Jun 19, 2023

No description provided.

@nmsn
Copy link
Contributor Author

nmsn commented Jun 19, 2023

@nmsn nmsn removed the TODO label Jun 19, 2023
@nmsn
Copy link
Contributor Author

nmsn commented Jun 19, 2023

HTTP2 存在的问题

  1. 有序字节流引出的队头阻塞,使得 HTTP2 的多路复用能力大打折扣

  2. TCP 与 TLS 叠加增加了握手时延

  3. 基于 TCP 四元组 确定一个连接,这种诞生于有线网络的设计,并不适合移动状态下的无线网络,这意味着IP地址的频繁变动会导致 TCP 连接、TLS 会话反复握手,成本高昂

    网络四元组:简单理解就是在TCP协议中,去确定一个客户端连接的组成要素,它包括源IP地址、目标IP地址、源端口号、目标端口号

@nmsn
Copy link
Contributor Author

nmsn commented Jun 19, 2023

HTTP3 解决的问题

  • HTTP3 基于 UDP 协议重新定义了连接,在 QUIC 层实现了无序、并发字节流的传输,解决了队头阻塞问题(包括基于 QPACK 解决了动态表的队头阻塞);
  • HTTP3 重新定义了 TLS 协议加密 QUIC 头部的方式,既提高了网络攻击成本,又降低了建立连- 接的速度(仅需1个 RTT 就可以同时完成建链与密钥协商);
  • HTTP3 将 Packet、QUIC Frame、HTTP3 Frame 分离,实现了连接迁移功能,降低了 5G 环境下高速移动设备的连接维护成本

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant