用户点击网页:
- L7:发送HTTPS请求, 根据HTTPS构造请求内容,包括 URL、Headers、Cookies 等
- L6:根据TLS进行加密,压缩
- L5:建立TLS 会话,管理连接状态
- L4:使用TCP建立连接,将数据分成多个 TCP segments, 添加源端口 / 目标端口,序号、ACK、窗口大小等控制信息
- L3:将 TCP segment 封装成 IP packet, 添加源 IP 和目标 IP, 选择路由路径
- L2:- 将 IP packet 封装成 Ethernet frame, 添加源 MAC 和目标 MAC 地址, 在局域网内通过交换机转发
- L1:- 将 Ethernet frame 转换成电信号或光信号, 通过网线、Wi-Fi、光纤等物理介质传输 服务器收到信号后,按以下顺序还原数据:
- L1:接收信号 → 比特流
- L2:解析 Ethernet frame → IP packet
- L3:解析 IP packet → TCP segment
- L4:重组 TCP segment → TLS payload
- L5:恢复 TLS 会话状态
- L6:解密、解压 → HTTP 请求
- L7:处理请求,返回网页内容(HTML、CSS、JS) 然后服务器的响应会按同样的流程从 L7 → L1 发回用户。
所以一个完整的网络请求包有
- 源 MAC 和目标 MAC 地址
- 源 IP 和目标 IP
- 源端口 / 目标端口,序号、ACK、窗口大小等控制信息
- TLS信息
- URL、Headers、Cookies 等