计算机网络五层模型学习笔记
一、 为什么要分层?
分层的核心意义在于 “分而治之”,将一个极其复杂的问题分解成若干个更小、更易于管理和解决的独立模块。
1. 网络通信的复杂性
将一条消息(如 “我爱你”)从一台电脑发送到另一台电脑,需要解决一系列复杂问题:
- 内容包装:如何承载数据?(塑料瓶 vs 玻璃瓶)
- 传输环境:如何保证传输过程中的特定条件?(低温保存)
- 安全性:如何防止数据在途中被窃取或篡改?(贴封条、写“毒药”)
- 寻址:如何找到接收方?(联系私人侦探、找物流朋友)
- 物理运输:用什么方式把数据送过去?(汽车、火车、飞机)
2. 分层结构的特点
将上述问题分层解决,形成一个自上而下的交付流程。
可乐运输分层模型(类比):
- 包装层:固定可乐形态(用瓶子装)。
- 温控层:保持低温(放入带冰块的保温箱)。
- 安全层:保证安全(贴上封条)。
- 寻址层:确定目的地(贴上收件人地址标签)。
- 运输层:选择交通工具(交给快递公司用货车运输)。
分层优势总结:
- 独立性:每层只专注于解决自己的核心问题,无需关心其他层的具体实现。
- 灵活性与可替代性:每一层的具体实现方案(如安全层用“封条”还是“写毒药”)可以自由替换,不影响上下层。
- 解耦:上层任务完成后直接交付给下层,下层无需关心上层是如何实现的。
- 逐层封装:每一层都会在上一层交付物的基础上,增加一些额外信息(如包装盒、封条、地址标签等),这个过程称为 封装。
二、 五层网络模型详解
实际的网络通信就是基于一个标准化的分层模型来协同工作的。
| 层级 (从上到下) | 名称 | 主要解决的问题 | 常见协议 / 设备 |
|---|---|---|---|
| 5 | 应用层 (Application Layer) | 定义不同应用场景下的消息格式和交互规范。 | HTTP, FTP, DNS, SMTP |
| 4 | 传输层 (Transport Layer) | 保证数据的可靠、有序传输。 | TCP, UDP |
| 3 | 网络层 (Network Layer) | 在广袤的互联网中找到目标主机,并规划最佳传输路径。 | IP 协议、路由器 (Router) |
| 2 | 数据链路层 (Data Link Layer) | 在一个局域网(子网/广播域)内,准确找到具体的设备。 | MAC 地址、交换机 (Switch) |
| 1 | 物理层 (Physical Layer) | 将二进制数据 (0和1) 转换成物理信号(电信号、光信号、电磁波)进行传输。 | 网线、光纤、集线器 (Hub) |
各层详细说明
1. 应用层 (Application Layer)
- 核心功能:为特定网络应用(如网页浏览、文件传输、电子邮件)提供统一的数据格式标准。
- 常见协议:
HTTP(HyperText Transfer Protocol): 用于万维网(网页访问)。FTP(File Transfer Protocol): 用于文件共享和传输。DNS(Domain Name System): 用于域名到 IP 地址的解析。SMTP/POP3: 用于电子邮件的发送和接收。
2. 传输层 (Transport Layer)
- 核心功能:提供端到端的可靠或不可靠数据传输服务。
- 关键协议:
- TCP (Transmission Control Protocol)
- 可靠传输:确保数据不丢失、无差错、不重复,并按序到达。
- 类比:挨家挨户上门、一对一地当面通知,确保对方收到且理解。
- 应用:网页浏览 (
HTTP基于TCP)、文件传输,对数据准确性要求高的场景。
- UDP (User Datagram Protocol)
- 不可靠传输:尽最大努力交付,不保证数据能否到达、是否完整。速度快、开销小。
- 类比:在村口用大喇叭广播,不保证每个人都听到或听清。
- 应用:在线直播、视频会议,允许丢失少量数据(表现为卡顿或花屏)。
- TCP (Transmission Control Protocol)
3. 网络层 (Network Layer)
- 核心功能:
- 寻址 (Addressing):通过
IP地址,在整个互联网中唯一标识一台设备。 - 路由 (Routing):当存在多条路径时,选择一条最佳路径将数据从源头传送到目的地。
- 寻址 (Addressing):通过
- 核心协议:
IP(Internet Protocol)。 - 核心设备:路由器 (Router)。
4. 数据链路层 (Data Link Layer)
- 核心功能:当数据包到达目标所在的局域网(例如,同一个 WiFi 下的所有设备)后,通过
MAC地址找到该网络内具体的设备。 - 核心标识:
MAC地址 (Media Access Control Address)。
知识点补充:IP 地址 vs. MAC 地址
特性 MAC 地址 IP 地址 本质 物理地址,全球唯一 逻辑地址,在同一子网内唯一 来源 烧录在网卡上,出厂即固定 由网络(如路由器)动态分配 变化性 基本不变 经常变化(连接不同网络时会改变) 类比 身份证号 (唯一且不随地点改变) 家庭住址/通讯地址 (会随搬家而改变) 查看 MAC 地址的命令示例:
bash# Windows ipconfig /all
macOS / Linux
ifconfig
5. 物理层 (Physical Layer)
- 核心功能:定义物理传输介质的电气、光学和机械规范,负责将上层传来的所有二进制数据转换成可传输的物理信号。
- 传输内容:原始的比特流 (
01010101...)。 - 传输介质:双绞线(电信号)、光纤(光信号)、WiFi(电磁波)等。
三、 数据的封装 (Encapsulation) 与解封装 (Decapsulation)
数据在各层之间传递时,会经历一个“打包”和“拆包”的过程。
1. 封装(发送过程:从上到下)
当用户发送数据时,数据从应用层开始,每经过一层,都会被加上该层的“头部”信息(有时还有“尾部”),这个过程就是封装。
- 应用层:原始数据(如“我爱你”)被加上
HTTP头部,形成HTTP报文。 - 传输层:
HTTP报文被加上TCP头部(包含端口号、序号等信息),形成TCP段 (Segment)。 - 网络层:
TCP段被加上IP头部(包含源/目标 IP 地址),形成IP数据包 (Packet)。 - 数据链路层:
IP数据包被加上帧头(包含源/目标MAC地址)和帧尾(用于校验),形成数据帧 (Frame)。 - 物理层:将数据帧转换为二进制比特流,再通过物理介质(如网线)以电信号的形式发送出去。
2. 解封装(接收过程:从下到上)
接收方收到物理信号后,执行相反的“拆包”过程,逐层剥离头部,最终还原出原始数据。
- 物理层:将物理信号转换回二进制数据帧。
- 数据链路层:检查帧头中的
MAC地址是否是自己,确认无误后,剥离帧头和帧尾,将IP数据包向上传递。 - 网络层:检查
IP头部中的IP地址,确认是发给自己的,剥离IP头部,将TCP段向上传递。 - 传输层:根据
TCP头部信息进行数据校验和重组,保证数据无误后,剥离TCP头部,将HTTP报文向上传递。 - 应用层:解析
HTTP头部,最终提取出原始数据(“我爱你”)并呈现给用户。
四、 其他网络模型(4层 & 7层)
- TCP/IP 四层模型:业界事实上的标准。它将五层模型中的 数据链路层 和 物理层 合并为 网络接口层。
- OSI 七层模型:由国际标准组织提出的理论模型,比五层模型多出了 会话层 和 表示层。虽然理论上很完善,但因其复杂性,在实际中很少被直接应用,主要作为教学和理论研究的参考(“叫好不叫座”)。
- 五层模型:结合了 OSI 和 TCP/IP 模型的优点,结构清晰,便于教学和理解,是我们当前学习的重点。
五、 面试题:谈一谈你对网络五层模型的理解
- 点明层次:首先,清晰地列出五层模型的名称,可以自上而下(应用层 -> 物理层)或自下而上。
- 阐述功能:简要说明每一层的核心功能和要解决的问题。
- 应用层:负责应用程序的通信,定义数据格式(
HTTP)。 - 传输层:负责端到端的可靠传输(
TCP)或快速传输(UDP)。 - 网络层:负责网络寻址和路由选择(
IP)。 - 数据链路层:负责局域网内的设备寻址(
MAC)。 - 物理层:负责将比特流转换为物理信号进行传输。
- 应用层:负责应用程序的通信,定义数据格式(
- 讲解流程:结合 封装 和 解封装 的概念,描述数据从发送方到接收方的完整流程。说明数据在向下传递时如何被逐层添加头部(打包),在向上传递时如何被逐层移除头部(拆包),最终还原成原始信息。