DHCP报文协议

article/2025/9/12 15:16:29

Ipv4

单播,即点对点的通信,目的地址为单一目标的一种传输方式。

源IP、源MAC为发送者的IP和mac地址,目的IP、目的MAC为接收者的IP和mac地址。

广播,是指封包在计算机网络中传输时,目的地址为网络中所有设备的一种传输方式。实际上,这里所说的“所有设备”也是限定在一个范围之中,称为“广播域”。

源IP、源MAC为发送者的IP和mac地址,目的IP、目的MAC为全0,例如arp报文

其中c0 a8 97 17为源IP,c0 a8 97 fd为目的IP

组播,也叫多播,指把信息同时传递给一组目的地址。它使用策略是最高效的,因为消息在每条网络链路上只需传递一次,而且只有在链路分叉的时候,消息才会被复制。

源IP为组播源服务器的IP地址,源MAC为

IANA把D类地址空间分配给IP组播,其范围是从224.0.0.0到239.255.255.255。组播MAC地址的高24bit为0x01005e,第25bit为0,即高25bit为固定值。MAC地址的低23bit为组播IP地址的低23bit。由于 IP组播地址的前4bit 是1110,代表组播标识,而后28bit 中只有23bit 被映射到MAC 地址,这样IP 地址中就有5bit 信息丢失,导致的结果是出现了32 个IP 组播地址映射到同一MAC 地址上。

DHCP报文的结构

op,报文类型,1表示请求报文,2表示回应报文。

htype,硬件地址类型,1表示10Mb/s的以太网的硬件地址。

hlen,硬件地址长度,以太网中该值为6。

hops,跳数。客户端设置为0,也能被一个代理服务器设置。

xid,事务ID,由客户端选择的一个随机数,被服务器和客户端用来在它们之间交流请求和响应,客户端用它对请求和应答进行匹配。该ID由客户端设置并由服务器返回,为32位整数。

secs,由客户端填充,表示从客户端开始获得IP地址或IP地址续借后所使用了的秒数。

flags,标志字段。这个16比特的字段,目前只有最左边的一个比特有用,该位为0,表示单播,为1表示广播。

ciaddr,客户端的IP地址。只有客户端是Bound、Renew、Rebinding状态,并且能响应ARP请求时,才能被填充。

yiaddr,"你自己的"或客户端的IP地址。

siaddr,表明DHCP协议流程的下一个阶段要使用的服务器的IP地址。

giaddr,DHCP中继器的IP地址。//注意:不是地址池中定义的网关

chaddr,客户端硬件地址。客户端必须设置它的"chaddr"字段。UDP数据包中的以太网帧首部也有该字段,但通常通过查看UDP数据包来确定以太网帧首部中的该字段获取该值比较困难或者说不可能,而在UDP协议承载的DHCP报文中设置该字段,用户进程就可以很容易地获取该值。

sname,可选的服务器主机名,该字段是空结尾的字符串,由服务器填写。

file,启动文件名,是一个空结尾的字符串。DHCP Discover报文中是"generic"名字或空字符,DHCP Offer报文中提供有效的目录路径全名。

options,可选参数域,格式为"代码+长度+数据"。

原理图:

在Wireshark中抓包并进行协议解析,注意:其中Bootp flags为客户端对服务器端回复报文形式的标志,并不是客户端发送报文的形式,也就是在DHCP DISCOVER报文中的bootp flags为由服务器向客户端作出回应发出的DHCP OFFER报文的形式,DHCP REQUEST报文中的bootp flags为由服务器向客户端作出回应发出的DHCP ACK报文的形式,并且若Bootp flags为0x0000(Unicast)则为单播,0x8000(Broadcast)为广播,这也就说明了DHCP OFFER报文和DHCP ACK报文既可以以广播形式发送,也可以以单播形式发送给客户端。

DHCP Release报文(单播)      由客户端发出

用来释放客户端IP地址,并且在IP地址释放后客户端源IP地址变为0.0.0.0

DHCP DISCOVER报文(广播)  client-------->server

用来向服务器发送IP请求报文,将自己的MAC地址封装在报文里广播寻找IP。

注意:在DHCP DISCOVER报文发出后,会随机生成一个Transaction ID,如果在DHCP OFFER报文中的Transaction ID和DHCP DISCOVER的不一样时,会将DHCP OFFER报文直接丢弃,也就是PC只会认可第一个发送来的DHCP OFFER报文,一个完整的DHCP过程中,Transaction ID保持不变。

DHCP OFFER报文         server-------->client

服务器从地址池中分配一个可用IP给客户端

