计算机网络学习 - 4| 青训营笔记

53 阅读2分钟
    • HTTP管线模型 HTTP Pipelining

      允许客户端发出多个请求,然后服务器端按顺序返回响应,这个方案看似很美好,但现实中几乎没有浏览器会用这个方案。这个模型对解决队头堵塞几乎没有帮助,还可能会导致一些潜在的安全问题,性能提升也不高。(个人认为原因是,返回响应是服务器按顺序返回的,只是允许客户端同时发起多个请求,在实际效率上并不能起到明显的提升,还是得按顺序一个个等响应)

    • HTTP 2 使用了帧的概念 以下是 除了多路复用外 带来的额外好处

      • 调整响应传输的优先级
      • 头部压缩
      • Server Push
    • HTTP3

      • QUIC (Quick UDP Internet Connection) 将TLS作为自身的一部分,解决了之前TCP 和 TLS 需要各自握手的问题

      • 也吸取了HTTP2中流的概念,在QUIC中提供了互相独立的流,解决了原先TCP队头堵塞的问题

      • 引入了新的机制,可以实现首次连接1RTT,后续连接0RTT

      • 从名字中不难发现,QUIC是基于UDP进行实现的,为什么不重新设计一个协议的,而是要基于现有协议进行开发捏?

        原因是,现有设备都对TCP和UDP有着较好的支持,如果完全重新设计一个协议,需要相当长的一段时间才能被大范围地使用,所以trade off 之后,是在UDP基础上设计出了QUIC

      • 现存网络设备对TCP 和 UDP 支持已经僵化

      • UDP 不靠谱但是 QUIC 靠谱

      • QUIC可以为除 HTTP 协议以外的应用层协议提供支持

  1. HTTP3首次与非首次连接的所需的RTT

    1. 首次:HTTP 3: QUIC - 1 RTT

      (

      QUIC 第一次访问

      • HTTP 客户端:我要和大哥说话!
      • QUIC 客户端:嗨!服务端,你在吗?在的话能给我把钥匙吗?
      • QUIC服务端:嗨!客户端,我在,这是你的钥匙!
      • HTTP 客户端:今天这么快?我要 index.html!
      • QUIC 服务端(偷偷地告诉客户端):这还有把钥匙,下次找我可以不用问,直接用

      )

    1. 非首次:HTTP: QUIC - 0 RTT

      (

      QUIC 第二次访问

      • HTTP 客户端:我要和大哥说话!
      • QUIC 客户端:嗨!服务端,你在吗?后面的话我已经用上次你给我的钥匙加密 过了,HTTP 那小子肯定要 indexhtmil!
      • QUIC服务端:嗨!客户端,我在,我知道你要 index html,给你!
      • HTTP 客户端:?

      )