计算机网络层次
一句话模型
计算机网络把通信问题拆成层次:应用产生数据,传输层负责进程到进程,网络层负责跨网络寻址与路由,数据链路层负责相邻结点传输,物理层负责比特信号;发送端逐层封装,接收端逆序解封装。
三层递进
- 简单:认识 OSI 七层、TCP/IP 四层和常用协议的归属。
- 中等:追踪应用数据从进程到网卡的封装,以及接收端的解封装。
- 复杂:加入 DNS、TCP、IP、ARP、以太网交换和路由转发,完整解释一次访问如何跨越多个网络。
简单图谱:网络分层
分层的价值是隔离变化:上层只使用下层提供的服务,通过接口和协议完成协作。OSI 更细致地划分会话、表示和应用功能,TCP/IP 将其合并为应用层。
# 计算机网络
## OSI 七层
- 应用层:面向用户的网络应用
- 表示层:编码、压缩、加密
- 会话层:会话建立、管理和恢复
- 传输层:进程到进程的端到端传输
- 网络层:主机寻址和路由选择
- 数据链路层:帧、MAC、差错与介质访问
- 物理层:比特、信号和传输介质
## TCP/IP 四层
- 应用层:HTTP、DNS、FTP、SMTP
- 传输层:TCP、UDP
- 网际层:IP、ICMP、路由协议
- 网络接口层:以太网、ARP、物理介质
中等图谱:数据封装与解封装
主干问题是:应用层的一段数据如何变成链路上的比特,又如何在接收端还原为应用数据?
发送端每经过一层就增加本层首部:传输层形成 TCP 报文段或 UDP 数据报,网络层形成 IP 分组,数据链路层形成帧,物理层发送比特。接收端按相反顺序检查首部、去除首部并交付上层。
| 层次 | 典型 PDU | 关键标识 |
|---|---|---|
| 应用层 | 数据 | URL、域名、应用语义 |
| 传输层 | 报文段/用户数据报 | 端口号、序号、确认号 |
| 网络层 | IP 分组 | 源/目的 IP、TTL |
| 数据链路层 | 帧 | 源/目的 MAC、FCS |
| 物理层 | 比特 | 电/光/无线信号 |
复杂图谱:一次端到端访问
复杂图在封装流程上叠加名称解析、邻居发现、交换、路由和可靠传输,展示访问远端 Web 服务时不同协议的职责边界。
阅读时沿三条路径追踪:
- 应用路径:浏览器 → DNS 解析域名 → HTTP/HTTPS 生成请求。
- 端到端路径:TCP 建立连接、分配端口、序号确认和拥塞控制。
- 逐跳路径:IP 查路由表决定下一跳,ARP 获取邻居 MAC,交换机按 MAC 转发,路由器逐跳重封装链路帧。
子模块图谱:协议分层与寻址
不同层使用不同的寻址对象:应用层使用域名或资源名,传输层使用端口,网络层使用 IP,数据链路层使用 MAC。地址解析把高层标识逐步落实到下一跳可达的链路地址。
子模块图谱:封装与解封装
封装是“向下逐层加首部”,解封装是“向上逐层检查并剥离首部”。中间路由器通常只处理网络层及以下信息,不会把 IP 分组解封装到应用层。
关键问题
为什么网络要分层?
分层把复杂通信拆成可组合的功能,每层通过服务接口为上层提供能力。某一层内部协议变化时,只要接口保持稳定,上层不必全部修改。
端到端和逐跳有什么区别?
传输层的可靠性、流量控制和拥塞控制是源主机进程到目的主机进程的端到端问题;数据链路层帧传输和 MAC 转发只负责相邻结点之间的一跳。
IP 地址和 MAC 地址为什么都需要?
IP 用于跨网络定位最终主机并支持路由选择,MAC 用于当前链路上的帧交付。数据经过路由器时,IP 通常保持端到端语义,而每一跳的链路首部会重新封装。
为什么路由器不负责 TCP 可靠传输?
路由器主要处理网络层转发,依据目的 IP 和路由表选择下一跳;TCP 的序号、确认、重传和拥塞控制属于端系统之间的传输层职责。
旁路清单
- 物理层:奈奎斯特/香农、编码调制、交换方式和传输介质
- 数据链路层:组帧、CRC、滑动窗口、CSMA/CD、以太网交换
- 网络层:IPv4/IPv6、子网划分、CIDR、NAT、路由算法、ICMP
- 传输层:TCP 三次握手/四次挥手、可靠传输、流量控制、拥塞控制、UDP
- 应用层:DNS、HTTP、FTP、邮件、DHCP 及其端口和下层依赖
- 横向概念:PDU、协议三要素、服务与接口、MTU 与分片