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 数据封装与解封装:数据包的一生
数据封装,就是数据从应用层一路往下走,每经过一层就加一个“头”。解封装就是反过来,从物理层往上走,每层拆一个“头”。
封装过程(发送方)
- 应用层: 原始数据,比如一段文字或一张图片。
- 传输层: 加上TCP或UDP头部,包含源端口和目标端口。这就变成了“段”。
- 网络层: 加上IP头部,包含源IP和目标IP。这就变成了“包”。
- 数据链路层: 加上MAC头部和尾部,包含源MAC和目标MAC。这就变成了“帧”。
- 物理层: 把帧转成比特流,通过网线或光纤发出去。
核心记忆点: 数据 → 段 → 包 → 帧 → 比特流。每层只关心自己的“头”,不关心上层的内容。这就是“分层解耦”的精髓。
解封装过程(接收方)
- 物理层: 收到比特流,组装成帧。
- 数据链路层: 检查MAC地址,是自己的就拆掉MAC头部,把包交给网络层。
- 网络层: 检查IP地址,是自己的就拆掉IP头部,把段交给传输层。
- 传输层: 检查端口号,拆掉TCP/UDP头部,把数据交给应用层。
- 应用层: 拿到原始数据,展示给用户。
1.4 为什么云计算网络要懂这些?
说白了,云上的VPC、子网、路由表、安全组,全都是基于TCP/IP模型设计的。你配置一个安全组规则,其实就是在操作传输层(TCP/UDP端口)和网络层(源IP)。你调整一个路由表,就是在控制网络层的转发行为。
我记得有一次帮客户排查云上应用访问慢的问题。客户说“我带宽够啊,为什么慢?”我一看,安全组规则里放行了所有端口,但网络ACL里只放行了80和443。结果应用层的数据包到了网络层,被ACL拦住了。这就是典型的“分层策略冲突”。
好了,这一章就到这里。下一章我们聊聊IP地址和子网划分,这是VPC配置的硬功夫。