%%
# 纲要
> 主干纲要、Hint/线索/路标
# Q&A
#### 已明确
#### 待明确
> 当下仍存有的疑惑
**❓<font color="#c0504d"> 有什么问题?</font>**
# Buffer
## 闪念
> sudden idea
## 候选资料
> Read it later
%%
# DHCP 协议
> **DHCP(Dynamic Host Configuration Protocol)动态主机配置协议**
DHCP 是 **基于 UDP 的==应用层==的协议**。
DHCP 协议用于 **在 IPv4 局域网中==自动分配 IP 地址== 和其它==网络配置信息(如子网掩码、默认网关、DNS 服务器地址等)==给网络设备**,使**设备在加入网络时自动获得必要的网络配置**,无需手动设置。
在 DHCP 通信中,通信的双方为**DHCP 客户端**和**DHCP 服务器**。
- DHCP 客户端是**希望加入网络的设备**,向 DHCP 服务器请求分配 IP 地址。
- 计算机、手机、平板电脑、打印机、智能电视、游戏机等需要加入网络的设备都可作为 DHCP 客户端。
- DHCP 服务器**负责分配 IP 地址**和**提供网络配置信息**。DHCP 服务器上记录着可被分配给 LAN 内设备的 IP 地址范围和子网掩码的值。
- 在家庭和小型办公网络中,无线路由器或宽带路由器通常充当 DHCP 服务器。
- 在大型或企业网络中,**专用的服务器被设置为 DHCP 服务器**,提供更复杂的网络配置和管理功能。
<br>
# DHCP 工作流程
四个步骤:
- **发现**:当 DHCP 客户端设备连接到网络时,会**广播**一个 **DHCP 发现消息**(DHCP DISCOVER),寻找网络上可用的 DHCP 服务器。
- **提供**:DHCP 服务器收到发现请求后,**广播**回应一个**DHCP 提供消息**(DHCP OFFER),提供 IP 地址和其它相关配置信息,如子网掩码、默认网关和 DNS 服务器地址,同时指定一个"**==租约期限==**"。
- **请求**:DHCP 客户端从 DHCP 服务器提供的 IP 地址中选择一个,并通过广播 **DHCP 请求消息**(DHCP REQUEST)来请求这个地址。
- **确认**:DHCP 服务器确认该请求,并通过发送**DHCP 确认消息**(DHCP ACK)来确认 IP 地址分配。
> [!NOTE] 在上述过程中,由于 **DHCP 客户端==尚未拥有 IP 地址==**,因此均采用 **==UDP 广播通信==**。
> [!example] DHCP 工作流程
> ![[_attachment/02-开发笔记/07-计算机网络/应用层/DHCP 协议.assets/IMG-DHCP 协议-7BDA12D671F298C94CDD5E0E6BA99520.png|488]]
<br><br><br>
# DHCP 租约机制
DHCP 租约期限是 **DHCP 服务器分配的 IP 地址及相关配置信息的==可使用时长==**(可以是几小时、几天甚至更长,取决于 DHCP 服务器端的配置)。
- 对 DHCP 客户端而言:
- 在租约快到期时,客户端将**尝试续订租约**,以保持其网络连接。**==如果续订失败,客户端将失去 IP 地址,并需要重新开始 DHCP 流程以获取新的 IP 地址==**。
- 对 DHCP 服务器而言:
- 若 DHCP 客户端设备**在租约期限内未请求续订**,则服务器**为其分配的 IP 地址在租约到期后会被回收,并可能分配给网络中的其他设备**。
DHCP 租约机制能够**有效管理 IP 地址资源**,特别是在 IP 地址有限的情况下。
例如,在频繁变动的网络环境(如公共 Wi-Fi 热点)中,租约机制支持设备的灵活连接和断开,确保网络资源的有效利用。
<br><br><br>
# DHCP 中继代理
DHCP 过程采用的是 "==**UDP 广播**==" 通信,因此只能在同一个局域网内进行。
为避免为每一个局域网配个一个 DHCP 服务器,通常以**网关路由器**作为 "**DHCP 中继代理**",
将 "**局域网内广播**" 向一个 **==中央 DHCP 服务器==** "**单播转发**",如下图所示:
> [!example] DHCP 中继代理
> ![[_attachment/02-开发笔记/07-计算机网络/应用层/DHCP 协议.assets/IMG-DHCP 协议-FE95D4671DFDF46CDE31D01826A0854B.png|418]]
<br><br><br>
# DHCP 配置示例

上图中,电脑配置了 "自动获取 IP 地址" 和 "自动获取 DNS 服务器地址"。因此**当该电脑加入一个网络(例如连接到路由器提供的 Wi-Fi 无线网时),该电脑将作为 DHCP 客户端,而路由器将作为 DHCP 服务器为这台电脑自动分配 IP 地址、子网掩码、默认网关以及 DNS 服务器**。
<br><br>
# 参考资料
[5.1 IP 基础知识全家桶 | 小林coding](https://xiaolincoding.com/network/4_ip/ip_base.html#dhcp)
# Footnotes