Wireshark笔记-DHCP流程与数据包解析

背景

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 续租)。

相关推荐
hello_ world.3 小时前
k8s笔记04-常用部署命令
笔记·容器·kubernetes
SatoshiGogo4 小时前
《李沐读论文》系列笔记:论文读写与研究方法【更新中】
笔记
子朔不言4 小时前
[MH22D3开发笔记]2. SPI,QSPI速度究竟能跑多快,双屏系统的理想选择
笔记·mh22d3·新龙微·兆讯·双屏
被遗忘的旋律.4 小时前
Linux驱动开发笔记(七)——并发与竞争(上)——原子操作
linux·驱动开发·笔记
鲸鱼24014 小时前
无监督学习中的经典聚类算法——K-Means笔记
笔记
wan5555cn5 小时前
AI 时代“驯导师”职业发展方向探究
大数据·人工智能·笔记·深度学习
霜绛6 小时前
Unity笔记(六)——Mathf、三角函数、坐标系、向量
笔记·学习·unity·游戏引擎
阑梦清川7 小时前
如何使用notion搭建自己的个人知识库(第二大脑)
笔记
小xin过拟合8 小时前
day20 二叉树part7
开发语言·数据结构·c++·笔记·算法