Wireshark笔记-DHCP两步交互流程与数据解析

背景

昨天给出了计算机网络工程师中很重要的知识点,DHCP四步交互。

今天再补充下DHCP一个次重要的知识点,两步交互。

这个两步交互是有条件的。一般情况是续租时(意思就是连过一次这个wifi了)

客户端保留历史租约,直接发 DHCP Request(携带曾用 IP),服务器验证租期有效后回 ACK,跳过 "发现(Discover)、提供(Offer)" 阶段;

过程

Wireshark抓包如下:

在Info中可知,就两步Request -> ACK

下面来看下第一个包(Request ):

比较关键的信息

Client IP:0.0.0.0(客户端暂未分配有效 IP,通过 Option 50 声明 Requested IP: 192.168.23.101(曾租用过的 IP)。

Transaction ID:0xf8218414(唯一会话标识,后续 ACK 包同 ID,证明是同一流程)。

Boot flags:0x0000(无广播标志,但目的 IP 是 255.255.255.255,说明客户端不确定服务器是否在线,仍广播请求,但携带历史 IP 意图)。

下一个ACK包

比较关键的信息:

Message Type:ACK (Boot Reply, 2),服务器确认 IP 分配,属于 DHCP 交互的最终确认阶段。

Transaction ID:0xf8218414,与前文 DHCP Request 包的事务 ID 一致,绑定同一交互会话。

Your (client) IP:192.168.23.101 ,服务器分配给客户端的 IP(客户端曾通过 Option 50 请求该 IP,属于续租场景)。

Boot Flags:0x0000 (Unicast),服务器单播回复(而非广播),因已通过 Request 包获取客户端 MAC,直接定向发送更高效。

Option 54 (Server ID):192.168.23.138,标识 DHCP 服务器,避免多服务器冲突(本场景虽单服务器,但协议保留该字段)。

Option 51 (Lease Time):隐含租约时长(如 86400 秒),客户端可使用该 IP 的有效期,续租时此值决定 "信任周期"。

有个疑问

此处提出一个疑问,估计大部分读者都应该发现了。为什么dhcp服务端的ACK会直接回192.168.23.101的单播。dhcp的客户端不应该没有ip地址吗?

DHCP 的单播交互,是 "链路层交付(MAC) + 网络层标识(IP)" 的分离设计:

① 链路层负责 "把帧送到客户端网卡"(靠 MAC);

② 网络层的目标 IP 负责 "让客户端知道这是给自己的 IP 配置"(靠 Option 50 和 ACK 的 IP 匹配)。

客户端即使还没 IP,只要 MAC 对、客户端中DHCP 进程在监听,就能接收并处理这个 ACK,最终完成 IP 配置。这就是 DHCP 协议对 "无 IP 阶段交互" 的巧妙设计

相关推荐
一隅论数智3 天前
给AI一张“业务概念地图“:本体如何从哲学走向企业智能
大数据·人工智能·经验分享·笔记·学习·学习方法·政务
虎头金猫3 天前
4K 视频总卡在公网带宽?用 N1 + OpenList 把网盘播放链路重新理顺
运维·服务器·网络·python·容器·beautifulsoup·pandas
深圳老胡3 天前
STM32F407 控制 L6470 步进电机驱动 —— 控制过程简介
笔记·stm32·单片机·嵌入式硬件·代码规范
wuyk5553 天前
《WiFi 嵌入式物联网开发全套实战》| 第 16 章 ESP32 AP+STA 双模共存原理与工程坑点
网络·stm32·物联网
Because_of_Her13 天前
并查集-听课笔记
笔记·算法·并查集
彧azz3 天前
Linux 环境下 Redis 学习总结:数据类型、持久化、锁、事务、主从与缓存问题
linux·redis·笔记·学习·面试
陈卫军老师3 天前
陈卫军:把口味写在一张纸上,店才稳得住
经验分享·笔记·流量运营
`流年づ3 天前
人工智能学习笔记 - 补充
人工智能·笔记·深度学习·学习
qeen873 天前
【Linux】操作系统之进程介绍(二)
linux·笔记·学习·进程
从零开始的嵌入式之旅3 天前
day47
arm开发·经验分享·笔记·嵌入式硬件