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

61 阅读6分钟

一、交换

两种交换方式:电路交换|分组交换

1.电路交换:

电路交换中,通信双方之间建立一条固定的、专用的物理通信路径。点到点之间先建立连接,没有数据传递时也占据通道。

2.分组交换:

在分组交换中,数据被切分成多个数据包(或称分组),每个数据包独立传输。数据包在网络中根据最佳路由选择相应的路径,最终在目的地重新组装成原始数据。【拿到数据组后放入输出队列,按顺序输出;队列满了会进行丢包】

二、分层

七层|五层

在计算机网络中,数据通常按照协议的格式进行封装和传输。一个数据包或帧通常分为两部分:标头(Header)和载荷(Payload)。标头和载荷分别承担不同的作用,共同实现数据在网络中的传输和处理。到每一层都会加上自己的表头

三、http协议

http连接模型:短链接|长连接|管道化链接

1.短连接模型:在早期的 HTTP/1.0版本中,HTTP 使用无连接模型。这意味着每个 HTTP 请求和响应都需要建立一个新的 TCP 连接。在处理完一个请求后,处理下一个连接。每个连接的建立和关闭都会消耗资源和时间,导致延迟增加和服务器负载过高。

2.长连接模型: 为了解决无连接模型的性能问题,HTTP/1.1 引入了持久连接(Persistent Connection)模型,也称为 Keep-Alive 连接【默认】。

3.管道化连接模型HTTP/1.1 还引入了管道化(Pipelining)连接模型,它允许客户端在收到上一个请求的响应之前,连续发送多个请求。服务器会按照请求的顺序依次处理,并按顺序返回响应。【很少用,原因:对解决队头阻塞几乎没有帮助,另外还可能存在安全性问题】

为解决队头阻塞可以同时建立多个tcp连接,但是这样成本极大。http2.0多路复用

二进制分帧HTTP/2 把请求和响应分解为多个二进制帧,每个帧都有一个唯一的标识符。这使得客户端和服务器能够在一个 TCP 连接上同时发送和接收多个请求和响应的帧,而不会产生队头阻塞问题。但是在tcp包进行传递时tcp上会出现队头阻塞。【场景:中间有包丢失,需要重传成功后才能传接下来的包,从而造成队头阻塞】

HTTP3出现的原因是HTTP2还不够快和解决 HTTP/2【ssl/tls->3RTT才能启动】 中仍然存在的一些问题和局限性

http3:为解决tls需要三次握手的问题,HTTP/3 引入了一个新的传输层协议——QUIC(Quick UDP Internet Connections)。QUIC 基于 UDP(User Datagram Protocol),而非 TCP。这样可以实现首次0次,第二次1次握手,更快速。

*在协议的基础上引入新协议,,而非直接创建一个全新的协议,是因为如今tcp|udp已经十分成熟【支持设备僵化】。此处虽然是udp,但是增加了拥塞控制和丢包重传性质,确保网络传输的可靠性。

四、CDN缓存

CDN 有两种基本的缓存策略:拉取策略(Pull)和推送策略(Push)。

拉取策略,也叫做就近访问策略,指的是 CDN 节点通过 HTTP 请求直接向源站请求数据,然后缓存到本地节点,当用户请求数据时,就直接从缓存的本地节点中获取数据。这种策略主要用于数据更新较少的情况,适用于流量较小、访问频率低的站点。【场景:小红访问某个不常用的视频资源,附近站没有,就访问源站的,后面源站为了访问方便会缓存到附近站点便其他附近客户使用。附近站点有定时清除不常用资源策略】

推送策略,也叫做预先访问策略,指的是将源站的数据推送到 CDN 节点,通过 HTTP 请求缓存到 CDN 节点,当用户请求数据时,直接从缓存的本地节点中获取数据。

五、webSockt协议

1.WebSocket 协议的实现基于 TCP 协议,使用类似 HTTP 的握手协议建立连接。

2.有状态的持久连接,延迟比http小,支持服务端主动推送

六、网络安全

三要素

  • 机密性:攻击者无法获知通信内容
  • 完整性:攻击者对内容进行篡改时能被发现
  • 身份验证:攻击者无法伪装成通信双方的任意一方与另一方通信

1.加密方式

对称加密:对称加密算法是指使用同一个密钥进行加密和解密。发送方使用密钥将明文加密成密文,并将密文发送给接收方,接收方使用相同的密钥将密文解密成明文。

非对称加密:非对称加密算法是指使用不同的密钥进行加密和解密。发送方使用公钥将明文加密成密文,并将密文发送给接收方,接收方使用私钥将密文解密成明文。

2.完整性

密码散列函数:原理:发送方找到两个不同的输入,使之经过密码散列函数后有相同的哈希值。

3.身份验证

数字签名:在数字签名中,发送方首先对原始数据进行哈希运算,得到一个唯一的、固定长度的哈希值。然后,发送方使用自己的私钥对这个哈希值进行加密,形成数字签名,并将数字签名和原始数据一起发送给接收方。接收方可以使用发送方的公钥来验证数字签名的真实性和完整性。

验证数字签名的过程如下:

  1. 接收方对原始数据进行哈希运算,得到一个哈希值。
  2. 接收方使用发送方的公钥对数字签名进行解密,得到一个哈希值。
  3. 接收方比较这两个哈希值是否相同,如果相同,则说明数字签名是有效的,原始数据没有被篡改。

PKI具体是什么?

PKI(Public Key Infrastructure,公钥基础设施)是一种安全技术体系,用于管理和分发数字证书、公钥和私钥等密钥材料,以保证数字通信和电子商务中的安全性、可信性和可靠性。