05网络层

Lingfeng2025-04-12

05网络层

1. 网络层服务概述

1.1 端系统

  • 发送端:将传输层数据单元封装在数据包中
  • 接收端:解析接收的数据包中,取出传输层数据单元,交付给传输层
  • 路由器:检查数据包首部,转发数据包

1.2 功能

  • 路由:选择数据报从源端到目的端的路径
  • 转发:将数据报从路由器的输入接口传送到正确的输出接口

1.3 服务

Definition (数据报服务)

  • 网络层向上只提供简单灵活无连接的、尽最大努力交付的数据报服务
  • 发送分组时不需要先建立连接,每个分组独立发送
  • 数据报独立转发,相同源-目的的数据报可能经过不同的路径
  • 网络层不提供服务质量的承诺

Definition (虚电路)

  • 通信之间先建立逻辑连接:在此过程中,如有需要,可以预留网络资源
  • 结合使用可靠传输的网络协议,保证所发送的分组无差错按序到达终点
  • 虚电路表示这只是一条逻辑上的连接,分组都沿着这条逻辑连接按照存储转发方式传送,而并不是真正建立了一条物理连接

2. Internet 网络层协议

Interner 协议功能

  • 寻址
  • 分片

2.1 IPv4 协议

Definition (IPv4 分组格式)

IP 分组由首部和数据两部分组成,首部的前一部分是固定长度,共 20 字节,是所有 IP 分组必须具有的,在首部的固定部分的后面是一些可选字段,其长度是可变的

  • 版本:占 4bit,指 IP 协议的版本,目前的 IP 协议版本号为 4 (即 IPv4)
  • 首部长度:4bit,值为 5~15 个单位(4 B),因此 IP 分组首部长度最大值为 60 字节
  • 区分服务:8bit,最初为服务类型(没用);现在前 6 位标记服务类别,后 2 位携带显式拥塞信息
  • 总长:16bit,指首部和数据之和,单位为字节,因此分组的最大长度为 65535 字节。注意不要超过最大传送单元 MTU
  • 标识:16bit,分组标识,同一数据报的分片使用同一标识
  • 标志位:3bit,第 1 位未用,第 2 位 DF 代表不要分片,第 3 位 MF 代表还有分片
  • 片偏移:占 13bit,数据报在分片后,本分片在原数据报中的相对位置;片偏移以 8 B 为偏移单位,除了最后一个分片,每个分片长度一定是 8B 的整数倍
  • 生存时间:记为 TTL (Time To Live),8bit, 表示数据报在网络中的生命周期,用通过路由器的数量来计量,即跳数(每经过一个路由器会减 1)
  • 协议:8bit,字段指出分组的数据使用何种协议,以便目的主机 IP 层将数据上交给哪个处理过程
  • 首部校验和:16bit,只检验数据报的首部,不包括数据部分
  • 源地址目的地址:各 4 字节,IP 地址
  • 选项:可扩充部分,具有可变长度,定义了安全性、严格源路由、松散源路由、记录路由、时间戳等选项。
  • 填充:用全 0 的填充字段补齐为 4 字节的整数倍

2.2 IP 地址

Definition (IP 地址)

网络上的每一台主机(或路由器)的每一个接口都会分配一个全球唯一的 32 位(4 字节)的标识符,由网络号和主机号组成

2.2.1 地址分类

  • A 类10.0.0.0~126.255.255.255,默认子网掩码:255.0.0.0
  • B 类128.0.0.0~191.255.255.255,默认子网掩码:255.255.0.0
  • C 类192.0.0.0~223.255.255.255,默认子网掩码:255.255.255.0
  • D 类224.0.0.0~239.255.255.255,用于多播
  • E 类240.0.0.0~255.255.255.255,保留

私有 IP 地址

  • A 类10.0.0.0~10.255.255.255
  • B 类172.16.0.0~172.31.255.255
  • C 类192.168.0.0~192.168.255.255

2.2.2 子网划分

Definition (子网划分)

在网络内部将一个网络块进行划分以供多个内部网络使用,对外仍是一个网络

Definition (CIDR(Classless Inter-Domain Routing))

IP 地址后加上“/”,然后写上网络前缀的位数(可以任意长度)

2.2.3 路由聚合

Definition (路由聚合)

把网络前缀相同的连续 IP 地址组成的地址块称为 CIDR 地址块,一个 CIDR 地址块可以表示很多地址,这种地址的聚合常称为路由聚合。在查找路由表时使用最长前缀匹配。

2.3 DHCP

Definition (DHCP (Dynamic Host Configuration Protocol))