DHCP REQUEST报文           client-------->server

客户端一般只处理一个最先到达客户端的DHCP OFFER报文,然后在选项字段中会加入选中的DHCP Server的IP地址和需要的IP地址

确认在DHCP OFFER阶段获得的IP地址能否分配给client,如果可以,则发送DHCP ACK报文,如果IP不可用,则发送DHCP NAK报文:

DHCP ACK报文         server -------->client

服务器判断选项字段中的IP是否在自己的分配记录中,如果有则响应DHCP ACK报文

注意:此时客户端仍然不能使用该IP,需要在接收到ACK报文后需要检查该 IP是否被使用(比如发送一条目的IP为该IP的arp报文,看是否有回应),如果被使用,则需要向server发出DHCP DECLINE报文,通知DHCP Server禁用这个IP地址,然后DHCP Client开始新的地址申请过程。

DHCP Client在成功获取IP地址后,随时可以通过发送DHCP RELEASE报文释放自己的IP地址,DHCP Server收到DHCP RELEASE报文后,会回收相应的IP地址并重新分配。

DHCP NAK报文        server --------> client

服务器对客户端的REQUEST报文的拒绝响应报文,表示分配IP地址失败,此时DHCP客户端需要重新发送DHCP DISCOVER报文重新申请IP地址。

DHCP DECLINE报文        client-------->server

表示分配给客户端的IP地址冲突,此时会重新向服务器申请地址。

DHCP INFORM报文       client-------->server

客户端已经获取IP地址,客户端继续向服务器请求配置参数

地址租期:

DHCP服务器提供的每个IP地址都有相应的租用期,地址租期过长会导致地址资源长期被占用,租期过短会导致DHCP请求包过多,增加网络负担。

IP续租过程:

1、客户端在地址租期还有1/2的时候,向DHCP服务器发送DHCP REQUEST报文,如果收到服务器的DHCP ACK后,客户端的IP地址租期重新回满;

2、如果未收到DHCP ACK,可继续使用该IP,在租期还有1/4时发出第二次DHCP REQUEST报文,如果收到DHCP ACK,租期回满;

3、如果未收到DHCP ACK,在租期还有1/8时发出第三次DHCP REQUEST报文,如果收到ACK,租期回满;

4、如果未收到DHCP ACK。租期结束后IP被回收。


http://chatgpt.dhexx.cn/article/cJyH64ue.shtml

相关文章

TCP报文段

TCP虽然是面向字节流的,但TCP传送的数据单元却是报文段。一个TCP报文段分为首部和数据两部分,而TCP的全部功能都体现在它首部中个字段的作用。因此,只有弄清TCP首部个字段的作用才能掌握TCP的工作原理。 TCP前20个字节使固定的,后…

OSPF报文格式

OSPF报文格式 OSPF报文可靠性机制: 由于OSPF协议是通过IP承载的,而IP协议是不可靠协议,所以OSPF需要自己的可靠机制来保证报文交互的可靠性在OSPF中有两种确认报文:1,显式确认报文(LSACK)2&…

机场气象报文解析

机场气象报文解析 背景示例思路代码结果预览致谢参考文献 从这篇文章,读者可以了解道机场气象报文的背景,知道其中数据大概长什么样子,如何利用python语言解析出机场气象报文里面的信息形成格式化数据。 背景 上个月的我国第六号台风“烟花…

Http协议报文格式

一、整体介绍 Http协议在传输层基于TCP协议,在Http1.1之前每次请求在TCP层都需进行一轮连接和释放(三次握手、四次握手),从Http1.1开始默认使用长连接。 Http报文分为两种,请求报文和响应报文,大致格式如下…

CAN报文

CAN报文 Bit Numbering是汽车网络数据库用以辅助描述信号的专用术语,具体含义是位的编号顺序。 lsb0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LSB 是least significant bit,最低有效位。 msb0 bit0 bit1 bit2 bit3 bit4 bit5 bit6 bit7 MSB是Most Si…

TCP报文头部

TCP包头详解 主要学习端口号、三次握手、四次挥手 TCP包头 TCP报文固定长度20字节可变长度 TCP包头如下图所示: 源端口、目标端口:计算机上的进程要和其他进程通信是要通过计算机端口的,而一个计算机端口某个时刻只能被一个进程占用&…

ICMP报文

紫色代表一级目录 粉红代表二级目录 蓝色代表三级目录 红色代表关键字 橙色代表说明 ICMP报文   为了更有效地转发 IP 数据报和提高交付成功的机会,在网际层使用了网际控制报文协议 ICMP (Internet Control Message Protocol)。   ICMP 是互联网的标准协议。  …

