CH 4
一、网络层概述
1. 位置【定义】
在五层模型中,自下而上是:
物理层 → 数据链路层 → 网络层 → 传输层 → 应用层。
网络层位于链路层之上、传输层之下。
2. 数据单元【定义】
网络层的协议数据单元叫 IP 数据报(IP datagram)。
3. 网络层的两大功能【详细解释】
-
转发(forwarding)——数据平面功能
- 对单个到达路由器输入端口的分组,
- 查找其目的地址在 转发表 中的匹配项,
- 决定从哪一个 输出端口 送出。
- 作用范围:发生在 每台路由器内部、每一个分组 上。
- 类比:十字路口的“当前车辆走哪条路”。
-
路由(routing)——控制平面功能
- 负责计算整条端到端路径:给出“从某源网络到某目的网络应经过哪些路由器”。
- 通过运行 路由协议(RIP、OSPF、BGP 等)维护路由表/转发表。
- 作用范围:面向 网络拓扑和路由表的计算,时间尺度比转发长得多。
- 类比:事先规划好“地图上的最优行车路线”。
总结:转发是微观、逐包;路由是宏观、算路径。
4. 控制平面的两种实现方式【详细解释】
-
每路由器控制(传统方式)
- 每台路由器本地运行路由算法和协议,
- 根据收到的路由报文独立计算路由表。
- 优点:分布式、鲁棒性好;
- 缺点:配置复杂,不利于集中管理。
-
逻辑集中控制(SDN 思想)
- 网络中存在一个(或多个)集中控制器,
- 由控制器运行路由算法,生成全网的转发表,
- 再把转发表下发给各路由器(交换机)。
- 各转发设备只负责 高速转发,不再本地跑复杂路由协议。
5. 网络服务模型【详细解释】
Internet 的网络层(IP 层)提供的是 尽力而为(best-effort)服务:
- 无连接:不事先建立连接,数据报单独处理;
- 不可靠:不保证一定送达;
- 不保证时延、带宽、顺序;
- 不做端到端重传和流量控制(这些由上层 TCP 完成)。
优点是实现简单、效率高,缺点是上层必须自己处理可靠性。
6. 数据报与虚电路【详细解释】
网络层的转发方式主要有两种:数据报(Datagram) 与 虚电路(Virtual Circuit, VC)。
① 数据报服务(无连接)
- 不建立连接:每个分组独立转发。
- 路由选择:分组头部携带 完整目的地址,路由器按转发表逐包查找下一跳。
- 路由器状态:不保存端到端连接状态,转发表仅与目的前缀相关。
- 时延与顺序:不同分组可能走不同路径,到达无序、时延波动。
- 代表:Internet 的 IP 服务。
② 虚电路服务(面向连接)
- 先建立连接:发送前需要 信令建立虚电路,并分配 VC 标识。
- 转发方式:分组仅携带 VC 标识(如 VCI/Label),路由器按 VC 表快速转发。
- 路由器状态:沿途路由器维护 VC 状态与映射表(入端口 + VC → 出端口 + 新 VC)。
- 时延与顺序:通常走固定路径,更易保证有序交付,也便于资源预留与 QoS。
- 代表:ATM、Frame Relay、MPLS(标签交换)等。
③ 对比总结
| 对比维度 | 数据报 | 虚电路 |
|---|---|---|
| 连接建立 | 无 | 需要建立与释放 |
| 分组头部 | 目的地址 | VC 标识 |
| 路由器状态 | 无连接状态 | 维护 VC 状态 |
| 资源预留/QoS | 不支持或较弱 | 更易支持 |
| 典型网络 | IP Internet | ATM/FR/MPLS |
记忆:数据报像“寄信”,虚电路像“打电话”。
二、路由器结构
1. 路由器的基本组成【定义】
典型路由器由四部分组成:
- 输入端口
- 输出端口
- 交换结构
- 路由选择处理器(控制平面)
2. 输入端口的功能【详细解释】
-
与链路相连,完成:
- 物理层信号接收、比特恢复;
- 数据链路层帧解封装、差错检测;
- 查找转发表,决定输出端口;
- 把分组送入 交换结构 或输入队列排队。
-
输入端口常带有 缓存,在瞬时流量大时暂存分组,否则会产生输入队列拥塞与丢包。
3. 输出端口的功能【详细解释】
-
从交换结构接收分组,完成:
- 放入输出队列等待发送;
- 根据 分组调度算法 选择下一个发送对象;
- 链路层封装为帧、物理层发送。
-
输出队列过长会导致 排队时延增大、甚至丢包。
4. 交换结构的功能与三种结构【详细解释】
功能:在输入端口和输出端口之间进行 高速数据转移。
三种典型结构:
- 通过内存交换(memory switching)
- 早期路由器:分组经输入端口写入共享内存,再由输出端口从内存读出;
- 受限于内存读写速度,只适用于低速设备。
-
通过总线交换(bus switching)
- 各端口通过一条共享总线连接;
- 分组在总线上广播,由目的输出端口接收;
- 受限于总线带宽,当端口多、速率高时容易成为瓶颈。
-
通过互联网络(crossbar 等)交换
- 输入和输出端口通过交换矩阵互连,可同时进行多对多交换;
- 扩展性好,适合高速核心路由器。
5. 路由选择处理器(路由协议)【详细解释】
-
通常是一块控制板 / 主 CPU,执行:
- 路由协议(RIP、OSPF、BGP 等),
- 网络管理程序(SNMP),
- 生成和更新转发表,并写入各输入端口的硬件转发引擎。
-
它属于 控制平面,不直接处理每个数据报,而是定期更新路由信息。
三、分组调度(输出排队)
1. 分组调度的作用【定义】
当输出队列中有多个分组待发,而链路一次只能发送一个分组时,需要根据某种 调度算法 决定谁先发,以实现不同的公平性或优先级目标。
2. 典型调度算法【详细解释】
-
先到先出(FIFO)
- 最简单:按照到达队列的先后顺序发送;
- 不区分业务类型,可能导致时延敏感业务被长队阻塞。
-
优先权队列(Priority Queuing)
- 根据分组优先级划分多个队列,高优先级队列先服务;
- 适用于实时/控制报文优先于普通业务;
- 若高优先级流量过多,会出现低优先级 “饿死” 问题。
-
循环(轮询)队列——Round Robin
- 为每个队列轮流分配发送机会,例如依次从队列 1、2、3……取一个分组;
- 能保证每个队列都有机会发送,避免饥饿,但无法区分带宽需求差异。
-
加权公平排队(Weighted Fair Queuing, WFQ)
- 每个队列分配一个权重,按权重比例分享链路带宽;
- 权重大 → 获得更高的平均带宽;
- 兼顾 公平性和服务质量,是很多 QoS 机制的基础。
四、IPv4 协议
1. IPv4 报文格式【详细解释】
IPv4 头部关键字段:
- 版本(Version)=4
- 首部长度(IHL)
- 区分服务/DSCP(Type of Service)
- 总长度(Total Length)
- 标识(Identification)、标志位(DF/MF)、片偏移(Fragment Offset)——用于分片
- 生存时间 TTL(Time To Live)
- 协议(Protocol):指明上层是 TCP(6)/UDP(17) 等
- 首部校验和(Header Checksum)
- 源 IP 地址、目的 IP 地址
- 选项与填充(Options)
2. 分片【详细解释】
- 当 IP 数据报长度 > 所经过链路的 MTU(最大传输单元) 时,需要进行 分片。
- 分片可以在 发送主机或中间路由器 中进行;
- 片段在目的主机 重装(中间路由器不再重组)。
利用字段:
- 标识(ID):同一原始数据报的所有片拥有相同 ID;
- 片偏移:该片在原数据报中的相对位置(以 8 字节为单位);
- MF 标志:More Fragments,最后一片 MF=0,其余 MF=1。
3. IP 地址(表示与组成)【详细解释】
-
IPv4 地址长度为 32 位,通常用“点分十进制”表示,如 192.168.1.1。
-
采用 无类别域间路由 CIDR 表示网络前缀:
- a.b.c.d / n,前 n 位为网络前缀,其余为主机号。
组成:
- 网络部分(网络前缀):标识所在网络;
- 主机部分:标识网络中的具体主机/接口。
4. 子网划分与子网掩码【详细解释】
子网划分:在一个网络前缀内部再划出多个更小的子网。
-
子网掩码:32 位,与 IP 地址按位与可以得到 网络前缀部分。
- 例如:255.255.255.0 对应 /24。
好处:
- 更高效利用地址空间;
- 便于组织和管理大型网络;
- 路由聚合(减少路由表规模)。
5. 特殊 IP 地址【详细解释】
常见特殊地址(只需掌握主要几类即可):
-
网络地址:主机位全 0,如 192.168.1.0/24 表示整个子网。
-
广播地址:主机位全 1,如 192.168.1.255。
-
环回地址:127.0.0.1(localhost),用于本机测试。
-
未指定地址:0.0.0.0,表示“本机但尚未获得具体地址”。
-
私有地址(不能在公网路由):
- 10.0.0.0/8
- 172.16.0.0/12
- 192.168.0.0/16
6. CIDR 与路由聚合【详细解释】
① CIDR(无类别域间路由)
- 核心思想:不再使用 A/B/C 类地址,而是用可变长度前缀
a.b.c.d/n表示网络。 - 前缀含义:
n表示网络前缀长度,主机位长度为32 - n。 - 地址块大小:一个
/n前缀可表示2^(32-n)个地址。 - 路由匹配规则:路由器采用 最长前缀匹配(Longest Prefix Match),前缀越长越具体。
例子:
192.168.4.0/22表示前缀长度 22,覆盖地址范围:- 192.168.4.0 ~ 192.168.7.255(共 1024 个地址)
② 路由聚合(Route Aggregation / Supernetting)
- 定义:把多个连续的、更具体的网络前缀合并成一个更短的前缀对外发布。
- 目的:减少路由表规模、降低路由器查找负担、提高可扩展性。
- 条件:被聚合的网段必须 连续且高位前缀相同。
例子:
192.168.4.0/24
192.168.5.0/24
192.168.6.0/24
192.168.7.0/24
可聚合为:
192.168.4.0/22
说明:
- 对外只发布一个
/22前缀即可覆盖四个/24; - 若某个更具体路由需要特殊处理,可同时发布该 更长前缀,路由器按最长前缀匹配优先选更具体路径。
7. ABCDE 类地址(有类别编址)【详细解释】
在 CIDR 普及之前,IPv4 使用 有类别编址,按地址最高位划分为 A/B/C/D/E 五类。 如今该方式已基本淘汰,但概念仍需了解。
| 类别 | 地址范围 | 默认前缀 | 默认子网掩码 | 用途 |
|---|---|---|---|---|
| A | 0.0.0.0 ~ 127.255.255.255 | /8 | 255.0.0.0 | 大型网络(0 和 127 有特殊用途) |
| B | 128.0.0.0 ~ 191.255.255.255 | /16 | 255.255.0.0 | 中型网络 |
| C | 192.0.0.0 ~ 223.255.255.255 | /24 | 255.255.255.0 | 小型网络 |
| D | 224.0.0.0 ~ 239.255.255.255 | 无 | 无 | 组播地址 |
| E | 240.0.0.0 ~ 255.255.255.255 | 无 | 无 | 保留/实验(含 255.255.255.255 广播) |
补充说明:
- Class A 中
0.0.0.0/8表示“本网络”,127.0.0.0/8为环回地址。 - Class D 不分配给主机,专用于组播。
- Class E 预留给实验用途,不用于常规分配。
五、DHCP 与 NAT
1. DHCP 的功能【定义】
DHCP(Dynamic Host Configuration Protocol)用于 自动分配 IP 地址及相关网络参数(如网关、DNS、子网掩码)给局域网内主机,免去人工配置。
注意:本地 DNS是通过DHCP来获取的
2. DHCP 的工作原理【详细解释】
典型四步交互(广播为主):
- DHCP Discover:主机上电后广播“有没有 DHCP 服务器?”
- DHCP Offer:服务器提供一个可用 IP 及租期等参数。
- DHCP Request:主机广播请求使用某个 Offer。
- DHCP ACK:服务器确认分配,主机正式使用该 IP;若失败则 NACK。
更细化解释(DORA 流程):
-
Discover(发现):
- 客户端尚无 IP,使用
0.0.0.0:68向255.255.255.255:67发送广播; - 报文中携带 MAC、事务 ID、参数请求列表(如子网掩码、网关、DNS)。
- 客户端尚无 IP,使用
-
Offer(提供):
- DHCP 服务器从地址池挑选一个可用 IP,封装在
yiaddr字段; - 附带 租期(lease time)、子网掩码、默认网关、DNS、服务器标识等选项;
- 若跨网段,通常由 DHCP 中继(Relay) 转发到客户端。
- DHCP 服务器从地址池挑选一个可用 IP,封装在
-
Request(请求):
- 客户端从多个 Offer 中 选择一个,广播告知“我选了哪台服务器”;
- 报文包含 Requested IP 与 Server Identifier,通知其他服务器撤销其 Offer。
-
ACK/NAK(确认/拒绝):
- ACK:服务器确认租约,客户端配置 IP,并常做 ARP 冲突检测;
- NAK:服务器拒绝分配(如地址已被占用、租约失效),客户端需重新 Discover。

