网络层
网络层核心概念与功能
设计目标
核心功能: 在发送主机与接收主机之间传输报文,实现路由选择(routing)与分组转发(forwarding)。
设计目标:
- 为传输层提供服务,与路由器技术无关
- 使传输层可以屏蔽路由器的数量、类型和网络拓扑结构
- 网络地址采用统一的编址方案
- 实现网络互联(路由选择、分组交换)、网络拥塞控制
服务类型
| 服务类型 | 虚电路(VC) | 数据报(Datagram) |
|---|---|---|
| 连接方式 | 面向连接 | 无连接 |
| 地址标识 | 使用 VC 标识 | 每个分组含完整目的地址 |
| 路由方式 | 同一条 VC 的分组按同一路由转发 | 每个分组独立选择路由 |
| 可靠性 | 网络负责可靠交付 | 端系统(传输层)负责 |
| 故障影响 | 故障结点影响所有经过的 VC | 仅丢失分组,路由可动态调整 |
| 顺序保证 | 按发送顺序到达 | 可能失序 |
| 典型应用 | ATM、帧中继、X.25 | 互联网(IP) |
注:互联网采用数据报(无连接)服务,将可靠交付交由端系统实现,降低网络复杂度,提高灵活性。
路由器结构与工作原理
两大核心功能
| 功能 | 定义 | 实现机制 |
|---|---|---|
| 转发(Forwarding) | 将分组从输入端口移送到适当输出端口 | 基于本地转发表(forwarding table) |
| 路由(Routing) | 决定分组从源主机到目的主机的路径 | 依赖于路由算法与协议 |
注:
- 路由器中控制平面先负责计算路由表,再由数据平面负责从路由表计算转发表。
- 实际上主机中也有路由表,但主要用于决定自己发出的数据包应该走哪个网卡、送到哪个网关。
路由器体系结构
┌──────────────────────────────────────────┐
│ Routing Section │
│ (Control Plane) │
│ ┌─────────────────────────────┐ │
│ │ Routing Processor │ │
│ │ (Running RIP/OSPF/BGP etc.) │ │
│ └─────────────────────────────┘ │
├──────────────────────────────────────────┤
│ Packet Forwarding Section │
│ (Data Plane) │
│ ┌──────────┐ ┌─────────┐ ┌─────────┐ │
│ │ Input │ │Switching│ │ Output │ │
│ │ Ports │ │ Fabric │ │ Ports │ │
│ │(Physical/│ │(Memory/ │ │(Queuing/│ │
│ │Data Link/│ │Bus/ │ │Buffer │ │
│ │Network │ │Crossbar)│ │Manage- │ |
│ │ Layer) │ │ │ │ment) │ │
│ └──────────┘ └─────────┘ └─────────┘ │
└──────────────────────────────────────────┘
注:
-
网络可以根据控制平面的部署方式,分为传统分布式网络和软件定义网络(SDN)。
核心特征 传统分布式网络 SDN 控制平面位置 路由器本地 远程服务器集中 控制平面交互 路由器之间相互交互 控制器与交换机交互 数据平面关系 各自独立转发 各自独立转发(流表由控制器下发) 控制与数据关系 耦合 解耦 -
一个路由器有多个输入输出端口。
-
如果输出端口的队列已满,则后续来到该端口的分组就会被丢弃。
交换结构三种实现方式
| 方式 | 原理 | 特点 |
|---|---|---|
| 经存储器交换 | 分组复制到系统内存,CPU 控制转发 | 受存储器带宽和总线带宽限制,吞吐量 = B/2 |
| 经总线交换 | 分组经共享总线从输入到输出 | 受总线带宽限制,一般达 1Gbps |
| 经互连网络交换 | 纵横开关结构,N 个输入 N 个输出 | 支持多线同时传输,速率更高 |
路由算法与协议
路由协议分类
| 分类维度 | 类型 | 特点 | 典型协议 |
|---|---|---|---|
| 信息交换方式 | 链路状态 (LS),集中式 | 洪泛拓扑信息,每个节点有完整拓扑 | OSPF、IS-IS(使用 Dijkstra 算法) |
| 距离向量 (DV),分布式 | 仅与邻居交换距离估计 | RIP(使用 Bellman-Ford 算法) | |
| 更新方式 | 静态路由 | 人工配置 | — |
| 动态路由 | 自动适应网络变化 | RIP、OSPF、BGP |
核心最短路径算法
设网络是一个带权无向图 ,其中:
- 为节点集合,
- 为节点集合,
- 为边 的权值(代价/距离),且 (非负权值,RIP 中为 1)
目标:为每个节点 计算到所有其他节点 的最短路径及其总代价 。
Dijkstra 算法
核心思想:每个节点计算到所有其他节点的最短路径,基于全局拓扑信息。
算法步骤:
- 初始化:N’ = {u}, D(v) = c(u,v)(邻居代价)或∞
- 循环:找到不在N’中且D(w)最小的w,加入N’
- 更新:对所有v,D(v) = min(D(v), D(w) + c(w,v))
- 重复直到所有节点在N’中
特点:收敛快O(n²),但需 flooding 传播链路状态信息,开销为N×E量级。
Bellman-Ford 算法
-
Bellman-Ford 方程:
对于任意节点 和目的节点 :
其中 是 的邻居节点集合。
注:利用了动态规划中的最优子结构。
-
收敛性证明:
定义 为从 到 的、最多经过 条边的最短路径长度。若不存在路径则为
初始化:
迭代关系(Bellman-Ford 迭代):
则 Bellman-Ford 算法至多需要 轮迭代才能让所有节点获得正确的最短路径。且存在一种拓扑结构需要 轮迭代。这里我们假设实际计算时迭代是同步的,也即所有路由器计算完一轮后再开启下一轮,并且是静态网络结构。
证明:
在假设条件下,所有路由器完成 轮后计算得到的路由表中记录的即为 。且我们容易证明以下两条引理:
- 对于所有 和 ,有:
- 当 时:
从而完成可行性证明。
构造最坏情况,考虑一条直线拓扑 ,边权均为 1。目标是从 计算到 的最短路径。则确实需要 轮。
特点: - 仅与邻居交换信息,分布式迭代 - 好消息传得快,坏消息传得慢(无穷计算问题):B 依赖 C 告诉它怎么到 A,C 依赖 B 告诉它怎么到 A,结果谁也不知道 A 已经不可达了。 - 收敛时间不确定,存在路由环路风险
互联网路由协议
内部网关协议(IGP):
适用于同一自治系统(Autonomous System,AS)内部。
| 协议 | 类型 | 核心算法 | 关键特性 | 封装方式 |
|---|---|---|---|---|
| RIP | 距离向量 | Bellman-Ford | 最大跳数为 15 跳 存在环路风险(无穷计数问题) | UDP,端口 520 |
| OSPF | 链路状态 | Dijkstra | 收敛快 支持分层设计 无环路风险 | 直接封装于 IP,协议号 89 |
外部网关协议(EGP):
适用于不同自治系统(AS)之间。
| 协议 | 类型 | 核心机制 | 关键特性 | 封装方式 |
|---|---|---|---|---|
| BGP-4 | 路径向量 | 策略决策(非单纯最短路径) | 基于策略选路(政治/经济因素) 防止路由环路(AS_PATH) 支持 CIDR | TCP,端口 179 |
注:最早的外部网关协议恰好也名为 EGP,所以需要区分 EGP 指的是具体的某一协议还是外部网关协议族。
网络互联与 IPv4 协议
IPv4 地址共 32 位。
IPv4 地址表示方式
| 表示方式 | 示例 |
|---|---|
| 点分十进制 | 192.168.1.1 |
| 二进制 | 11000000 10101000 00000001 00000001 |
| CIDR | 192.168.1.0/24,一般用来表示一个网络,范围是 192.168.1.0 - 192.168.1.255 |
| 十六进制 | C0.A8.01.01 |
| DNS域名 | localhost 127.0.0.1 |
分类编址 IPv4
编址格式:
分为网络号和主机号,并由地址的前几位决定类别。
[Network ID][Host ID]
| 类别 | 前几位 | 网络号位数 | 主机号位数 | 地址范围 | 说明 |
|---|---|---|---|---|---|
| A 类 | 0 | 8 位 | 24 位 | 0.0.0.0 - 127.255.255.255 | — |
| B 类 | 10 | 16 位 | 16 位 | 128.0.0.0 - 191.255.255.255 | — |
| C 类 | 110 | 24 位 | 8 位 | 192.0.0.0 - 223.255.255.255 | — |
| D 类 | 1110 | — | — | 224.0.0.0 - 239.255.255.255 | 组播地址 |
| E 类 | 1111 | — | — | 240.0.0.0 - 255.255.255.255 | 保留 |
注:分类直接看点分十进制的第一部分。
特殊 IP 地址:
| 特殊地址 | IP 示例 | 说明 |
|---|---|---|
| 网络地址 | 10.0.0.0(A 类)、172.16.0.0(B 类)、192.168.1.0(C 类) | 主机号全 0,代表整个网络。不能作为目的地址。 |
| 定向广播地址 | 10.255.255.255(A 类)、172.16.255.255(B 类)、192.168.1.255(C 类) | 主机号全 1,向该网络所有主机广播。可以作为目的地址。 |
| 有限广播地址 | 255.255.255.255 | 向本地网络所有主机广播,路由器不转发。不需要网络号。 |
特殊网络地址:
| 特殊网络 | IP 范围 | 说明 |
|---|---|---|
| 本机回环网络 | 127.0.0.0/8(常用 127.0.0.1) | 指向本机,数据包不离开设备。 |
| 本网络 | 0.0.0.0/8(常用 0.0.0.0) | 表示本网络,用于默认路由或 DHCP 未获取 IP 时。 |
| 组播地址 | 224.0.0.0/4 | D 类地址,用于一对多通信。 |
| 保留地址 | 240.0.0.0/4 | E 类地址,除 255.255.255.255 外保留未用。 |
注: 本机回环和管道都能实现本机两个进程通信,两者都在内核完成,但是没有任何关系。
| 对比维度 | 本机回环(Loopback) | 管道(Pipe) |
|---|---|---|
| 所属范畴 | 网络协议栈 | 操作系统 IPC |
| 依赖协议 | TCP/IP 协议栈 | 无,纯内存操作 |
| 数据路径 | 应用 内核协议栈 回环驱动 内核协议栈 应用 | 应用 内核管道缓冲区 应用 |
| 通信方式 | Socket API | pipe() 系统调用,文件描述符读写 |
特点:
优点:简单;按类别聚合,路由表小。
缺点:地址浪费严重,网络号数量有限,分配不灵活(A 类太大,C 类太小),无法精细匹配实际需求。
子网划分 IPv4
编址格式:
从 A/B/C 类地址的主机号中借用若干位作为子网号,形成三级结构:
[Network ID][Subnet ID][Host ID]
引入子网掩码来进行区分。掩码为 1 的部分即为 [Network ID][Subnet ID],为 0 的部分即为 [Host ID]。
例:
B 类网络为 172.16.0.0/16,借 2 位主机号生成 4 个子网。
| 项目 | 值 |
|---|---|
| 新掩码 | 255.255.192.0(/18) |
| 子网数 | |
| 每子网可用主机数 |
| 子网地址 | 范围 | 广播地址 |
|---|---|---|
172.16.0.0/18 | 172.16.0.1 - 172.16.63.254 | 172.16.63.255 |
172.16.64.0/18 | 172.16.64.1 - 172.16.127.254 | 172.16.127.255 |
172.16.128.0/18 | 172.16.128.1 - 172.16.191.254 | 172.16.191.255 |
172.16.192.0/18 | 172.16.192.1 - 172.16.255.254 | 172.16.255.255 |
新增特殊网络地址:
| 特殊类型 | 范围 | 说明 |
|---|---|---|
| 私有地址 | 10.0.0.0/8、172.16.0.0/12、192.168.0.0/16 | RFC 1918,可以在内部重复使用 |
| 链路本地地址 | 169.254.0.0/16 | RFC 3927,DHCP 失败时自动分配 |
注:
IP 地址可以分为三层。
| 层级 | 地址类型 | 典型范围 | 能否直接上网 | 是否允许全球重复 | 主要用途 | 示例 |
|---|---|---|---|---|---|---|
| 最内层 | 链路本地地址 | 单根网线(同一链路) | 不能 | 能重复 | 同一链路上的邻居发现、自动配置等底层通信 | IPv4: 169.254.1.2IPv6: fe80::1 |
| 中间层 | 私有地址 | 家庭或公司内网(可跨路由器) | 需经 NAT 转换 | 能 | 构建企业内部或家庭私有网络,节省公网IP | IPv4: 192.168.1.1, 10.0.0.1IPv6: fd00::1 |
| 最外层 | 公网地址 | 全球互联网 | 能直接路由 | 禁止重复 | 全球范围内唯一标识设备,实现互联网通信 | IPv4: 8.8.8.8IPv6: 2001:db8::1 |
特点:
优点:可以按需分配子网,减少地址浪费。支持路由聚合。划分子网对外网透明。
缺点:需要额外配置子网掩码。每个子网一条路由造成路由表膨胀。减少了连接主机数。仍然受限于 A/B/C 类的固定边界。
| 类别 | 默认掩码 | 变长子网范围 | 超网范围 |
|---|---|---|---|
A 类 (/8) | /8 | /9 - /32 | /1 - /7(很少用) |
B 类 (/16) | /16 | /17 - /32 | /1 - /15 |
C 类 (/24) | /24 | /25 - /32 | /1 - /23 |
CIDR IPv4
无类别域间路由(Classless Inter-Domain Routing)。
编址格式:
彻底抛弃 A/B/C 类的固定边界,采用变长前缀:
IP address / prefix
前缀长度任意(0 - 32),只区分网络前缀和主机号。通过改变前缀可以分配适当大小的 CIDR 地址块。
| 示例 | 前缀长度 | 子网掩码 | 含义 |
|---|---|---|---|
192.168.1.0/24 | 24 位 | 255.255.255.0 | 前 24 位是网络前缀 |
192.168.1.32/27 | 27 位 | 255.255.255.224 | 前 27 位是网络前缀 |
0.0.0.0/0 | 0 位 | 0.0.0.0 | 默认路由,匹配所有地址 |
特殊 IP 地址:
| 特殊类型 | 地址 | 说明 |
|---|---|---|
| 默认路由 | 0.0.0.0/0 | 匹配所有地址,路由表中表示缺省路径 |
| 未指定地址 | 0.0.0.0/32 | DHCP 过程中表示没有 IP |
| 有限广播 | 255.255.255.255/32 | 同前 |
特殊网络地址:
| 特殊类型 | 范围 | 说明 |
|---|---|---|
| 本机回环 | 127.0.0.0/8 | 同前,最常用 127.0.0.1 |
| 私有地址 | 10.0.0.0/8172.16.0.0/12192.168.0.0/16 | 同前 |
| 链路本地 | 169.254.0.0/16 | 同前 |
| 文档地址 | 192.0.2.0/24198.51.100.0/24203.0.113.0/24 | 文档、示例、教学使用,不会在公网出现 |
| 组播地址 | 224.0.0.0/4 | 同前 |
| 保留地址 | 240.0.0.0/4 | 同前 |
特点:
优点:通过调整前缀长度自由分配地址空间,彻底解决地址浪费问题。支持路由聚合、构成超网。可以减少路由表条目。是现行互联网的编址标准。
缺点:需要所有设备支持 CIDR,配置更复杂。
三阶段横向对比
| 对比维度 | 分类编址 | 子网划分 | CIDR |
|---|---|---|---|
| 编址结构 | Network ID + Host ID | Network ID + Subnet ID + Host ID | Prefix + Host ID |
| 地址类别 | A/B/C/D/E 五类 | 基于 A/B/C 类 | 无类别 |
| 掩码 | 默认掩码(8/16/24) | 可变长子网掩码 | 任意前缀长度 |
| 核心问题 | 地址浪费 | 路由表膨胀 | 解决了前两者的主要问题 |
IPv4 分组格式
0B 1B 2B 3B 4B
|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|0 1 2 3 4 5 6 7|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Ver | IHL |Type of Service| Total Length |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Identification |Flags| Fragment Offset |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Time to Live | Protocol | Header Checksum |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Source Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Destination Address |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Options (Optional) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
关键字段说明:
| 字段 | 位数 | 说明 |
|---|---|---|
| Ver (Version) | 4位 | 版本号。例如 IPv4 取值为 4 |
| IHL (Internet Header Length) | 4位 | 互联网首部长度。实际就是 IPv4 首部长度,以 32 位(4B)为单位。最小值为 5(20B,也即无 Options),最大值为 15(60B) |
| Type of Service | 8位 | 服务类型。用于 QoS(服务质量)和包优先级,现常被 DSCP(区分服务代码点)替代 |
| Total Length | 16位 | 总长度。整个 IP 包的大小(首部 + 数据),以字节为单位。最大值为 65535 字节 |
| Identification | 16位 | 标识符。用于分片与重组,同一原始数据包的所有分片共享相同标识符 |
| Flags | 3位 | 标志位。控制分片行为: 第 0 位:保留,必须为 0 第 1 位:DF(Don’t Fragment,禁止分片) 第 2 位:MF(More Fragments,后面还有分片) |
| Fragment Offset | 13位 | 片偏移。当前分片在原始数据包中的位置,以 8 字节为单位,13 + 3 = 16 |
| Time to Live (TTL) | 8位 | 生存时间。每经过一个路由器减 1,减到 0 时丢弃,防止无限循环 |
| Protocol | 8位 | 协议号。标识上层协议: 6:TCP 17:UDP 1:ICMP 等等 |
| Header Checksum | 16位 | 首部校验和。仅对首部进行错误检测,每经过一个路由器都会重新计算 |
| Source Address | 32位 | 源 IP 地址。发送方的 IPv4 地址 |
| Destination Address | 32位 | 目的 IP 地址。接收方的 IPv4 地址 |
| Options | 可变(0-40 字节) | 选项字段。可选功能(如时间戳、路由记录等),很少使用。如有选项,需用填充位保证首部是 32 位的整数倍 |
网络层辅助协议与技术
ARP
地址解析协议
功能:实现IP地址到MAC地址的映射(同一局域网内)。
工作流程:
- 主机 A 广播 ARP 请求(目的 IP 已知,MAC 填 0)
- 目标主机 B 单播 ARP 响应,告知自身 MAC 地址
- 主机 A 缓存 IP-MAC 映射(ARP 高速缓存)
注:ARP仅解决同一网络内的地址映射,跨网络通信需通过路由器转发。
DHCP
动态主机配置协议
功能:自动分配 IP 地址及相关配置(子网掩码、默认网关、DNS服务器)。
工作流程(UDP端口:客户端68,服务器67):
客户端 ──DHCP DISCOVER(广播)──$\rightarrow$ 服务器
客户端 ←──DHCP OFFER(广播)──── 服务器
客户端 ──DHCP REQUEST(广播)──$\rightarrow$ 服务器
客户端 ←──DHCP ACK──────────── 服务器
NAT
网络地址转换
功能:将专用地址转换为全球地址,实现内网主机访问外网。
实现机制:
- 使用端口号区分不同内网主机(NAPT/PAT)
- NAT表记录:
(源IP, 源端口) ↔ (NAT IP, 新端口)
专用地址范围(RFC 1918):
- 10.0.0.0 - 10.255.255.255(/8)
- 172.16.0.0 - 172.31.255.255(/12)
- 192.168.0.0 - 192.168.255.255(/16)
ICMP
互联网控制报文协议
功能:报告差错、测试连通性、状态查询。
| 类型值 | 代码 | 含义 |
|---|---|---|
| 0 | 0 | Echo Reply(Ping应答) |
| 3 | 0-7 | 目的不可达(网络/主机/协议/端口等) |
| 8 | 0 | Echo Request(Ping请求) |
| 11 | 0 | TTL超时(Traceroute利用) |
典型应用:
- Ping:测试主机可达性(Echo Request/Reply)
- Traceroute:利用TTL超时或端口不可达报文,追踪路由路径
组播(Multicast)
特点:一点到多点高效传输,使用D类地址(224.0.0.0-239.255.255.255)。
关键协议:
- IGMP:主机与组播路由器之间维护组成员关系
- 组播路由协议:DVMRP、MOSPF、PIM、CBT等
基于生成树:以组播主机为根 基于核心数:以路由器为根
转发机制:
- 反向路径转发(RPF):仅当分组从源节点最短路径方向到达时才转发
- 剪枝:剪掉无组成员的分支,构建组播树
IPv6 协议
主要改进
| 特性 | IPv4 | IPv6 |
|---|---|---|
| 地址长度 | 32位 | 128位(3.4×10³⁸个地址) |
| 首部长度 | 可变(20-60字节) | 固定40字节(8字节对齐) |
| 表示方法 | 点分十进制 | 冒号十六进制(可零压缩) |
| 配置方式 | DHCP/手动 | 自动配置(即插即用) |
| 安全性 | 可选(IPsec) | 内置支持 |
| 选项处理 | 首部选项 | 扩展首部(路由器不处理,除逐跳选项) |
IPv6 基本首部格式
┌─────────────────────────────────────────────────────────────┐
│ 版本(4) │ 通信量类(8) │ 流标号(20) │
├─────────────────────────────────────────────────────────────┤
│ 有效载荷长度(16) │ 下一首部(8) │ 跳数限制(8) │
├─────────────────────────────────────────────────────────────┤
│ 源地址(128位) │
├─────────────────────────────────────────────────────────────┤
│ 目的地址(128位) │
└─────────────────────────────────────────────────────────────┘
关键字段:
- 流标号(Flow Label):标识同一流的数据报,保证服务质量
- 下一首部:标识扩展首部类型或上层协议(类似IPv4协议字段)
- 跳数限制:替代TTL,每路由器减1,为0时丢弃
IPv6 地址类型
| 类型 | 二进制前缀 | 示例表示 |
|---|---|---|
| 未指明地址 | 全0 | ::/128 |
| 环回地址 | 0…01 | ::1/128 |
| 多播地址 | 11111111 | FF00::/8 |
| 本地链路单播 | 1111111010 | FE80::/10 |
| 全球单播 | 其他 | 可聚合全球单播地址 |
IPv4 向 IPv6 过渡技术
| 技术 | 原理 | 应用场景 |
|---|---|---|
| 双协议栈 | 主机/路由器同时运行IPv4和IPv6 | 长期共存阶段 |
| 隧道技术 | IPv6分组封装为IPv4数据报穿越IPv4网络 | IPv6孤岛互联 |
Ad Hoc 网络与移动网络
Ad Hoc 网络特征
定义:无固定基础设施、自组织的无线多跳网络,节点兼具主机和路由器功能。
分类:
- MANET(移动Ad Hoc网络):支持语音、数据等实时业务,强调可靠性
- WSN(无线传感器网络):强调低成本、低功耗、大规模部署
Ad Hoc 路由协议
| 协议 | 类型 | 核心机制 | 特点 |
|---|---|---|---|
| AODV | 按需距离矢量 | 泛洪RREQ建立反向路径,RREP建立前向路径 | 分组头无路由信息,维护下一跳表项 |
| DSR | 源路由 | RREQ携带完整路径信息,RREP沿反向路径返回 | 分组头含完整路径,路由缓存利用率高 |
| OLSR | 表驱动链路状态 | 优化链路状态广播,仅转发MPR(多点中继) | 控制开销相对稳定,适合大规模网络 |
AODV vs DSR 对比
| 特性 | AODV | DSR |
|---|---|---|
| 路由信息存储 | 各节点维护下一跳表项 | 源节点缓存完整路径 |
| 分组头开销 | 小(仅目的地址) | 大(含完整路径,随跳数增加) |
| 路由发现开销 | 需要时泛洪RREQ | 类似,但利用缓存减少泛洪 |
| 链路失效处理 | 发送RERR,重新发现 | 使用缓存备用路径或重新发现 |
| 适用场景 | 一般Ad Hoc网络 | 拓扑变化较慢、路径稳定场景 |
移动IP与蜂窝网络
移动IP核心组件
| 组件 | 功能 |
|---|---|
| 移动节点(MN) | 可在不同网络间移动的主机 |
| 归属代理(HA) | 归属网络中的路由器,维护MN当前位置 |
| 访问代理(FA) | 访问网络中的路由器,为MN提供转交地址(CoA) |
| 转交地址(CoA) | MN在访问网络中的临时IP地址 |
移动IP工作过程
┌─────────────┐ ┌─────────────┐
│ 归属网络 │ ←────隧道────$\rightarrow$ │ 访问网络 │
│ (HA) │ 封装转发 │ (FA/MN) │
└─────────────┘ └─────────────┘
↑ ↑
│ 1. MN移动,向FA注册获取CoA │
│ 2. MN向HA注册(CoA, MN永久地址)│
│ 3. 通信对端$\rightarrow$HA$\rightarrow$隧道$\rightarrow$FA$\rightarrow$MN │
│ 4. MN直接$\rightarrow$通信对端(三角路由)│
└────────────────────────────────┘
蜂窝网络与移动IP对比
| 概念 | 蜂窝网络(GSM/LTE) | 移动IP |
|---|---|---|
| 归属系统 | 归属网络(HLR存储用户数据) | 归属网络(HA维护位置) |
| 位置寄存器 | HLR(归属)/VLR(访问) | HA/FA |
| 路由地址 | MSRN(移动台漫游号) | CoA(转交地址) |
| 切换机制 | MSC间切换,锚点MSC | FA切换,向HA重新注册 |
关键对比总结表
| 对比项 | 技术A | 技术B | 核心差异 |
|---|---|---|---|
| 服务模型 | 虚电路 | 数据报 | 连接状态 vs 无连接,网络可靠 vs 端系统可靠 |
| 路由算法 | 链路状态(LS) | 距离矢量(DV) | 全局信息/快速收敛 vs 分布式/可能存在环路 |
| 路由协议 | OSPF | RIP | LS算法/无跳数限制 vs DV算法/最大15跳 |
| 域间路由 | IGP(内部) | EGP/BGP(外部) | 策略控制 vs 性能优化 |
| IP编址 | 分类编址 | CIDR | 固定类别 vs 灵活前缀/路由聚合 |
| 地址映射 | ARP | DNS | IPMAC(链路层) vs 域名IP(应用层) |
| 地址转换 | NAT | 直接路由 | 专用↔全球地址转换 vs 端到端透明 |
| IP版本 | IPv4 | IPv6 | 32位/可变首部 vs 128位/固定首部+扩展首部 |
| Ad Hoc路由 | AODV | DSR | 下一跳表项 vs 源路由完整路径 |
| 移动性支持 | 蜂窝网络(电路域) | 移动IP(分组域) | 基础设施完善 vs 基于IP的灵活移动 |