1. 网络基础回顾:OSI七层模型与TCP/IP四层模型详解,数据封装与解封装过程

聊网络,绕不开这两个模型。OSI七层模型和TCP/IP四层模型,说白了就是网络世界的两套“交通规则”。我刚开始学网络时,总觉得OSI太抽象,七层记不住。后来在项目里排查问题,才发现这东西是真有用。

1.1 OSI七层模型:理想化的网络蓝图

OSI模型是国际标准化组织(ISO)在1984年提出的。它把网络通信拆成七层,每一层只管自己的事。我个人习惯用一句话记这七层:“物、数、网、传、会、表、应”

层级 名称 核心功能 常见协议/设备
第7层 应用层 为用户提供网络服务接口 HTTP、FTP、SMTP
第6层 表示层 数据格式转换、加密、压缩 SSL/TLS、JPEG、ASCII
第5层 会话层 建立、管理、终止会话 NetBIOS、RPC
第4层 传输层 端到端可靠传输 TCP、UDP
第3层 网络层 路由选择与逻辑寻址 IP、ICMP、路由器
第2层 数据链路层 帧封装、MAC寻址、差错检测 以太网、交换机、PPP
第1层 物理层 比特流传输、电气特性 网线、光纤、集线器
我的经验: 实际工作中,没人会真的按七层去搭网络。但排查问题时,七层模型就是你的“故障定位地图”。我曾经遇到一个视频卡顿的问题,从应用层一路查到物理层,最后发现是网线水晶头接触不良。嗯,物理层的问题,应用层再优化也没用。

1.2 TCP/IP四层模型:互联网的实战派

TCP/IP模型更接地气。它把OSI的上三层(应用层、表示层、会话层)合并成一层,就叫应用层。下面两层(数据链路层、物理层)也合并成一层,叫网络接口层。说白了,TCP/IP就是OSI的“精简实战版”。

TCP/IP层级 对应OSI层级 核心协议
应用层 5、6、7层 HTTP、DNS、DHCP
传输层 第4层 TCP、UDP
网络层 第3层 IP、ICMP、ARP
网络接口层 1、2层 以太网、Wi-Fi

你想想看,为什么互联网最终选择了TCP/IP而不是OSI?原因很简单:OSI太“完美”了,完美到实现起来太复杂。TCP/IP虽然粗糙,但够用、好用。我在做云计算VPC设计时,脑子里转的就是TCP/IP四层模型,因为云网络的核心——路由、子网、安全组,全都在网络层和传输层上做文章。

1.3 数据封装与解封装:数据包的一生

数据封装,就是数据从应用层一路往下走,每经过一层就加一个“头”。解封装就是反过来,从物理层往上走,每层拆一个“头”。

封装过程(发送方)

  1. 应用层: 原始数据,比如一段文字或一张图片。
  2. 传输层: 加上TCP或UDP头部,包含源端口和目标端口。这就变成了“段”。
  3. 网络层: 加上IP头部,包含源IP和目标IP。这就变成了“包”。
  4. 数据链路层: 加上MAC头部和尾部,包含源MAC和目标MAC。这就变成了“帧”。
  5. 物理层: 把帧转成比特流,通过网线或光纤发出去。

核心记忆点: 数据 → 段 → 包 → 帧 → 比特流。每层只关心自己的“头”,不关心上层的内容。这就是“分层解耦”的精髓。

解封装过程(接收方)

  1. 物理层: 收到比特流,组装成帧。
  2. 数据链路层: 检查MAC地址,是自己的就拆掉MAC头部,把包交给网络层。
  3. 网络层: 检查IP地址,是自己的就拆掉IP头部,把段交给传输层。
  4. 传输层: 检查端口号,拆掉TCP/UDP头部,把数据交给应用层。
  5. 应用层: 拿到原始数据,展示给用户。
避坑指南: 我曾经在配置VPC对等连接时,发现两个VPC之间ping不通。查了半天,发现是数据链路层的MTU设置不一致。发送方封装了1500字节的帧,接收方只支持1400字节,结果包被丢弃了。嗯,这就是封装时没考虑下层限制的典型问题。

1.4 为什么云计算网络要懂这些?

说白了,云上的VPC、子网、路由表、安全组,全都是基于TCP/IP模型设计的。你配置一个安全组规则,其实就是在操作传输层(TCP/UDP端口)和网络层(源IP)。你调整一个路由表,就是在控制网络层的转发行为。

我记得有一次帮客户排查云上应用访问慢的问题。客户说“我带宽够啊,为什么慢?”我一看,安全组规则里放行了所有端口,但网络ACL里只放行了80和443。结果应用层的数据包到了网络层,被ACL拦住了。这就是典型的“分层策略冲突”。

我的建议: 学云计算网络,别急着上手配VPC。先把OSI和TCP/IP模型吃透。你想想看,如果连数据包怎么封装、怎么解封装都不清楚,出了问题你连日志都看不懂。我面试云计算工程师时,第一个问题永远是:“你给我讲讲,你在浏览器里输入一个网址,数据包是怎么从你的电脑到服务器的?”

好了,这一章就到这里。下一章我们聊聊IP地址和子网划分,这是VPC配置的硬功夫。