后浪笔记一零二四

TCP协议的缺点:

  1. 连接建立延迟:

    • TCP在建立连接时需要经过三次握手,这会引入额外的延迟。特别是在高延迟网络或需要快速建立连接的场景下,这种延迟可能成为性能瓶颈。
  2. 队头阻塞(Head-of-Line Blocking)

    • TCP是一种顺序传输协议,数据包必须按顺序到达,如果某个数据包丢失,接收端必须等待该数据包被重传后才能处理后续的数据包。这个问题称为“队头阻塞”,它会导致整体传输性能下降,尤其是在高丢包率的网络中。

http协议各个版本的区别:

  • http 1.0: 基于TCP,短连接,每次都需TCP三次握手。
  • http 1.1: 支持keep-alive长连接,虽然支持长连接但是只能串行调用,只有上一个请求的response回来才能发送下一个请求。
  • http 2: 支持pipelining,但是无法解决TCP队头阻塞问题,请求可以并行发送但是response还是串行的。
    • http 2是在2015年提出的,gRPC是基于http 2协议的。
    • 通过stream多路复用实现了一个tcp连接上多请求多response。在一个tcp连接上抽象出了多个虚拟stream。
    • 支持http header压缩
  • http 3: 废弃了TCP协议,转而使用基于UDP的QUIC协议。

quic协议

主要的时间节点:

  • 2012年: Google开始开发QUIC协议
  • 2015年: QUIC协议在IETF成为标准化工作组的项目,开始了标准化进程。
  • 2018年: IETF发布了HTTP/3的第一个草案版本,标志着HTTP/3的正式开发开始。
  • 2020年: HTTP/3的草案完成并开始进行广泛的实现和测试。
  • 2022年: HTTP/3被正式发布为IETF标准,标志着协议的成熟和广泛接受。

QUIC的优点:

  1. 状态管理: TCP不支持切网换ip重传,但是QUIC支持。

    • QUIC通过连接ID(Connection ID)来维持连接的状态,即使IP地址或端口发生变化,(例如用户在移动网络和Wifi之间切换),这使得QUIC连接能够在网络变化时保持稳定,不必重新建立连接。
  2. 有序传输: TCP有队头阻塞问题,但是QUIC没有。

    • QUIC通过stream实现有序传输,每个流都有自己的序列号,确保数据在流内按顺序到达。
    • QUIC支持多路复用,多个流可以并行传输,互不影响,这避免了TCP的队头阻塞的问题。
  3. 可靠传输: QUIC和TCP在理论上具有相同的可靠性。


本文发表于 0001-01-01,最后修改于 0001-01-01。

本站永久域名「 jiavvc.top 」,也可搜索「 后浪笔记一零二四 」找到我。


上一篇 « 下一篇 »

赞赏支持

请我吃鸡腿 =^_^=

i ysf

云闪付

i wechat

微信

推荐阅读

Big Image