还记得小时候玩积木吗?我们总是从最底层开始,一层一层地往上搭建,每一层都有自己的作用,底层为上层提供支撑,上层为底层提供意义。网络协议的设计也是如此。
在上一篇文章中,我们了解了计算机网络的基本概念。今天,我们要深入探讨网络世界的"建筑蓝图"——OSI七层模型和TCP/IP四层模型。这两个模型就像是网络世界的"宪法",定义了数据在网络中传输的基本规则和架构。
理解这些模型不仅能帮助我们更好地理解网络通信的本质,还能在遇到网络问题时快速定位问题所在的层次,从而高效地解决问题。
在深入了解具体模型之前,我们先思考一个问题:为什么网络协议要设计成分层的架构?
想象一下,如果让你设计一个从北京到上海的快递系统,你会怎么做?
寄件人快递员上门取件快递网点收集区域分拣中心长途运输目的地分拣中心目的地网点快递员派送收件人这个快递系统就是典型的分层架构:
分层架构的优势:
在网络通信中,分层架构解决了以下核心问题:
网络分层解决的问题复杂性管理标准化可扩展性故障隔离将复杂的网络通信分解为简单的子问题每层只需关注自己的职责统一的接口规范不同厂商的设备可以互通新技术可以在特定层实现不影响其他层的设计问题可以定位到具体层次便于调试和维护OSI(Open Systems Interconnection)模型是国际标准化组织(ISO)在1984年提出的网络通信标准模型。它将网络通信分为七个层次,每层都有明确的功能定义。

职责:定义物理媒介的电气、机械、功能和规程特性
功能:
设备:网线、光纤、集线器(Hub)、中继器
类比:就像快递系统中的运输工具(卡车、飞机),负责实际的物理传输。

实际例子:
职责:在直接相连的两个节点间提供可靠的数据传输
功能:
设备:交换机(Switch)、网桥
协议:以太网(Ethernet)、WiFi(802.11)、PPP
类比:像快递包装,确保包裹在运输过程中不会损坏,并且有正确的标签。

帧结构示例(以太网):
职责:在不同网络间进行路径选择和数据转发
功能:
设备:路由器(Router)、三层交换机
协议:IP、ICMP、OSPF、BGP
类比:像快递的分拣中心,决定包裹应该走哪条路线到达目的地。

IP数据包结构包含:
职责:提供端到端的可靠数据传输服务
功能:
协议:TCP、UDP
类比:像快递公司的客服,负责端到端的服务质量,确保包裹能够可靠送达。

TCP vs UDP对比:
特性 | TCP | UDP |
|---|---|---|
连接性 | 面向连接 | 无连接 |
可靠性 | 可靠传输 | 不可靠传输 |
速度 | 较慢 | 较快 |
开销 | 较大 | 较小 |
应用场景 | 文件传输、网页浏览 | 视频直播、DNS查询 |
职责:建立、管理和终止应用程序之间的会话
功能:
协议:NetBIOS、RPC、SQL会话
类比:像电话通话的管理,决定何时开始通话、何时结束通话,以及通话过程中的管理。
会话建立数据交换同步检查点会话终止异常处理会话恢复职责:数据的格式化、加密和压缩
功能:
协议:SSL/TLS、JPEG、MPEG、ASCII
类比:像翻译官,将不同语言(数据格式)进行转换,确保双方能够理解。
原始数据格式转换加密处理压缩处理传输数据解压缩解密处理格式还原目标数据职责:为应用程序提供网络服务接口
功能:
协议:HTTP/HTTPS、FTP、SMTP、DNS、SSH
类比:像快递的收发件人,是实际使用网络服务的用户和应用程序。
Web浏览器HTTP/HTTPS邮件客户端SMTP/POP3/IMAP文件传输工具FTP/SFTP远程登录工具SSH/Telnet应用层数据在OSI模型中的传输过程就像俄罗斯套娃,每一层都会添加自己的头部信息:

数据封装示例:
虽然OSI七层模型在理论上很完美,但在实际应用中,TCP/IP四层模型更加实用。TCP/IP模型是互联网的实际架构基础,它将OSI的七层简化为四层。

