背景
DHCP从大学上网络课时就开始知道了,当时只知道,能让计算机上网,要不就静态配IP,要不就DHCP获取,就能上网。
2021年时,毕业好几年了,想学习下网络知识,就准备考一个软考网工。按要求了解了DHCP的4个交互过程。
今天(2025年),准备把这4个交互过程使用Wirshark抓取出来,分析下。
知识点
DHCP 全称动态主机配置协议(Dynamic Host Configuration Protocol),是一种网络管理协议。它能自动为接入网络的设备(如手机、电脑)分配 IP 地址、子网掩码、网关、DNS 服务器等关键网络参数,无需手动配置。
设备接入时会向 DHCP 服务器发送请求,服务器根据规则分配地址并设定租期,租期到后可续租或重新分配,有效避免 IP 冲突,简化网络运维,是局域网和广域网中保障设备联网的核心协议。
下面再给出2021年4月11号,做的笔记

这个比较重要,看看Wireshark是不是按照这个逻辑走的。
DHCP客户端与DHCP服务端交互过程
① DHCP客户端会发起DHCPDiscover广播消息,向所有DHCP服务器请求IP地址租约,此时源IP地址为0.0.0.0,广播地址为255.255.255.255,请求数据包会客户端的MAC和计算机名。
② 所有接收到DHCPDiscover广播包的服务器,会检测自己的配置,如果富余的IP地址,则DHCP服务器发起DHCPOffer广播消息来应答DHCP客户端,如果有多个DHCP服务器给予此DHCP客户端DHCPOffer消息,则DHCP客户端接收第一个DHCPOffer消息中的IP地址。
③ 当DHCP客户端收到DHCP服务器的租约时,它将发起DHCPRequest广播消息,告诉所有DHCP服务器自己已经做出选择,接受了某个DHCP服务器的租约。在此DHCPRequest广播消息中包含了DHCP服务端的MAC地址、接受的租约中的IP地址、提供此租约的DHCP服务器地址等,所有其他的DHCP服务器收到其广播包后,收回它们以此DHCP客户端所保留的IP地址租约。此时由于没有得到DHCP服务器确认,DHCP客户端仍然不能使用租约中提供的IP地址,所以在此数据包中仍然使用0.0.0.0作为源IP地址,广播地址255.255.255.255作为目的地址。
④ 提供的租约被接受的DHCP服务器在接收到DHCP客户端发起的DHCPRequest广播消息后,会发送DHCPAck广播消息进行最后的确认,在这个消息中同样包含了租约期限及其他TCP/IP选项信息。
过程
Wireshark抓包如下:

在Wireshark的Info中可以看到逻辑上与知识点保持一致。
Discover -> Offer -> Request -> Ack
现在来看下Discover
从中可知,发送了广播包(这里很好理解,因为没有ip地址,他想与其他计算机通信,只能发广播包)
其中包含了MAC地址和主机名。其他比较有意思点:
Option 61(Client Identifier):唯一标识客户端(避免多网卡 / 虚拟环境的 IP 冲突)。
Option 60(Vendor class identifier):MSFT 5.0 → 客户端厂商标识(此处为Windows 系统,服务器可据此下发专属配置)。
Transaction ID:0x95903b9c,会话标识(与客户端 Discover 报文中的 ID 一致,确保请求 - 响应配对)。
接下来看Offer
可知关键的信息:
Your (client) IP:192.168.23.101,服务器分配给客户端的 IP 地址(核心内容)。
Next server IP:192.168.23.138,DHCP 服务器自身 IP(告诉客户端:后续交互找我)。
Client MAC:74:d8:3e:ed:8d:61 客户端网卡 MAC(精准定位请求者,避免冲突)。
Transaction ID:0x95903b9c,会话标识(与客户端 Discover 报文中的 ID 一致,确保请求 - 响应配对)。
接下来看Request
Option 50(请求 IP):192.168.23.101,客户端明确请求 Offer 中分配的 IP(告诉服务器:"我就要这个 IP")。
Option 54(服务器 ID):192.168.23.138,客户端指定 响应的服务器(排除其他 Offer 的服务器,避免干扰)。
Option 61(客户端 ID):客户端 MAC(唯一标识,防止冒充)。
Transaction ID:0x95903b9c,会话标识(与客户端 Discover 报文中的 ID 一致,确保请求 - 响应配对)。
最后看下ACK

当DHCP服务端回ACK后,说明是正式授权。重要的字段和上面3个包都一样。说下最后那两个:
Option 1(子网掩码):255.255.255.0,客户端的子网掩码(划分网络范围,如 192.168.23.xxx 属同一子网)。
Option 28(广播地址):192.168.23.255,本网段的广播地址(客户端发广播包时使用,如 DHCP 续租)。