为什么移动数据不需要 DHCP?

3 阅读1分钟

1. 3GPP 协议栈的设计哲学

移动网络的 IP 配置是 PDP Context(2G/3G)/ EPS Bearer(4G)/ PDU Session(5G)  的一部分,在建立数据连接时就完成了:

plain text
Apply
┌─────────────────────────────────────────────────────┐
│  1. UE 发送 PDP Context Activation Request          │
│     (包含 APN、QoS 等参数)                           │
└──────────────┬──────────────────────────────────────┘
               ↓
┌─────────────────────────────────────────────────────┐
│  2. 核心网 (GGSN/PGW/UPF) 分配 IP 地址              │
│     - 从 IP 地址池中分配一个 IP                      │
│     - 配置 DNS、MTU、QoS 参数                        │
└──────────────┬──────────────────────────────────────┘
               ↓
┌─────────────────────────────────────────────────────┐
│  3. Modem 接收 PDP Context Accept 响应              │
│     - 包含完整的 IP 配置信息                         │
│     - 直接配置到网络接口(如 rmnet0)                │
└──────────────┬──────────────────────────────────────┘
               ↓
┌─────────────────────────────────────────────────────┐
│  4. Android Framework 从 DataCallResponse 读取配置   │
│     - 无需运行 DHCP Client                          │
│     - 直接创建 LinkProperties 并上报给 ConnectivityService │
└─────────────────────────────────────────────────────┘

展开

2. 点对点(Point-to-Point)连接

移动数据接口(如 rmnet0)本质上是 点对点链路,而非以太网:

  • 没有 ARP 请求/响应
  • 没有广播域
  • 不需要 DHCP Discover/Offer/Request/Ack 四次握手

3. 性能考虑

跳过 DHCP 流程可以:

  • 加快连接建立速度(少 2-4 秒)
  • 减少信令开销(DHCP 需要额外的 UDP 包)
  • 简化状态管理(不需要 DHCP 租约续期)