3. NAT 的功能【定义】
NAT(Network Address Translation,网络地址转换)通过在报文中修改 IP 地址(及端口),使得多个内部主机可以 共享少量甚至一个公网 IP 地址访问 Internet。
4. NAT 的工作原理【详细解释】
-
内网主机使用 私有地址(如 192.168.x.x)。
-
出站时,NAT 路由器把报文中的:
- 源私有 IP、源端口 → 映射 为 公网 IP 和某个端口,
- 在 NAT 转换表中记录对应关系。
-
入站时,根据外部报文的目的端口,在转换表中查找对应的内网主机并还原。
优点:
- 缓解 IPv4 公网地址不足;
- 隐藏内部结构,具有一定安全性。
缺点:
- 破坏端到端连接理念,对某些需要“主动入站连接”的应用不友好(需打洞等技术)。
六、IPv6
1. IPv6 产生的动机(3 个方面)【详细解释】
- 地址空间严重不足
- IPv4 只有约 4×10⁹ 个地址,已难以满足全球设备增长(手机、IoT)。
- IPv6 使用 128 位地址,几乎“用不完”。
- 简化首部,提高转发效率
- IPv4 头部字段多、分片复杂,需要路由器做校验和等操作;
- IPv6 头部更简洁、字段固定,有利于硬件高速转发。
- 增强扩展性与对新业务的支持
- 引入 扩展首部 与 流标签(Flow Label),便于实现 QoS、实时流服务;
- 原生支持 安全机制(IPsec),更好地支持移动性、多播等。
2. IPv6 与 IPv4 的区别【详细解释】
- 地址长度与表示
- IPv4:32 位,点分十进制;
- IPv6:128 位,分为 8 组 16 进制数,用冒号分隔,如 2001:db8::1。
-
首部格式
- IPv6 首部字段更少,长度固定 40 字节;
- 去掉了首部校验和、分片相关字段;
- 选项通过 扩展首部 实现,不再放在基本首部里。
-
分片机制
- IPv4:中间路由器可对数据报进行分片;
- IPv6:只允许 源主机 分片,路由器不再分片,简化处理。
- 安全与服务质量
- IPv6 把 IPsec、流标签等作为标准特性,便于加密与 QoS;
- IPv4 中则是可选扩展。
- 地址类型
- IPv6 不再区分广播地址,使用 多播与任播;
- 支持更丰富的地址类型(链路本地、站点本地等等)。
总结一句:IPv6 = 地址更长 + 头更简单 + 支持安全和 QoS 的新特性。