当主机加入 IP 网络,允许主机从 DHCP 服务器动态获取 IP 地址,完整流程为:

  1. DHCP Discover 广播
  2. DHCP offer 单播
  3. DHCP Request 广播
  4. DHCP ACK 单播

2.4 ARP

Definition (ARP (Address Resolution Protocol))

  • A 已知 B 的 IP 地址,需要获得 B 的 MAC 地址
  • 如果 A 的 ARP 表中缓存 B 的 IP 地址与 MAC 地址的映射关系,则直接从 ARP 表中获取
  • 如果为缓存,则 A 广播包含 B 的 IP 地址的 ARP Query 分组
  • B 接收到 ARP Query 分组后,将自己的 MAC 地址发送给 A
  • A 在 ARP 表中缓存 B 的 IP 地址和 MAC 地址的映射关系

2.5 NAT

Definition (NAT (Network Address Translation))

网络地址转换用于解决 IPv4 地址不足的问题,是一种将私有(保留)地址转化为公有 IP 地址的转换技术

2.6 ICMP

Definition (ICMP (Internet Control Message Protocol))

ICMP 允许主机或路由器报告差错情况和提供有关异常情况的报告,由主机和路由器用于网络层信息的通信。ICMP 报文携带在 IP 数据报中: IP 上层协议号为 1

3. 路由算法

3.1 最短路径算法 (Dijkstra 算法)

Definition (Dijkstra 算法)

  1. 通过 Dijkstra 计算图 G 中的最短路径时,需要指定一个起点 A(即从顶点 A 开始计算)。
  2. 此外,引进两个集合 S 和 U。S 的作用是记录已求出最短路径的顶点(以及相应的最短路径长度),如图中黑色点。而 U 则是记录还未求出最短路径的顶点(以及该顶点到起点 A 的距离),如图中空心点。
  3. 初始时,数组 S 中只有起点 A;数组 U 中是除起点 A 之外的顶点,并且数组 U 中记录各顶点到起点 A 的距离。如 果顶点与起点 A 不相邻,距离为无穷大。
  4. 然后,从数组 U 中找出路径最短的顶点 K,并将其加入到数组 S 中;同时,从数组 U 中移除顶点 K。接着,更新 数组 U 中的各顶点到起点 A 的距离。
  5. 重复第 4 步操作,直到遍历完所有顶点

3.2 距离向量路由

Definition (距离向量路由)

每个路由器维护一张表,表中给出了到每个目的地的已知最佳距离和 线路,并通过与相邻路由器交换距离信息来更新表

3.3 链路状态路由

Definition (链路状态路由)

  1. 发现邻居,了解他们的网络地址
  2. 设置到每个邻居的成本度量
  3. 构造一个分组,分组中包含刚收到的所有信息
  4. 将此分组发送给其他的路由器
  5. 计算到其他路由器的最短路径

3.4 层次路由

Definition (层次路由)

将网络分为多个区域,每个区域内部的路由信息只在本区域传播,而区域间由“骨干层”或“主干路由器”负责沟通。

3.5 广播路由

Definition (泛洪 (flooding))

将每个数据包发送到除了入端口外的所有端口

  • 序号控制泛洪:用序号控制,序号表中有该数据包的记录则不转发
  • 逆向路径转发:不是由最佳路径来的不转发
  • 生成树:源节点向所有属于该生成树的特定链路发送分组

3.6 组播路由

Definition (IGMP (Internet Group Management Protocol))

常用组播地址段 224.0.0.0/24

  • 224.0.0.1,LAN 上所有设备
  • 224.0.0.2,LAN 上所有路由器
  • 224.0.0.5,LAN 上所有 OSPF 路由器
  • 224.0.0.251,LAN 上所有 DNS 服务器

3.7 选播路由

Definition (选播)

将数据包传送给最近的一个组成员

4. Internet 路由协议

4.1 OSPF-内部网关路由协议

Definition (OSPF (Open Shortest Path First))

  • 邻居发现:使用 Hello 报文发现与自己直连的 OSPF 路由器
  • 链路状态通告(LSA):路由器通过发送 Link State Advertisement(LSA)描述自己的连接状态,所有路由器将收到的 LSA 存储于本地的链路状态数据库(LSDB)中
  • 构建拓扑图与路径计算:每台路由器使用 SPF 算法(Dijkstra)基于 LSDB 计算出到各目的网络的最短路径

4.2 RIP-内部网关路由协议

Definition (RIP (Routing Information Protocol))

  • 每个路由器维护一张“到所有网络的跳数表”
  • 每 30 秒向邻居发送整个路由表(UDP 广播)
  • 收到邻居的路由表更新自己的表
  • 不区分链路带宽,只看“跳数”

