网络层

4.1 网络层的功能

网络层是互联网的核心层次,负责将数据报从源主机传输到目的主机。

三大核心功能

  1. 路由选择:在网络中确定从源到目的的最佳路径(类似于GPS规划行车路线)
  2. 分组转发:将输入的分组从合适的端口输出(类似于每个路口的指示牌)
  3. 拥塞控制:当网络中流量过大时进行控制

网络层 vs 传输层

  • 网络层提供主机到主机的通信(IP地址标识主机)
  • 传输层提供进程到进程的通信(端口号标识进程)

4.2 路由算法

分类方式 类型 说明
静态 vs 动态 静态路由 手动配置,简单但无法应对拓扑变化
动态路由 自动计算,适应网络变化
全局 vs 分布式 全局(链路状态LS) 每个路由器知道全网拓扑(OSPF)
分布式(距离向量DV) 每个路由器只知道相邻路由器的信息(RIP)

距离向量算法(RIP使用)

  • 每个路由器维护一张路由表,记录到各目的网络的"距离"(跳数)
  • 定期(每30秒)向邻居发送自己的路由表
  • 收到邻居的路由表后,更新自己的路由表
  • 更新原则:若邻居有新路径且距离更短,则采用;若走邻居能减少距离,则更新
  • 好消息传播快,坏消息传播慢(慢收敛问题)

链路状态算法(OSPF使用)

  • 路由器收集邻居信息,构建LS分组,泛洪给所有其他路由器
  • 每个路由器都知道全网的拓扑结构
  • 使用Dijkstra算法计算最短路径树

OSPF vs RIP

特性 RIP OSPF
算法 距离向量 链路状态
度量 跳数(最多15跳) 代价(带宽等)
更新 定期(30s)广播 变化时触发更新
收敛 慢 快
适用范围 小型网络 大型网络
传输层 UDP(端口520) 直接基于IP(协议号89)

4.3 IPv4分组格式

IP数据报首部格式(固定20B + 可选字段)

偏移(bit) 字段 长度(bit) 说明
0 版本 4 IPv4为4
4 首部长度 4 单位4字节,最小5(20B),最大15(60B)
8 区分服务 8 以前叫服务类型TOS
16 总长度 16 首部+数据的总长度(字节),最大65535B
32 标识 16 同一个分片的IP数据报有相同标识
48 标志 3 DF(1=不能分片),MF(1=后面还有分片)
51 片偏移 13 分片在原数据报中的相对位置,单位8字节
64 生存时间(TTL) 8 每经过一个路由器减1,减到0丢弃
72 协议 8 上层协议(6=TCP,17=UDP,1=ICMP,89=OSPF)
80 首部校验和 16 只校验首部,每跳重新计算
96 源IP地址 32 发送方IP
128 目的IP地址 32 接收方IP
160+ 可选项 可变 很少使用

IP分片(重点!)

为什么需要分片?因为不同网络有不同MTU(最大传输单元),例如以太网MTU=1500B。

  • 标识:同一个原始数据报的所有分片有相同标识
  • 标志:DF=1不分片;MF=1表示后面还有分片,MF=0表示最后一个分片
  • 片偏移:分片在原始数据报中的位置(除以8),单位是8字节

分片规则

  1. 片偏移的值为 8 的整数倍
  2. 每个分片的数据长度必须是 8 的倍数(除了最后一个)
  3. 分片后数据长度 = 原始数据报总长度 - 首部长度
  4. 分片后总长度 = 分片数据长度 + 首部长度

典型例题

例1:一个IP数据报总长度为4000B(首部20B),要经过一个MTU=1500B的以太网,求分片情况。

解:

  • 数据部分 = 4000 - 20 = 3980B
  • 每个分片最大数据 = (1500 - 20) 且为8的倍数 = 1480B(因为1480/8=185是整数)
  • 分片数 = ceil(3980/1480) = 3
