网络分层是把通信过程拆成相对独立的职责,便于定义协议、实现互通和定位故障。OSI 模型分为物理层、数据链路层、网络层、传输层、会话层、表示层和应用层;常见 TCP/IP 四层模型把物理与数据链路合并成网络访问层,把 OSI 上三层合并成应用层。教材也常用五层模型,因此模型层数是教学抽象,不意味着真实协议必须严格一一对应。
| TCP/IP 层 | 主要职责 | 常见例子 |
|---|---|---|
| 应用层 | 定义应用交换的数据格式和语义 | HTTP、DNS、SMTP |
| 传输层 | 主机间进程通信、端口和传输服务 | TCP、UDP |
| 网际层 | IP 寻址、跨网络路由 | IPv4、IPv6、ICMP |
| 网络访问层 | 本链路帧传输与物理介质 | Ethernet、Wi-Fi |
发送时,应用先构造 HTTP 等应用数据。传输层可能添加 TCP/UDP 头,形成传输层报文段或数据报;IP 层添加 IP 头,链路层再封装成帧,最后通过介质发送。接收方逐层检查并移除对应头部,把数据交给上层,这叫解封装。每层只依赖约定的接口,不必了解所有下层细节。
寻址范围也不同:端口标识主机上的传输层通信端点;IP 地址用于网络层跨网段寻址;MAC 地址用于当前链路上的帧交付。路由器逐跳转发时通常重建链路层帧,所以 MAC 地址随链路改变,而普通转发下 IP 源/目的地址保持端到端意义,NAT 等技术会改写例外。交换机主要根据链路层信息转发,路由器根据 IP 路由信息选择下一跳。
分层模型有助排障,但不能把每个故障机械地归为单层。HTTPS 在 HTTP 与传输之间增加 TLS 安全层;隧道、VPN、代理也可能引入额外封装。实际数据经过网卡卸载、虚拟网络和代理后,抓包看到的边界可能与简化示意不同。
常见追问
IP 地址和 MAC 地址有什么区别?
IP 用于网络层寻址与路由,通常表达端到端目的;MAC 用于当前二层链路帧的发送。跨路由器时每跳使用新的二层地址。
端口属于哪一层?
TCP/UDP 端口属于传输层,用于把到达主机的数据交给对应通信端点。它与 IP 地址组合后可定位网络连接的一端。
DNS 属于哪一层?为什么它又会用 UDP?
DNS 是应用层协议,规定查询和响应含义;它可以使用 UDP 或 TCP 等传输协议。应用层归属和底层承载不是同一分类维度。
为什么教材有四层和五层 TCP/IP 模型?
有的把物理与数据链路合为网络访问层,有的分开讲解;这是抽象粒度不同,不是协议本身互相矛盾。