对应OSI:物理层 + 数据链路层
职责:处理与物理网络的连接细节
功能:
协议:以太网、WiFi、PPP、ARP
设备:网卡、交换机、集线器
对应OSI:网络层
职责:处理数据包在网络中的路由
功能:
协议:IP、ICMP、IGMP
设备:路由器
对应OSI:传输层
职责:提供端到端的数据传输服务
功能:
协议:TCP、UDP
对应OSI:会话层 + 表示层 + 应用层
职责:为用户应用程序提供网络服务
功能:
协议:HTTP、FTP、SMTP、DNS、SSH
TCP/IP四层模型OSI七层模型应用层表示层会话层传输层网络层数据链路层物理层应用层传输层网络层网络接口层方面 | OSI七层模型 | TCP/IP四层模型 |
|---|---|---|
层数 | 7层 | 4层 |
设计理念 | 理论先行,标准化 | 实践驱动,实用性 |
发展历程 | 1984年ISO制定 | 1970年代ARPANET |
应用范围 | 理论教学,网络分析 | 互联网实际架构 |
优势 | 层次清晰,便于理解 | 简洁实用,易于实现 |
劣势 | 过于复杂,实用性差 | 层次模糊,理论性弱 |
OSI → TCP/IP 映射关系:
当网络出现问题时,我们可以按层进行排查:
物理层问题:
数据链路层问题:
网络层问题:
传输层问题:
应用层问题:
不同层次的优化策略:

分层的安全防护策略:
物理层安全:
数据链路层安全:
网络层安全:
传输层安全:
应用层安全:
面试问题:"当你在浏览器地址栏输入 www.baidu.com 并按下回车后,发生了什么?"
这是面试中最经典的问题之一,让我们用分层模型来详细分析整个过程:

第一步:DNS解析(应用层)

详细过程:
第二步:建立TCP连接(传输层)

关键技术细节:
第三步:发送HTTP请求(应用层)
HTTP请求格式:
GET / HTTP/1.1
Host: www.baidu.com
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7)
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate, br
Connection: keep-alive
Upgrade-Insecure-Requests: 1第四步:数据包传输(网络层)
HTTP请求数据TCP分段IP数据包封装添加IP头部路由表查询选择下一跳发送到网关IP数据包头部信息:
第五步:数据链路层传输
IP数据包添加以太网头部目标MAC地址源MAC地址类型字段数据CRC校验发送到物理介质以太网帧结构:
1. ARP协议的作用
当需要发送数据到网关时,需要知道网关的MAC地址:

2. 路由选择过程
精确匹配网段匹配默认路由无匹配数据包到达路由器查看目标IP查询路由表匹配路由条目直接转发转发到下一跳转发到默认网关丢弃数据包3. HTTP响应处理
服务器返回的HTTP响应:
HTTP/1.1 200 OK
Date: Mon, 01 Jan 2024 12:00:00 GMT
Server: Apache/2.4.41
Content-Type: text/html; charset=UTF-8
Content-Length: 12345
Connection: keep-alive
<!DOCTYPE html>
<html>
<head>
<title>百度一下,你就知道</title>
</head>
<body>
...页面内容...
</body>
</html>Q1: 为什么需要三次握手,两次不行吗?
答案:防止已失效的连接请求报文段突然又传送到服务端,产生错误。如果只有两次握手,服务器无法确认客户端是否收到了自己的确认信息。
Q2: 一个网页通常需要建立多少个TCP连接?
答案:
Q3: 如果DNS解析失败会怎样?
答案:
Q4: HTTPS和HTTP的区别在传输过程中体现在哪里?
答案:
1. DNS优化:
<link rel="dns-prefetch" href="//example.com">2. TCP优化:
3. HTTP优化:
这个完整的流程展示了网络分层模型在实际应用中的协同工作,每一层都有其特定的职责和优化空间。
视频通话应用的分层处理:
大文件下载的分层优化:
软件定义网络(SDN):
网络功能虚拟化(NFV):
边缘计算:
5G网络:
OSI七层模型和TCP/IP四层模型是理解网络通信的基础框架。虽然它们在设计理念和实现方式上有所不同,但都体现了分层设计的核心思想。
关键要点回顾:
学习建议:
思考题:
欢迎在评论区分享你的思考和见解!