分片 总长度 标识 MF 片偏移
1 1500 12345 1 0
2 1500 12345 1 185(1480/8)
3 1020 12345 0 370(2960/8)

4.4 IPv4地址(重中之重!)

IP地址 = 网络号 + 主机号

网络号标识网络,主机号标识该网络中的特定主机。

分类地址

类别 前缀 网络号范围 网络数 每个网络主机数 最大地址
A类 0 1~126 126 2²⁴-2 = 16777214 127.255.255.255
B类 10 128.0~191.255 16384 2¹⁶-2 = 65534 191.255.255.255
C类 110 192.0.0~223.255.255 2097152 2⁸-2 = 254 223.255.255.255
D类 1110 224.0.0.0~239.255.255.255 组播地址 - -
E类 11110 240.0.0.0~255.255.255.254 保留 - -

⚠️ 易错点:

  • A类地址0.0.0.0和127.0.0.0保留(127.x.x.x是回环地址)
  • 主机号全0表示本网络本身,全1表示广播地址——所以要减2

子网划分

通过从主机号中借出若干位作为子网号,将一个大网络划分为多个子网。

子网掩码:1表示网络位+子网位,0表示主机位。

子网掩码 斜杠表示
255.0.0.0 /8(A类默认)
255.255.0.0 /16(B类默认)
255.255.255.0 /24(C类默认)

典型例题

例2:某主机IP地址为192.168.5.121,子网掩码为255.255.255.248,求: (1)该主机所在子网的网络地址(2)该子网的广播地址(3)该子网可用IP地址范围

解:

  • 255.255.255.248 = 11111111.11111111.11111111.11111000
  • 借了5位子网号(原有C类24位网络号+5位子网号=29位),3位主机号
  • 网络地址 = IP & 子网掩码 = 192.168.5.121 & 255.255.255.248
  • 121 = 01111001,248 = 11111000
  • 121 & 248 = 01111000 = 120
  • 网络地址 = 192.168.5.120
  • 广播地址 = 主机号全1(3位全1→7),120+7=127 → 192.168.5.127
  • 可用IP范围 = 192.168.5.121 ~ 192.168.5.126(共6个)

CIDR(无分类域间路由选择——重点!)

CIDR消除了传统的A/B/C类地址的概念,使用斜杠记法:IP地址/网络前缀长度。

格式:a.b.c.d / n,其中n表示网络前缀的位数。

例如:128.14.32.0/20 表示前20位是网络前缀。

CIDR地址块

  • 128.14.32.0/20 表示一个地址块
  • 地址范围:128.14.32.0 ~ 128.14.47.255(2¹²=4096个地址)
  • 最小地址:128.14.32.0(主机号全0)
  • 最大地址:128.14.47.255(主机号全1)

CIDR的路由聚合(路由汇总) 将多个路由条目合并为一个,减少路由表大小。

例如:

  • 172.18.128.0/24
  • 172.18.129.0/24
  • 172.18.130.0/24
  • 172.18.131.0/24

聚合后:172.18.128.0/22(前22位相同:172.18.10 000000)

典型例题

例3:某单位有4个部门,需要IP地址数量分别为:A部门50个,B部门25个,C部门10个,D部门10个。现有一个C类网络192.168.1.0/24,请用子网划分(变长子网掩码VLSM)进行分配。

解:

  • 先给大的分配:A需要50个 → 需要6位主机号(2⁶-2=62≥50)
    • 子网掩码:/26(255.255.255.192)
    • 地址范围:192.168.1.0/26(可用:1.1~1.62)
  • B需要25个 → 需要5位主机号(2⁵-2=30≥25)
    • 子网掩码:/27(255.255.255.224)
    • 地址范围:192.168.1.64/27(可用:1.65~1.94)
  • C需要10个 → 需要4位主机号(2⁴-2=14≥10)
    • 子网掩码:/28(255.255.255.240)
    • 地址范围:192.168.1.96/28(可用:1.97~1.110)
  • D需要10个 → 同C
    • 子网掩码:/28
    • 地址范围:192.168.1.112/28(可用:1.113~1.126)

