Skip to content

TCP/IP 协议簇与 OSI 七层模型学习总结

网络分层的核心价值,是把复杂的通信过程拆成职责明确、接口相对稳定的多个层次。每一层为上层提供服务,同时使用下层提供的能力。OSI 模型更适合解释原理,TCP/IP 模型则直接对应互联网的实际协议体系。

两种分层模型

OSI 参考模型由国际标准化组织提出,共分七层;工程实践中常见的 TCP/IP 模型一般分为四层。二者并非逐层完全对应,但可以按功能进行映射。

OSI 层次TCP/IP 层次主要职责常见协议或设备
7 应用层应用层为应用程序提供网络服务HTTP、DNS、SSH、DHCP
6 表示层应用层数据格式转换、加密和压缩TLS、JPEG、UTF-8
5 会话层应用层建立、维护和终止会话RPC、NetBIOS 会话服务
4 传输层传输层端到端传输、可靠性和流量控制TCP、UDP
3 网络层网际层逻辑寻址与跨网络选路IPv4、IPv6、ICMP、路由器
2 数据链路层网络接口层帧传输、MAC 寻址与差错检测Ethernet、802.1Q、交换机
1 物理层网络接口层在介质上传输比特流双绞线、光纤、集线器

各层如何协作

以浏览器访问 HTTPS 网站为例,应用层生成 HTTP 请求并通过 TLS 保护内容;传输层使用 TCP 建立可靠连接,并以端口号区分应用;网际层添加源、目的 IP 地址;网络接口层再添加 MAC 地址和帧校验信息,最后将数据转换为物理信号发送。

发送端逐层添加控制信息的过程称为封装,接收端从下到上逐层移除控制信息的过程称为解封装。常见协议数据单元如下:

text
应用数据 → TCP 段 / UDP 数据报 → IP 数据包 → 以太网帧 → 比特流

在以太网中,一次典型封装可简化表示为:

text
[目的 MAC][源 MAC][EtherType][IP 首部][TCP 首部][应用数据][FCS]

TCP 与 IP 的分工

IP 负责把数据包尽力送到目标主机,但不承诺数据一定到达、按序到达或只到达一次。TCP 在 IP 之上通过序列号、确认应答、超时重传和滑动窗口等机制提供可靠的字节流服务。UDP 不建立连接,也不提供这些可靠性机制,因此首部开销更小,常用于 DNS 查询、实时音视频和其他能自行处理丢包的场景。

对比项TCPUDP
连接方式面向连接无连接
可靠传输提供确认、重传与排序不保证到达和顺序
数据边界字节流,无消息边界保留数据报边界
典型应用HTTPS、SSH、邮件DNS、语音、直播

一次通信中的地址变化

跨越多个路由器时,源和目的 IP 地址通常保持不变,二层 MAC 地址会在每一跳重新封装。路由器收到以太网帧后移除二层首部,根据目的 IP 和路由表选择下一跳,再使用出接口对应的二层协议重新封装。若路径中存在 NAT,IP 地址或传输层端口也可能被转换。

学习要点

  1. OSI 模型用于理解职责边界,TCP/IP 模型用于理解真实协议栈。
  2. 交换机主要依据 MAC 地址转发二层帧,路由器主要依据 IP 地址转发三层数据包。
  3. 端口号标识主机中的应用进程,IP 地址标识网络中的接口,MAC 地址服务于本地链路交付。
  4. 排障时可以从物理层开始逐层向上检查,也可以根据症状直接定位到相关层次。