常见网络报文

TCP报文 1、端口号:用来标识同一台计算机的不同的应用进程。 1)源端口:源端口和IP地址的作用是标识报文的返回地址。 2)目的端口:端口指明接收方计算机上的应用程序接口。 2、序号和确认号:是TCP可靠传输的关键部分。序号是本报文…

报文、报文段、数据报、数据包、帧的概念区别

报文(message)—— 应用层 是网络中交换与传输的数据单元(站点一次性要发送的数据块)。报文包含了将要发送的完整的数据信息,其长短不一致。报文在传输过程中会不断的封装成分组、包、帧来传输,封装的方式…

报文、报文段、分组、包、数据报、帧、数据流的概念区别

1.报文(message) 我们将位于应用层的信息分组称为报文。报文是网络中交换与传输的数据单元,也是网络传输的单元。报文包含了将要发送的完整的数据信息,其长短不需一致。报文在传输过程中会不断地封装成分组、包、帧来传输,封装的方式就是添加…

关于SPSS16的安装及教程

放SPSS安装文件 链接:https://pan.baidu.com/s/14QHqvok2IItQvV_72VPtOg 提取码:ee0k 接下来按照如下步骤操作就可以 按照上面的操作就可以完成安装了,这个属于比较老的SPSS版本,但是比较稳定。

【SPSS统计分析】SPSS19.0简体中文版安装教程(附SPSS19.0简体中文版下载)

spss19.0中文版是一款专业数据统计软件,受到各种社会学科的研究生、研究员的欢迎。软件能够对信息的采集、处理、分析进行全面评估和预测。spss19.0中文版新增加了广义线性混合模型、自动线性模型、一个统计网页入口portal和直复营销direct marketing功能等。另外,IBM 针对SP…

最新版最简单SPSS 26安装详细教程

SPSS为IBM公司推出的一系列用于统计学分析运算、数据挖掘、预测分析和决策支持任务的软件产品及相关服务的总称,有Windows和Mac OS X等版本。下面介绍安装教程 下载地址: 链接:SPSS下载地址 (要是没有跳转到网盘请复制这个链接到…

spss20安装许可证代码_SPSS 22下载安装教程

软件下载 长按选择复制链接 [名称]:SPSS 22 [语言]:简体中文 [安装环境]:Windows [下载链接]: https://pan.baidu.com/s/1q4t2PtmyX2EcQy8E3CQnxg [提取码]: 6huj 链接失效、安装有问题请加微信:593003758拉你进软件资源小助手交流群 安装步骤 1.找到下载好的软件压缩包,…

spss statistics26 下载及安装教程

下载 解压后得到两个文件 点击下面那个,找到 “Windows”——“setup.exe”,双击打开 安装 1. 点击圈出的部分,开始安装 2. 一直点击下一步 / 我同意,直到如下界面 可以修改安装路径 3. 一直点击下一步,然后安装即可…

spss27软件安装包下载spss27安装教程

安装 步骤 1、将下载好的安装包 鼠标右击,选择 解压 2、解压得到一个安装文件夹,打开它 3、鼠标右击 SPSS_Statistics_Win64 ,选择 以管理员身份运行 4、下一步 5、选择我接受,下一步 6、点击更改,选择安装位置&#…

SPSS modeler for mac安装教程

一、下载 在百度搜一下,随便找个网站普通下载 我找的是这个 https://www.jb51.net/softs/679885.html 安装包较大,请耐心等待下载完成 二、解压 下载下来有一堆安装包,直接在最外层的文件夹选择提取。 解压时可能会让输入密码&#xff…

SPSS 25软件安装教程

​​​​​​​关注公众号,免费获取资料 简介: SPSS,统计产品与服务解决方案软件。最初软件全称为“社会科学统计软件包”(SolutionsStatistical Package for the Social Sciences),但是随着SPSS产品服务领…

SPSS-Modeler安装

1. 安装SPSS 64位软件包,解压安装安装步骤即可: 链接:https://pan.baidu.com/s/1t48M16ZUdpnfWemceOQc8g 提取码:ma0a 补充具体安装步骤 解压SPSS.Modeler.v18.x64.iso 得到: 打开使用说明: 根据步骤依次…

​​spss13.0 附安装教程

​​spss13.0全称又叫做Statistical Package for the Social Sciences 13,是一款简单实用的统计分析软件,采用最新的SPSS的超强统计的软体来帮助用户进行分析您的资料、使用户快速的解放您的双手,让操作等更加的灵活,轻松,因此收到各界社会学科的研究员的喜爱。除了使用体…