📌 408考点提示:子网划分和CIDR是必考大题!练习要点:

  1. 快速计算网络地址(IP & 子网掩码)
  2. 确定地址块的范围(网络地址 ~ 广播地址)
  3. 路由聚合(找共同前缀)
  4. VLSM从大到小分配

4.5 NAT(网络地址转换)

为什么需要NAT? IPv4地址不够用。私有IP地址可以在内部网络使用,通过NAT转换为公有IP访问互联网。

私有IP地址范围

  • 10.0.0.0/8(1个A类网)
  • 172.16.0.0/12(16个B类网)
  • 192.168.0.0/16(256个C类网)

NAT的工作原理

  • NAT路由器将内部主机的私有IP+端口映射为公有IP+新端口
  • 建立NAT转换表,记录映射关系
  • 收到的应答包根据转换表还原成私有IP+端口

NAPT(网络地址端口转换):多个私有IP共享一个公网IP,通过端口号区分。

4.6 ARP协议(地址解析协议)

功能:已知IP地址,解析出MAC地址。

工作原理(同一网络内)

  1. 主机A广播ARP请求:"谁的IP是x.x.x.x?请告诉我你的MAC地址"
  2. 目标主机B收到后,单播回复ARP响应:"我就是,我的MAC是xx:xx:xx:xx:xx:xx"
  3. 主机A将映射写入ARP高速缓存(有生命周期)

ARP跨网络:如果目的IP不在同一网络,则查路由表,得到下一跳路由器的IP地址,然后ARP解析下一跳路由器的MAC地址。

4.7 DHCP协议(动态主机配置协议)

功能:自动为主机分配IP地址、子网掩码、默认网关、DNS服务器等。

工作过程(DORA)

  1. Discover:客户端广播DHCP发现报文(寻找DHCP服务器)
  2. Offer:DHCP服务器广播提供报文(提供IP地址)
  3. Request:客户端广播DHCP请求报文(确认使用该IP)
  4. Ack:DHCP服务器广播确认报文(分配完成)
  • 基于UDP,客户端端口68,服务器端口67
  • 分配的IP地址有租用期,到期要续租

4.8 ICMP协议(网际控制报文协议)

功能:报告差错和提供询问信息。

ICMP报文类型

类型 报文 说明
差错报告 终点不可达 路由器找不到目的网络/主机
时间超过 TTL减到0
参数问题 IP首部字段错误
源点抑制 已废弃,用于拥塞控制
询问 回送请求/应答 ping命令使用
时间戳请求/应答 用于时钟同步

常用命令

  • ping:发送ICMP回送请求,测试连通性
  • traceroute(Windows: tracert):利用ICMP时间超过报文,跟踪路由路径

4.9 IPv6

IPv6 vs IPv4主要区别

IPv4 IPv6
地址长度 32位(约43亿) 128位(约3.4×10³⁸)
地址表示 点分十进制 冒号十六进制(如:2001:0db8::1)
首部长度 可变(20~60B) 固定40B
校验和 有 无(依赖上层)
分片 路由器可做 只有源主机能做
IPsec 可选 原生支持
广播 有 无(用组播代替)

IPv6地址简化写法

  • 前导0可省略:2001:0db8:0000:0000:0000:8a2e:0370:7334 → 2001:db8:0:0:0:8a2e:370:7334
  • 连续0可用双冒号替换(只能用一次):→ 2001:db8::8a2e:370:7334

IPv4到IPv6过渡技术

  • 双协议栈:设备同时运行IPv4和IPv6
  • 隧道技术:将IPv6数据报封装在IPv4数据报中传输

4.10 路由协议

RIP(路由信息协议)

  • 基于距离向量算法
  • 度量:跳数(最大15跳,16表示不可达)
  • 每30秒广播一次路由表
  • 使用UDP端口520
  • 缺陷:收敛慢,度量单一,不适合大型网络

