计算机网络概论 | 青训营笔记

27 阅读3分钟

课程目录介绍

计算机网络基础

网络组成部分:主机:客户端和服务端、路由器、网络协议

Web中的网络

1 HTTP连接模型

  • TCP报文使用的二进制码形式,HTTP使用的ASCII码形式展示
  • 使用典型的请求-响应模型,客户端发起第一个请求后,等待回应才能发起第二个请求。
    • 缺点:网络利用率低;无法在一条链接上实现多路复用,在一个请求中加入其它请求,则无法辨认;请求头部和响应头部会有很多重复,重复发送,无法压缩,如Cookie
  • 图中的三个模型
    • Short-lived connections:HTTP0时代,每个HTTP都需要创立新的连接,完成会话后就即刻销毁,过于浪费。
    • Persistent connections:HTTP1.1中,默认会保持HTTP继续一段时间,但是没有解决队头堵塞的问题。
    • HTTP Pipelining:可以实现一次发送多个请求,服务端依次实现响应,但是对队头堵塞问题没有改善,还有安全性问题。
    • HTTP1时代,解决队头堵塞问题的方案是同时建立多个HTTP请求,但是会十分耗费网络资源,而且能够同时建立的数量有限
  • HTTP1.1:无法实现多路复用,服务端无法判断报文的每一行都来自哪些请求

2 HTTP2:

帧 : 将多个HTTP请求拆分到帧(frame)里面,可以让每个数据包都有自己的身份,有标识。

  • 通过分析HTTP2报文的头部信息就可以分辨出每个帧的载荷属于哪个请求,进而在浏览器里面重组为完整的请求或响应
  • 拆分为帧的形式,解决了队头堵塞和多路复用的问题
  • 帧的额外好处:
    • 调整响应传输的优先级
    • 头部压缩
    • Server Push
  • 还是会队头堵塞,但是会在TCP上进行堵塞,如果有丢包的情况,会通知服务端某个包丢了,需要重新上传,后续的请求都要等待。
  • HTTP和TLS层面,要建立HTTP连接需要建立三个RTT
    • RTT是指“往返时间”(Round-Trip Time),通常用来表示某个数据包在网络中传输的时间。RTT指的是从客户端发出请求到服务端收到请求并发回响应的时间,再加上从服务端发出响应到客户端收到响应的时间。在Web应用中,RTT通常被看作是客户端与服务端之间网络延迟的度量标准,它越小,用户就能越快地得到所需的结果。
    • 这三个RTT包括TCP建立连接需要一个RTT,TLS建立连接需要两个RTT,TLS1.2及以下需要两个

3 HTTP3:QUIC

  • 将TLS作为自身的一部分,又吸取2中的流的概念

  • 首次1RTT,二次0RRT

4 CDN

5 WebSocket

  • 有状态的持久连接
  • 服务端可以主动推送消息
  • 发送消息延迟比HTTP低

网络安全

网安的三要素:

对称加密和非对称加密:

对称加密:加密、解密用同样的密钥

非对称加密:加密和解密使用不同的密钥(公钥和私钥),而且公钥加密只能用私钥解密、私钥加密只能用公钥解密

密码散列函数:

身份验证:

HTTPS: