🔄Update: 计算机网络

This commit is contained in:
2025-09-29 19:25:22 +08:00
parent 872972e2c4
commit ccc90d9c8d
7 changed files with 167 additions and 0 deletions
+27
View File
@@ -0,0 +1,27 @@
# 分层模型
## `OSI` 七层模型
- 应用层
- 为计算机用户提供服务
- 表示层
- 数据处理(编解码、加密解密、压缩解压缩)
- 会话层
- 管理应用程序之间的会话
- 传输层
- 为两台主机进程之间的通信提供通用的数据传输服务
- 网络层
- 路由和寻址
- 数据链路层
- 帧编码和误差纠正控制
- 物理层
- 传送比特流数据
![OSI](https://oss.javaguide.cn/github/javaguide/cs-basics/network/osi-model-detail.png)
## `TCP/IP` 协议
- 应用层
- 传输层
- 网络层
- 网络接口层
+20
View File
@@ -0,0 +1,20 @@
# 应用层协议
- HTTP 超文本传输协议
- 基于 TCP
- 无状态
- WebSocket 全双工通信协议
- 基于 TCP
- 允许双方同时收发数据
- SMTP 简单邮件传输协议
- 基于 TCP
- POP3/IMAP 邮件接收协议
- IMAP 比 POP3 强大
- FTP 文件传输协议
- 基于 TCP
- 将命令与数据分开传输
- 注意不会对数据加密,可以使用 SFTP(基于 SSH)
- Telnet 远程登陆协议
- 用户名密码明文发送
- SSH 安全的网络传输协议
- DNS 域名系统
+44
View File
@@ -0,0 +1,44 @@
# 三次握手
**过程**
- 第一次握手
- 客户端发送 `SYN`
- 第二次握手
- 服务端响应 `ACK`
- 服务端发送 `SYN`
- 第三次握手
- 客户端响应 `ACK`
**作用**
- 第一次握手
- 第二次握手
- `Client`
- 自己:发送、接收
- 对方:发送、接收
- `Server`
- 自己:接收
- 对方:发送
- 第三次握手
- 确认双方收发的功能正常
**术语**
- `SYN`
- 同步序列编号
**约定**
- 第三次握手是可以携带数据的
**断开握手**
- 第一次挥手
- 客户端发送 `FIN`
- 第二次挥手
- 服务端响应 `ACK`
- 第三次挥手
- 服务端发送 `FIN`
- 第四次挥手
- 服务端发送 `ACK`
+34
View File
@@ -0,0 +1,34 @@
# HTTPS
- HTTPS = HTTP + SSL/TLS
- SSL
- 安全套接字协议
- TLS
- SSL 升级版
**加密**
- 非对称加密
- 客户端 -> 移动端
- 客户端
- 公钥加密
- 服务端
- 私钥解密
- 优点
- 密钥生成以及加解密需要耗费较多的系统资源
- 对称加密
- HTTPS 消息加密方法
- 核心
- 双方共享唯一密钥 `k`
- 通过 `k` 进行加密解密
*实际操作*
- 先通过一次非对称加密协商对称加密密钥
- 双方使用对称密钥进行后续通信
**问题**
- 非对称加密可能会有 *中间人攻击* (伪造私钥) -> 引入 CA 认证,客户端从 CA 证书中获取公钥
- CA 可能会被冒充 ? -> 根证书预置在操作系统中,无法伪造
@@ -0,0 +1,9 @@
# 访问网页的过程
1. 输入 `URL`
`协议`://`域名`:`端口`/`资源路径`?`参数`#`锚点`
2. 获取 `IP`
`DNS` 解析
3. TCP 连接
4. HTTP/HTTPS 请求
5. 返回数据
+15
View File
@@ -0,0 +1,15 @@
# 轮询 vs 长轮询
- 轮询
- `Polling`
- 客户端定期向服务器发送请求,查询是否有新数据
- 弊端
- 增加冗余网络请求
- 长轮询
- `Long Pollong`
- 客户端请求后,服务端保持连接
- 有新数据后返回响应
- 客户端继续发起新请求
- 好处
- 高效
- 接近实时通讯
+18
View File
@@ -0,0 +1,18 @@
# 用户状态
> HTTP 与 HTTPS 是无状态的,那么客户端与服务端之间如何维护状态信息?
**`Session`**
1. 用户发送账号密码登录
2. 服务端生成 `Session` 对象
3. `Session ID` 回传给客户端 并 `Set-Cookie`
4. 浏览器将 `Session ID` 存放在 `Cookie` 中
5. 后续请求使用该 `Cookie`
*前提:浏览器开启 Cookie(备选:URL重写)*
**`Token`**
- 无状态的认证方式——服务端无需存储状态