RIP路由表更新规则

  1. 如果新路由的目的网络不在表中 → 添加
  2. 如果下一跳相同 → 更新(即使距离变长也更新)
  3. 如果下一跳不同但距离更短 → 更新

典型例题

例4:路由器R1的路由表如下,现在收到R2的路由信息(下一跳都标记为R2),更新R1的路由表。

R1当前表:

目的网络 距离 下一跳
10.0.0.0 4 R3
20.0.0.0 2 R2
30.0.0.0 5 R3

R2发来的信息:

目的网络 距离
10.0.0.0 3
20.0.0.0 3
40.0.0.0 2

解:

  • 10.0.0.0:R2的距离为3,加1得4,与R1当前距离相等。但下一跳不同(R2 vs R3),距离相等不更新
  • 20.0.0.0:R2的距离为3,加1得4 > 当前2。且下一跳就是R2(同一跳),所以强制更新为距离4
  • 30.0.0.0:R2表中没有,不更新
  • 40.0.0.0:新网络,添加(距离=2+1=3,下一跳=R2)

更新后:

目的网络 距离 下一跳
10.0.0.0 4 R3
20.0.0.0 4 R2
30.0.0.0 5 R3
40.0.0.0 3 R2

OSPF(开放最短路径优先)

  • 基于链路状态算法
  • 度量:代价(cost = 参考带宽/接口带宽)
  • 直接基于IP(协议号89)
  • 使用Dijkstra算法计算最短路径
  • 支持分层路由(区域)
  • 收敛快,适合大型网络

BGP(边界网关协议)

  • 基于路径向量算法
  • 用于AS(自治系统)之间的路由
  • 基于TCP(端口179)
  • 不是找最短路径,而是找"最好的可达路径"
  • 交换的是路径信息(经过的AS序列)

RIP/OSPF/BGP对比总结

RIP OSPF BGP
类型 IGP(内部) IGP(内部) EGP(外部)
算法 距离向量 链路状态 路径向量
度量 跳数 代价(带宽) 路径属性
更新 定期30s 变化触发 变化触发
传输 UDP 520 IP 89 TCP 179
收敛 慢 快 较慢
适用范围 小型网络 大型网络 互联网核心

💡 记忆技巧:RIP像骑自行车(简单、慢、只适合短距离);OSPF像私家车(快、灵活、适合长途);BGP像国际航班(负责不同国家/AS之间的连接)。

4.11 网络层设备——路由器

路由器工作原理

  1. 从输入端口收到帧 → 剥去数据链路层帧头
  2. 提取IP数据报 → 检查首部(TTL减1,更新校验和)
  3. 查找路由表 → 确定输出端口
  4. 封装成帧 → 从输出端口发送

路由器 vs 交换机

特性 路由器 交换机
工作层 网络层 数据链路层
寻址依据 IP地址 MAC地址
隔离冲突域 ✅ ✅
隔离广播域 ✅ ❌
转发速度 较慢(软件查表) 快(硬件转发)
主要功能 路由选择、网络互联 帧转发

4.12 网络层核心总结

知识点 关键内容
网络层功能 路由选择、分组转发、拥塞控制
IP地址 分类地址、子网划分、CIDR、VLSM
路由算法 距离向量(RIP)、链路状态(OSPF)、路径向量(BGP)
辅助协议 ARP(IP→MAC)、DHCP(自动配置)、ICMP(差错报告)
IPv6 128位、无校验和、无广播、无路由器分片
分片 标识、MF标志、片偏移(×8)
设备 路由器

📌 408考点提示:网络层是考试中最难的部分,分值占比很高。

  1. 子网划分/CIDR综合计算(几乎每年一个大题)
  2. IP分片计算
  3. RIP路由表更新
  4. VPN/ARP/DHCP/ICMP概念选择题