CH 4

一、网络层概述

1. 位置【定义】

在五层模型中,自下而上是:

物理层 → 数据链路层 → 网络层 → 传输层 → 应用层。

网络层位于链路层之上、传输层之下。

2. 数据单元【定义】

网络层的协议数据单元叫 IP 数据报(IP datagram)

3. 网络层的两大功能【详细解释】

  1. 转发(forwarding)——数据平面功能

    • 对单个到达路由器输入端口的分组,
    • 查找其目的地址在 转发表 中的匹配项,
    • 决定从哪一个 输出端口 送出。
    • 作用范围:发生在 每台路由器内部、每一个分组 上。
    • 类比:十字路口的“当前车辆走哪条路”。
  2. 路由(routing)——控制平面功能

    • 负责计算整条端到端路径:给出“从某源网络到某目的网络应经过哪些路由器”。
    • 通过运行 路由协议(RIP、OSPF、BGP 等)维护路由表/转发表。
    • 作用范围:面向 网络拓扑和路由表的计算,时间尺度比转发长得多。
    • 类比:事先规划好“地图上的最优行车路线”。

总结:转发是微观、逐包;路由是宏观、算路径。

4. 控制平面的两种实现方式【详细解释】

  1. 每路由器控制(传统方式)

    • 每台路由器本地运行路由算法和协议,
    • 根据收到的路由报文独立计算路由表。
    • 优点:分布式、鲁棒性好;
    • 缺点:配置复杂,不利于集中管理。
  2. 逻辑集中控制(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 InternetATM/FR/MPLS

记忆:数据报像“寄信”,虚电路像“打电话”。

二、路由器结构

1. 路由器的基本组成【定义】

典型路由器由四部分组成:

  1. 输入端口
  2. 输出端口
  3. 交换结构
  4. 路由选择处理器(控制平面)

2. 输入端口的功能【详细解释】

  • 与链路相连,完成:

    1. 物理层信号接收、比特恢复;
    2. 数据链路层帧解封装、差错检测;
    3. 查找转发表,决定输出端口;
    4. 把分组送入 交换结构 或输入队列排队。
  • 输入端口常带有 缓存,在瞬时流量大时暂存分组,否则会产生输入队列拥塞与丢包。

3. 输出端口的功能【详细解释】

  • 从交换结构接收分组,完成:

    1. 放入输出队列等待发送;
    2. 根据 分组调度算法 选择下一个发送对象;
    3. 链路层封装为帧、物理层发送。
  • 输出队列过长会导致 排队时延增大、甚至丢包

4. 交换结构的功能与三种结构【详细解释】

功能:在输入端口和输出端口之间进行 高速数据转移

三种典型结构:

  1. 通过内存交换(memory switching)
  • 早期路由器:分组经输入端口写入共享内存,再由输出端口从内存读出;
    • 受限于内存读写速度,只适用于低速设备。
  1. 通过总线交换(bus switching)

    • 各端口通过一条共享总线连接;
    • 分组在总线上广播,由目的输出端口接收;
    • 受限于总线带宽,当端口多、速率高时容易成为瓶颈。
  2. 通过互联网络(crossbar 等)交换

  • 输入和输出端口通过交换矩阵互连,可同时进行多对多交换;
    • 扩展性好,适合高速核心路由器。

5. 路由选择处理器(路由协议)【详细解释】

  • 通常是一块控制板 / 主 CPU,执行:

    • 路由协议(RIP、OSPF、BGP 等),
    • 网络管理程序(SNMP),
    • 生成和更新转发表,并写入各输入端口的硬件转发引擎。
  • 它属于 控制平面,不直接处理每个数据报,而是定期更新路由信息

三、分组调度(输出排队)

1. 分组调度的作用【定义】

当输出队列中有多个分组待发,而链路一次只能发送一个分组时,需要根据某种 调度算法 决定谁先发,以实现不同的公平性或优先级目标。

2. 典型调度算法【详细解释】

  1. 先到先出(FIFO)

    • 最简单:按照到达队列的先后顺序发送;
    • 不区分业务类型,可能导致时延敏感业务被长队阻塞。
  2. 优先权队列(Priority Queuing)

    • 根据分组优先级划分多个队列,高优先级队列先服务;
    • 适用于实时/控制报文优先于普通业务;
    • 若高优先级流量过多,会出现低优先级 “饿死” 问题。
  3. 循环(轮询)队列——Round Robin

    • 为每个队列轮流分配发送机会,例如依次从队列 1、2、3……取一个分组;
    • 能保证每个队列都有机会发送,避免饥饿,但无法区分带宽需求差异。
  4. 加权公平排队(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)
image-20251208214607565

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 五类。 如今该方式已基本淘汰,但概念仍需了解。

类别地址范围默认前缀默认子网掩码用途
A0.0.0.0 ~ 127.255.255.255/8255.0.0.0大型网络(0 和 127 有特殊用途)
B128.0.0.0 ~ 191.255.255.255/16255.255.0.0中型网络
C192.0.0.0 ~ 223.255.255.255/24255.255.255.0小型网络
D224.0.0.0 ~ 239.255.255.255组播地址
E240.0.0.0 ~ 255.255.255.255保留/实验(含 255.255.255.255 广播)

补充说明:

  • Class A0.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 的工作原理【详细解释】

典型四步交互(广播为主):

  1. DHCP Discover:主机上电后广播“有没有 DHCP 服务器?”
  2. DHCP Offer:服务器提供一个可用 IP 及租期等参数。
  3. DHCP Request:主机广播请求使用某个 Offer。
  4. DHCP ACK:服务器确认分配,主机正式使用该 IP;若失败则 NACK。

更细化解释(DORA 流程):

  • Discover(发现)

    • 客户端尚无 IP,使用 0.0.0.0:68255.255.255.255:67 发送广播;
    • 报文中携带 MAC、事务 ID、参数请求列表(如子网掩码、网关、DNS)。
  • Offer(提供)

    • DHCP 服务器从地址池挑选一个可用 IP,封装在 yiaddr 字段;
    • 附带 租期(lease time)、子网掩码、默认网关、DNS、服务器标识等选项;
    • 若跨网段,通常由 DHCP 中继(Relay) 转发到客户端。
  • Request(请求)

    • 客户端从多个 Offer 中 选择一个,广播告知“我选了哪台服务器”;
    • 报文包含 Requested IPServer 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 个方面)【详细解释】

  1. 地址空间严重不足
  • IPv4 只有约 4×10⁹ 个地址,已难以满足全球设备增长(手机、IoT)。
    • IPv6 使用 128 位地址,几乎“用不完”。
  1. 简化首部,提高转发效率
  • IPv4 头部字段多、分片复杂,需要路由器做校验和等操作;
    • IPv6 头部更简洁、字段固定,有利于硬件高速转发。
  1. 增强扩展性与对新业务的支持
  • 引入 扩展首部流标签(Flow Label),便于实现 QoS、实时流服务;
    • 原生支持 安全机制(IPsec),更好地支持移动性、多播等。

2. IPv6 与 IPv4 的区别【详细解释】

  1. 地址长度与表示
  • IPv4:32 位,点分十进制;
  • IPv6:128 位,分为 8 组 16 进制数,用冒号分隔,如 2001:db8::1。
  1. 首部格式

    • IPv6 首部字段更少,长度固定 40 字节;
    • 去掉了首部校验和、分片相关字段;
    • 选项通过 扩展首部 实现,不再放在基本首部里。
  2. 分片机制

  • IPv4:中间路由器可对数据报进行分片;
  • IPv6:只允许 源主机 分片,路由器不再分片,简化处理。
  1. 安全与服务质量
  • IPv6 把 IPsec、流标签等作为标准特性,便于加密与 QoS;
    • IPv4 中则是可选扩展。
  1. 地址类型
  • IPv6 不再区分广播地址,使用 多播与任播
    • 支持更丰富的地址类型(链路本地、站点本地等等)。

总结一句:IPv6 = 地址更长 + 头更简单 + 支持安全和 QoS 的新特性。