4.3 BGP-外部网关路由协议

  • 自治系统(AS):每个 AS 是一个独立管理的网络
  • BGP 会话类型
    • eBGP(External BGP):不同 AS 之间的 BGP 会话(例如:AS100 ↔ AS200)。
    • iBGP(Internal BGP):同一 AS 内部的 BGP 会话(例如:AS100 内的两台路由器)。
  • BGP 邻居(Peer):- 通过  TCP 端口 179  建立邻居关系,需手动配置对方 IP 和 ASN。

Definition (BGP (Border Gateway Protocol))

  1. 建立邻居关系:发起方(Initiator)尝试与对端(Listener)建立 TCP 连接,双方发送 BGP Open 消息,包含 ASN、BGP 版本、Router ID 等信息。若 ASN、认证信息等一致,进入  Established  状态,开始路由交换。
  2. 路由通告与学习:发送 Update 消息。每个 Update 消息包含
  • NLRI(Network Layer Reachability Information),即要通告的 IP 前缀(如  192.168.1.0/24
  • 路径属性(Path Attributes),即描述路由的元数据(如 AS_PATH、NEXT_HOP 等)
  • 撤销路由(Withdrawn Routes), 即标记不再可达的路由。
  1. BGP 路由决策:当收到多条到达同一目的地的路由时,BGP 按以下顺序选择最优路径(Best Path Selection):LOCAL_PREF > AS_PATH 长度 > ORIGIN 类型 > MED > eBGP 优于 iBGP

4.4 标签交换和 MPLS

Definition (MPLS (MultiProtocol Label Switching))

  1. 标签分发协议(LDP):LSR 之间通过 LDP 协议交换标签绑定信息(将 IP 前缀映射到标签)。
  2. 数据转发
  • 入口 LER(Ingress LER):收到原始 IP 数据包后,根据目标 IP 查找对应的标签。将标签封装到数据包头部(称为  压标签),形成 MPLS 帧。
  • 核心 LSR:根据入标签(Incoming Label)查找转发表,替换为出标签(Outgoing Label),并从指定接口转发。转发决策仅依赖标签,不解析 IP 头部
  • 出口 LER(Egress LER):移除标签(称为  弹标签),恢复原始 IP 数据包,转发到目标网络。

5. 网络层的流量管理

5.1 ECN

Definition (ECN (Explicit Congestion Notification))

在 IP 包头中记录数据包是否经历了拥塞。在数据包转发过程中,路由器可以在包头中标记为经历拥塞,然后接收方在它的下一个应答数据包里回显该标记作为显式拥塞信号

5.2 PFC

Definition (PFC (Priority-based Flow Control))

以太网帧通过 VLAN tag(802.1Q)中的 PCP 字段来标识优先级(0~7,一共 8 个等级)。每个优先级可以独立启用或禁用流控。当某个优先级的接收队列即将溢出时,交换机会向上游设备发送 PFC 帧(也称为优先级 PAUSE 帧),只要求暂停该优先级的发送。上游设备接收到该帧后,仅暂停发送该优先级的流量,而其他优先级的流量可继续发送。

5.3 RED

Definition (RED (Random Early Detection))

  • 使路由器的队列维持两个参数,即队列长度最小门限 和最大门限
  • 对每一个到达的数据报都先计算平均队列长度
  • 若平均队列长度小于最小门限 ,则将新到达的数据报放入队列进行排队
  • 若平均队列长度超过最大门限 ,则将新到达的数据报丢弃
  • 若平均队列长度在最小门限 和最大门限 之间,则按照某一概率 将新到达的数据报丢弃

6. 服务质量 QoS

6.1 流量整形

流量整形(traffic shaping):限制流出某一网络的某一连接的流量与突发,使这类报文以比较均匀的速度向外发送

6.2 漏桶

Definition (漏桶算法 (Leaky Bucket Algorithm))

将用户发出的不平滑的数据分组流转变成网络中平滑的数据分组流 。流入速率不固定,均匀流出,桶满则溢出

6.3 令牌桶

Definition (令牌桶算法 (Token Bucket Algorithm))

漏桶存放令牌,每 秒 (周期性)产生一个令牌,令牌累积到漏桶上界时就不再增加;分组传输之前必须获得一个令牌,传输之后删除该令牌

Definition (令牌桶最大突发时间)

设令牌桶容量为 字节,令牌到达速率为 字节/秒,最大输出速率为 字节/秒。此时最大突发时间

6.4 数据包调度

  • 先来先服务(FCFS)
  • 公平队列(Fair Queueing)
  • 加权公平队列(Weighted Fair Queueing)
  • 优先级调度(Priority Scheduling)
Last Updated 12/13/2025, 12:57:16 PM