第4章 网络层
章节概述
网络层是 TCP/IP 体系的核心,负责将分组从源主机路由到目的主机,穿越多个异构网络。本章内容量最大(339张幻灯片),以 IP 协议为核心,涵盖地址体系、路由算法、辅助协议(ARP、ICMP、IGMP)。
互联网的网络层采用无连接的数据报服务("尽最大努力交付"),可靠性由传输层的 TCP 保证。
核心概念
- [[IP地址与CIDR|IP地址]] (分类/子网/CIDR)
- [[子网划分]] 与 [[子网划分|子网掩码]]
- [[IP地址与CIDR|CIDR]]
- [[ARP地址解析协议]]
- [[04-网络层|IP数据报格式]]
- [[04-网络层|ICMP]]
- [[04-网络层|路由选择]]:RIP / OSPF / BGP
- [[04-网络层|NAT]]
- [[04-网络层|IPv6]]
- [[04-网络层|IGMP]] 与 [[04-网络层|IP组播]]
4.1 网络层的两种服务
| 特征 | 虚电路(VC) | 数据报 |
|---|---|---|
| 连接建立 | 需要 | 不需要 |
| 路径 | 固定 | 每包可不同 |
| 差错处理 | 网络保证 | 主机端到端 |
| 典型 | ATM、X.25 | 互联网IP |
互联网选择数据报原因:容错性强、硬件简单、端系统智能化。
4.2 IP地址体系
分类地址(有类)
| 类别 | 首位 | 网络号位数 | 主机号位数 | 范围 |
|---|---|---|---|---|
| A | 0 | 8 | 24 | 1.0.0.0 – 126.0.0.0 |
| B | 10 | 16 | 16 | 128.0.0.0 – 191.255.0.0 |
| C | 110 | 24 | 8 | 192.0.0.0 – 223.255.255.0 |
| D | 1110 | — | — | 组播地址 |
| E | 11110 | — | — | 保留 |
子网划分
\[ ext{子网掩码 AND 目的地址} = ext{网络地址}\]
从主机号借若干位作子网号,外部无法感知子网存在。
CIDR(无类域间路由)
格式:a.b.c.d/n(\(n\) 位网络前缀)
- 路由聚合(超网):将多个小网络合并为一条路由,减少路由表条目
- 最长前缀匹配:路由查表时选择前缀最长(最具体)的条目
私有地址(RFC 1918)
4.3 ARP与IP数据报
ARP(地址解析协议)
- 功能:由 IP 地址 → MAC 地址(同一局域网内)
- 流程:ARP 请求广播 → 目标单播回复 → 缓存 ARP 表
跨网络通信:不是找目的主机的 MAC,而是找下一跳路由器的 MAC。
IP数据报格式(重要)
版本(4) | 首部长度(4) | 区分服务(8) | 总长度(16)
标识(16) | 标志(3) | 片偏移(13)
生存时间TTL(8) | 协议(8) | 首部检验和(16)
源IP地址(32)
目的IP地址(32)
可选字段 + 填充
数据部分...
- TTL:每过一个路由器减1,为0时丢弃(防环路)
- 标识+标志+片偏移:用于 IP 分片与重组
- 协议字段:6=TCP,17=UDP,1=ICMP
IP分片
当数据报 > MTU(以太网 1500 字节)时分片: - 片偏移以8字节为单位 - 只在目的主机重组(不在路由器)
4.4 路由选择协议
自治系统(AS)
互联网划分为多个 AS,AS 内用内部网关协议(IGP),AS 间用外部网关协议(EGP)。
RIP(路由信息协议)
- 距离向量算法
- 度量:跳数(最大 15,16 = 不可达)
- 每 30 秒广播路由表
- 缺点:收敛慢,"好消息传播快,坏消息传播慢"
OSPF(开放最短路径优先)
- 链路状态算法(Dijkstra)
- 泛洪链路状态通告(LSA)
- 收敛快,支持等价多路径,适合大型网络
- 支持区域划分,骨干区域必须连通
BGP(边界网关协议)
- 路径向量协议,AS 间路由
- 基于策略路由(商业合同、政治因素)
- 运行在 TCP 之上(端口 179)
4.5 辅助协议
ICMP
- 差错报告:目的不可达、时间超时、参数问题
- 询问报文:Echo请求/回答(ping)、时间戳
traceroute原理:逐步增大 TTL,利用"时间超时" ICMP 报文
NAT(网络地址转换)
- 私有地址 + 端口号 → 公有地址 + 端口号(NAPT)
- 解决 IPv4 地址短缺,但破坏端到端透明性
4.6 IPv6
| 特征 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32位 | 128位 |
| 地址表示 | 点分十进制 | 冒号十六进制 |
| 首部 | 可变(含选项) | 固定40字节 |
| 校验和 | 有 | 无(由上层负责) |
| 分片 | 路由器可分片 | 只在源主机分片 |
IPv6地址缩写规则:连续全零组用:: 代替(只能用一次)。
参见
- [[03-数据链路层]] — ARP依赖MAC地址
- [[05-运输层]] — TCP/UDP运行在IP之上
- [[07-网络安全]] — IPSec协议
- [[子网划分]] — 详细计算方法
- [[04-网络层|BGP]] — 互联网路由策略