网络层基础概念
网络层概述
网络层是 OSI 参考模型中的第三层,主要负责在不同网络之间传输数据包,实现端到端的通信。
如果把计算机网络比作一个快递系统,网络层就像是”快递调度中心”,负责规划路线、调度车辆、确保包裹从发货地到达目的地。
1. 网络层的核心功能
1.1 异构网络互联:网络世界的”翻译官”
异构网络互联是指网络层能够连接不同类型、不同协议、不同技术的网络,使它们能够互相通信。就像不同国家的人需要翻译才能交流一样,不同网络需要网络层来”翻译”。
为什么需要异构互联?
现实世界中存在各种各样的网络:
| 网络类型 | 特点 | 应用场景 |
|---|---|---|
| 以太网 | 有线、高速、成本低 | 家庭、办公室局域网 |
| WiFi | 无线、灵活、移动性强 | 家庭、公共场所 |
| 光纤网络 | 超高速、长距离、高成本 | 骨干网、数据中心 |
| 移动网络 | 4G/5G、广覆盖、移动性 | 手机上网 |
| 卫星网络 | 全球覆盖、高延迟、高成本 | 航海、偏远地区 |
这些网络就像不同的”语言”,无法直接通信。网络层通过统一的 IP 协议,实现”语言互通”。
IP 协议:网络的”普通话”
IP 协议的作用就像普通话让不同方言的人能够交流:
- 🔹 统一地址格式:每个设备都有唯一的 IP 地址
- 🔹 统一数据格式:所有网络都使用 IP 数据包
- 🔹 统一转发规则:路由器按 IP 地址转发数据
实际例子:
- 你的手机用 WiFi(无线网络)
- 服务器在数据中心(光纤网络)
- 中间经过骨干网(光纤 + 卫星)
- 它们都能通信,因为都使用 IP 协议
异构互联的关键技术
1. 地址转换
不同网络使用不同的地址格式:
- 以太网:MAC 地址(48位,如:00:1A:2B:3C:4D:5E)
- IP 网络:IP 地址(32位IPv4或128位IPv6)
- 电话网:电话号码
网络层通过 ARP 协议实现地址转换:
IP 地址 → ARP 协议 → MAC 地址
192.168.1.1 → 查询 → 00:1A:2B:3C:4D:5E2. 数据封装
不同网络的数据格式不同,网络层统一封装:
原始数据 → IP 数据包 → 以太网帧 → WiFi 帧 → 光纤帧就像快递包裹:
- 内部是货物(原始数据)
- 外面是快递盒(IP数据包)
- 再外面是运输箱(以太网帧)
- 根据运输方式不同换不同的箱子
3. 协议转换
网络层实现不同协议间的转换:
- TCP/IP ↔ IPX/SPX
- IPv4 ↔ IPv6
- 有线 ↔ 无线
1.2 路由与分组转发:数据包的”导航系统”
路由选择是为数据包选择从源到目的地的最佳路径的过程。就像导航软件为你规划最佳路线。
路由选择的原理
类比导航软件:
| 导航功能 | 网络层对应 |
|---|---|
| 规划路线 | 路由算法(RIP、OSPF) |
| 选择道路 | 选择路由器路径 |
| 避开拥堵 | 避开拥塞节点 |
| 更新路况 | 更新路由表 |
| 多条路线 | 多路径路由 |
路由选择过程:
1. 查看目的地:目的 IP 地址
↓
2. 查询路由表:有哪些路径可达?
↓
3. 选择最优路径:根据距离、带宽、成本等
↓
4. 确定下一跳:下一个路由器是谁?
↓
5. 转发数据包:发送到下一跳路由器分组转发的机制
分组转发是将数据包从一个路由器转发到下一个路由器,逐步到达目的地。就像快递从发货地经过多个中转站到达目的地。
转发过程示例:
假设你要从北京发快递到广州:
北京发货站 → 石家庄中转站 → 武汉中转站 → 广州收货站
网络层转发:
你的电脑 → 北京路由器 → 石家庄路由器 → 武汉路由器 → 广州服务器
↓ ↓ ↓ ↓ ↓
192.168.1.10 10.1.1.1 10.2.2.2 10.3.3.3 172.16.1.100每个路由器的转发过程:
- 接收数据包
- 提取目的 IP 地址
- 查询路由表
- 选择下一跳路由器
- 封装数据包
- 发送到下一跳
路由表的结构
路由器维护路由表,记录网络拓扑信息:
目的网络 下一跳 接口 优先级
192.168.1.0/24 直接连接 eth0 0
10.0.0.0/8 10.1.1.1 eth1 1
172.16.0.0/16 172.16.1.1 eth2 2
0.0.0.0/0 192.168.1.1 eth0 3(默认路由)路由表的含义:
- 目的网络:要到达的网络地址
- 下一跳:下一个路由器的地址
- 接口:从哪个端口发出
- 优先级:多条路径时选择优先级高的
1.3 拥塞控制:网络交通的”指挥官”
拥塞控制是防止网络因过载而性能下降的机制。就像交通指挥官防止交通拥堵。
拥塞的原因
类比交通拥堵:
| 网络拥塞 | 交通拥堵 |
|---|---|
| 数据包太多 | 车辆太多 |
| 路由器处理不过来 | 路口通行能力有限 |
| 缓冲区溢出 | 停车场满了 |
| 丢包 | 车辆滞留 |
| 传输延迟增加 | 通行时间增加 |
拥塞的表现:
- 📉 传输速率下降
- 📈 丢包率上升
- ⏱️ 延迟增加
- 🔁 重传次数增多
拥塞控制的策略
1. 拥塞检测
监控网络状况:
- 路由器队列长度
- 数据包丢失率
- 平均延迟
- 链路利用率
2. 拥塞避免
提前预防拥塞:
- 流量调节:控制发送速率
- 负载均衡:分散流量到多条路径
- 路由优化:避开拥塞区域
- 资源预留:为重要流量预留带宽
3. 拥塞恢复
发生拥塞后的处理:
- 丢包通知:ICMP 源抑制报文
- 降低速率:发送方降低发送速度
- 路径切换:切换到其他路径
- 优先级调度:优先处理重要数据
4. 流量控制
控制进入网络的流量:
- 令牌桶:限制发送速率
- 漏桶:平滑流量
- 随机早期检测(RED):主动丢包防止拥塞
2. 网络层提供的服务类型
2.1 无连接服务(数据报服务)
数据报服务是网络层提供的无连接服务,每个数据包独立传输,就像寄信:每封信独立寄送,不保证顺序和可靠性。
特点分析
类比寄信:
| 特点 | 寄信类比 | 技术含义 |
|---|---|---|
| 无连接 | 不需确认收信人地址 | 不需预先建立连接 |
| 独立传输 | 每封信独立寄送 | 每个数据包独立路由 |
| 可能丢失 | 信件可能丢失 | 数据包可能丢失 |
| 可能乱序 | 多封信可能顺序不同 | 数据包可能乱序到达 |
| 简单高效 | 寄信简单快速 | 协议简单、开销小 |
工作过程
发送方:
1. 准备数据包(加目的IP地址)
2. 直接发送到网络
3. 不等待确认
网络:
1. 每个路由器独立路由
2. 数据包可能走不同路径
3. 可能丢失、延迟、乱序
接收方:
1. 收到数据包
2. 检查目的地址是否匹配
3. 处理数据或丢弃适用场景
适合实时应用:
- 📞 语音通话:少量丢包不影响通话质量
- 📹 视频直播:可以容忍少量数据丢失
- 🎮 在线游戏:实时性要求高于可靠性
- 📡 视频会议:实时交互,延迟敏感
为什么不要求可靠性?
实时应用的特点:
- 数据产生速度快:每秒几十帧视频
- 时效性强:老数据过时了就没价值
- 容错能力强:少量丢包不影响体验
例子:视频通话中丢了一帧画面,眼睛几乎看不出,但如果等待重传,会造成明显卡顿。
2.2 面向连接服务(虚电路服务)
虚电路服务是网络层提供的面向连接服务,建立连接后传输数据,保证顺序和可靠性。就像打电话:先拨号建立连接,然后通话,保证语音连续。
特点分析
类比打电话:
| 特点 | 打电话类比 | 技术含义 |
|---|---|---|
| 面向连接 | 先拨号建立连接 | 需预先建立虚电路 |
| 固定路径 | 通话期间线路固定 | 所有数据包走同一路径 |
| 保证顺序 | 语音连续不中断 | 数据包按序到达 |
| 可靠传输 | 通话质量稳定 | 保证数据正确传输 |
| 复杂开销 | 需拨号、挂断过程 | 协议复杂、开销大 |
工作过程
建立连接阶段:
1. 发送方发送呼叫请求
2. 网络建立虚电路(分配虚电路号)
3. 路径上所有路由器记录虚电路信息
4. 接收方确认连接
数据传输阶段:
1. 所有数据包带虚电路号
2. 路由器根据虚电路号转发
3. 所有数据包走同一路径
4. 保证顺序和可靠性
释放连接阶段:
1. 发送方发送释放请求
2. 网络释放虚电路资源
3. 路径上路由器清除信息
4. 连接结束适用场景
适合可靠传输应用:
- 📁 文件传输:FTP、文件下载,不能丢失数据
- 🌐 网页浏览:HTTP、HTTPS,需要完整页面
- 📧 邮件传输:SMTP、POP3,邮件内容完整
- 📂 数据库同步:需要准确无误的数据
为什么需要可靠性?
数据传输的特点:
- 数据价值高:丢失一个文件可能损失严重
- 时效性要求不高:可以等待重传
- 容错能力弱:数据错误可能导致严重问题
例子:下载文件时,如果丢失一个字节,整个文件可能无法使用,所以必须保证可靠传输。
2.3 两种服务对比
| 特性 | 数据报服务 | 虚电路服务 |
|---|---|---|
| 连接建立 | 不需要 | 需要建立连接 |
| 路由方式 | 每包独立路由 | 所有包走同一路径 |
| 顺序保证 | 不保证 | 保证按序到达 |
| 可靠性 | 不保证 | 保证可靠传输 |
| 故障处理 | 自适应路由 | 需重新建立连接 |
| 开销 | 小 | 大 |
| 灵活性 | 高 | 低 |
| 适用场景 | 实时应用 | 文件传输 |
| 典型应用 | IP协议 | X.25、ATM |
3. 网络层的主要协议
3.1 IP 协议:互联网的基石
IP 协议是网络层的核心协议,负责在互联网中传输数据包,实现全球互联。
IP 协议的特点
无连接:
- 每个数据包独立处理
- 不需要预先建立连接
- 像寄信一样简单
尽力而为:
- 尽最大努力传输数据
- 不保证可靠性
- 可能丢失、延迟、乱序
统一地址:
- 每个设备有唯一 IP 地址
- 全球范围的地址体系
- 支持IPv4和IPv6
IP 数据包结构
IP 数据包 = IP 首部 + 数据部分
IP 首部(20-60字节):
┌─────────────────────────────────────┐
│ 版本 | 长度 | 服务类型 | 总长度 │
│ 标识 | 标志 | 片偏移 │
│ TTL | 协议 | 首部校验和 │
│ 源 IP 地址 │
│ 目的 IP 地址 │
│ 选项(可选) │
└─────────────────────────────────────┘
数据部分:
应用层数据(TCP/UDP 段)关键字段解释:
| 字段 | 含义 | 作用 |
|---|---|---|
| 版本 | IP版本号 | IPv4=4, IPv6=6 |
| TTL | 生存时间 | 防止无限循环,最大跳数 |
| 协议 | 上层协议 | TCP=6, UDP=17 |
| 源IP地址 | 发送方地址 | 用于回复 |
| 目的IP地址 | 接收方地址 | 用于路由转发 |
3.2 辅助协议:IP 的”助手”
ARP 协议:地址解析
ARP 协议将 IP 地址转换为 MAC 地址,就像快递员根据收件人地址找到具体门牌号。
工作过程:
场景:电脑要发送数据到 IP 为 192.168.1.100 的服务器
步骤:
1. 电脑知道目的IP:192.168.1.100
2. 但不知道MAC地址(物理地址)
3. 发送ARP请求广播:"谁是192.168.1.100?请告诉我你的MAC地址"
4. 服务器收到ARP请求,回复ARP响应:
"我是192.168.1.100,我的MAC地址是00:1A:2B:3C:4D:5E"
5. 电脑收到响应,记录IP-MAC对应关系
6. 之后就可以发送数据了类比快递:
- IP地址 = 收件人地址(小区名)
- MAC地址 = 具体门牌号(几号楼几单元)
- ARP协议 = 查询门牌号的过程
DHCP 协议:动态地址分配
DHCP 协议自动为设备分配 IP 地址,就像酒店自动分配房间号给客人。
工作过程:
设备接入网络:
1. 设备发送 DHCP 发现:"我是新来的,需要IP地址"
2. DHCP服务器响应:"我是DHCP服务器,可以提供IP"
3. 设备请求:"请给我一个IP地址"
4. DHCP服务器分配:"你的IP是192.168.1.100,租期24小时"
5. 设备确认:"好的,我使用这个IP"
6. DHCP服务器记录:"已分配192.168.1.100给该设备"好处:
- ✅ 自动配置,无需手动设置
- ✅ 地址复用,提高利用率
- ✅ 统一管理,避免地址冲突
- ✅ 移动便捷,换网络自动获取新地址
ICMP 协议:网络诊断
ICMP 协议用于网络诊断和错误报告,就像网络世界的”体检医生”。
常见应用:
Ping 命令:
ping 192.168.1.100
作用:测试网络是否连通
过程:发送ICMP请求,接收ICMP响应
结果:显示延迟、丢包率等信息Traceroute 命令:
traceroute www.baidu.com
作用:追踪数据包路径
过程:发送一系列ICMP包,记录每个路由器
结果:显示经过的所有路由器和延迟4. 网络层设备
4.1 路由器:网络的”交通枢纽”
路由器是网络层的核心设备,连接不同网络,转发数据包。就像交通枢纽连接不同道路,引导车辆前行。
路由器的功能
1. 连接不同网络:
- 连接局域网和广域网
- 连接有线网络和无线网络
- 连接不同技术的网络
2. 路由选择:
- 维护路由表
- 选择最优路径
- 动态更新路由信息
3. 分组转发:
- 接收数据包
- 查询路由表
- 发送到下一跳
4. 其他功能:
- NAT 地址转换
- ACL 访问控制
- QoS 质量保证
- VPN 支持
路由器的工作原理
收到数据包:
1. 提取目的IP地址
2. 查询路由表
3. 匹配路由条目
4. 选择最佳路由
5. 尾部检查TTL(减1)
6. 更新校验和
7. 封装成新帧
8. 从指定接口发送路由表示例:
目的网络 网络掩码 下一跳 接口
192.168.1.0 255.255.255.0 直接连接 eth0
10.0.0.0 255.0.0.0 10.1.1.1 eth1
172.16.0.0 255.255.0.0 172.16.1.1 eth2
0.0.0.0 0.0.0.0 192.168.1.1 eth0(默认路由)路由匹配规则:
- 最长匹配原则:选择网络掩码最长(最精确)的路由
- 优先级原则:多条匹配路由选择优先级高的
4.2 三层交换机:高性能路由器
三层交换机集成了交换机和路由器功能,用硬件实现路由转发,性能更高。就像高速公路上的智能收费站,快速识别车辆并引导方向。
三层交换机特点
与路由器的区别:
| 特性 | 路由器 | 三层交换机 |
|---|---|---|
| 转发方式 | 软件转发 | 硬件转发 |
| 转发速度 | 较慢 | 很快 |
| 接口数量 | 较少 | 很多 |
| 适用场景 | 广域网互联 | 局域网路由 |
| 价格 | 较高 | 较低 |
| 功能 | 功能丰富 | 基本路由功能 |
工作原理:
第一个数据包:
1. 软件处理(像路由器)
2. 查询路由表
3. 硬件记录路由信息
后续数据包:
1. 硬件直接转发(像交换机)
2. 根据硬件路由表快速转发
3. 不需要软件处理
特点:"一次路由,多次交换"实际应用举例
例子1:访问网站的过程
让我们看看从浏览器访问网站的网络层过程:
你的电脑(192.168.1.10):
1. 输入网址 www.baidu.com
2. DNS解析得到IP:220.181.38.148
3. 生成IP数据包:
- 源IP:192.168.1.10
- 目的IP:220.181.38.148
- 数据:HTTP请求
本地路由器:
4. 收到数据包
5. 查询路由表,目的IP不在本地网络
6. 选择默认路由,转发到上级路由器
7. 通过NAT转换源IP为公网IP
ISP路由器(多个):
8. 每个路由器查询路由表
9. 选择下一跳路由器
10. 逐步转发到百度服务器
百度服务器(220.181.38.148):
11. 收到IP数据包
12. 检查目的IP匹配
13. 提取HTTP请求
14. 处理请求,返回网页
返回路径:
15. 生成响应数据包
16. 源IP:220.181.38.148
17. 目的IP:你的公网IP
18. 通过路由器逐步返回
19. NAT转换为内网IP
20. 你的电脑收到响应例子2:不同网络互联
家庭网络和企业网络互联:
家庭网络:
- WiFi网络:192.168.1.0/24
- 有线网络:192.168.2.0/24
- 设备:手机、电脑、电视
企业网络:
- 办公网络:10.0.0.0/8
- 数据中心:172.16.0.0/16
- 服务器、工作站
互联过程:
1. 家庭路由器连接ISP(通过光纤)
2. ISP连接企业网络(通过专线)
3. IP协议统一封装:
- 家庭WiFi帧 → IP包 → 光纤帧 → ISP路由
- ISP路由 → IP包 → 专线帧 → 企业路由
4. 实现不同网络互联通信练习题
练习 1
什么是异构网络互联?为什么需要异构网络互联?
异构网络互联的定义: 异构网络互联是指网络层能够连接不同类型、不同协议、不同技术的网络,使它们能够互相通信。
需要异构互联的原因:
现实需要:
- 现实中存在多种网络类型(以太网、WiFi、光纤、4G/5G等)
- 不同网络使用不同技术和协议
- 用户需要跨网络通信
技术差异:
- 不同网络的地址格式不同(MAC地址、IP地址等)
- 不同网络的数据帧格式不同
- 不同网络的传输速率不同
统一通信:
- IP协议提供统一的通信标准
- 实现全球范围的互联
- 让不同网络像使用同一”语言”
举例说明:
- 手机通过WiFi上网,访问数据中心的服务器(光纤网络)
- 数据经过:WiFi → 路由器 → 光纤网络 → 服务器
- 虽然网络类型不同,但通过IP协议实现通信
练习 2
路由选择和分组转发有什么区别?
路由选择:
- 定义:为数据包选择从源到目的地的最佳路径
- 作用:决定数据包应该走哪条路径
- 时机:在发送前进行路由规划
- 类比:导航软件规划路线
分组转发:
- 定义:将数据包从一个路由器转发到下一个路由器
- 作用:实际传输数据包
- 时机:在传输过程中进行转发
- 类比:快递从一个中转站到下一个中转站
关系:
- 路由选择:宏观决策(选择路径)
- 分组转发:微观执行(逐步转发)
- 路由选择的结果指导分组转发
过程举例: 路由选择:北京 → 石家庄 → 武汉 → 广州(选择路径) 分组转发:北京路由器转发到石家庄路由器(实际转发) 石家庄路由器转发到武汉路由器 武汉路由器转发到广州路由器
练习 3
数据报服务和虚电路服务有什么区别?各适用于什么场景?
主要区别:
连接方式:
- 数据报:无连接,不需预先建立连接
- 虚电路:面向连接,需先建立连接
路由方式:
- 数据报:每个数据包独立路由
- 虚电路:所有数据包走同一路径
可靠性:
- 数据报:不保证可靠,可能丢失、乱序
- 虚电路:保证可靠,按序到达
开销:
- 数据报:开销小,简单高效
- 虚电路:开销大,需要建立和维护连接
适用场景:
数据报服务:
- 实时应用:语音通话、视频直播、在线游戏
- 特点:时效性强,容错能力强
- 原因:少量丢包不影响体验,延迟更重要
虚电路服务:
- 数据传输:文件传输、网页浏览、邮件传输
- 特点:数据完整性和准确性重要
- 原因:数据丢失影响大,可以等待重传
练习 4
ARP 协议的作用是什么?简述 ARP 协议的工作过程。
ARP 协议的作用: ARP协议将IP地址转换为MAC地址,解决网络层地址到数据链路层地址的映射问题。
工作过程:
发送ARP请求:
- 设备知道目的IP地址
- 但不知道对应的MAC地址
- 发送ARP请求广播:“谁是这个IP地址?请告诉我你的MAC地址”
目标设备响应:
- 目标设备收到ARP请求
- 发现是查询自己的MAC地址
- 发送ARP响应:“我是这个IP地址,我的MAC地址是XXX”
记录地址映射:
- 发送方收到ARP响应
- 记录IP地址和MAC地址的对应关系
- 存入ARP缓存表
使用地址发送:
- 之后发送数据时直接使用记录的MAC地址
- 不需要再次ARP查询
类比说明: 就像快递员知道收件人地址(IP地址),但需要找到具体门牌号(MAC地址),通过询问(ARP请求)得到门牌号信息。
总结
网络层的核心职责
| 职责 | 类比 | 关键技术 |
|---|---|---|
| 异构互联 | 语言翻译 | IP协议、地址转换 |
| 路由选择 | 路径规划 | 路由算法、路由表 |
| 分组转发 | 快递运输 | 路由器、逐跳转发 |
| 拥塞控制 | 交通管理 | 流量控制、负载均衡 |
学习要点
- 理解网络层的核心作用:实现异构网络互联和端到端通信
- 掌握路由选择原理:如何为数据包选择最佳路径
- 区分服务类型:数据报服务vs虚电路服务的特点和适用场景
- 了解关键协议:IP、ARP、DHCP、ICMP的作用和工作原理
- 认识网络设备:路由器和三层交换机的功能和工作方式
与其他层的关系
- 上层:传输层(TCP/UDP)提供端到端服务
- 网络层:提供网络间传输服务
- 下层:数据链路层提供链路传输服务
网络层是连接不同网络的桥梁,是实现全球互联网的关键!
